Commit 0d01d62f115ca0201f50a0c149435575ccd03371
1 parent
c30d084a
Periodic HTTP request
Send an HTTP request every second and update the view according to the response
Showing
4 changed files
with
63 additions
and
0 deletions
Show diff stats
app/build.gradle
... | ... | @@ -30,5 +30,6 @@ dependencies { |
30 | 30 | compile 'com.android.support:design:25.3.1' |
31 | 31 | compile 'com.android.support:support-v4:25.3.1' |
32 | 32 | compile 'com.android.support:support-vector-drawable:25.3.1' |
33 | + compile 'com.android.volley:volley:1.0.0' | |
33 | 34 | testCompile 'junit:junit:4.12' |
34 | 35 | } | ... | ... |
app/src/main/AndroidManifest.xml
... | ... | @@ -2,6 +2,7 @@ |
2 | 2 | <manifest xmlns:android="http://schemas.android.com/apk/res/android" |
3 | 3 | package="fr.utbm.lo53.p2017.positionningapp"> |
4 | 4 | |
5 | + <uses-permission android:name="android.permission.INTERNET" /> | |
5 | 6 | <application |
6 | 7 | android:allowBackup="true" |
7 | 8 | android:icon="@mipmap/ic_launcher" | ... | ... |
app/src/main/java/fr/utbm/lo53/p2017/positionningapp/PositioningActivity.java
1 | 1 | package fr.utbm.lo53.p2017.positionningapp; |
2 | 2 | |
3 | 3 | import android.os.Bundle; |
4 | +import android.os.Handler; | |
4 | 5 | import android.support.constraint.ConstraintLayout; |
5 | 6 | import android.support.v7.widget.Toolbar; |
7 | +import android.util.Log; | |
6 | 8 | import android.view.Menu; |
7 | 9 | import android.view.MenuItem; |
8 | 10 | import android.view.View; |
... | ... | @@ -10,14 +12,55 @@ import android.view.animation.AccelerateInterpolator; |
10 | 12 | import android.view.animation.AlphaAnimation; |
11 | 13 | import android.view.animation.Animation; |
12 | 14 | import android.widget.ImageView; |
15 | +import android.widget.TextView; | |
16 | + | |
17 | +import com.android.volley.Request; | |
18 | +import com.android.volley.RequestQueue; | |
19 | +import com.android.volley.Response; | |
20 | +import com.android.volley.VolleyError; | |
21 | +import com.android.volley.toolbox.StringRequest; | |
22 | +import com.android.volley.toolbox.Volley; | |
13 | 23 | |
14 | 24 | public class PositioningActivity extends BaseActivity { |
15 | 25 | |
16 | 26 | private static final String TAG = "PositioningActivity"; |
17 | 27 | |
18 | 28 | private ConstraintLayout start_layout; |
29 | + private TextView textView; | |
30 | + | |
19 | 31 | private Animation hideAnimation; |
20 | 32 | |
33 | + // Instantiate the RequestQueue. | |
34 | + private RequestQueue queue; | |
35 | + | |
36 | + private String url = "http://www.google.com"; | |
37 | + | |
38 | + // Request a string response from the provided URL. | |
39 | + private StringRequest stringRequest = new StringRequest(Request.Method.GET, url, | |
40 | + new Response.Listener<String>() { | |
41 | + @Override | |
42 | + public void onResponse(String response) { | |
43 | + // Display the first 500 characters of the response string. | |
44 | + textView.setText("Response is: "+ response.substring(0,500)); | |
45 | + } | |
46 | + }, new Response.ErrorListener() { | |
47 | + @Override | |
48 | + public void onErrorResponse(VolleyError error) { | |
49 | + Log.d(TAG, error.getCause().toString()); | |
50 | + textView.clearComposingText(); | |
51 | + } | |
52 | + }); | |
53 | + | |
54 | + private final Handler handler = new Handler(); | |
55 | + private final Runnable runnable = new Runnable() { | |
56 | + @Override | |
57 | + public void run() { | |
58 | + // Add the request to the RequestQueue. | |
59 | + queue.add(stringRequest); | |
60 | + handler.postDelayed(this, 1000); | |
61 | + } | |
62 | + }; | |
63 | + | |
21 | 64 | @Override |
22 | 65 | protected void onCreate(Bundle savedInstanceState) { |
23 | 66 | super.onCreate(savedInstanceState); |
... | ... | @@ -27,6 +70,16 @@ public class PositioningActivity extends BaseActivity { |
27 | 70 | |
28 | 71 | start_layout = (ConstraintLayout) findViewById(R.id.start_layout); |
29 | 72 | hideAnimation = createFadeOutAndHideAnimation(); |
73 | + | |
74 | + textView = (TextView) findViewById(R.id.ID_yolo); | |
75 | + | |
76 | + queue = Volley.newRequestQueue(this); | |
77 | + } | |
78 | + | |
79 | + @Override | |
80 | + protected void onDestroy() { | |
81 | + handler.removeCallbacks(runnable); | |
82 | + super.onDestroy(); | |
30 | 83 | } |
31 | 84 | |
32 | 85 | @Override |
... | ... | @@ -39,6 +92,7 @@ public class PositioningActivity extends BaseActivity { |
39 | 92 | |
40 | 93 | public void startLocating(View v) { |
41 | 94 | start_layout.startAnimation(hideAnimation); |
95 | + handler.post(runnable); | |
42 | 96 | } |
43 | 97 | |
44 | 98 | private Animation createFadeOutAndHideAnimation() { | ... | ... |
app/src/main/res/layout/content_positioning.xml
... | ... | @@ -23,6 +23,13 @@ |
23 | 23 | android:layout_marginStart="8dp" |
24 | 24 | android:layout_marginEnd="8dp" /> |
25 | 25 | |
26 | + <TextView | |
27 | + android:id="@+id/ID_yolo" | |
28 | + android:layout_width="wrap_content" | |
29 | + android:layout_height="wrap_content" | |
30 | + android:text="TextView" | |
31 | + android:textAppearance="@style/TextAppearance.AppCompat.Medium" /> | |
32 | + | |
26 | 33 | <android.support.constraint.ConstraintLayout |
27 | 34 | android:id="@+id/start_layout" |
28 | 35 | android:layout_width="0dp" | ... | ... |