diff --git a/app/build.gradle b/app/build.gradle
index 69bcf37..b308080 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -23,9 +23,9 @@ android {
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
testCompile 'junit:junit:4.12'
- compile 'com.android.support:appcompat-v7:25.0.1'
- compile 'com.android.support:design:25.0.1'
- compile 'com.android.support:cardview-v7:25.0.1'
+ compile 'com.android.support:appcompat-v7:25.1.0'
+ compile 'com.android.support:design:25.1.0'
+ compile 'com.android.support:cardview-v7:25.1.0'
compile 'org.osmdroid:osmdroid-android:5.5:release@aar'
compile 'com.google.code.gson:gson:2.8.0'
}
diff --git a/app/src/main/java/org/y20k/trackbook/MainActivity.java b/app/src/main/java/org/y20k/trackbook/MainActivity.java
index 84b24f0..716c36f 100644
--- a/app/src/main/java/org/y20k/trackbook/MainActivity.java
+++ b/app/src/main/java/org/y20k/trackbook/MainActivity.java
@@ -69,6 +69,7 @@ public class MainActivity extends AppCompatActivity implements TrackbookKeys {
/* Main class variables */
+ private ViewPager mViewPager;
private boolean mTrackerServiceRunning;
private boolean mCurrentTrackVisible;
private boolean mPermissionsGranted;
@@ -81,6 +82,7 @@ public class MainActivity extends AppCompatActivity implements TrackbookKeys {
private MainActivityMapFragment mMainActivityMapFragment;
private MainActivityTrackFragment mMainActivityTrackFragment;
private BroadcastReceiver mTrackingStoppedReceiver;
+ private int mFloatingActionButtonState;
private int mSelectedTab;
@@ -183,12 +185,17 @@ public class MainActivity extends AppCompatActivity implements TrackbookKeys {
@Override
protected void onResume() {
super.onResume();
+ LogHelper.v(LOG_TAG, "onResume called.");
+
+ // TODO loadAppState?
+ loadAppState(this);
// handle new intents - onNewIntent does not seem to work
handleIncomingIntent();
// if not in onboarding mode: set state of FloatingActionButton
if (mFloatingActionButton != null) {
+ LogHelper.v(LOG_TAG, "onResume: setting state of FAB.");
setFloatingActionButtonState();
}
}
@@ -241,21 +248,22 @@ public class MainActivity extends AppCompatActivity implements TrackbookKeys {
protected void onSaveInstanceState(Bundle outState) {
LogHelper.v(LOG_TAG, "onSaveInstanceState called.");
outState.putBoolean(INSTANCE_TRACKING_STATE, mTrackerServiceRunning);
- outState.putBoolean(INSTANCE_TRACK_VISIBLE, mCurrentTrackVisible);
- outState.putBoolean(INSTANCE_FAB_SUB_MENU_VISIBLE, mFloatingActionButtonSubMenuVisible);
outState.putInt(INSTANCE_SELECTED_TAB, mSelectedTab);
+ outState.putInt(INSTANCE_FAB_STATE, mFloatingActionButtonState);
+ outState.putBoolean(INSTANCE_FAB_SUB_MENU_VISIBLE, mFloatingActionButtonSubMenuVisible);
super.onSaveInstanceState(outState);
}
+
@Override
public void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
LogHelper.v(LOG_TAG, "onRestoreInstanceState called.");
mTrackerServiceRunning = savedInstanceState.getBoolean(INSTANCE_TRACKING_STATE, false);
- mCurrentTrackVisible = savedInstanceState.getBoolean(INSTANCE_TRACK_VISIBLE, false);
- mFloatingActionButtonSubMenuVisible = savedInstanceState.getBoolean(INSTANCE_FAB_SUB_MENU_VISIBLE, false);
mSelectedTab = savedInstanceState.getInt(INSTANCE_SELECTED_TAB, 0);
+ mFloatingActionButtonState = savedInstanceState.getInt(INSTANCE_FAB_STATE, FAB_STATE_DEFAULT);
+ mFloatingActionButtonSubMenuVisible = savedInstanceState.getBoolean(INSTANCE_FAB_SUB_MENU_VISIBLE, false);
}
@@ -263,10 +271,12 @@ public class MainActivity extends AppCompatActivity implements TrackbookKeys {
private void saveAppState(Context context) {
SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(context);
SharedPreferences.Editor editor = settings.edit();
- editor.putBoolean(INSTANCE_TRACKING_STATE, mTrackerServiceRunning);
- editor.putBoolean(INSTANCE_TRACK_VISIBLE, mCurrentTrackVisible);
- editor.putBoolean(INSTANCE_FAB_SUB_MENU_VISIBLE, mFloatingActionButtonSubMenuVisible);
- editor.putInt(INSTANCE_SELECTED_TAB, mSelectedTab);
+ // mCurrentTrackVisible is handled (= saved) by fragment
+
+// editor.putBoolean(INSTANCE_FAB_SUB_MENU_VISIBLE, mFloatingActionButtonSubMenuVisible);
+// editor.putBoolean(INSTANCE_TRACKING_STATE, mTrackerServiceRunning);
+// editor.putInt(INSTANCE_SELECTED_TAB, mSelectedTab);
+
editor.apply();
LogHelper.v(LOG_TAG, "Saving state.");
}
@@ -275,10 +285,12 @@ public class MainActivity extends AppCompatActivity implements TrackbookKeys {
/* Loads app state from preferences */
private void loadAppState(Context context) {
SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(context);
- mTrackerServiceRunning = settings.getBoolean(INSTANCE_TRACKING_STATE, false);
mCurrentTrackVisible = settings.getBoolean(INSTANCE_TRACK_VISIBLE, false);
- mFloatingActionButtonSubMenuVisible = settings.getBoolean(INSTANCE_FAB_SUB_MENU_VISIBLE, false);
- mSelectedTab = settings.getInt(INSTANCE_SELECTED_TAB, 0);
+
+// mFloatingActionButtonSubMenuVisible = settings.getBoolean(INSTANCE_FAB_SUB_MENU_VISIBLE, false);
+// mTrackerServiceRunning = settings.getBoolean(INSTANCE_TRACKING_STATE, false);
+// mSelectedTab = settings.getInt(INSTANCE_SELECTED_TAB, 0);
+
LogHelper.v(LOG_TAG, "Loading state.");
}
@@ -297,7 +309,7 @@ public class MainActivity extends AppCompatActivity implements TrackbookKeys {
SectionsPagerAdapter sectionsPagerAdapter = new SectionsPagerAdapter(getSupportFragmentManager());
// Set up the ViewPager with the sections adapter.
- ViewPager mViewPager = (ViewPager) findViewById(R.id.container);
+ mViewPager = (ViewPager) findViewById(R.id.container);
mViewPager.setAdapter(sectionsPagerAdapter);
mViewPager.setCurrentItem(mSelectedTab);
@@ -308,12 +320,16 @@ public class MainActivity extends AppCompatActivity implements TrackbookKeys {
public void onTabSelected(TabLayout.Tab tab) {
switch (tab.getPosition()) {
case FRAGMENT_ID_MAP:
+ // show the Floating Action Button
mFloatingActionButton.show();
break;
case FRAGMENT_ID_TRACK:
+ // hide the Floating Action Button - and its sub menu
mFloatingActionButton.hide();
+ showFloatingActionButtonMenu(false);
break;
default:
+ // show the Floating Action Button
mFloatingActionButton.show();
break;
}
@@ -375,50 +391,59 @@ public class MainActivity extends AppCompatActivity implements TrackbookKeys {
/* Handles tap on the record button */
private void handleFloatingActionButtonClick(View view) {
- if (mTrackerServiceRunning) {
- // show snackbar
- Snackbar.make(view, R.string.snackbar_message_tracking_stopped, Snackbar.LENGTH_SHORT).setAction("Action", null).show();
- // change state
- // --> is handled by broadcast receiver
+ switch (mFloatingActionButtonState) {
+ case FAB_STATE_DEFAULT:
+ // show snackbar
+ Snackbar.make(view, R.string.snackbar_message_tracking_started, Snackbar.LENGTH_SHORT).setAction("Action", null).show();
- // stop tracker service
- Intent intent = new Intent(this, TrackerService.class);
- intent.setAction(ACTION_STOP);
- startService(intent);
-
- } else if (mCurrentTrackVisible) {
- // toggle floating action button sub menu
- if (!mFloatingActionButtonSubMenuVisible) {
- showFloatingActionButtonMenu(true);
- } else {
- showFloatingActionButtonMenu(false);
- }
-
- } else {
- // show snackbar
- Snackbar.make(view, R.string.snackbar_message_tracking_started, Snackbar.LENGTH_SHORT).setAction("Action", null).show();
-
- // change state
- mTrackerServiceRunning = true;
- mCurrentTrackVisible = true;
- setFloatingActionButtonState();
-
- // get last location from MainActivity Fragment
- Location lastLocation = mMainActivityMapFragment.getCurrentBestLocation();
-
- if (lastLocation != null) {
- // start tracker service
- Intent intent = new Intent(this, TrackerService.class);
- intent.setAction(ACTION_START);
- intent.putExtra(EXTRA_LAST_LOCATION, lastLocation);
- startService(intent);
- } else {
- Toast.makeText(this, getString(R.string.toast_message_location_services_not_ready), Toast.LENGTH_LONG).show();
- // change state back
- mTrackerServiceRunning = false;
+ // change state
+ mTrackerServiceRunning = true;
+ mCurrentTrackVisible = true;
+ mFloatingActionButtonState = FAB_STATE_RECORDING;
setFloatingActionButtonState();
- }
+
+ // get last location from MainActivity Fragment
+ Location lastLocation = mMainActivityMapFragment.getCurrentBestLocation();
+
+ if (lastLocation != null) {
+ // start tracker service
+ Intent intent = new Intent(this, TrackerService.class);
+ intent.setAction(ACTION_START);
+ intent.putExtra(EXTRA_LAST_LOCATION, lastLocation);
+ startService(intent);
+ } else {
+ Toast.makeText(this, getString(R.string.toast_message_location_services_not_ready), Toast.LENGTH_LONG).show();
+ // change state back
+ mTrackerServiceRunning = false;
+ setFloatingActionButtonState();
+ }
+
+ break;
+
+ case FAB_STATE_RECORDING:
+ // show snackbar
+ Snackbar.make(view, R.string.snackbar_message_tracking_stopped, Snackbar.LENGTH_SHORT).setAction("Action", null).show();
+
+ // change state
+ // --> is handled by broadcast receiver
+
+ // stop tracker service
+ Intent intent = new Intent(this, TrackerService.class);
+ intent.setAction(ACTION_STOP);
+ startService(intent);
+
+ break;
+
+ case FAB_STATE_SAVE:
+ // toggle floating action button sub menu
+ if (!mFloatingActionButtonSubMenuVisible) {
+ showFloatingActionButtonMenu(true);
+ } else {
+ showFloatingActionButtonMenu(false);
+ }
+
+ break;
}
@@ -432,13 +457,15 @@ public class MainActivity extends AppCompatActivity implements TrackbookKeys {
LogHelper.v(LOG_TAG, "User chose SAVE and CLEAR");
// clear map and save track
- mMainActivityMapFragment.clearMap(true); // TODO change to true
+ mMainActivityMapFragment.clearMap(true);
mCurrentTrackVisible = false;
-// // reset current track // TODO ist this still necessary
+// // reset current track // TODO is this still necessary?
// mMainActivityTrackFragment.refreshTrackView();
- // TODO change to track tab
+ // display track tab
+ mSelectedTab = FRAGMENT_ID_TRACK;
+ mViewPager.setCurrentItem(mSelectedTab);
// dismiss notification
NotificationHelper.stop();
@@ -447,7 +474,10 @@ public class MainActivity extends AppCompatActivity implements TrackbookKeys {
showFloatingActionButtonMenu(false);
// update Floating Action Button icon
+ mFloatingActionButtonState = FAB_STATE_DEFAULT;
setFloatingActionButtonState();
+
+ Toast.makeText(this, getString(R.string.toast_message_track_save), Toast.LENGTH_LONG).show();
}
@@ -466,18 +496,29 @@ public class MainActivity extends AppCompatActivity implements TrackbookKeys {
showFloatingActionButtonMenu(false);
// update Floating Action Button icon
+ mFloatingActionButtonState = FAB_STATE_DEFAULT;
setFloatingActionButtonState();
+
+ Toast.makeText(this, getString(R.string.toast_message_track_clear), Toast.LENGTH_LONG).show();
}
/* Set state of FloatingActionButton */
private void setFloatingActionButtonState() {
- if (mTrackerServiceRunning) {
- mFloatingActionButton.setImageResource(R.drawable.ic_fiber_manual_record_red_24dp);
- } else if (mCurrentTrackVisible) {
- mFloatingActionButton.setImageResource(R.drawable.ic_save_white_24dp);
- } else {
- mFloatingActionButton.setImageResource(R.drawable.ic_fiber_manual_record_white_24dp);
+
+ switch (mFloatingActionButtonState) {
+ case FAB_STATE_DEFAULT:
+ mFloatingActionButton.setImageResource(R.drawable.ic_fiber_manual_record_white_24dp);
+ break;
+ case FAB_STATE_RECORDING:
+ mFloatingActionButton.setImageResource(R.drawable.ic_fiber_manual_record_red_24dp);
+ break;
+ case FAB_STATE_SAVE:
+ mFloatingActionButton.setImageResource(R.drawable.ic_save_white_24dp);
+ break;
+ default:
+ mFloatingActionButton.setImageResource(R.drawable.ic_fiber_manual_record_white_24dp);
+ break;
}
}
@@ -501,12 +542,14 @@ public class MainActivity extends AppCompatActivity implements TrackbookKeys {
private void handleIncomingIntent() {
Intent intent = getIntent();
String intentAction = intent.getAction();
-
switch (intentAction) {
case ACTION_SHOW_MAP:
- if (intent.hasExtra(EXTRA_TRACKING_STATE) && mMainActivityMapFragment != null) {
+ if (intent.hasExtra(EXTRA_TRACKING_STATE)) {
mTrackerServiceRunning = intent.getBooleanExtra(EXTRA_TRACKING_STATE, false);
- mMainActivityMapFragment.setTrackingState(mTrackerServiceRunning);
+ // mMainActivityMapFragment.setTrackingState(mTrackerServiceRunning);
+ if (mTrackerServiceRunning) {
+ mFloatingActionButtonState = FAB_STATE_RECORDING;
+ }
// prevent multiple reactions to intent
intent.setAction(ACTION_DEFAULT);
}
@@ -547,6 +590,7 @@ public class MainActivity extends AppCompatActivity implements TrackbookKeys {
public void onReceive(Context context, Intent intent) {
// change state
mTrackerServiceRunning = false;
+ mFloatingActionButtonState = FAB_STATE_SAVE;
setFloatingActionButtonState();
// pass tracking state to MainActivityMapFragment
diff --git a/app/src/main/java/org/y20k/trackbook/MainActivityMapFragment.java b/app/src/main/java/org/y20k/trackbook/MainActivityMapFragment.java
index 01d7621..852748f 100644
--- a/app/src/main/java/org/y20k/trackbook/MainActivityMapFragment.java
+++ b/app/src/main/java/org/y20k/trackbook/MainActivityMapFragment.java
@@ -102,15 +102,11 @@ public class MainActivityMapFragment extends Fragment implements TrackbookKeys {
// action bar has options menu
setHasOptionsMenu(true);
- // restore first start state
+ // restore first start state and tracking state
mFirstStart = true;
- if (savedInstanceState != null) {
- mFirstStart = savedInstanceState.getBoolean(INSTANCE_FIRST_START, true);
- }
-
- // restore tracking and map state
mTrackerServiceRunning = false;
if (savedInstanceState != null) {
+ mFirstStart = savedInstanceState.getBoolean(INSTANCE_FIRST_START, true);
mTrackerServiceRunning = savedInstanceState.getBoolean(INSTANCE_TRACKING_STATE, false);
}
@@ -140,9 +136,6 @@ public class MainActivityMapFragment extends Fragment implements TrackbookKeys {
mCurrentBestLocation.setLongitude(DEFAULT_LONGITUDE);
}
- LogHelper.v(LOG_TAG, "!!! TRACK:" + mCurrentBestLocation.getExtras());
-
-
// get state of location system setting
mLocationSystemSetting = LocationHelper.checkLocationSystemSetting(mActivity);
@@ -222,6 +215,9 @@ public class MainActivityMapFragment extends Fragment implements TrackbookKeys {
// set visibility
mFragmentVisible = true;
+ // TODO
+ handleIncomingIntent();
+
// center map on current position - if TrackerService is running
if (mTrackerServiceRunning) {
mController.setCenter(convertToGeoPoint(mCurrentBestLocation));
@@ -257,6 +253,9 @@ public class MainActivityMapFragment extends Fragment implements TrackbookKeys {
// disable content observer for changes in System Settings
mActivity.getContentResolver().unregisterContentObserver(mSettingsContentObserver);
+
+ // save state of track visibility
+ saveTrackVisibilityState(mActivity);
}
@@ -344,8 +343,8 @@ public class MainActivityMapFragment extends Fragment implements TrackbookKeys {
@Override
public void onSaveInstanceState(Bundle outState) {
outState.putBoolean(INSTANCE_FIRST_START, mFirstStart);
- outState.putParcelable(INSTANCE_CURRENT_LOCATION, mCurrentBestLocation);
outState.putBoolean(INSTANCE_TRACKING_STATE, mTrackerServiceRunning);
+ outState.putParcelable(INSTANCE_CURRENT_LOCATION, mCurrentBestLocation);
outState.putDouble(INSTANCE_LATITUDE_MAIN_MAP, mMapView.getMapCenter().getLatitude());
outState.putDouble(INSTANCE_LONGITUDE_MAIN_MAP, mMapView.getMapCenter().getLongitude());
outState.putInt(INSTANCE_ZOOM_LEVEL_MAIN_MAP, mMapView.getZoomLevel());
@@ -393,21 +392,28 @@ public class MainActivityMapFragment extends Fragment implements TrackbookKeys {
// clear map
if (mTrackOverlay != null) {
mMapView.getOverlays().remove(mTrackOverlay);
+ mTrackOverlay = null;
}
- // save track object if requested
if (saveTrack) {
+ // save track object if requested
SaveTrackAsyncHelper saveTrackAsyncHelper = new SaveTrackAsyncHelper();
saveTrackAsyncHelper.execute();
Toast.makeText(mActivity, mActivity.getString(R.string.toast_message_save_track), Toast.LENGTH_LONG).show();
+ } else {
+ // clear track object
+ mTrack = null;
}
+ // save track state
+ saveTrackVisibilityState(mActivity);
}
- /* Getter for length of current track */
- public String getCurrentTrackLength() {
- return mTrack.getTrackDistance();
+ /* Handles new incoming intents */
+ private void handleIncomingIntent() {
+ Intent intent = mActivity.getIntent();
+ // TODO get track from intent if not present
}
@@ -544,20 +550,30 @@ public class MainActivityMapFragment extends Fragment implements TrackbookKeys {
}
- /* Saves state of map */
- private void saveMaoState(Context context) {
+ /* Saves state of track visibility to SharedPreferences */
+ private void saveTrackVisibilityState(Context context) {
SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(context);
SharedPreferences.Editor editor = settings.edit();
- editor.putInt(PREFS_ZOOM_LEVEL, mMapView.getZoomLevel());
+ editor.putBoolean(INSTANCE_TRACK_VISIBLE, (mTrackOverlay != null));
editor.apply();
+ LogHelper.v(LOG_TAG, "Saving state: track visibility = " + (mTrackOverlay != null));
}
- /* Loads app state from preferences */
- private void loadMapState(Context context) {
- SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(context);
- int zoom = settings.getInt(PREFS_ZOOM_LEVEL, 16);
- }
+// /* Saves state of map */
+// private void saveMaoState(Context context) {
+// SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(context);
+// SharedPreferences.Editor editor = settings.edit();
+// editor.putInt(PREFS_ZOOM_LEVEL, mMapView.getZoomLevel());
+// editor.apply();
+// }
+
+
+// /* Loads app state from preferences */
+// private void loadMapState(Context context) {
+// SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(context);
+// int zoom = settings.getInt(PREFS_ZOOM_LEVEL, 16);
+// }
/**
diff --git a/app/src/main/java/org/y20k/trackbook/helpers/NotificationHelper.java b/app/src/main/java/org/y20k/trackbook/helpers/NotificationHelper.java
index 03606b0..0791079 100644
--- a/app/src/main/java/org/y20k/trackbook/helpers/NotificationHelper.java
+++ b/app/src/main/java/org/y20k/trackbook/helpers/NotificationHelper.java
@@ -94,6 +94,7 @@ public class NotificationHelper implements TrackbookKeys {
String contentText = mService.getString(R.string.notification_content_distance) + ": " + track.getTrackDistance() + " | " +
mService.getString(R.string.notification_content_duration) + " : " + track.getTrackDuration();
+
// ACTION: NOTIFICATION TAP
Intent tapActionIntent = new Intent(mService, MainActivity.class);
tapActionIntent.setAction(ACTION_SHOW_MAP);
@@ -106,14 +107,6 @@ public class NotificationHelper implements TrackbookKeys {
// pending intent wrapper for notification tap
PendingIntent tapActionPendingIntent = tapActionIntentBuilder.getPendingIntent(10, PendingIntent.FLAG_UPDATE_CURRENT);
- // ACTION: NOTIFICATION SWIPE
- Intent swipeActionIntent = new Intent(mService, MainActivity.class);
- swipeActionIntent.setAction(ACTION_SHOW_MAP);
- swipeActionIntent.putExtra(EXTRA_CLEAR_MAP, true); // EXTRA_CLEAR_MAP is not (yet) used - map gets cleared by default
- // artificial back stack for started Activity (https://developer.android.com/training/notify-user/navigation.html#DirectEntry)
- TaskStackBuilder swipeActionIntentBuilder = TaskStackBuilder.create(mService);
- swipeActionIntentBuilder.addParentStack(MainActivity.class);
- swipeActionIntentBuilder.addNextIntent(swipeActionIntent);
// ACTION: NOTIFICATION BUTTON STOP
Intent stopActionIntent = new Intent(mService, TrackerService.class);
@@ -121,6 +114,7 @@ public class NotificationHelper implements TrackbookKeys {
// pending intent wrapper for notification stop action
PendingIntent stopActionPendingIntent = PendingIntent.getService(mService, 12, stopActionIntent, 0);
+
// construct notification in builder
NotificationCompat.Builder builder;
builder = new NotificationCompat.Builder(mService);
diff --git a/app/src/main/java/org/y20k/trackbook/helpers/StorageHelper.java b/app/src/main/java/org/y20k/trackbook/helpers/StorageHelper.java
index f99fc81..62b9a21 100644
--- a/app/src/main/java/org/y20k/trackbook/helpers/StorageHelper.java
+++ b/app/src/main/java/org/y20k/trackbook/helpers/StorageHelper.java
@@ -50,7 +50,7 @@ public class StorageHelper implements TrackbookKeys {
private static final String LOG_TAG = StorageHelper.class.getSimpleName();
/* Main class variables */
- private final int mMaxTrackFiles = 10;
+ private final int mMaxTrackFiles = 25;
private final String mDirectoryName = "tracks";
private final String mFileExtension = ".trackbook";
private final Activity mActivity;
diff --git a/app/src/main/java/org/y20k/trackbook/helpers/TrackbookKeys.java b/app/src/main/java/org/y20k/trackbook/helpers/TrackbookKeys.java
index 0c029be..77d0540 100644
--- a/app/src/main/java/org/y20k/trackbook/helpers/TrackbookKeys.java
+++ b/app/src/main/java/org/y20k/trackbook/helpers/TrackbookKeys.java
@@ -62,6 +62,7 @@ public interface TrackbookKeys {
String INSTANCE_TRACKING_STATE = "trackingState";
String INSTANCE_TRACK_VISIBLE = "trackVisible";
String INSTANCE_SELECTED_TAB = "selectedTab";
+ String INSTANCE_FAB_STATE = "fabState";
String INSTANCE_FAB_SUB_MENU_VISIBLE = "fabSubMenuVisible";
String INSTANCE_TRACK_MAIN_MAP = "trackMainMap";
String INSTANCE_LATITUDE_MAIN_MAP = "latitudeMainMap";
@@ -92,6 +93,10 @@ public interface TrackbookKeys {
int INFOSHEET_CONTENT_ABOUT = 1;
int METRIC = 1;
int IMPERIAL = 2;
+ int FAB_STATE_DEFAULT = 0;
+ int FAB_STATE_RECORDING = 1;
+ int FAB_STATE_SAVE = 2;
+
double DEFAULT_LATITUDE = 49.41667; // latitude Nordkapp, Norway
double DEFAULT_LONGITUDE = 8.67201; // longitude Nordkapp, Norway
}
diff --git a/app/src/main/res/layout/activity_main_old.xml b/app/src/main/res/layout/activity_main_old.xml
deleted file mode 100644
index f00794e..0000000
--- a/app/src/main/res/layout/activity_main_old.xml
+++ /dev/null
@@ -1,49 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/app/src/main/res/layout/floating_action_button.xml b/app/src/main/res/layout/floating_action_button.xml
index dc1e291..09d627b 100644
--- a/app/src/main/res/layout/floating_action_button.xml
+++ b/app/src/main/res/layout/floating_action_button.xml
@@ -9,6 +9,7 @@
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
+ android:gravity="bottom"
android:layout_gravity="bottom|end"
android:layout_margin="@dimen/fab_margin"
app:layout_behavior="org.y20k.trackbook.layout.DodgeAbleLayoutBehavior">
@@ -16,9 +17,8 @@
@@ -71,6 +72,7 @@
@@ -111,6 +113,7 @@
android:id="@+id/fabMainButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
+ android:contentDescription="@string/descr_fab_main"
app:srcCompat="@drawable/ic_fiber_manual_record_white_24dp"
app:fabSize="normal" />
diff --git a/app/src/main/res/layout/fragment_main_map.xml b/app/src/main/res/layout/fragment_main_map.xml
index 53c17cb..e1048dc 100644
--- a/app/src/main/res/layout/fragment_main_map.xml
+++ b/app/src/main/res/layout/fragment_main_map.xml
@@ -6,8 +6,7 @@
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
- tools:context=".MainActivityMapFragment"
- tools:showIn="@layout/activity_main_old">
+ tools:context=".MainActivityMapFragment">
Letzte Position:
Aufzeichnung wird gespeichert.
über eine Stunde
+ Aufzeichnung zurückgesetzt.
+ Speichere Aufzeichnung.
+
Quelle
@@ -91,6 +94,11 @@
Karte der aktuellen Aufzeichnung
Karte der letzten Aufzeichnung
+ Haupt-Aktionsbutton
+ Beschreibung des Speichern-und-Zurücksetzen-Buttons
+ kleiner Speichern-und-Zurücksetzen-Button
+ Beschreibung des Zurücksetzen-Buttons
+ kleiner Zurücksetzen-Button
Überschrift der Statistik-Einblendung
Icon Balkendiagramm
Datenpunkt: Distanz
diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml
index 5f3b8c4..a85f831 100644
--- a/app/src/main/res/values/colors.xml
+++ b/app/src/main/res/values/colors.xml
@@ -10,6 +10,8 @@
#FF12537F
#D92095F2
+ #FF4CAF50
+
#FFFFFFFF
#FF607d8b
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index b281e9b..b33dea1 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -43,6 +43,9 @@
Last location:
Saving current track.
over one hour
+ Current track data removed.
+ Saving current track data.
+
Source
@@ -92,6 +95,11 @@
Map of the current track
Map of the last track
+ Main Action Button
+ Label of the Save and Clear button
+ small Save and Clear button
+ Label of the Clear button
+ small Clear button
Headline of the statistics sheet
Icon of a bar chart
Data point: distance