X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/blobdiff_plain/844790057b6519bc6e90f49c139335a97aade4c8..c2ec3f783d3620217e51e9392b8211f6e7852454:/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 8840eee9..4239c0ec 100644 --- a/src/com/owncloud/android/ui/activity/Preferences.java +++ b/src/com/owncloud/android/ui/activity/Preferences.java @@ -50,8 +50,8 @@ import com.owncloud.android.MainApp; import com.owncloud.android.R; import com.owncloud.android.authentication.AccountUtils; import com.owncloud.android.authentication.AuthenticatorActivity; +import com.owncloud.android.datamodel.OCFile; import com.owncloud.android.db.DbHandler; -import com.owncloud.android.ui.CheckBoxPreferenceWithLongTitle; import com.owncloud.android.lib.common.utils.Log_OC; import com.owncloud.android.ui.LongClickableCheckBoxPreference; import com.owncloud.android.utils.DisplayUtils; @@ -67,9 +67,10 @@ public class Preferences extends SherlockPreferenceActivity implements AccountMa private static final String TAG = "OwnCloudPreferences"; + private static final int ACTION_SELECT_UPLOAD_PATH = 1; + private DbHandler mDbHandler; private CheckBoxPreference pCode; - private CheckBoxPreference pSaveLocation; private Preference pAboutApp; private PreferenceCategory mAccountsPrefCategory = null; @@ -77,6 +78,7 @@ public class Preferences extends SherlockPreferenceActivity implements AccountMa private String mAccountName; private boolean mShowContextMenu = false; private String mUploadPath; + private Preference mPrefInstantUploadPath; @SuppressWarnings("deprecation") @@ -91,8 +93,6 @@ public class Preferences extends SherlockPreferenceActivity implements AccountMa actionBar.setDisplayHomeAsUpEnabled(true); actionBar.setTitle(R.string.actionbar_settings); - loadInstantUploadPath(); - // Load the accounts category for adding the list of accounts mAccountsPrefCategory = (PreferenceCategory) findPreference("accounts_category"); @@ -106,7 +106,7 @@ public class Preferences extends SherlockPreferenceActivity implements AccountMa if (obj != null && obj instanceof LongClickableCheckBoxPreference) { mShowContextMenu = true; - mAccountName = obj.toString(); + mAccountName = ((LongClickableCheckBoxPreference) obj).getKey(); Preferences.this.openContextMenu(listView); @@ -136,24 +136,6 @@ public class Preferences extends SherlockPreferenceActivity implements AccountMa } - pSaveLocation = (CheckBoxPreferenceWithLongTitle) findPreference("save_last_upload_location"); - if(pSaveLocation != null){ - pSaveLocation.setOnPreferenceChangeListener(new OnPreferenceChangeListener() { - @Override - public boolean onPreferenceChange(Preference preference, Object newValue) { - //The saved path is removed when the preference is turned off - if( newValue instanceof Boolean && !(Boolean) newValue) { - SharedPreferences.Editor appPrefs = PreferenceManager - .getDefaultSharedPreferences(getApplicationContext()).edit(); - appPrefs.remove("last_upload_path"); - appPrefs.commit(); - } - return true; - } - }); - } - - PreferenceCategory preferenceCategory = (PreferenceCategory) findPreference("more"); boolean helpEnabled = getResources().getBoolean(R.bool.help_enabled); @@ -263,15 +245,19 @@ public class Preferences extends SherlockPreferenceActivity implements AccountMa } } - Preference pInstantUploadPathApp = (Preference) findPreference("instant_upload_path"); + mPrefInstantUploadPath = findPreference("instant_upload_path"); + if (mPrefInstantUploadPath != null){ - pInstantUploadPathApp.setOnPreferenceChangeListener(new OnPreferenceChangeListener() { - @Override - public boolean onPreferenceChange(Preference preference, Object newValue) { - mUploadPath = updateInstantUploadPath(newValue.toString()); - return true; - } - }); + mPrefInstantUploadPath.setOnPreferenceClickListener(new OnPreferenceClickListener() { + @Override + public boolean onPreferenceClick(Preference preference) { + Intent intent = new Intent(Preferences.this, UploadPathActivity.class); + intent.putExtra(UploadPathActivity.KEY_INSTANT_UPLOAD_PATH, mUploadPath); + startActivityForResult(intent, ACTION_SELECT_UPLOAD_PATH); + return true; + } + }); + } /* About App */ pAboutApp = (Preference) findPreference("about_app"); @@ -285,6 +271,9 @@ public class Preferences extends SherlockPreferenceActivity implements AccountMa Log_OC.e(TAG, "Error while showing about dialog", e); } } + + loadInstantUploadPath(); + } @Override @@ -391,6 +380,16 @@ public class Preferences extends SherlockPreferenceActivity implements AccountMa @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); + + if (requestCode == ACTION_SELECT_UPLOAD_PATH && (resultCode == RESULT_OK || + resultCode == UploadPathActivity.RESULT_OK_SET_UPLOAD_PATH)){ + + OCFile folderToMoveAt = (OCFile) data.getParcelableExtra(UploadPathActivity.EXTRA_CURRENT_FOLDER); + + mUploadPath = folderToMoveAt.getRemotePath(); + + saveInstantUploadPathOnPreferences(); + } } @Override @@ -426,7 +425,8 @@ public class Preferences extends SherlockPreferenceActivity implements AccountMa for (Account a : accounts) { LongClickableCheckBoxPreference accountPreference = new LongClickableCheckBoxPreference(this); accountPreference.setKey(a.name); - accountPreference.setTitle(a.name); + // Handle internationalized domain names + accountPreference.setTitle(DisplayUtils.convertIdn(a.name, false)); mAccountsPrefCategory.addPreference(accountPreference); // Check the current account that is being used @@ -502,43 +502,19 @@ public class Preferences extends SherlockPreferenceActivity implements AccountMa } /** - * Update the upload path checking that it is a correct path - * @param uploadPath: path write by user - * @return String: uploadPath - */ - 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(slashString)) { // Add initial slash on path if necessary - uploadPath = slashString.concat(uploadPath); - } - } - return uploadPath; - } - - /** * Load upload path set on preferences */ private void loadInstantUploadPath() { SharedPreferences appPrefs = PreferenceManager.getDefaultSharedPreferences(getApplicationContext()); mUploadPath = appPrefs.getString("instant_upload_path", getString(R.string.instant_upload_path)); + mPrefInstantUploadPath.setSummary(mUploadPath); } /** * Save the "Instant Upload Path" on preferences */ private void saveInstantUploadPathOnPreferences() { + mPrefInstantUploadPath.setSummary(mUploadPath); SharedPreferences appPrefs = PreferenceManager.getDefaultSharedPreferences(getApplicationContext()); SharedPreferences.Editor editor = appPrefs.edit(); editor.putString("instant_upload_path", mUploadPath);