From 8f7bc30b105cbc4fb4ad2d0f9de19e0e32604f3f Mon Sep 17 00:00:00 2001 From: Jimmy Shih Date: Wed, 21 Aug 2013 11:32:12 -0700 Subject: [PATCH] Update Back and reset settings, remove are you sure on the dialog title --- MyTracks/res/values/strings.xml | 104 ++++++++++++------ MyTracks/res/xml/backup_reset_settings.xml | 2 +- .../ConfirmDeleteDialogFragment.java | 6 +- .../fragments/ConfirmPlayDialogFragment.java | 8 +- .../fragments/DeleteMarkerDialogFragment.java | 4 +- .../settings/BackupResetSettingsActivity.java | 46 +++++--- .../settings/GoogleSettingsActivity.java | 9 +- .../settings/SharingSettingsActivity.java | 3 +- .../apps/mytracks/util/DialogUtils.java | 45 ++++---- .../endtoendtest/EndToEndTestUtils.java | 2 +- .../endtoendtest/common/SettingTest.java | 6 +- .../endtoendtest/sync/SyncTestUtils.java | 9 +- 12 files changed, 150 insertions(+), 94 deletions(-) diff --git a/MyTracks/res/values/strings.xml b/MyTracks/res/values/strings.xml index 0ec2b3834..389416936 100644 --- a/MyTracks/res/values/strings.xml +++ b/MyTracks/res/values/strings.xml @@ -774,10 +774,10 @@ limitations under the License. translation_description="The text on a button to say cancel."> Cancel - - Are you sure? - + + Delete selected? + Description @@ -1001,6 +1001,10 @@ limitations under the License. translation_description="When deleting one marker, the confirmation message."> The marker will be permanently deleted from the device. + + Delete marker? + All markers for this track will be permanently deleted from the device. @@ -1484,29 +1488,39 @@ limitations under the License. Backup & reset - - + - Backup now + Backup + + + This will write a full copy of all your tracks and settings to ‘%1$s’ on the + external storage. + + + Backup now? Unable to backup. + translation_description="In the 'Backup and reset' settings, after pressing the 'Backup' option, + the progress message telling the user that it is writing all tracks and settings to the + external storage."> Writing all tracks and settings… - - Write a full copy of all your tracks and settings to the external storage - Finished backup. @@ -1518,22 +1532,26 @@ limitations under the License. external storage. Character limit: ~26 (1 line)"> - Restore now + Restore + translation_description="In the 'Backup and reset' settings, after pressing the 'Restore' + option, the confirmation message."> Restoring a backup from external storage will delete all your tracks and settings, and update them with the backup copy. Google Drive sync will be turned off. No tracks will be deleted on Google Drive and on external storage. + + Restore now? + Unable to restore from backup. Reading all tracks and settings… Select a backup to restore - - Restore all tracks and settings from the external storage - Finished restoring from backup. @@ -1595,6 +1608,11 @@ limitations under the License. This will remove any association between your tracks and %1$s Google Drive. Google Drive sync will be turned off. No tracks will be deleted on %1$s Google Drive. + + Switch account? + + Reset now? + All settings have been reverted to the default values. - - Revert all your settings to the default values - + + Allow access? + + Delete all? + The track and its markers will be permanently deleted from the device. If Google Drive sync is enabled, this will also delete the track on Google Drive. + + Delete track? + The selected tracks and their markers will be permanently deleted from the device. If Google @@ -2244,7 +2275,12 @@ limitations under the License. - Play in Google Earth will save your track to external storage. + This will save your track to external storage. + + + Play in Google Earth? diff --git a/MyTracks/res/xml/backup_reset_settings.xml b/MyTracks/res/xml/backup_reset_settings.xml index f4341c29b..fb61ac08b 100644 --- a/MyTracks/res/xml/backup_reset_settings.xml +++ b/MyTracks/res/xml/backup_reset_settings.xml @@ -19,7 +19,7 @@ limitations under the License. + android:title="@string/settings_backup" /> 1 ? R.string.generic_delete_selected_confirm_title + : R.string.track_delete_one_confirm_title; messageId = trackIds.length > 1 ? R.string.track_delete_multiple_confirm_message : R.string.track_delete_one_confirm_message; } return DialogUtils.createConfirmationDialog( - getActivity(), messageId, new DialogInterface.OnClickListener() { + getActivity(), titleId, getString(messageId), new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { caller.onConfirmDeleteDone(trackIds); diff --git a/MyTracks/src/com/google/android/apps/mytracks/fragments/ConfirmPlayDialogFragment.java b/MyTracks/src/com/google/android/apps/mytracks/fragments/ConfirmPlayDialogFragment.java index 1309ac141..9bb174270 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/fragments/ConfirmPlayDialogFragment.java +++ b/MyTracks/src/com/google/android/apps/mytracks/fragments/ConfirmPlayDialogFragment.java @@ -16,11 +16,11 @@ package com.google.android.apps.mytracks.fragments; +import com.google.android.apps.mytracks.util.DialogUtils; import com.google.android.apps.mytracks.util.PreferencesUtils; import com.google.android.maps.mytracks.R; import android.app.Activity; -import android.app.AlertDialog; import android.app.Dialog; import android.content.DialogInterface; import android.os.Bundle; @@ -92,8 +92,8 @@ public class ConfirmPlayDialogFragment extends DialogFragment { textView.setText(R.string.track_detail_play_confirm_message); checkBox = (CheckBox) view.findViewById(R.id.confirm_dialog_check_box); - return new AlertDialog.Builder(fragmentActivity).setNegativeButton(R.string.generic_no, null) - .setPositiveButton(R.string.generic_yes, new DialogInterface.OnClickListener() { + return DialogUtils.createConfirmationDialog(fragmentActivity, + R.string.track_detail_play_confirm_title, view, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { long[] trackIds = getArguments().getLongArray(KEY_TRACK_IDS); @@ -101,6 +101,6 @@ public class ConfirmPlayDialogFragment extends DialogFragment { fragmentActivity, R.string.confirm_play_earth_key, !checkBox.isChecked()); caller.onConfirmPlayDone(trackIds); } - }).setTitle(R.string.generic_confirm_title).setView(view).create(); + }); } } \ No newline at end of file diff --git a/MyTracks/src/com/google/android/apps/mytracks/fragments/DeleteMarkerDialogFragment.java b/MyTracks/src/com/google/android/apps/mytracks/fragments/DeleteMarkerDialogFragment.java index 8808d0c70..59c86ce03 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/fragments/DeleteMarkerDialogFragment.java +++ b/MyTracks/src/com/google/android/apps/mytracks/fragments/DeleteMarkerDialogFragment.java @@ -77,10 +77,12 @@ public class DeleteMarkerDialogFragment extends DialogFragment { public Dialog onCreateDialog(Bundle savedInstanceState) { final FragmentActivity fragmentActivity = getActivity(); final long[] markerIds = getArguments().getLongArray(KEY_MARKER_IDS); + int titleId = markerIds.length > 1 ? R.string.generic_delete_selected_confirm_title + : R.string.marker_delete_one_confirm_title; int messageId = markerIds.length > 1 ? R.string.marker_delete_multiple_confirm_message : R.string.marker_delete_one_confirm_message; return DialogUtils.createConfirmationDialog( - fragmentActivity, messageId, new DialogInterface.OnClickListener() { + fragmentActivity, titleId, getString(messageId), new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { new Thread(new Runnable() { diff --git a/MyTracks/src/com/google/android/apps/mytracks/settings/BackupResetSettingsActivity.java b/MyTracks/src/com/google/android/apps/mytracks/settings/BackupResetSettingsActivity.java index e95a204ec..664e82afc 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/settings/BackupResetSettingsActivity.java +++ b/MyTracks/src/com/google/android/apps/mytracks/settings/BackupResetSettingsActivity.java @@ -21,6 +21,7 @@ import com.google.android.apps.mytracks.io.backup.BackupActivity; import com.google.android.apps.mytracks.io.backup.RestoreChooserActivity; import com.google.android.apps.mytracks.io.sync.SyncUtils; import com.google.android.apps.mytracks.util.DialogUtils; +import com.google.android.apps.mytracks.util.FileUtils; import com.google.android.apps.mytracks.util.IntentUtils; import com.google.android.apps.mytracks.util.PreferencesUtils; import com.google.android.maps.mytracks.R; @@ -45,8 +46,9 @@ import android.widget.Toast; public class BackupResetSettingsActivity extends AbstractSettingsActivity { private static final String TAG = BackupResetSettingsActivity.class.getSimpleName(); - private static final int DIALOG_CONFIRM_RESTORE_ID = 0; - private static final int DIALOG_CONFIRM_RESET_ID = 1; + private static final int DIALOG_CONFIRM_BACKUP_ID = 0; + private static final int DIALOG_CONFIRM_RESTORE_ID = 1; + private static final int DIALOG_CONFIRM_RESET_ID = 2; private SharedPreferences sharedPreferences; private Preference backupPreference; @@ -88,10 +90,8 @@ public class BackupResetSettingsActivity extends AbstractSettingsActivity { backupPreference = findPreference(getString(R.string.settings_backup_key)); backupPreference.setOnPreferenceClickListener(new OnPreferenceClickListener() { @Override - public boolean onPreferenceClick(Preference preference) { - Intent intent = IntentUtils.newIntent( - BackupResetSettingsActivity.this, BackupActivity.class); - startActivity(intent); + public boolean onPreferenceClick(Preference preference) { + showDialog(DIALOG_CONFIRM_BACKUP_ID); return true; } }); @@ -116,11 +116,26 @@ public class BackupResetSettingsActivity extends AbstractSettingsActivity { @Override protected Dialog onCreateDialog(int id) { + String message; Dialog dialog; switch (id) { + case DIALOG_CONFIRM_BACKUP_ID: + message = getString(R.string.settings_backup_confirm_message, + FileUtils.getDirectoryDisplayName(FileUtils.BACKUPS_DIR)); + dialog = DialogUtils.createConfirmationDialog(this, R.string.settings_backup_confirm_title, + message, new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface d, int which) { + Intent intent = IntentUtils.newIntent( + BackupResetSettingsActivity.this, BackupActivity.class); + startActivity(intent); + } + }); + break; case DIALOG_CONFIRM_RESTORE_ID: + message = getString(R.string.settings_backup_restore_confirm_message); dialog = DialogUtils.createConfirmationDialog(this, - R.string.settings_backup_restore_confirm_message, + R.string.settings_backup_restore_confirm_title, message, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface d, int which) { @@ -131,8 +146,9 @@ public class BackupResetSettingsActivity extends AbstractSettingsActivity { }); break; case DIALOG_CONFIRM_RESET_ID: - dialog = DialogUtils.createConfirmationDialog( - this, R.string.settings_reset_confirm_message, new DialogInterface.OnClickListener() { + message = getString(R.string.settings_reset_confirm_message); + dialog = DialogUtils.createConfirmationDialog(this, R.string.settings_reset_confirm_title, + message, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface d, int button) { onResetPreferencesConfirmed(); @@ -164,17 +180,13 @@ public class BackupResetSettingsActivity extends AbstractSettingsActivity { */ private void updateUi() { boolean isRecording = recordingTrackId != PreferencesUtils.RECORDING_TRACK_ID_DEFAULT; + String summary = isRecording ? getString(R.string.settings_not_while_recording) : ""; backupPreference.setEnabled(!isRecording); - backupPreference.setSummary( - isRecording ? R.string.settings_not_while_recording : R.string.settings_backup_now_summary); - + backupPreference.setSummary(summary); restoreNowPreference.setEnabled(!isRecording); - restoreNowPreference.setSummary(isRecording ? R.string.settings_not_while_recording - : R.string.settings_backup_restore_summary); - + restoreNowPreference.setSummary(summary); resetPreference.setEnabled(!isRecording); - resetPreference.setSummary( - isRecording ? R.string.settings_not_while_recording : R.string.settings_reset_summary); + resetPreference.setSummary(summary); } /** diff --git a/MyTracks/src/com/google/android/apps/mytracks/settings/GoogleSettingsActivity.java b/MyTracks/src/com/google/android/apps/mytracks/settings/GoogleSettingsActivity.java index bb687d3d3..c3ba51cf8 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/settings/GoogleSettingsActivity.java +++ b/MyTracks/src/com/google/android/apps/mytracks/settings/GoogleSettingsActivity.java @@ -140,12 +140,13 @@ public class GoogleSettingsActivity extends AbstractSettingsActivity { Dialog dialog; switch (id) { case DIALOG_CONFIRM_SWITCH_ACCOUNT: - dialog = DialogUtils.createConfirmationDialog( - this, R.string.settings_google_account_confirm_message, null); + dialog = DialogUtils.createConfirmationDialog(this, + R.string.settings_google_account_confirm_title, + getString(R.string.settings_google_account_confirm_message), null); break; case DIALOG_CONFIRM_DRIVE_SYNC_ON: dialog = DialogUtils.createConfirmationDialog(this, R.string.sync_drive_title, - R.string.sync_drive_confirm_message, null, new DialogInterface.OnClickListener() { + getString(R.string.sync_drive_confirm_message), new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface d, int button) { final String googleAccount = PreferencesUtils.getString(GoogleSettingsActivity.this, @@ -179,7 +180,7 @@ public class GoogleSettingsActivity extends AbstractSettingsActivity { }); thread.start(); } - }, null); + }); break; default: dialog = null; diff --git a/MyTracks/src/com/google/android/apps/mytracks/settings/SharingSettingsActivity.java b/MyTracks/src/com/google/android/apps/mytracks/settings/SharingSettingsActivity.java index f74331c97..044c672cb 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/settings/SharingSettingsActivity.java +++ b/MyTracks/src/com/google/android/apps/mytracks/settings/SharingSettingsActivity.java @@ -64,7 +64,8 @@ public class SharingSettingsActivity extends AbstractSettingsActivity { return null; } return DialogUtils.createConfirmationDialog(this, - R.string.settings_sharing_allow_access_confirm_message, + R.string.settings_sharing_allow_access_confirm_title, + getString(R.string.settings_sharing_allow_access_confirm_message), new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int button) { diff --git a/MyTracks/src/com/google/android/apps/mytracks/util/DialogUtils.java b/MyTracks/src/com/google/android/apps/mytracks/util/DialogUtils.java index f6ee3792f..b6b1d579d 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/util/DialogUtils.java +++ b/MyTracks/src/com/google/android/apps/mytracks/util/DialogUtils.java @@ -38,40 +38,26 @@ public class DialogUtils { * Creates a confirmation dialog. * * @param context the context - * @param messageId the message id + * @param titleId the title + * @param message the message * @param okListener the listener when OK is clicked */ public static Dialog createConfirmationDialog( - Context context, int messageId, DialogInterface.OnClickListener okListener) { - return createConfirmationDialog( - context, R.string.generic_confirm_title, messageId, null, okListener, null); + Context context, int titleId, String message, DialogInterface.OnClickListener okListener) { + return createConfirmationDialog(context, titleId, message, null, okListener); } /** * Creates a confirmation dialog. * * @param context the context - * @param titleId the titleId - * @param messageId the messageId + * @param titleId the title * @param view the view * @param okListener the listener when OK is clicked - * @param cancelListener the listener when cancel is clicked */ - public static Dialog createConfirmationDialog(Context context, int titleId, int messageId, - View view, DialogInterface.OnClickListener okListener, - DialogInterface.OnClickListener cancelListener) { - AlertDialog.Builder builder = new AlertDialog.Builder(context).setCancelable(true) - .setIcon(android.R.drawable.ic_dialog_alert) - .setNegativeButton(R.string.generic_no, cancelListener) - .setPositiveButton(R.string.generic_yes, okListener).setTitle(titleId); - if (messageId != -1) { - builder.setMessage(messageId); - } - if (view != null) { - builder.setView(view); - } - - return builder.create(); + public static Dialog createConfirmationDialog( + Context context, int titleId, View view, DialogInterface.OnClickListener okListener) { + return createConfirmationDialog(context, titleId, null, view, okListener); } /** @@ -99,6 +85,21 @@ public class DialogUtils { return createProgressDialog(false, context, messageId, onCancelListener, formatArgs); } + private static Dialog createConfirmationDialog(Context context, int titleId, String message, + View view, DialogInterface.OnClickListener okListener) { + AlertDialog.Builder builder = new AlertDialog.Builder(context).setCancelable(true) + .setIcon(android.R.drawable.ic_dialog_alert).setNegativeButton(R.string.generic_no, null) + .setPositiveButton(R.string.generic_yes, okListener).setTitle(titleId); + if (message != null) { + builder.setMessage(message); + } + if (view != null) { + builder.setView(view); + } + + return builder.create(); + } + /** * Creates a progress dialog. * diff --git a/MyTracksTest_E2E/src/com/google/android/apps/mytracks/endtoendtest/EndToEndTestUtils.java b/MyTracksTest_E2E/src/com/google/android/apps/mytracks/endtoendtest/EndToEndTestUtils.java index 032eacb34..479abfc19 100644 --- a/MyTracksTest_E2E/src/com/google/android/apps/mytracks/endtoendtest/EndToEndTestUtils.java +++ b/MyTracksTest_E2E/src/com/google/android/apps/mytracks/endtoendtest/EndToEndTestUtils.java @@ -843,7 +843,7 @@ public class EndToEndTestUtils { findMenuItem(activityMyTracks.getString(R.string.menu_settings), true); SOLO.clickOnText(activityMyTracks.getString(R.string.settings_backup_reset)); Assert.assertTrue(SOLO.waitForText(activityMyTracks.getString(R.string.settings_reset))); - SOLO.clickOnText(activityMyTracks.getString(R.string.settings_reset_summary)); + SOLO.clickOnText(activityMyTracks.getString(R.string.settings_reset)); getButtonOnScreen(activityMytracks.getString(R.string.generic_yes), true, true); Assert.assertTrue(SOLO.waitForText(activityMyTracks.getString(R.string.settings_reset_done))); instrumentation.waitForIdleSync(); diff --git a/MyTracksTest_E2E/src/com/google/android/apps/mytracks/endtoendtest/common/SettingTest.java b/MyTracksTest_E2E/src/com/google/android/apps/mytracks/endtoendtest/common/SettingTest.java index 2d31e4de6..599b9f6b3 100644 --- a/MyTracksTest_E2E/src/com/google/android/apps/mytracks/endtoendtest/common/SettingTest.java +++ b/MyTracksTest_E2E/src/com/google/android/apps/mytracks/endtoendtest/common/SettingTest.java @@ -99,7 +99,7 @@ public class SettingTest extends ActivityInstrumentationTestCase2