From 5654955c42020ab369f84baedf9642218fc15fbf Mon Sep 17 00:00:00 2001 From: jannis Date: Wed, 2 Oct 2019 09:53:16 +0200 Subject: [PATCH] Show 'Waiting for GPS' overlay when starting recorder --- .../activity/RecordWorkoutActivity.java | 24 ++++++++++++++ .../res/drawable-anydpi/ic_gps_no_fix.xml | 11 +++++++ .../main/res/drawable-hdpi/ic_gps_no_fix.png | Bin 0 -> 358 bytes .../main/res/drawable-mdpi/ic_gps_no_fix.png | Bin 0 -> 247 bytes .../main/res/drawable-xhdpi/ic_gps_no_fix.png | Bin 0 -> 439 bytes .../res/drawable-xxhdpi/ic_gps_no_fix.png | Bin 0 -> 670 bytes .../res/layout/activity_record_workout.xml | 30 ++++++++++++++++++ app/src/main/res/values/strings.xml | 1 + 8 files changed, 66 insertions(+) create mode 100644 app/src/main/res/drawable-anydpi/ic_gps_no_fix.xml create mode 100644 app/src/main/res/drawable-hdpi/ic_gps_no_fix.png create mode 100644 app/src/main/res/drawable-mdpi/ic_gps_no_fix.png create mode 100644 app/src/main/res/drawable-xhdpi/ic_gps_no_fix.png create mode 100644 app/src/main/res/drawable-xxhdpi/ic_gps_no_fix.png diff --git a/app/src/main/java/de/tadris/fitness/activity/RecordWorkoutActivity.java b/app/src/main/java/de/tadris/fitness/activity/RecordWorkoutActivity.java index 12bd640..50e6c7e 100644 --- a/app/src/main/java/de/tadris/fitness/activity/RecordWorkoutActivity.java +++ b/app/src/main/java/de/tadris/fitness/activity/RecordWorkoutActivity.java @@ -20,6 +20,7 @@ package de.tadris.fitness.activity; import android.Manifest; +import android.animation.Animator; import android.app.AlertDialog; import android.content.Context; import android.content.Intent; @@ -32,6 +33,7 @@ import android.os.Handler; import android.os.PowerManager; import android.view.Menu; import android.view.MenuItem; +import android.view.View; import android.view.ViewGroup; import android.widget.EditText; import android.widget.TextView; @@ -71,6 +73,8 @@ public class RecordWorkoutActivity extends FitoTrackActivity implements Location List latLongList= new ArrayList<>(); InfoViewHolder[] infoViews= new InfoViewHolder[4]; TextView timeView, gpsStatusView; + View waitingForGPSOverlay; + boolean gpsFound= false; boolean isResumed= false; private Handler mHandler= new Handler(); PowerManager.WakeLock wakeLock; @@ -89,6 +93,8 @@ public class RecordWorkoutActivity extends FitoTrackActivity implements Location setupMap(); ((ViewGroup)findViewById(R.id.recordMapViewrRoot)).addView(mapView); + waitingForGPSOverlay= findViewById(R.id.recorderWaitingOverlay); + waitingForGPSOverlay.setVisibility(View.VISIBLE); checkPermissions(); @@ -119,6 +125,20 @@ public class RecordWorkoutActivity extends FitoTrackActivity implements Location wakeLock.acquire(1000*60*120); } + private void hideWaitOverlay(){ + waitingForGPSOverlay.clearAnimation(); + waitingForGPSOverlay.animate().alpha(0f).setDuration(1000).setListener(new Animator.AnimatorListener() { + @Override public void onAnimationStart(Animator animator) { } + @Override public void onAnimationCancel(Animator animator) { } + @Override public void onAnimationRepeat(Animator animator) { } + + @Override + public void onAnimationEnd(Animator animator) { + waitingForGPSOverlay.setVisibility(View.GONE); + } + }).start(); + } + private void setupMap(){ this.mapView= new MapView(this); TileSources.Purpose purpose; @@ -337,6 +357,10 @@ public class RecordWorkoutActivity extends FitoTrackActivity implements Location @Override public void onGPSStateChanged(WorkoutRecorder.GpsState oldState, WorkoutRecorder.GpsState state) { mHandler.post(() -> gpsStatusView.setTextColor(state.color)); + if(!gpsFound && (state != WorkoutRecorder.GpsState.SIGNAL_LOST)){ + gpsFound= true; + hideWaitOverlay(); + } } public static class InfoViewHolder{ diff --git a/app/src/main/res/drawable-anydpi/ic_gps_no_fix.xml b/app/src/main/res/drawable-anydpi/ic_gps_no_fix.xml new file mode 100644 index 0000000..8647a37 --- /dev/null +++ b/app/src/main/res/drawable-anydpi/ic_gps_no_fix.xml @@ -0,0 +1,11 @@ + + + diff --git a/app/src/main/res/drawable-hdpi/ic_gps_no_fix.png b/app/src/main/res/drawable-hdpi/ic_gps_no_fix.png new file mode 100644 index 0000000000000000000000000000000000000000..d61ce270b3b9dd634b4eeeb02903fe09563727ab GIT binary patch literal 358 zcmV-s0h#`ZP)ps+tkV6P6cCAYg3v(%%bZC<_tz}(p zOw$ws5=1CL&@AMGNNzzyhy!>48X~B{Ip<#@Y`_yx0|p|5V?dkP);>#&4`??;tYPN( zrp3g7_rhW?Kmo`Q1TmH+?% literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/ic_gps_no_fix.png b/app/src/main/res/drawable-mdpi/ic_gps_no_fix.png new file mode 100644 index 0000000000000000000000000000000000000000..b5f2f30f6d2ac800c0555a73d8a161f948ac0d83 GIT binary patch literal 247 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`Gj`#fD7Ln>}1CrJ1_`2YWZw_`;{ zB!fu+cgN+19n5KrQ+S0gFFKOIsj$w?NJN}%taGi))s6S&8Plmq8DC=3C7Kdg$g0ALT$s=Gj1>FnGH9xvXQWtDZt6qO2c<^xP+5++G$D7666sqI`Rvb5 zoWCqfEz&m6^Ya}^KoStU0C2JbbN~(brULMr#(%2+;`9!10t|qOaoU6l`z(ETf8~4w z7%iMOVc}>(M_pS+{5KiVn`Z+I>;YdZ(d+>&;0P!XNBq{WWNqQzZ{_>}@MAE11}F`8#7h-d8+1pGc`YM0`#n`PrA?ipZ z?g3Z(JF(sQD4l&k0ljlcg-$m@(gqaJ65BWH0|)~ZP=H$V=Mw=%KmkP(AZ`eWpTsei zQSl3z?5%|O&0H+oY1s!F@kh!i4)sx7tBAkYisEW9ip$+7uGg7t$b8^1?44viG1;84 hGifaeNCHv|(_YG>`T9g4J{14}002ovPDHLkV1krYzbgO$ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/ic_gps_no_fix.png b/app/src/main/res/drawable-xxhdpi/ic_gps_no_fix.png new file mode 100644 index 0000000000000000000000000000000000000000..5fe4c25712b1b1656aafac20dee84290199b81e6 GIT binary patch literal 670 zcmV;P0%84$P)2k!uQx!ILi_rhRxUeoe~n(H(#35*VNKtQq*8^hgSC@DuWT z_nN+nn0yxi>A-m>jSTu6@t8_TuBTOz7Kx1~$=}>WBlVVb7UYv8un*Fpf;a~3OBBbc z^1{tixooz2B}Em+6R}U(?AEO+n3iIl^G0gd@QrS>Z`nGjRYf2ZMOsBQ*2GAWZj&nZ zRtHHz9(Xky*QBFlTN2oGK9fA1#G$oWB8hWmv-V_?b&l^4AYZah%B<8P?&pY}%E)uf zcrhu8cWA@mM&NAc@aB0Zh + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 3fe8b31..924d17e 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -114,4 +114,5 @@ GPS Data Map Style + Waiting for GPS