aboutsummaryrefslogtreecommitdiffstats
path: root/main/src/cgeo/geocaching/settings/SettingsActivity.java
diff options
context:
space:
mode:
Diffstat (limited to 'main/src/cgeo/geocaching/settings/SettingsActivity.java')
-rw-r--r--main/src/cgeo/geocaching/settings/SettingsActivity.java104
1 files changed, 55 insertions, 49 deletions
diff --git a/main/src/cgeo/geocaching/settings/SettingsActivity.java b/main/src/cgeo/geocaching/settings/SettingsActivity.java
index dc1a39d..8f64d77 100644
--- a/main/src/cgeo/geocaching/settings/SettingsActivity.java
+++ b/main/src/cgeo/geocaching/settings/SettingsActivity.java
@@ -9,11 +9,11 @@ import cgeo.geocaching.activity.ActivityMixin;
import cgeo.geocaching.apps.cache.navi.NavigationAppFactory;
import cgeo.geocaching.apps.cache.navi.NavigationAppFactory.NavigationAppsEnum;
import cgeo.geocaching.connector.gc.GCConnector;
-import cgeo.geocaching.connector.gc.GCLogin;
import cgeo.geocaching.files.SimpleDirChooser;
import cgeo.geocaching.maps.MapProviderFactory;
import cgeo.geocaching.maps.interfaces.MapSource;
import cgeo.geocaching.utils.DatabaseBackupUtils;
+import cgeo.geocaching.utils.DebugUtils;
import cgeo.geocaching.utils.Log;
import org.apache.commons.lang3.StringUtils;
@@ -62,7 +62,7 @@ public class SettingsActivity extends PreferenceActivity {
* directory and preference key in onActivityResult() easily just by knowing
* the result code.
*/
- private enum DirChooserType {
+ private static enum DirChooserType {
GPX_IMPORT_DIR(1, R.string.pref_gpxImportDir,
Environment.getExternalStorageDirectory().getPath() + "/gpx", false),
GPX_EXPORT_DIR(2, R.string.pref_gpxExportDir,
@@ -90,21 +90,21 @@ public class SettingsActivity extends PreferenceActivity {
SettingsActivity.addPreferencesFromResource(this, R.xml.preferences);
initPreferences();
- Intent intent = getIntent();
+ final Intent intent = getIntent();
openInitialScreen(intent.getIntExtra(INTENT_OPEN_SCREEN, 0));
}
- private void openInitialScreen(int initialScreen) {
+ private void openInitialScreen(final int initialScreen) {
if (initialScreen == 0) {
return;
}
- PreferenceScreen screen = (PreferenceScreen) getPreference(initialScreen);
+ final PreferenceScreen screen = (PreferenceScreen) getPreference(initialScreen);
if (screen == null) {
return;
}
try {
setPreferenceScreen(screen);
- } catch (RuntimeException e) {
+ } catch (final RuntimeException e) {
Log.e("could not open preferences " + initialScreen, e);
}
}
@@ -129,7 +129,7 @@ public class SettingsActivity extends PreferenceActivity {
initNavigationMenuPreferences();
initMaintenanceButtons();
- for (int k : new int[] { R.string.pref_username, R.string.pref_password,
+ for (final int k : new int[] { R.string.pref_username, R.string.pref_password,
R.string.pref_pass_vote, R.string.pref_signature,
R.string.pref_mapsource, R.string.pref_renderthemepath,
R.string.pref_gpxExportDir, R.string.pref_gpxImportDir,
@@ -143,7 +143,7 @@ public class SettingsActivity extends PreferenceActivity {
}
private void initNavigationMenuPreferences() {
- for (NavigationAppsEnum appEnum : NavigationAppsEnum.values()) {
+ for (final NavigationAppsEnum appEnum : NavigationAppsEnum.values()) {
if (appEnum.app.isInstalled()) {
getPreference(appEnum.preferenceKey).setEnabled(true);
}
@@ -154,7 +154,7 @@ public class SettingsActivity extends PreferenceActivity {
}
private void initServicePreferences() {
- for (OCPreferenceKeys key : OCPreferenceKeys.values()) {
+ for (final OCPreferenceKeys key : OCPreferenceKeys.values()) {
getPreference(key.isActivePrefId).setOnPreferenceChangeListener(VALUE_CHANGE_LISTENER);
setWebsite(key.websitePrefId, key.authParams.host);
setServiceScreenSummary(getPreferenceManager(), key.isActivePrefId);
@@ -173,7 +173,7 @@ public class SettingsActivity extends PreferenceActivity {
}
private void setWebsite(final int preferenceKey, final String host) {
- Preference preference = getPreference(preferenceKey);
+ final Preference preference = getPreference(preferenceKey);
preference.setOnPreferenceClickListener(new OnPreferenceClickListener() {
@Override
public boolean onPreferenceClick(final Preference preference) {
@@ -183,13 +183,13 @@ public class SettingsActivity extends PreferenceActivity {
});
}
- private static String getServiceSummary(boolean status) {
+ private static String getServiceSummary(final boolean status) {
return status ? CgeoApplication.getInstance().getString(R.string.settings_service_active) : StringUtils.EMPTY;
}
- private static void setServiceScreenSummary(PreferenceManager preferenceManager, final int preferenceKey) {
+ private static void setServiceScreenSummary(final PreferenceManager preferenceManager, final int preferenceKey) {
- String summary = StringUtils.EMPTY;
+ String summary;
switch (preferenceKey) {
case R.string.pref_connectorGCActive:
@@ -206,7 +206,7 @@ public class SettingsActivity extends PreferenceActivity {
break;
default:
if (OCPreferenceKeys.isOCPreference(preferenceKey)) {
- OCPreferenceKeys prefKey = OCPreferenceKeys.getById(preferenceKey);
+ final OCPreferenceKeys prefKey = OCPreferenceKeys.getById(preferenceKey);
summary = getServiceSummary(Settings.isOCConnectorActive(prefKey.isActivePrefId));
preferenceManager.findPreference(getKey(prefKey.prefScreenId)).setSummary(summary);
}
@@ -225,11 +225,11 @@ public class SettingsActivity extends PreferenceActivity {
* Fill the choice list for map sources.
*/
private void initMapSourcePreference() {
- ListPreference pref = (ListPreference) getPreference(R.string.pref_mapsource);
+ final ListPreference pref = (ListPreference) getPreference(R.string.pref_mapsource);
- List<MapSource> mapSources = MapProviderFactory.getMapSources();
- CharSequence[] entries = new CharSequence[mapSources.size()];
- CharSequence[] values = new CharSequence[mapSources.size()];
+ final List<MapSource> mapSources = MapProviderFactory.getMapSources();
+ final CharSequence[] entries = new CharSequence[mapSources.size()];
+ final CharSequence[] values = new CharSequence[mapSources.size()];
for (int i = 0; i < mapSources.size(); ++i) {
entries[i] = mapSources.get(i).getName();
values[i] = String.valueOf(mapSources.get(i).getNumericalId());
@@ -245,8 +245,8 @@ public class SettingsActivity extends PreferenceActivity {
final List<NavigationAppsEnum> apps = NavigationAppFactory.getInstalledDefaultNavigationApps();
- CharSequence[] entries = new CharSequence[apps.size()];
- CharSequence[] values = new CharSequence[apps.size()];
+ final CharSequence[] entries = new CharSequence[apps.size()];
+ final CharSequence[] values = new CharSequence[apps.size()];
for (int i = 0; i < apps.size(); ++i) {
entries[i] = apps.get(i).toString();
values[i] = String.valueOf(apps.get(i).id);
@@ -277,7 +277,7 @@ public class SettingsActivity extends PreferenceActivity {
new OnPreferenceClickListener() {
@Override
public boolean onPreferenceClick(final Preference preference) {
- Intent i = new Intent(SettingsActivity.this,
+ final Intent i = new Intent(SettingsActivity.this,
SelectMapfileActivity.class);
startActivityForResult(i, R.string.pref_mapDirectory);
return false;
@@ -307,7 +307,7 @@ public class SettingsActivity extends PreferenceActivity {
dirChooser.putExtra(FileManagerIntents.EXTRA_BUTTON_TEXT,
getString(android.R.string.ok));
startActivityForResult(dirChooser, dct.requestCode);
- } catch (android.content.ActivityNotFoundException ex) {
+ } catch (final android.content.ActivityNotFoundException ex) {
// OI file manager not available
final Intent dirChooser = new Intent(this, SimpleDirChooser.class);
dirChooser.putExtra(Intents.EXTRA_START_DIR, startDirectory);
@@ -319,7 +319,7 @@ public class SettingsActivity extends PreferenceActivity {
private void setChosenDirectory(final DirChooserType dct, final Intent data) {
final String directory = new File(data.getData().getPath()).getAbsolutePath();
if (StringUtils.isNotBlank(directory)) {
- Preference p = getPreference(dct.keyId);
+ final Preference p = getPreference(dct.keyId);
if (p == null) {
return;
}
@@ -329,7 +329,7 @@ public class SettingsActivity extends PreferenceActivity {
}
public void initBackupButtons() {
- Preference backup = getPreference(R.string.pref_fakekey_preference_backup);
+ final Preference backup = getPreference(R.string.pref_fakekey_preference_backup);
backup.setOnPreferenceClickListener(new OnPreferenceClickListener() {
@Override
public boolean onPreferenceClick(final Preference preference) {
@@ -343,7 +343,7 @@ public class SettingsActivity extends PreferenceActivity {
}
});
- Preference restore = getPreference(R.string.pref_fakekey_preference_restore);
+ final Preference restore = getPreference(R.string.pref_fakekey_preference_restore);
restore.setOnPreferenceClickListener(new OnPreferenceClickListener() {
@Override
public boolean onPreferenceClick(final Preference preference) {
@@ -354,14 +354,14 @@ public class SettingsActivity extends PreferenceActivity {
}
public void initMaintenanceButtons() {
- Preference dirMaintenance = getPreference(R.string.pref_fakekey_preference_maintenance_directories);
+ final Preference dirMaintenance = getPreference(R.string.pref_fakekey_preference_maintenance_directories);
dirMaintenance.setOnPreferenceClickListener(new OnPreferenceClickListener() {
@Override
public boolean onPreferenceClick(final Preference preference) {
// disable the button, as the cleanup runs in background and should not be invoked a second time
preference.setEnabled(false);
- Resources res = getResources();
+ final Resources res = getResources();
final SettingsActivity activity = SettingsActivity.this;
final ProgressDialog dialog = ProgressDialog.show(activity, res.getString(R.string.init_maintenance), res.getString(R.string.init_maintenance_directories), true, false);
new Thread() {
@@ -380,10 +380,19 @@ public class SettingsActivity extends PreferenceActivity {
return true;
}
});
+ final Preference memoryDumpPref = getPreference(R.string.pref_memory_dump);
+ memoryDumpPref
+ .setOnPreferenceClickListener(new OnPreferenceClickListener() {
+ @Override public boolean onPreferenceClick(
+ final Preference preference) {
+ DebugUtils.createMemoryDump(SettingsActivity.this);
+ return true;
+ }
+ });
}
private void initDbLocationPreference() {
- Preference p = getPreference(R.string.pref_dbonsdcard);
+ final Preference p = getPreference(R.string.pref_dbonsdcard);
p.setPersistent(false);
p.setOnPreferenceClickListener(new OnPreferenceClickListener() {
@Override
@@ -396,7 +405,7 @@ public class SettingsActivity extends PreferenceActivity {
}
private void initDebugPreference() {
- Preference p = getPreference(R.string.pref_debug);
+ final Preference p = getPreference(R.string.pref_debug);
p.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
@Override
public boolean onPreferenceChange(final Preference preference, final Object newValue) {
@@ -434,7 +443,7 @@ public class SettingsActivity extends PreferenceActivity {
return;
}
final PreferenceScreen screen = (PreferenceScreen) preference;
- ListAdapter adapter = screen.getRootAdapter();
+ final ListAdapter adapter = screen.getRootAdapter();
if (adapter instanceof BaseAdapter) {
((BaseAdapter) adapter).notifyDataSetChanged();
}
@@ -444,7 +453,7 @@ public class SettingsActivity extends PreferenceActivity {
Settings.putString(R.string.pref_webDeviceName, Settings.getWebDeviceName());
}
- public void setAuthTitle(int prefKeyId) {
+ public void setAuthTitle(final int prefKeyId) {
switch (prefKeyId) {
case R.string.pref_fakekey_ocde_authorization:
case R.string.pref_fakekey_ocpl_authorization:
@@ -490,7 +499,7 @@ public class SettingsActivity extends PreferenceActivity {
return;
}
- for (DirChooserType dct : DirChooserType.values()) {
+ for (final DirChooserType dct : DirChooserType.values()) {
if (requestCode == dct.requestCode) {
setChosenDirectory(dct, data);
return;
@@ -501,7 +510,7 @@ public class SettingsActivity extends PreferenceActivity {
case R.string.pref_mapDirectory:
if (data.hasExtra(Intents.EXTRA_MAP_FILE)) {
final String mapFile = data.getStringExtra(Intents.EXTRA_MAP_FILE);
- File file = new File(mapFile);
+ final File file = new File(mapFile);
if (!file.isDirectory()) {
Settings.setMapFile(mapFile);
if (!Settings.isValidMapFile(Settings.getMapFile())) {
@@ -509,8 +518,8 @@ public class SettingsActivity extends PreferenceActivity {
} else {
// Ensure map source preference is updated accordingly.
// TODO: There should be a better way to find and select the map source for a map file
- Integer mapSourceId = mapFile.hashCode();
- ListPreference mapSource = (ListPreference) getPreference(R.string.pref_mapsource);
+ final Integer mapSourceId = mapFile.hashCode();
+ final ListPreference mapSource = (ListPreference) getPreference(R.string.pref_mapsource);
mapSource.setValue(mapSourceId.toString());
VALUE_CHANGE_LISTENER.onPreferenceChange(mapSource, mapSourceId);
}
@@ -526,7 +535,7 @@ public class SettingsActivity extends PreferenceActivity {
case R.string.pref_fakekey_ocnl_authorization:
case R.string.pref_fakekey_ocus_authorization:
case R.string.pref_fakekey_ocro_authorization:
- OCPreferenceKeys key = OCPreferenceKeys.getByAuthId(requestCode);
+ final OCPreferenceKeys key = OCPreferenceKeys.getByAuthId(requestCode);
if (key != null) {
setOCAuthTitle(key);
redrawScreen(key.prefScreenId);
@@ -548,7 +557,7 @@ public class SettingsActivity extends PreferenceActivity {
private static final Preference.OnPreferenceChangeListener VALUE_CHANGE_LISTENER = new Preference.OnPreferenceChangeListener() {
@Override
public boolean onPreferenceChange(final Preference preference, final Object value) {
- String stringValue = value.toString();
+ final String stringValue = value.toString();
if (isPreference(preference, R.string.pref_mapsource)) {
// reset the cached map source
@@ -582,10 +591,10 @@ public class SettingsActivity extends PreferenceActivity {
|| isPreference(preference, R.string.pref_connectorOXActive)
|| isPreference(preference, R.string.pref_connectorECActive)) {
// update summary
- boolean boolVal = ((Boolean) value).booleanValue();
- String summary = getServiceSummary(boolVal);
+ final boolean boolVal = (Boolean) value;
+ final String summary = getServiceSummary(boolVal);
if (OCPreferenceKeys.isOCPreference(preference.getKey())) {
- OCPreferenceKeys prefKey = OCPreferenceKeys.getByKey(preference.getKey());
+ final OCPreferenceKeys prefKey = OCPreferenceKeys.getByKey(preference.getKey());
preference.getPreferenceManager().findPreference(getKey(prefKey.prefScreenId)).setSummary(summary);
} else if (isPreference(preference, R.string.pref_connectorGCActive)) {
preference.getPreferenceManager().findPreference(getKey(R.string.preference_screen_gc)).setSummary(summary);
@@ -600,8 +609,8 @@ public class SettingsActivity extends PreferenceActivity {
} else if (preference instanceof ListPreference) {
// For list preferences, look up the correct display value in
// the preference's 'entries' list.
- ListPreference listPreference = (ListPreference) preference;
- int index = listPreference.findIndexOfValue(stringValue);
+ final ListPreference listPreference = (ListPreference) preference;
+ final int index = listPreference.findIndexOfValue(stringValue);
// Set the summary to reflect the new value.
preference.setSummary(
@@ -625,9 +634,6 @@ public class SettingsActivity extends PreferenceActivity {
// TODO: do not special case geocaching.com here
if ((isPreference(preference, R.string.pref_username) && !stringValue.equals(Settings.getUsername())) || (isPreference(preference, R.string.pref_password) && !stringValue.equals(Settings.getGcCredentials().getRight()))) {
// reset log-in if gc user or password is changed
- if (GCLogin.getInstance().isActualLoginStatus()) {
- GCLogin.getInstance().logout();
- }
CgeoApplication.getInstance().forceRelog();
}
return true;
@@ -662,12 +668,12 @@ public class SettingsActivity extends PreferenceActivity {
*/
private void bindSummaryToStringValue(final int key) {
- Preference pref = getPreference(key);
+ final Preference pref = getPreference(key);
if (pref == null) {
return;
}
- String value = PreferenceManager
+ final String value = PreferenceManager
.getDefaultSharedPreferences(pref.getContext())
.getString(pref.getKey(), "");
@@ -686,7 +692,7 @@ public class SettingsActivity extends PreferenceActivity {
@SuppressWarnings("deprecation")
@Override
- public void setPreferenceScreen(PreferenceScreen preferenceScreen) {
+ public void setPreferenceScreen(final PreferenceScreen preferenceScreen) {
// TODO replace with fragment based code
super.setPreferenceScreen(preferenceScreen);
}
@@ -698,7 +704,7 @@ public class SettingsActivity extends PreferenceActivity {
return super.getPreferenceManager();
}
- private static boolean isPreference(final Preference preference, int preferenceKeyId) {
+ private static boolean isPreference(final Preference preference, final int preferenceKeyId) {
return getKey(preferenceKeyId).equals(preference.getKey());
}
}