X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/blobdiff_plain/e35e32ad52f3964a44f0f404adf699e0d18502de..4246701891d4f6e412e98bbba25be1c50b4e3e23:/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 6d677cd3..d7288c91 100644 --- a/src/com/owncloud/android/ui/activity/Preferences.java +++ b/src/com/owncloud/android/ui/activity/Preferences.java @@ -106,6 +106,8 @@ public class Preferences extends PreferenceActivity private static final int ACTION_SELECT_UPLOAD_PATH = 1; private static final int ACTION_SELECT_UPLOAD_VIDEO_PATH = 2; + private static final int ACTION_REQUEST_PASSCODE = 5; + private static final int ACTION_CONFIRM_PASSCODE = 6; private static final int ACTION_SELECT_STORAGE_PATH = 3; private static final int ACTION_PERFORM_MIGRATION = 4; @@ -121,6 +123,7 @@ public class Preferences extends PreferenceActivity private String mUploadPath; private PreferenceCategory mPrefInstantUploadCategory; private Preference mPrefInstantUpload; + private Preference mPrefInstantUploadBehaviour; private Preference mPrefInstantUploadPath; private Preference mPrefInstantUploadPathWiFi; private Preference mPrefInstantVideoUpload; @@ -134,6 +137,7 @@ public class Preferences extends PreferenceActivity private PreferenceWithLongSummary mPrefStoragePath; private String mStoragePath; + @SuppressWarnings("deprecation") @Override public void onCreate(Bundle savedInstanceState) { @@ -236,21 +240,25 @@ public class Preferences extends PreferenceActivity registerForContextMenu(getListView()); pCode = (CheckBoxPreference) findPreference("set_pincode"); - if (pCode != null){ + if (pCode != null) { pCode.setOnPreferenceChangeListener(new OnPreferenceChangeListener() { @Override public boolean onPreferenceChange(Preference preference, Object newValue) { Intent i = new Intent(getApplicationContext(), PassCodeActivity.class); - Boolean enable = (Boolean) newValue; + Boolean incoming = (Boolean) newValue; + i.setAction( - enable.booleanValue() ? PassCodeActivity.ACTION_ENABLE : - PassCodeActivity.ACTION_DISABLE + incoming.booleanValue() ? PassCodeActivity.ACTION_REQUEST_WITH_RESULT : + PassCodeActivity.ACTION_CHECK_WITH_RESULT ); - startActivity(i); - - return true; + + startActivityForResult(i, incoming.booleanValue() ? ACTION_REQUEST_PASSCODE : + ACTION_CONFIRM_PASSCODE); + + // Don't update just yet, we will decide on it in onActivityResult + return false; } - }); + }); } @@ -263,9 +271,9 @@ public class Preferences extends PreferenceActivity pCacheSize.setOnPreferenceChangeListener(new OnPreferenceChangeListener() { @Override public boolean onPreferenceChange(Preference preference, Object newValue) { - Long size = Long.decode((String) newValue); + int size = Integer.decode((String) newValue); if (ThumbnailsCacheManager.setMaxSize(size)){ - appPrefs.edit().putString("pref_cache_size", size.toString()); + appPrefs.edit().putInt("pref_cache_size", size); pCacheSize.setSummary(size + " MB"); return true; } else { @@ -454,6 +462,9 @@ public class Preferences extends PreferenceActivity @Override public boolean onPreferenceChange(Preference preference, Object newValue) { toggleInstantPictureOptions((Boolean) newValue); + toggleInstantUploadBehaviour( + ((CheckBoxPreference)mPrefInstantVideoUpload).isChecked(), + (Boolean) newValue); return true; } }); @@ -481,14 +492,22 @@ public class Preferences extends PreferenceActivity toggleInstantVideoOptions(((CheckBoxPreference) mPrefInstantVideoUpload).isChecked()); mPrefInstantVideoUpload.setOnPreferenceChangeListener(new OnPreferenceChangeListener() { - + @Override public boolean onPreferenceChange(Preference preference, Object newValue) { toggleInstantVideoOptions((Boolean) newValue); + toggleInstantUploadBehaviour( + (Boolean) newValue, + ((CheckBoxPreference) mPrefInstantUpload).isChecked()); return true; } }); - + + mPrefInstantUploadBehaviour = findPreference("prefs_instant_behaviour"); + toggleInstantUploadBehaviour( + ((CheckBoxPreference)mPrefInstantVideoUpload).isChecked(), + ((CheckBoxPreference)mPrefInstantUpload).isChecked()); + /* About App */ pAboutApp = findPreference("about_app"); if (pAboutApp != null) { @@ -600,6 +619,14 @@ public class Preferences extends PreferenceActivity } } + private void toggleInstantUploadBehaviour(Boolean video, Boolean picture){ + if (picture || video){ + mPrefInstantUploadCategory.addPreference(mPrefInstantUploadBehaviour); + } else { + mPrefInstantUploadCategory.removePreference(mPrefInstantUploadBehaviour); + } + } + @Override public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) { @@ -720,6 +747,29 @@ public class Preferences extends PreferenceActivity } else if (requestCode == ACTION_PERFORM_MIGRATION && resultCode == RESULT_OK) { String resultStorageDir = data.getStringExtra(StorageMigrationActivity.KEY_MIGRATION_TARGET_DIR); saveStoragePath(resultStorageDir); + } else if (requestCode == ACTION_REQUEST_PASSCODE && resultCode == RESULT_OK) { + String passcode = data.getStringExtra(PassCodeActivity.KEY_PASSCODE); + if (passcode != null && passcode.length() == 4) { + SharedPreferences.Editor appPrefs = PreferenceManager + .getDefaultSharedPreferences(getApplicationContext()).edit(); + + for (int i = 1; i <= 4; ++i) { + appPrefs.putString("PrefPinCode" + i, passcode.substring(i-1, i)); + } + appPrefs.putBoolean("set_pincode", true); + appPrefs.commit(); + Toast.makeText(this, R.string.pass_code_stored, Toast.LENGTH_LONG).show(); + } + } else if (requestCode == ACTION_CONFIRM_PASSCODE && resultCode == RESULT_OK) { + if (data.getBooleanExtra(PassCodeActivity.KEY_CHECK_RESULT, false)) { + + SharedPreferences.Editor appPrefs = PreferenceManager + .getDefaultSharedPreferences(getApplicationContext()).edit(); + appPrefs.putBoolean("set_pincode", false); + appPrefs.commit(); + + Toast.makeText(this, R.string.pass_code_removed, Toast.LENGTH_LONG).show(); + } } }