Place backup settings in BackupSettingsActivity.

This commit is contained in:
Jimmy Shih
2012-05-03 12:38:19 -07:00
parent 92821be777
commit f8460fb76f
8 changed files with 185 additions and 81 deletions
+1
View File
@@ -207,6 +207,7 @@ limitations under the License.
<activity android:name="com.google.android.apps.mytracks.io.sendtogoogle.AccountChooserActivity" />
<activity android:name="com.google.android.apps.mytracks.io.sendtogoogle.UploadResultActivity" />
<activity android:name="com.google.android.apps.mytracks.io.sendtogoogle.UploadServiceChooserActivity" />
<activity android:name="com.google.android.apps.mytracks.settings.BackupSettingsActivity" />
<activity android:name="com.google.android.apps.mytracks.settings.SettingsActivity" />
<activity android:name="com.google.android.apps.mytracks.settings.SharingSettingsActivity" />
<!-- Services -->
+1
View File
@@ -65,6 +65,7 @@ limitations under the License.
<string name="reset_key">resetToDefaults</string>
<string name="restore_from_sd_key">restoreFromSd</string>
<string name="sensor_options_key">sensorOptions</string>
<string name="settings_backup_key">settingsBackup</string>
<string name="settings_sharing_key">settingsSharing</string>
<string name="track_color_mode_fixed_speed_options_key">trackColorModeFixedOptions</string>
</resources>
-7
View File
@@ -1541,13 +1541,6 @@ limitations under the License.
the SD card.">
Restore all tracks and settings from the SD card.
</string>
<string name="settings_backup_sd_card"
translation_description="In the 'Backup' settings, the section header for configuring backup to
the SD card.
Character limit: ~40 (1 line)">
SD card
</string>
<string name="settings_display"
translation_description="In the 'Settings' page, the option to change the display related
settings.
+27
View File
@@ -0,0 +1,27 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright 2012 Google Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
android:title="@string/settings_backup" >
<Preference
android:key="@string/backup_to_sd_key"
android:persistent="false"
android:title="@string/settings_backup_now" />
<Preference
android:key="@string/restore_from_sd_key"
android:persistent="false"
android:title="@string/settings_backup_restore" />
</PreferenceScreen>
+6 -16
View File
@@ -192,22 +192,12 @@ limitations under the License.
</PreferenceCategory>
</PreferenceScreen>
<!-- Backup settings -->
<PreferenceScreen android:title="@string/settings_backup">
<PreferenceCategory android:title="@string/settings_backup_sd_card">
<Preference
android:key="@string/backup_to_sd_key"
android:title="@string/settings_backup_now"
android:summary="@string/settings_backup_now_summary"
android:persistent="false" />
<Preference
android:key="@string/restore_from_sd_key"
android:title="@string/settings_backup_restore"
android:summary="@string/settings_backup_restore_summary"
android:persistent="false" />
</PreferenceCategory>
</PreferenceScreen>
<!-- Backup -->
<Preference
android:title="@string/settings_backup"
android:key="@string/settings_backup_key"
android:persistent="false" />
<!-- Reset to defaults -->
<Preference
android:title="@string/settings_reset"
@@ -0,0 +1,128 @@
/*
* Copyright 2012 Google Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*/
package com.google.android.apps.mytracks.settings;
import com.google.android.apps.mytracks.Constants;
import com.google.android.apps.mytracks.io.backup.BackupActivity;
import com.google.android.apps.mytracks.io.backup.RestoreChooserActivity;
import com.google.android.apps.mytracks.util.DialogUtils;
import com.google.android.apps.mytracks.util.IntentUtils;
import com.google.android.apps.mytracks.util.PreferencesUtils;
import com.google.android.maps.mytracks.R;
import android.app.Dialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.SharedPreferences.OnSharedPreferenceChangeListener;
import android.os.Bundle;
import android.preference.Preference;
import android.preference.Preference.OnPreferenceClickListener;
/**
* An activity for accessing the backup settings.
*
* @author Jimmy Shih
*/
public class BackupSettingsActivity extends AbstractSettingsActivity {
private static final int DIALOG_CONFIRM_RESTORE_NOW_ID = 0;
Preference backupNowPreference;
Preference restoreNowPreference;
/*
* Note that sharedPreferenceChangeListenr cannot be an anonymous inner class.
* Anonymous inner class will get garbage collected.
*/
private final OnSharedPreferenceChangeListener
sharedPreferenceChangeListener = new OnSharedPreferenceChangeListener() {
@Override
public void onSharedPreferenceChanged(SharedPreferences preferences, String key) {
// Note that key can be null
if (PreferencesUtils.getKey(BackupSettingsActivity.this, R.string.recording_track_id_key)
.equals(key)) {
updateUi();
}
}
};
@SuppressWarnings("deprecation")
@Override
protected void onCreate(Bundle bundle) {
super.onCreate(bundle);
SharedPreferences sharedPreferences = getSharedPreferences(
Constants.SETTINGS_NAME, Context.MODE_PRIVATE);
sharedPreferences.registerOnSharedPreferenceChangeListener(sharedPreferenceChangeListener);
addPreferencesFromResource(R.xml.backup_settings);
backupNowPreference = findPreference(getString(R.string.backup_to_sd_key));
backupNowPreference.setOnPreferenceClickListener(new OnPreferenceClickListener() {
@Override
public boolean onPreferenceClick(Preference preference) {
Intent intent = IntentUtils.newIntent(BackupSettingsActivity.this, BackupActivity.class);
startActivity(intent);
return true;
}
});
restoreNowPreference = findPreference(getString(R.string.restore_from_sd_key));
restoreNowPreference.setOnPreferenceClickListener(new OnPreferenceClickListener() {
@Override
public boolean onPreferenceClick(Preference preference) {
showDialog(DIALOG_CONFIRM_RESTORE_NOW_ID);
return true;
}
});
}
@Override
protected Dialog onCreateDialog(int id) {
if (id != DIALOG_CONFIRM_RESTORE_NOW_ID) {
return null;
}
return DialogUtils.createConfirmationDialog(this,
R.string.settings_backup_restore_confirm_message, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Intent intent = IntentUtils.newIntent(
BackupSettingsActivity.this, RestoreChooserActivity.class);
startActivity(intent);
}
});
}
@Override
protected void onResume() {
super.onResume();
updateUi();
}
/**
* Updates the UI based on the recording state.
*/
private void updateUi() {
boolean isRecording = PreferencesUtils.getLong(this, R.string.recording_track_id_key)
!= PreferencesUtils.RECORDING_TRACK_ID_DEFAULT;
backupNowPreference.setEnabled(!isRecording);
restoreNowPreference.setEnabled(!isRecording);
backupNowPreference.setSummary(isRecording ? R.string.settings_not_while_recording
: R.string.settings_backup_now_summary);
restoreNowPreference.setSummary(isRecording ? R.string.settings_not_while_recording
: R.string.settings_backup_restore_summary);
}
}
@@ -19,8 +19,6 @@ package com.google.android.apps.mytracks.settings;
import static com.google.android.apps.mytracks.Constants.TAG;
import com.google.android.apps.mytracks.Constants;
import com.google.android.apps.mytracks.io.backup.BackupActivity;
import com.google.android.apps.mytracks.io.backup.RestoreChooserActivity;
import com.google.android.apps.mytracks.services.sensors.ant.AntUtils;
import com.google.android.apps.mytracks.util.ApiAdapterFactory;
import com.google.android.apps.mytracks.util.BluetoothDeviceUtils;
@@ -56,7 +54,7 @@ import java.util.List;
import java.util.Set;
/**
* An activity that let's the user see and edit the settings.
* An activity for accessing settings.
*
* @author Leif Hendrik Wilden
* @author Rodrigo Damazio
@@ -64,7 +62,6 @@ import java.util.Set;
public class SettingsActivity extends AbstractSettingsActivity {
private static final int DIALOG_CONFIRM_RESET_ID = 0;
private static final int DIALOG_CONFIRM_RESTORE_ID = 1;
// Value when the task frequency is off.
private static final String TASK_FREQUENCY_OFF = "0";
@@ -129,16 +126,6 @@ public class SettingsActivity extends AbstractSettingsActivity {
customizeSensorOptionsPreferences();
customizeTrackColorModePreferences();
// Hook up action for resetting all settings
Preference resetPreference = findPreference(getString(R.string.reset_key));
resetPreference.setOnPreferenceClickListener(new OnPreferenceClickListener() {
@Override
public boolean onPreferenceClick(Preference arg0) {
showDialog(DIALOG_CONFIRM_RESET_ID);
return true;
}
});
Preference sharingPreference = findPreference(getString(R.string.settings_sharing_key));
sharingPreference.setOnPreferenceClickListener(new OnPreferenceClickListener() {
@Override
@@ -148,6 +135,26 @@ public class SettingsActivity extends AbstractSettingsActivity {
return true;
}
});
Preference backupPreference = findPreference(getString(R.string.settings_backup_key));
backupPreference.setOnPreferenceClickListener(new OnPreferenceClickListener() {
@Override
public boolean onPreferenceClick(Preference preference) {
Intent intent = IntentUtils.newIntent(SettingsActivity.this, BackupSettingsActivity.class);
startActivity(intent);
return true;
}
});
// Hook up action for resetting all settings
Preference resetPreference = findPreference(getString(R.string.reset_key));
resetPreference.setOnPreferenceClickListener(new OnPreferenceClickListener() {
@Override
public boolean onPreferenceClick(Preference arg0) {
showDialog(DIALOG_CONFIRM_RESET_ID);
return true;
}
});
}
@Override
@@ -161,17 +168,6 @@ public class SettingsActivity extends AbstractSettingsActivity {
onResetPreferencesConfirmed();
}
});
case DIALOG_CONFIRM_RESTORE_ID:
return DialogUtils.createConfirmationDialog(this,
R.string.settings_backup_restore_confirm_message,
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Intent intent = IntentUtils.newIntent(
SettingsActivity.this, RestoreChooserActivity.class);
startActivity(intent);
}
});
default:
return null;
}
@@ -304,46 +300,13 @@ public class SettingsActivity extends AbstractSettingsActivity {
@Override
protected void onResume() {
super.onResume();
configureBluetoothPreferences();
Preference backupNowPreference =
findPreference(getString(R.string.backup_to_sd_key));
Preference restoreNowPreference =
findPreference(getString(R.string.restore_from_sd_key));
Preference resetPreference = findPreference(getString(R.string.reset_key));
// If recording, disable backup/restore/reset
// (we don't want to get to inconsistent states)
boolean recording = PreferencesUtils.getLong(this, R.string.recording_track_id_key) != -1;
backupNowPreference.setEnabled(!recording);
restoreNowPreference.setEnabled(!recording);
resetPreference.setEnabled(!recording);
backupNowPreference.setSummary(
recording ? R.string.settings_not_while_recording
: R.string.settings_backup_now_summary);
restoreNowPreference.setSummary(
recording ? R.string.settings_not_while_recording
: R.string.settings_backup_restore_summary);
resetPreference.setSummary(
recording ? R.string.settings_not_while_recording
: R.string.settings_reset_summary);
// Add actions to the backup preferences
backupNowPreference.setOnPreferenceClickListener(new OnPreferenceClickListener() {
@Override
public boolean onPreferenceClick(Preference preference) {
Intent intent = IntentUtils.newIntent(SettingsActivity.this, BackupActivity.class);
startActivity(intent);
return true;
}
});
restoreNowPreference.setOnPreferenceClickListener(new OnPreferenceClickListener() {
@Override
public boolean onPreferenceClick(Preference preference) {
showDialog(DIALOG_CONFIRM_RESTORE_ID);
return true;
}
});
}
private void updateSensorSettings(String sensorType) {
@@ -35,6 +35,7 @@ public class PreferencesUtils {
*/
public static final boolean ALLOW_ACCESS_DEFAULT = false;
public static final boolean DEFAULT_MAP_PUBLIC_DEFAULT = true;
public static final long RECORDING_TRACK_ID_DEFAULT = -1L;
public static final boolean SHARE_URL_ONLY_DEFAULT = false;
private PreferencesUtils() {}