X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/blobdiff_plain/d5625e6cccd85dfb0f9e66a2da8f844341c96e2b..ec19a11a385ff21d3e85a94e618d48d8be9ef20d:/src/com/owncloud/android/ui/activity/Preferences.java diff --git a/src/com/owncloud/android/ui/activity/Preferences.java b/src/com/owncloud/android/ui/activity/Preferences.java index ec17f031..d078b1e2 100644 --- a/src/com/owncloud/android/ui/activity/Preferences.java +++ b/src/com/owncloud/android/ui/activity/Preferences.java @@ -89,7 +89,7 @@ public class Preferences extends SherlockPreferenceActivity implements AccountMa actionBar.setDisplayHomeAsUpEnabled(true); actionBar.setTitle(R.string.actionbar_settings); - loadUploadPath(); + loadInstantUploadPath(); // Load the accounts category for adding the list of accounts mAccountsPrefCategory = (PreferenceCategory) findPreference("accounts_category"); @@ -248,7 +248,7 @@ public class Preferences extends SherlockPreferenceActivity implements AccountMa pInstantUploadPathApp.setOnPreferenceChangeListener(new OnPreferenceChangeListener() { @Override public boolean onPreferenceChange(Preference preference, Object newValue) { - mUploadPath = updateUploadPath(newValue.toString()); + mUploadPath = updateInstantUploadPath(newValue.toString()); return true; } }); @@ -268,6 +268,12 @@ public class Preferences extends SherlockPreferenceActivity implements AccountMa } @Override + protected void onPause() { + saveInstantUploadPathOnPreferences(); + super.onPause(); + } + + @Override public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) { // Filter for only showing contextual menu when long press on the @@ -370,12 +376,6 @@ public class Preferences extends SherlockPreferenceActivity implements AccountMa @Override protected void onDestroy() { mDbHandler.close(); - - SharedPreferences appPrefs = PreferenceManager.getDefaultSharedPreferences(getApplicationContext()); - SharedPreferences.Editor editor = appPrefs.edit(); - editor.putString("instant_upload_path", mUploadPath); - editor.commit(); - super.onDestroy(); } @@ -486,12 +486,23 @@ public class Preferences extends SherlockPreferenceActivity implements AccountMa * @param uploadPath: path write by user * @return String: uploadPath */ - private String updateUploadPath(String uploadPath) { - String uploadPathInitialSlash = "/"; - if (uploadPath.isEmpty()) { + private String updateInstantUploadPath(String uploadPath) { + String slashString = "/"; + + // If slashes are duplicated, replace them for only one slash + uploadPath = uploadPath.replaceAll("/+", slashString); + + // Remove last slash from path + if (uploadPath.length() > 0 && uploadPath.charAt(uploadPath.length()-1) == slashString.charAt(0)) { + uploadPath = uploadPath.substring(0, uploadPath.length()-1); + } + + if (uploadPath.isEmpty()) { // Set default instant upload path uploadPath = getString(R.string.instant_upload_path); - } else if (!uploadPath.startsWith(uploadPathInitialSlash)) { - uploadPath = uploadPathInitialSlash.concat(uploadPath); + }else { + if (!uploadPath.startsWith(slashString)) { // Add initial slash on path if necessary + uploadPath = slashString.concat(uploadPath); + } } return uploadPath; } @@ -499,8 +510,18 @@ public class Preferences extends SherlockPreferenceActivity implements AccountMa /** * Load upload path set on preferences */ - private void loadUploadPath() { + private void loadInstantUploadPath() { SharedPreferences appPrefs = PreferenceManager.getDefaultSharedPreferences(getApplicationContext()); mUploadPath = appPrefs.getString("instant_upload_path", getString(R.string.instant_upload_path)); } + + /** + * Save the "Instant Upload Path" on preferences + */ + private void saveInstantUploadPathOnPreferences() { + SharedPreferences appPrefs = PreferenceManager.getDefaultSharedPreferences(getApplicationContext()); + SharedPreferences.Editor editor = appPrefs.edit(); + editor.putString("instant_upload_path", mUploadPath); + editor.commit(); + } }