X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/blobdiff_plain/a2de2f28ab6167e4003f0283b50b98dd0e73a598..28e4b355955c78b0336908bc28e7814c33a4a7a7:/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 3a5c5b4d..7a290738 100644 --- a/src/com/owncloud/android/ui/activity/Preferences.java +++ b/src/com/owncloud/android/ui/activity/Preferences.java @@ -53,7 +53,7 @@ import com.owncloud.android.authentication.AuthenticatorActivity; import com.owncloud.android.datamodel.OCFile; import com.owncloud.android.db.DbHandler; import com.owncloud.android.lib.common.utils.Log_OC; -import com.owncloud.android.ui.LongClickableCheckBoxPreference; +import com.owncloud.android.ui.RadioButtonPreference; import com.owncloud.android.utils.DisplayUtils; @@ -70,7 +70,6 @@ public class Preferences extends SherlockPreferenceActivity implements AccountMa 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 Preference pAboutApp; @@ -80,8 +79,13 @@ public class Preferences extends SherlockPreferenceActivity implements AccountMa private String mAccountName; private boolean mShowContextMenu = false; private String mUploadPath; + private PreferenceCategory mPrefInstantUploadCategory; + private Preference mPrefInstantUpload; private Preference mPrefInstantUploadPath; + private Preference mPrefInstantUploadPathWiFi; + private Preference mPrefInstantVideoUpload; private Preference mPrefInstantVideoUploadPath; + private Preference mPrefInstantVideoUploadPathWiFi; private String mUploadVideoPath; @@ -108,9 +112,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 = ((LongClickableCheckBoxPreference) obj).getKey(); + mAccountName = ((RadioButtonPreference) obj).getKey(); Preferences.this.openContextMenu(listView); @@ -120,7 +124,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()); @@ -209,7 +224,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); @@ -255,6 +270,9 @@ public class Preferences extends SherlockPreferenceActivity implements AccountMa 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); @@ -262,13 +280,32 @@ public class Preferences extends SherlockPreferenceActivity implements AccountMa } }); } - + + mPrefInstantUploadCategory = (PreferenceCategory) findPreference("instant_uploading_category"); + + mPrefInstantUploadPathWiFi = findPreference("instant_upload_on_wifi"); + mPrefInstantUpload = findPreference("instant_uploading"); + + toggleInstantPictureOptions(((CheckBoxPreference) mPrefInstantUpload).isChecked()); + + mPrefInstantUpload.setOnPreferenceChangeListener(new OnPreferenceChangeListener() { + + @Override + public boolean onPreferenceChange(Preference preference, Object newValue) { + toggleInstantPictureOptions((Boolean) newValue); + 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); @@ -276,24 +313,51 @@ public class Preferences extends SherlockPreferenceActivity implements AccountMa } }); } + + mPrefInstantVideoUploadPathWiFi = findPreference("instant_video_upload_on_wifi"); + mPrefInstantVideoUpload = findPreference("instant_video_uploading"); + toggleInstantVideoOptions(((CheckBoxPreference) mPrefInstantVideoUpload).isChecked()); + + mPrefInstantVideoUpload.setOnPreferenceChangeListener(new OnPreferenceChangeListener() { + + @Override + public boolean onPreferenceChange(Preference preference, Object newValue) { + toggleInstantVideoOptions((Boolean) newValue); + 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); - } + pAboutApp.setSummary(String.format(getString(R.string.about_version), appVersion)); } loadInstantUploadPath(); loadInstantUploadVideoPath(); } + + private void toggleInstantPictureOptions(Boolean value){ + if (value){ + mPrefInstantUploadCategory.addPreference(mPrefInstantUploadPathWiFi); + mPrefInstantUploadCategory.addPreference(mPrefInstantUploadPath); + } else { + mPrefInstantUploadCategory.removePreference(mPrefInstantUploadPathWiFi); + mPrefInstantUploadCategory.removePreference(mPrefInstantUploadPath); + } + } + + private void toggleInstantVideoOptions(Boolean value){ + if (value){ + mPrefInstantUploadCategory.addPreference(mPrefInstantVideoUploadPathWiFi); + mPrefInstantUploadCategory.addPreference(mPrefInstantVideoUploadPath); + } else { + mPrefInstantUploadCategory.removePreference(mPrefInstantVideoUploadPathWiFi); + mPrefInstantUploadCategory.removePreference(mPrefInstantVideoUploadPath); + } + } @Override protected void onPause() { @@ -399,21 +463,30 @@ public class Preferences extends SherlockPreferenceActivity implements AccountMa 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)){ + if (requestCode == ACTION_SELECT_UPLOAD_PATH && resultCode == RESULT_OK){ - OCFile folderToUpload = (OCFile) data.getParcelableExtra(UploadPathActivity.EXTRA_CURRENT_FOLDER); + 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 || - resultCode == UploadPathActivity.RESULT_OK_SET_UPLOAD_PATH)){ - OCFile folderToUploadVideo = (OCFile) data.getParcelableExtra(UploadPathActivity.EXTRA_CURRENT_FOLDER); + } 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(); } } @@ -449,7 +522,7 @@ 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); // Handle internationalized domain names accountPreference.setTitle(DisplayUtils.convertIdn(a.name, false)); @@ -469,7 +542,7 @@ 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); @@ -540,7 +613,6 @@ public class Preferences extends SherlockPreferenceActivity implements AccountMa * 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); @@ -560,7 +632,6 @@ public class Preferences extends SherlockPreferenceActivity implements AccountMa * Save the "Instant Video Upload Path" on preferences */ private void saveInstantUploadVideoPathOnPreferences() { - mPrefInstantVideoUploadPath.setSummary(mUploadVideoPath); SharedPreferences appPrefs = PreferenceManager.getDefaultSharedPreferences(getApplicationContext()); SharedPreferences.Editor editor = appPrefs.edit(); editor.putString("instant_video_upload_path", mUploadVideoPath);