From 5b2418c40c339b516ee4a25fa4402e1323c9be7d Mon Sep 17 00:00:00 2001 From: Florian Staine Date: Mon, 26 Jun 2017 14:36:24 +0200 Subject: [PATCH] Hide map before loading & add loading anim --- app/src/main/java/fr/utbm/lo53/p2017/positionningapp/PositioningActivity.java | 36 ++++++++++++++++++++++-------------- app/src/main/java/fr/utbm/lo53/p2017/positionningapp/network/URLSolver.java | 10 ++++++---- app/src/main/res/anim/rotate.xml | 8 ++++++++ app/src/main/res/drawable/ic_autorenew_black_24dp.png | Bin 0 -> 369 bytes app/src/main/res/layout/content_positioning.xml | 30 +++++++++++++++++------------- 5 files changed, 53 insertions(+), 31 deletions(-) create mode 100644 app/src/main/res/anim/rotate.xml create mode 100644 app/src/main/res/drawable/ic_autorenew_black_24dp.png diff --git a/app/src/main/java/fr/utbm/lo53/p2017/positionningapp/PositioningActivity.java b/app/src/main/java/fr/utbm/lo53/p2017/positionningapp/PositioningActivity.java index 1665a59..cf83241 100644 --- a/app/src/main/java/fr/utbm/lo53/p2017/positionningapp/PositioningActivity.java +++ b/app/src/main/java/fr/utbm/lo53/p2017/positionningapp/PositioningActivity.java @@ -8,6 +8,7 @@ import android.os.Build; import android.os.Bundle; import android.os.Handler; import android.support.constraint.ConstraintLayout; +import android.support.design.widget.Snackbar; import android.support.v7.widget.Toolbar; import android.util.Log; import android.view.Menu; @@ -16,8 +17,9 @@ import android.view.View; import android.view.animation.AccelerateInterpolator; import android.view.animation.AlphaAnimation; import android.view.animation.Animation; +import android.view.animation.AnimationUtils; +import android.view.animation.RotateAnimation; import android.widget.ImageView; -import android.widget.TextView; import com.android.volley.Request; import com.android.volley.RequestQueue; @@ -41,8 +43,8 @@ public class PositioningActivity extends BaseActivity { private static final String TAG = "PositioningActivity"; private ConstraintLayout start_layout; - private TextView textView; private ImageView mapView; + private ImageView imageLoading; private Animation hideAnimation; @@ -67,16 +69,15 @@ public class PositioningActivity extends BaseActivity { try { float x = (float) response.getDouble("x"); float y = (float) response.getDouble("y"); - int mapId = response.getInt("map_id"); + int mapId = response.getInt("map"); + imageLoading.setVisibility(View.GONE); if (hasCorrectMap(mapId)) { putPoint(x, y); - textView.setText(""); } else { getMap(mapId); } } catch (JSONException e) { - Log.e(TAG, e.toString()); - textView.setText("Could not parse the response !"); + Log.e(TAG, "Could not parse the response: " + e.toString()); } } }, new Response.ErrorListener() { @@ -85,8 +86,7 @@ public class PositioningActivity extends BaseActivity { // TODO: Remove random position Random r = new Random(); putPoint(r.nextFloat(), r.nextFloat()); - textView.setText("Error: " + error.getMessage()); - Log.i(TAG, "Error during location request"); + Snackbar.make(mapView, "Error during positioning request", Snackbar.LENGTH_LONG).show(); } }); Log.v(TAG, "" + locateRequest); @@ -106,10 +106,10 @@ public class PositioningActivity extends BaseActivity { start_layout = (ConstraintLayout) findViewById(R.id.start_layout); initFadeOutAndHideAnimation(); - textView = (TextView) findViewById(R.id.ID_yolo); - mapView = (ImageView) findViewById(R.id.map); + imageLoading = (ImageView) findViewById(R.id.img_loading); + queue = Volley.newRequestQueue(this); } @@ -140,8 +140,13 @@ public class PositioningActivity extends BaseActivity { if (isLocating) { return; } - isLocating = true; + + final Animation rotate = AnimationUtils.loadAnimation(this, R.anim.rotate); + rotate.setDuration(1500); + imageLoading.setVisibility(View.VISIBLE); + imageLoading.startAnimation(rotate); + start_layout.startAnimation(hideAnimation); handler.post(runnable); @@ -179,19 +184,22 @@ public class PositioningActivity extends BaseActivity { } private void getMap(int mapId) { + mapView.setVisibility(mapView.INVISIBLE); ImageRequest mapRequest = new ImageRequest( - getURLSolver().mapDataURL(mapId), + getURLSolver().mapBytesURL(mapId), new Response.Listener() { @Override public void onResponse(Bitmap bitmap) { mapView.setImageBitmap(bitmap); mapView.setVisibility(mapView.VISIBLE); + Snackbar.make(mapView, "You need to set a point before measurement.", Snackbar.LENGTH_LONG) + .setAction("Action", null).show(); } }, 0, 0, null, new Response.ErrorListener() { public void onErrorResponse(VolleyError error) { - mapView.setImageResource(R.drawable.map2); - textView.setText("Can't load map!!!"); + Snackbar.make(mapView, "Can't load map !", Snackbar.LENGTH_LONG) + .setAction("Action", null).show(); } }); queue.add(mapRequest); diff --git a/app/src/main/java/fr/utbm/lo53/p2017/positionningapp/network/URLSolver.java b/app/src/main/java/fr/utbm/lo53/p2017/positionningapp/network/URLSolver.java index 59f0f00..8e38add 100644 --- a/app/src/main/java/fr/utbm/lo53/p2017/positionningapp/network/URLSolver.java +++ b/app/src/main/java/fr/utbm/lo53/p2017/positionningapp/network/URLSolver.java @@ -46,14 +46,14 @@ public class URLSolver implements SharedPreferences.OnSharedPreferenceChangeList private Uri.Builder baseURL() { Uri.Builder builder = new Uri.Builder(); - return builder.scheme("http").encodedAuthority(hostname + ":" + port); + return builder.scheme("http").encodedAuthority(hostname + ":" + port).appendPath("positioning_server"); } public String locateURL(String mac) { Uri.Builder b = baseURL(); b.appendPath("positioning") .appendPath("request") - .appendQueryParameter("mac", mac); + .appendQueryParameter("CLIENT_MAC_ADDR", mac); return b.build().toString(); } @@ -67,9 +67,11 @@ public class URLSolver implements SharedPreferences.OnSharedPreferenceChangeList return b.build().toString(); } - public String mapDataURL(int mapId) { + public String mapBytesURL(int mapId) { Uri.Builder b = baseURL(); - b.appendPath("static").appendPath("map.png"); + b.appendPath("map") + .appendPath("byte") + .appendQueryParameter("MAP_ID", String.format("%d", mapId)); return b.build().toString(); } } diff --git a/app/src/main/res/anim/rotate.xml b/app/src/main/res/anim/rotate.xml new file mode 100644 index 0000000..5b7778d --- /dev/null +++ b/app/src/main/res/anim/rotate.xml @@ -0,0 +1,8 @@ + + diff --git a/app/src/main/res/drawable/ic_autorenew_black_24dp.png b/app/src/main/res/drawable/ic_autorenew_black_24dp.png new file mode 100644 index 0000000..39be19e Binary files /dev/null and b/app/src/main/res/drawable/ic_autorenew_black_24dp.png differ diff --git a/app/src/main/res/layout/content_positioning.xml b/app/src/main/res/layout/content_positioning.xml index b811eb9..b225657 100644 --- a/app/src/main/res/layout/content_positioning.xml +++ b/app/src/main/res/layout/content_positioning.xml @@ -14,11 +14,10 @@ android:layout_height="wrap_content" android:layout_marginEnd="8dp" android:layout_marginLeft="0dp" - android:layout_marginRight="8dp" + android:layout_marginRight="0dp" android:layout_marginStart="8dp" - android:layout_marginTop="8dp" + android:layout_marginTop="0dp" android:adjustViewBounds="true" - android:scaleType="fitXY" android:visibility="invisible" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" @@ -46,16 +45,6 @@ app:layout_constraintVertical_bias="0.0" app:srcCompat="@drawable/map_marker" /> - - + + -- libgit2 0.21.4