ask user what to do with an empty recording (see #21)

master
y20k 2018-09-18 11:39:11 +02:00
parent 2f39017b76
commit 28e75ecf66
10 changed files with 58 additions and 11 deletions

View File

@ -266,9 +266,20 @@ public class MainActivity extends AppCompatActivity implements TrackbookKeys {
if (resultCode == Activity.RESULT_OK) {
// user chose CLEAR
handleStateAfterClear();
LogHelper.v(LOG_TAG, "Save dialog result: CLEAR");
LogHelper.v(LOG_TAG, "Clear map dialog result: CLEAR");
} else if (resultCode == Activity.RESULT_CANCELED){
LogHelper.v(LOG_TAG, "Clear map: User chose CANCEL.");
LogHelper.v(LOG_TAG, "Clear map dialog result: User chose CANCEL.");
}
break;
case RESULT_EMPTY_RECORDING_DIALOG:
if (resultCode == Activity.RESULT_OK) {
// User chose RESUME RECORDING
handleResumeButtonClick((View)mFloatingActionButtonMain);
LogHelper.v(LOG_TAG, "Empty recording dialog result: RESUME");
} else if (resultCode == Activity.RESULT_CANCELED){
// User chose CANCEL - do nothing just hide the sub menu
showFloatingActionButtonMenu(false);
LogHelper.v(LOG_TAG, "Empty recording dialog result: CANCEL");
}
break;
}
@ -341,9 +352,6 @@ public class MainActivity extends AppCompatActivity implements TrackbookKeys {
/* Handles the visual state after a save action */
private void handleStateAfterClear() {
// notify user
Toast.makeText(this, getString(R.string.toast_message_track_clear), Toast.LENGTH_LONG).show();
// dismiss notification
dismissNotification();

View File

@ -46,6 +46,7 @@ import org.osmdroid.views.overlay.ItemizedIconOverlay;
import org.osmdroid.views.overlay.compass.CompassOverlay;
import org.osmdroid.views.overlay.compass.InternalCompassOrientationProvider;
import org.y20k.trackbook.core.Track;
import org.y20k.trackbook.helpers.DialogHelper;
import org.y20k.trackbook.helpers.LocationHelper;
import org.y20k.trackbook.helpers.LogHelper;
import org.y20k.trackbook.helpers.MapHelper;
@ -55,6 +56,8 @@ import org.y20k.trackbook.helpers.TrackbookKeys;
import java.util.List;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import androidx.fragment.app.DialogFragment;
import androidx.fragment.app.Fragment;
import androidx.localbroadcastmanager.content.LocalBroadcastManager;
@ -326,7 +329,12 @@ public class MainActivityMapFragment extends Fragment implements TrackbookKeys {
break;
case RESULT_CLEAR_DIALOG:
if (resultCode == Activity.RESULT_OK) {
// User chose CLEAR - clear map, DO NOT save track
// User chose CLEAR
if (mTrack.getSize() > 0) {
// Track is not empty - notify user
Toast.makeText(mActivity, getString(R.string.toast_message_track_clear), Toast.LENGTH_LONG).show();
}
// clear map, DO NOT save track
clearMap(false);
// handle FloatingActionButton state in MainActivity
((MainActivity)mActivity).onFloatingActionButtonResult(requestCode, resultCode);
@ -334,6 +342,10 @@ public class MainActivityMapFragment extends Fragment implements TrackbookKeys {
LogHelper.v(LOG_TAG, "Clear dialog result: CANCEL");
}
break;
case RESULT_EMPTY_RECORDING_DIALOG:
// handle FloatingActionButton state and possible Resume-Action in MainActivity
((MainActivity)mActivity).onFloatingActionButtonResult(requestCode, resultCode);
break;
}
}
@ -454,11 +466,16 @@ public class MainActivityMapFragment extends Fragment implements TrackbookKeys {
/* Handles case when user chose to save recording with zero waypoints */ // todo implement
private void handleEmptyRecordingSaveRequest() {
// todo ask user what to do
Toast.makeText(mActivity, " Error. Empty recording. Clearing Map.", Toast.LENGTH_LONG).show(); // todo user alert (clear track?)
// todo change (solution for now: insta-clear)
clearMap(false);
((MainActivity)mActivity).onFloatingActionButtonResult(RESULT_CLEAR_DIALOG, Activity.RESULT_OK);
// prepare empty recording dialog ("Unable to save")
int dialogTitle = R.string.dialog_error_empty_recording_title;
String dialogMessage = getString(R.string.dialog_error_empty_recording_content);
int dialogPositiveButton = R.string.dialog_error_empty_recording_action_resume;
int dialogNegativeButton = R.string.dialog_default_action_cancel;
// show empty recording dialog
DialogFragment dialogFragment = DialogHelper.newInstance(dialogTitle, dialogMessage, dialogPositiveButton, dialogNegativeButton);
dialogFragment.setTargetFragment(this, RESULT_EMPTY_RECORDING_DIALOG);
dialogFragment.show(((AppCompatActivity)mActivity).getSupportFragmentManager(), "EmptyRecordingDialog");
// results of dialog are handled by onActivityResult
}

View File

@ -80,6 +80,7 @@ public interface TrackbookKeys {
int RESULT_CLEAR_DIALOG = 2;
int RESULT_DELETE_DIALOG = 3;
int RESULT_EXPORT_DIALOG = 4;
int RESULT_EMPTY_RECORDING_DIALOG = 5;
/* CONSTANTS */
long ONE_SECOND_IN_NANOSECOND = 1000000000L;

View File

@ -45,6 +45,9 @@
<string name="dialog_export_content_overwrite">Datei existiert bereits. Exportieren und überschreiben Sie diese Aufzeichnung als GPX-Strecke.</string>
<string name="dialog_export_action_overwrite">Exportieren und überschreiben</string>
<string name="dialog_share_gpx">GPX-Datei öffnen mit</string>
<string name="dialog_error_empty_recording_title">Speichern nicht möglich</string>
<string name="dialog_error_empty_recording_content">Trackbook hat noch keine Wegpunkte aufgezeichnet.</string>
<string name="dialog_error_empty_recording_action_resume">Aufzeichnung fortsetzen</string>
<!-- toast messages -->
<string name="toast_message_permissions_granted">Berechtigungen erteilt.</string>

View File

@ -45,6 +45,9 @@
<string name="dialog_export_content_overwrite">File already exists. Export and overwrite this recording as GPX track.</string>
<string name="dialog_export_action_overwrite">Export and Overwrite</string>
<string name="dialog_share_gpx">Share GPX file with</string>
<string name="dialog_error_empty_recording_title">Unable to save</string>
<string name="dialog_error_empty_recording_content">Trackbook did not record any waypoints so far.</string>
<string name="dialog_error_empty_recording_action_resume">Resume Recording</string>
<!-- toast messages -->
<string name="toast_message_permissions_granted">Permissions granted.</string>

View File

@ -45,6 +45,9 @@
<string name="dialog_export_content_overwrite">Il file esiste già. Esportare e sovrascrivere questa registrazione come traccia GPX.</string>
<string name="dialog_export_action_overwrite">Esporta e sovrascrivi</string>
<string name="dialog_share_gpx">Share GPX file with</string>
<string name="dialog_error_empty_recording_title">Unable to save</string>
<string name="dialog_error_empty_recording_content">Trackbook did not record any waypoints so far.</string>
<string name="dialog_error_empty_recording_action_resume">Resume Recording</string>
<!-- toast messages -->
<string name="toast_message_permissions_granted">Permessi acquisiti.</string>

View File

@ -45,6 +45,9 @@
<string name="dialog_export_content_overwrite">ファイルは既に存在します。エクスポートし、GPX トラックとしてこの記録を上書きします。</string>
<string name="dialog_export_action_overwrite">エクスポートして上書き</string>
<string name="dialog_share_gpx">Share GPX file with</string>
<string name="dialog_error_empty_recording_title">Unable to save</string>
<string name="dialog_error_empty_recording_content">Trackbook did not record any waypoints so far.</string>
<string name="dialog_error_empty_recording_action_resume">Resume Recording</string>
<!-- toast messages -->
<string name="toast_message_permissions_granted">アクセス許可を付与しました。</string>

View File

@ -45,6 +45,9 @@
<string name="dialog_export_content_overwrite">Fila finnes allerede. Eksporter og overskriv dette opptaket som en GPX-tur.</string>
<string name="dialog_export_action_overwrite">Eksporter og overskriv</string>
<string name="dialog_share_gpx">Share GPX file with</string>
<string name="dialog_error_empty_recording_title">Unable to save</string>
<string name="dialog_error_empty_recording_content">Trackbook did not record any waypoints so far.</string>
<string name="dialog_error_empty_recording_action_resume">Resume Recording</string>
<!-- toast messages -->
<string name="toast_message_permissions_granted">Tilgang gitt.</string>

View File

@ -45,6 +45,9 @@
<string name="dialog_export_content_overwrite">File already exists. Export and overwrite this recording as GPX track.</string>
<string name="dialog_export_action_overwrite">Export and Overwrite</string>
<string name="dialog_share_gpx">Share GPX file with</string>
<string name="dialog_error_empty_recording_title">Unable to save</string>
<string name="dialog_error_empty_recording_content">Trackbook did not record any waypoints so far.</string>
<string name="dialog_error_empty_recording_action_resume">Resume Recording</string>
<!-- toast messages -->
<string name="toast_message_permissions_granted">Rechten verleend.</string>

View File

@ -45,6 +45,9 @@
<string name="dialog_export_content_overwrite">File already exists. Export and overwrite this recording as GPX track.</string>
<string name="dialog_export_action_overwrite">Export and Overwrite</string>
<string name="dialog_share_gpx">Share GPX file with</string>
<string name="dialog_error_empty_recording_title">Unable to save</string>
<string name="dialog_error_empty_recording_content">Trackbook did not record any waypoints so far.</string>
<string name="dialog_error_empty_recording_action_resume">Resume Recording</string>
<!-- toast messages -->
<string name="toast_message_permissions_granted">Permissions granted.</string>