X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/blobdiff_plain/b154fba6ee7e2dfb77ff10e20c20c080758d2a1d..68e8a942a1e7cdcd25a31e151b0d3124edfa88bb:/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 27113686..1d80a703 100644 --- a/src/com/owncloud/android/ui/activity/Preferences.java +++ b/src/com/owncloud/android/ui/activity/Preferences.java @@ -50,10 +50,11 @@ 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.LongClickableCheckBoxPreference; +import com.owncloud.android.lib.common.utils.Log_OC; +import com.owncloud.android.ui.RadioButtonPreference; import com.owncloud.android.utils.DisplayUtils; -import com.owncloud.android.utils.Log_OC; /** @@ -66,19 +67,21 @@ public class Preferences extends SherlockPreferenceActivity implements AccountMa private static final String TAG = "OwnCloudPreferences"; - private static final String PREVIOUS_ACCOUNT_KEY = "ACCOUNT"; + private static final int ACTION_SELECT_UPLOAD_PATH = 1; + private static final int ACTION_SELECT_UPLOAD_VIDEO_PATH = 2; private DbHandler mDbHandler; private CheckBoxPreference pCode; - //private CheckBoxPreference pLogging; - //private Preference pLoggingHistory; private Preference pAboutApp; - private Account mPreviousAccount = null; private PreferenceCategory mAccountsPrefCategory = null; private final Handler mHandler = new Handler(); private String mAccountName; private boolean mShowContextMenu = false; + private String mUploadPath; + private Preference mPrefInstantUploadPath; + private Preference mPrefInstantVideoUploadPath; + private String mUploadVideoPath; @SuppressWarnings("deprecation") @@ -91,12 +94,7 @@ public class Preferences extends SherlockPreferenceActivity implements AccountMa ActionBar actionBar = getSherlock().getActionBar(); actionBar.setIcon(DisplayUtils.getSeasonalIconId()); actionBar.setDisplayHomeAsUpEnabled(true); - - if (savedInstanceState != null) { - mPreviousAccount = savedInstanceState.getParcelable(PREVIOUS_ACCOUNT_KEY); - } else { - mPreviousAccount = AccountUtils.getCurrentOwnCloudAccount(this); - } + actionBar.setTitle(R.string.actionbar_settings); // Load the accounts category for adding the list of accounts mAccountsPrefCategory = (PreferenceCategory) findPreference("accounts_category"); @@ -109,9 +107,9 @@ public class Preferences extends SherlockPreferenceActivity implements AccountMa ListAdapter listAdapter = listView.getAdapter(); Object obj = listAdapter.getItem(position); - if (obj != null && obj instanceof LongClickableCheckBoxPreference) { + if (obj != null && obj instanceof RadioButtonPreference) { mShowContextMenu = true; - mAccountName = obj.toString(); + mAccountName = ((RadioButtonPreference) obj).getKey(); Preferences.this.openContextMenu(listView); @@ -121,7 +119,18 @@ public class Preferences extends SherlockPreferenceActivity implements AccountMa return false; } }); - + + // Load package info + String temp; + try { + PackageInfo pkg = getPackageManager().getPackageInfo(getPackageName(), 0); + temp = pkg.versionName; + } catch (NameNotFoundException e) { + temp = ""; + Log_OC.e(TAG, "Error while showing about dialog", e); + } + final String appVersion = temp; + // Register context menu for list of preferences. registerForContextMenu(getListView()); @@ -210,7 +219,7 @@ public class Preferences extends SherlockPreferenceActivity implements AccountMa @Override public boolean onPreferenceClick(Preference preference) { String feedbackMail =(String) getText(R.string.mail_feedback); - String feedback =(String) getText(R.string.prefs_feedback); + String feedback =(String) getText(R.string.prefs_feedback) + " - android v" + appVersion; Intent intent = new Intent(Intent.ACTION_SENDTO); intent.setType("text/plain"); intent.putExtra(Intent.EXTRA_SUBJECT, feedback); @@ -249,57 +258,56 @@ public class Preferences extends SherlockPreferenceActivity implements AccountMa preferenceCategory.removePreference(pImprint); } } + + mPrefInstantUploadPath = findPreference("instant_upload_path"); + if (mPrefInstantUploadPath != null){ + + mPrefInstantUploadPath.setOnPreferenceClickListener(new OnPreferenceClickListener() { + @Override + public boolean onPreferenceClick(Preference preference) { + if (!mUploadPath.endsWith(OCFile.PATH_SEPARATOR)) { + mUploadPath += OCFile.PATH_SEPARATOR; + } + Intent intent = new Intent(Preferences.this, UploadPathActivity.class); + intent.putExtra(UploadPathActivity.KEY_INSTANT_UPLOAD_PATH, mUploadPath); + startActivityForResult(intent, ACTION_SELECT_UPLOAD_PATH); + return true; + } + }); + } + + mPrefInstantVideoUploadPath = findPreference("instant_video_upload_path"); + if (mPrefInstantVideoUploadPath != null){ + + mPrefInstantVideoUploadPath.setOnPreferenceClickListener(new OnPreferenceClickListener() { + @Override + public boolean onPreferenceClick(Preference preference) { + if (!mUploadVideoPath.endsWith(OCFile.PATH_SEPARATOR)) { + mUploadVideoPath += OCFile.PATH_SEPARATOR; + } + Intent intent = new Intent(Preferences.this, UploadPathActivity.class); + intent.putExtra(UploadPathActivity.KEY_INSTANT_UPLOAD_PATH, mUploadVideoPath); + startActivityForResult(intent, ACTION_SELECT_UPLOAD_VIDEO_PATH); + return true; + } + }); + } /* About App */ pAboutApp = (Preference) findPreference("about_app"); if (pAboutApp != null) { pAboutApp.setTitle(String.format(getString(R.string.about_android), getString(R.string.app_name))); - PackageInfo pkg; - try { - pkg = getPackageManager().getPackageInfo(getPackageName(), 0); - pAboutApp.setSummary(String.format(getString(R.string.about_version), pkg.versionName)); - } catch (NameNotFoundException e) { - Log_OC.e(TAG, "Error while showing about dialog", e); - } - } - - /* DISABLED FOR RELEASE UNTIL FIXED - pLogging = (CheckBoxPreference) findPreference("log_to_file"); - if (pLogging != null) { - pLogging.setOnPreferenceChangeListener(new OnPreferenceChangeListener() { - @Override - public boolean onPreferenceChange(Preference preference, Object newValue) { - - String logpath = Environment.getExternalStorageDirectory()+File.separator+"owncloud"+File.separator+"log"; - - if(!pLogging.isChecked()) { - Log_OC.d("Debug", "start logging"); - Log_OC.v("PATH", logpath); - Log_OC.startLogging(logpath); - } - else { - Log_OC.d("Debug", "stop logging"); - Log_OC.stopLogging(); - } - return true; - } - }); - } - - pLoggingHistory = (Preference) findPreference("log_history"); - if (pLoggingHistory != null) { - pLoggingHistory.setOnPreferenceClickListener(new OnPreferenceClickListener() { - - @Override - public boolean onPreferenceClick(Preference preference) { - Intent intent = new Intent(getApplicationContext(),LogHistoryActivity.class); - startActivity(intent); - return true; - } - }); + pAboutApp.setSummary(String.format(getString(R.string.about_version), appVersion)); } - */ - + + loadInstantUploadPath(); + loadInstantUploadVideoPath(); + + } + + @Override + protected void onPause() { + super.onPause(); } @Override @@ -400,6 +408,33 @@ 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){ + + OCFile folderToUpload = (OCFile) data.getParcelableExtra(UploadPathActivity.EXTRA_FOLDER); + + mUploadPath = folderToUpload.getRemotePath(); + + mUploadPath = DisplayUtils.getPathWithoutLastSlash(mUploadPath); + + // Show the path on summary preference + mPrefInstantUploadPath.setSummary(mUploadPath); + + saveInstantUploadPathOnPreferences(); + + } else if (requestCode == ACTION_SELECT_UPLOAD_VIDEO_PATH && resultCode == RESULT_OK){ + + OCFile folderToUploadVideo = (OCFile) data.getParcelableExtra(UploadPathActivity.EXTRA_FOLDER); + + mUploadVideoPath = folderToUploadVideo.getRemotePath(); + + mUploadVideoPath = DisplayUtils.getPathWithoutLastSlash(mUploadVideoPath); + + // Show the video path on summary preference + mPrefInstantVideoUploadPath.setSummary(mUploadVideoPath); + + saveInstantUploadVideoPathOnPreferences(); + } } @Override @@ -433,9 +468,10 @@ public class Preferences extends SherlockPreferenceActivity implements AccountMa else { for (Account a : accounts) { - LongClickableCheckBoxPreference accountPreference = new LongClickableCheckBoxPreference(this); + RadioButtonPreference accountPreference = new RadioButtonPreference(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 @@ -452,10 +488,25 @@ public class Preferences extends SherlockPreferenceActivity implements AccountMa AccountManager am = (AccountManager) getSystemService(ACCOUNT_SERVICE); Account accounts[] = am.getAccountsByType(MainApp.getAccountType()); for (Account a : accounts) { - CheckBoxPreference p = (CheckBoxPreference) findPreference(a.name); + RadioButtonPreference p = (RadioButtonPreference) findPreference(a.name); if (key.equals(a.name)) { + boolean accountChanged = !p.isChecked(); p.setChecked(true); - AccountUtils.setCurrentOwnCloudAccount(getApplicationContext(), a.name); + AccountUtils.setCurrentOwnCloudAccount( + getApplicationContext(), + a.name + ); + if (accountChanged) { + // restart the main activity + Intent i = new Intent( + Preferences.this, + FileDisplayActivity.class + ); + i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); + startActivity(i); + } else { + finish(); + } } else { p.setChecked(false); } @@ -495,22 +546,41 @@ public class Preferences extends SherlockPreferenceActivity implements AccountMa } - @Override - protected void onPause() { - if (this.isFinishing()) { - Account current = AccountUtils.getCurrentOwnCloudAccount(this); - if ((mPreviousAccount == null && current != null) - || (mPreviousAccount != null && !mPreviousAccount.equals(current))) { - // the account set as default changed since this activity was - // created - - // restart the main activity - Intent i = new Intent(this, FileDisplayActivity.class); - i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); - startActivity(i); - } - } - super.onPause(); + /** + * 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() { + SharedPreferences appPrefs = PreferenceManager.getDefaultSharedPreferences(getApplicationContext()); + SharedPreferences.Editor editor = appPrefs.edit(); + editor.putString("instant_upload_path", mUploadPath); + editor.commit(); } + /** + * Load upload video path set on preferences + */ + private void loadInstantUploadVideoPath() { + SharedPreferences appPrefs = PreferenceManager.getDefaultSharedPreferences(getApplicationContext()); + mUploadVideoPath = appPrefs.getString("instant_video_upload_path", getString(R.string.instant_upload_path)); + mPrefInstantVideoUploadPath.setSummary(mUploadVideoPath); + } + + /** + * Save the "Instant Video Upload Path" on preferences + */ + private void saveInstantUploadVideoPathOnPreferences() { + SharedPreferences appPrefs = PreferenceManager.getDefaultSharedPreferences(getApplicationContext()); + SharedPreferences.Editor editor = appPrefs.edit(); + editor.putString("instant_video_upload_path", mUploadVideoPath); + editor.commit(); + } }