notification can resume tracking
This commit is contained in:
		
							parent
							
								
									00a291ac04
								
							
						
					
					
						commit
						4e4c6ae2bd
					
				
					 15 changed files with 113 additions and 23 deletions
				
			
		|  | @ -39,7 +39,7 @@ import android.support.design.widget.Snackbar; | |||
| import android.support.v4.app.DialogFragment; | ||||
| import android.support.v4.app.Fragment; | ||||
| import android.support.v4.app.FragmentManager; | ||||
| import android.support.v4.app.FragmentPagerAdapter; | ||||
| import android.support.v4.app.FragmentStatePagerAdapter; | ||||
| import android.support.v4.content.ContextCompat; | ||||
| import android.support.v4.content.LocalBroadcastManager; | ||||
| import android.support.v7.app.AppCompatActivity; | ||||
|  | @ -141,7 +141,6 @@ public class MainActivity extends AppCompatActivity implements TrackbookKeys { | |||
|         mTrackingStoppedReceiver = createTrackingStoppedReceiver(); | ||||
|         IntentFilter trackingStoppedIntentFilter = new IntentFilter(ACTION_TRACKING_STOPPED); | ||||
|         LocalBroadcastManager.getInstance(this).registerReceiver(mTrackingStoppedReceiver, trackingStoppedIntentFilter); | ||||
| 
 | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|  | @ -642,6 +641,18 @@ public class MainActivity extends AppCompatActivity implements TrackbookKeys { | |||
| 
 | ||||
|                 break; | ||||
| 
 | ||||
|             case ACTION_CLEAR: | ||||
|                 // show map fragment | ||||
|                 mBottomNavigationView.setSelectedItemId(R.id.navigation_map); | ||||
| 
 | ||||
|                 // show clear dialog | ||||
|                 handleClearButtonClick(); | ||||
| 
 | ||||
|                 // clear intent | ||||
|                 intent.setAction(ACTION_DEFAULT); | ||||
| 
 | ||||
|                 break; | ||||
| 
 | ||||
|             default: | ||||
|                 break; | ||||
|         } | ||||
|  | @ -715,12 +726,43 @@ public class MainActivity extends AppCompatActivity implements TrackbookKeys { | |||
|     } | ||||
| 
 | ||||
| 
 | ||||
| //    public class SectionsPagerAdapter extends FragmentPagerAdapter { | ||||
| // | ||||
| //        public SectionsPagerAdapter(FragmentManager fm) { | ||||
| //            super(fm); | ||||
| //        } | ||||
| // | ||||
| //        @Override | ||||
| //        public Fragment getItem(int position) { | ||||
| //            // getItem is called to instantiate the fragment for the given page. | ||||
| //            switch (position) { | ||||
| //                case FRAGMENT_ID_MAP: | ||||
| //                    return new MainActivityMapFragment(); | ||||
| //                case FRAGMENT_ID_TRACKS: | ||||
| //                    return new MainActivityTrackFragment(); | ||||
| //            } | ||||
| //            return null; | ||||
| //        } | ||||
| // | ||||
| //        @Override | ||||
| //        public int getCount() { | ||||
| //            return 2; | ||||
| //        } | ||||
| // | ||||
| //        public Fragment getFragment(int pos) { | ||||
| //            return getItem(pos); | ||||
| //        } | ||||
| // | ||||
| //    } | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|     /** | ||||
|      * Inner class: SectionsPagerAdapter that returns a fragment corresponding to one of the tabs. | ||||
|      * see also: https://developer.android.com/reference/android/support/v4/app/FragmentPagerAdapter.html | ||||
|      * and: http://www.truiton.com/2015/12/android-activity-fragment-communication/ | ||||
|      */ | ||||
|     public class SectionsPagerAdapter extends FragmentPagerAdapter { | ||||
|     public class SectionsPagerAdapter extends FragmentStatePagerAdapter { | ||||
| 
 | ||||
|         private final SparseArray<WeakReference<Fragment>> instantiatedFragments = new SparseArray<>(); | ||||
| 
 | ||||
|  | @ -742,7 +784,7 @@ public class MainActivity extends AppCompatActivity implements TrackbookKeys { | |||
| 
 | ||||
|         @Override | ||||
|         public int getCount() { | ||||
|             // Show 2 total pages. | ||||
|             // show 2 total pages. | ||||
|             return 2; | ||||
|         } | ||||
| 
 | ||||
|  |  | |||
|  | @ -54,7 +54,7 @@ public final class NotificationHelper implements TrackbookKeys { | |||
|         // build context text for notification builder | ||||
|         String contentText = getContextString(context, track); | ||||
| 
 | ||||
|         // ACTION: NOTIFICATION TAP | ||||
|         // ACTION: NOTIFICATION TAP & BUTTON SHOW | ||||
|         Intent tapActionIntent = new Intent(context, MainActivity.class); | ||||
|         tapActionIntent.setAction(ACTION_SHOW_MAP); | ||||
|         tapActionIntent.putExtra(EXTRA_TRACK, track); | ||||
|  | @ -70,7 +70,13 @@ public final class NotificationHelper implements TrackbookKeys { | |||
|         Intent stopActionIntent = new Intent(context, TrackerService.class); | ||||
|         stopActionIntent.setAction(ACTION_STOP); | ||||
|         // pending intent wrapper for notification stop action | ||||
|         PendingIntent stopActionPendingIntent = PendingIntent.getService(context, 12, stopActionIntent, 0); | ||||
|         PendingIntent stopActionPendingIntent = PendingIntent.getService(context, 14, stopActionIntent, 0); | ||||
| 
 | ||||
|         // ACTION: NOTIFICATION BUTTON RESUME | ||||
|         Intent resumeActionIntent = new Intent(context, TrackerService.class); | ||||
|         resumeActionIntent.setAction(ACTION_RESUME); | ||||
|         // pending intent wrapper for notification resume action | ||||
|         PendingIntent resuneActionPendingIntent = PendingIntent.getService(context, 16, resumeActionIntent, 0); | ||||
| 
 | ||||
|         // construct notification in builder | ||||
|         builder.setVisibility(NotificationCompat.VISIBILITY_PUBLIC); | ||||
|  | @ -79,10 +85,12 @@ public final class NotificationHelper implements TrackbookKeys { | |||
|         builder.setSmallIcon(R.drawable.ic_notification_small_24dp); | ||||
|         builder.setLargeIcon(getNotificationIconLarge(context, tracking)); | ||||
|         if (tracking) { | ||||
|             builder.addAction(R.drawable.ic_stop_white_36dp, context.getString(R.string.notification_stop), stopActionPendingIntent); | ||||
|             builder.addAction(R.drawable.ic_stop_white_24dp, context.getString(R.string.notification_stop), stopActionPendingIntent); | ||||
|             builder.setContentTitle(context.getString(R.string.notification_title_trackbook_running)); | ||||
|             builder.setContentText(getContextString(context, track)); | ||||
|         } else { | ||||
|             builder.addAction(R.drawable.ic_fiber_manual_record_white_24dp, context.getString(R.string.notification_resume), resuneActionPendingIntent); | ||||
|             builder.addAction(R.drawable.ic_compass_needle_white_24dp, context.getString(R.string.notification_show), tapActionPendingIntent); | ||||
|             builder.setContentTitle(context.getString(R.string.notification_title_trackbook_not_running)); | ||||
|             builder.setContentText(getContextString(context, track)); | ||||
|         } | ||||
|  |  | |||
|  | @ -27,6 +27,8 @@ public interface TrackbookKeys { | |||
|     String ACTION_STOP = "org.y20k.trackbook.action.STOP"; | ||||
|     String ACTION_DISMISS = "org.y20k.transistor.action.DISMISS"; | ||||
|     String ACTION_RESUME = "org.y20k.transistor.action.RESUME"; | ||||
|     String ACTION_CLEAR = "org.y20k.transistor.action.CLEAR"; | ||||
|     String ACTION_SAVE = "org.y20k.transistor.action.SAVE"; | ||||
|     String ACTION_DEFAULT = "DEFAULT"; | ||||
|     String ACTION_SHOW_MAP = "SHOW_MAP"; | ||||
|     String ACTION_TRACK_UPDATED = "TRACK_UPDATED"; | ||||
|  |  | |||
|  | @ -0,0 +1,9 @@ | |||
| <vector xmlns:android="http://schemas.android.com/apk/res/android" | ||||
|         android:width="24dp" | ||||
|         android:height="24dp" | ||||
|         android:viewportWidth="24.0" | ||||
|         android:viewportHeight="24.0"> | ||||
|     <path | ||||
|         android:fillColor="@color/trackbook_white" | ||||
|         android:pathData="M21,3L3,10.53v0.98l6.84,2.65L12.48,21h0.98L21,3z"/> | ||||
| </vector> | ||||
|  | @ -1,10 +1,9 @@ | |||
| <vector xmlns:android="http://schemas.android.com/apk/res/android" | ||||
|     android:height="36dp" | ||||
|     android:viewportHeight="24.0" | ||||
|     android:viewportWidth="24.0" | ||||
|     android:width="36dp"> | ||||
| 
 | ||||
|         android:width="24dp" | ||||
|         android:height="24dp" | ||||
|         android:viewportWidth="24.0" | ||||
|         android:viewportHeight="24.0"> | ||||
|     <path | ||||
|         android:fillColor="@color/trackbook_white" | ||||
|         android:pathData="M6,6h12v12H6z"/> | ||||
| </vector> | ||||
| </vector> | ||||
|  | @ -1,6 +1,7 @@ | |||
| <?xml version="1.0" encoding="utf-8"?> | ||||
| <ScrollView | ||||
|     xmlns:android="http://schemas.android.com/apk/res/android" | ||||
|     xmlns:app="http://schemas.android.com/apk/res-auto" | ||||
|     android:layout_width="match_parent" | ||||
|     android:layout_height="match_parent" | ||||
|     android:id="@+id/onboarding" > | ||||
|  | @ -30,13 +31,13 @@ | |||
|             android:layout_marginTop="@dimen/activity_vertical_margin" > | ||||
| 
 | ||||
|             <ImageView | ||||
|                 android:id="@+id/trackbook_icon" | ||||
|                 android:layout_width="wrap_content" | ||||
|                 android:layout_height="wrap_content" | ||||
|                 android:id="@+id/trackbook_icon" | ||||
|                 android:background="@mipmap/ic_launcher" | ||||
|                 android:contentDescription="@string/layout_onboarding_description_app_icon" | ||||
|                 android:layout_gravity="center_vertical" | ||||
|                 android:layout_marginEnd="@dimen/activity_horizontal_margin" | ||||
|                 android:layout_gravity="center_vertical" /> | ||||
|                 android:contentDescription="@string/layout_onboarding_description_app_icon" | ||||
|                 app:srcCompat="@mipmap/ic_launcher" /> | ||||
| 
 | ||||
|             <LinearLayout | ||||
|                 android:orientation="vertical" | ||||
|  |  | |||
|  | @ -26,7 +26,7 @@ | |||
|         android:layout_width="wrap_content" | ||||
|         android:layout_height="wrap_content" | ||||
|         android:layout_marginEnd="8dp" | ||||
|         android:background="@color/trackbook_transparent" | ||||
|         android:backgroundTint="@color/trackbook_transparent" | ||||
|         android:contentDescription="@string/descr_export_button" | ||||
|         app:layout_constraintBottom_toBottomOf="@+id/track_selector" | ||||
|         app:layout_constraintEnd_toStartOf="@+id/delete_button" | ||||
|  | @ -38,7 +38,7 @@ | |||
|         android:layout_width="wrap_content" | ||||
|         android:layout_height="wrap_content" | ||||
|         android:layout_marginEnd="@dimen/activity_horizontal_margin" | ||||
|         android:background="@color/trackbook_transparent" | ||||
|         android:backgroundTint="@color/trackbook_transparent" | ||||
|         android:contentDescription="@string/descr_delete_button" | ||||
|         app:layout_constraintBottom_toBottomOf="@+id/export_button" | ||||
|         app:layout_constraintEnd_toEndOf="parent" | ||||
|  |  | |||
|  | @ -1,6 +1,7 @@ | |||
| <?xml version="1.0" encoding="utf-8"?> | ||||
| <LinearLayout | ||||
|     xmlns:android="http://schemas.android.com/apk/res/android" | ||||
|     xmlns:app="http://schemas.android.com/apk/res-auto" | ||||
|     android:orientation="vertical" | ||||
|     android:gravity="center" | ||||
|     android:layout_width="match_parent" | ||||
|  | @ -16,11 +17,11 @@ | |||
|         android:text="@string/track_tab_onboarding_h1_part_1" /> | ||||
| 
 | ||||
|     <ImageView | ||||
|         android:id="@+id/trackbook_icon" | ||||
|         android:layout_width="wrap_content" | ||||
|         android:layout_height="wrap_content" | ||||
|         android:id="@+id/trackbook_icon" | ||||
|         android:background="@mipmap/ic_launcher" | ||||
|         android:contentDescription="@string/layout_onboarding_description_app_icon" /> | ||||
|         android:contentDescription="@string/layout_onboarding_description_app_icon" | ||||
|         app:srcCompat="@mipmap/ic_launcher" /> | ||||
| 
 | ||||
|     <TextView | ||||
|         android:layout_width="wrap_content" | ||||
|  |  | |||
|  | @ -11,6 +11,10 @@ | |||
|     <string name="notification_title_trackbook_not_running">Trackbook ist inaktiv</string> | ||||
|     <string name="notification_title_trackbook_running">Trackbook wird ausgeführt</string> | ||||
|     <string name="notification_stop">Stopp</string> | ||||
|     <string name="notification_clear">Zurücksetzen</string> | ||||
|     <string name="notification_save">Speichernn</string> | ||||
|     <string name="notification_resume">Fortsetzen</string> | ||||
|     <string name="notification_show">Show</string> | ||||
|     <string name="notification_content_duration">Dauer</string> | ||||
|     <string name="notification_content_distance">Entfernung</string> | ||||
|     <string name="notification_channel_recording_name">Status der Aufzeichnung</string> | ||||
|  |  | |||
|  | @ -11,6 +11,10 @@ | |||
|     <string name="notification_title_trackbook_running">Trackbook aktif</string> | ||||
|     <string name="notification_title_trackbook_not_running">Trackbook tidak aktif</string> | ||||
|     <string name="notification_stop">Berhenti</string> | ||||
|     <string name="notification_clear">Clear</string> | ||||
|     <string name="notification_save">Save</string> | ||||
|     <string name="notification_resume">Resume</string> | ||||
|     <string name="notification_show">Show</string> | ||||
|     <string name="notification_content_duration">Durasi</string> | ||||
|     <string name="notification_content_distance">Jarak</string> | ||||
|     <string name="notification_channel_recording_name">Movement Recording State</string> | ||||
|  | @ -24,7 +28,7 @@ | |||
| 
 | ||||
|     <!-- fab sub menu --> | ||||
|     <string name="fab_sub_menu_clear">Clear</string> | ||||
|     <string name="fab_sub_menu_save">Save and Clear</string> | ||||
|     <string name="fab_sub_menu_save">Save</string> | ||||
|     <string name="fab_sub_menu_resume">Resume</string> | ||||
| 
 | ||||
|     <!-- dialogs --> | ||||
|  |  | |||
|  | @ -11,6 +11,10 @@ | |||
|     <string name="notification_title_trackbook_running">Trackbook in esecuzione</string> | ||||
|     <string name="notification_title_trackbook_not_running">Trackbook non in esecuzione</string> | ||||
|     <string name="notification_stop">Stop</string> | ||||
|     <string name="notification_clear">Cancella</string> | ||||
|     <string name="notification_save">Salva e ripristina la mappa</string> | ||||
|     <string name="notification_resume">Resume</string> | ||||
|     <string name="notification_show">Show</string> | ||||
|     <string name="notification_content_duration">Durata</string> | ||||
|     <string name="notification_content_distance">Distanza</string> | ||||
|     <string name="notification_channel_recording_name">Stato registrazione</string> | ||||
|  |  | |||
|  | @ -11,6 +11,10 @@ | |||
|     <string name="notification_title_trackbook_running">Trackbook 実行中</string> | ||||
|     <string name="notification_title_trackbook_not_running">Trackbook は実行していません</string> | ||||
|     <string name="notification_stop">停止</string> | ||||
|     <string name="notification_clear">クリア</string> | ||||
|     <string name="notification_save">保存してクリア</string> | ||||
|     <string name="notification_esume">Resume</string> | ||||
|     <string name="notification_show">Show</string> | ||||
|     <string name="notification_content_duration">期間</string> | ||||
|     <string name="notification_content_distance">距離</string> | ||||
|     <string name="notification_channel_recording_name">移動記録状態</string> | ||||
|  |  | |||
|  | @ -11,6 +11,10 @@ | |||
|     <string name="notification_title_trackbook_running">Trackbook kjører</string> | ||||
|     <string name="notification_title_trackbook_not_running">Trackbook kjører ikke</string> | ||||
|     <string name="notification_stop">Stopp</string> | ||||
|     <string name="notification_clear">Tøm</string> | ||||
|     <string name="notification_save">Lagre og tøm</string> | ||||
|     <string name="notification_resume">Fortsett</string> | ||||
|     <string name="notification_show">Show</string> | ||||
|     <string name="notification_content_duration">Varighet</string> | ||||
|     <string name="notification_content_distance">Distanse</string> | ||||
|     <string name="notification_channel_recording_name">Bevegelsesopptakstilstand</string> | ||||
|  |  | |||
|  | @ -11,6 +11,10 @@ | |||
|     <string name="notification_title_trackbook_running">Trackbook is actief</string> | ||||
|     <string name="notification_title_trackbook_not_running">Trackbook is niet actief</string> | ||||
|     <string name="notification_stop">Stoppen</string> | ||||
|     <string name="notification_clear">Wissen</string> | ||||
|     <string name="notification_save">Opslaan en wissen</string> | ||||
|     <string name="notification_resume">Resume</string> | ||||
|     <string name="notification_show">Show</string> | ||||
|     <string name="notification_content_duration">Duur</string> | ||||
|     <string name="notification_content_distance">Afstand</string> | ||||
|     <string name="notification_channel_recording_name">Movement Recording State</string> | ||||
|  |  | |||
|  | @ -11,6 +11,10 @@ | |||
|     <string name="notification_title_trackbook_running">Trackbook running</string> | ||||
|     <string name="notification_title_trackbook_not_running">Trackbook not running</string> | ||||
|     <string name="notification_stop">Stop</string> | ||||
|     <string name="notification_clear">Clear</string> | ||||
|     <string name="notification_save">Save</string> | ||||
|     <string name="notification_resume">Resume</string> | ||||
|     <string name="notification_show">Show</string> | ||||
|     <string name="notification_content_duration">Duration</string> | ||||
|     <string name="notification_content_distance">Distance</string> | ||||
|     <string name="notification_channel_recording_name">Movement Recording State</string> | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue
	
	 y20k
						y20k