X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/blobdiff_plain/dbe0ff54aedb6eab3e9c596f48fc816ef7ee43e8..1587a1cdb5322a099298161db91207f1d6f48096:/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 f0e7d854..6310532f 100644 --- a/src/com/owncloud/android/ui/activity/Preferences.java +++ b/src/com/owncloud/android/ui/activity/Preferences.java @@ -35,6 +35,7 @@ import android.content.pm.PackageManager.NameNotFoundException; import android.content.res.Configuration; import android.net.Uri; import android.os.Bundle; +import android.os.Environment; import android.os.Handler; import android.os.IBinder; import android.preference.CheckBoxPreference; @@ -47,6 +48,7 @@ import android.preference.PreferenceManager; import android.support.annotation.LayoutRes; import android.support.annotation.Nullable; import android.support.v7.app.ActionBar; +import android.support.v7.app.AlertDialog; import android.support.v7.app.AppCompatDelegate; import android.support.v7.widget.Toolbar; import android.view.ContextMenu; @@ -58,6 +60,7 @@ import android.view.View; import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.AdapterView.OnItemLongClickListener; +import android.widget.ArrayAdapter; import android.widget.ListAdapter; import android.widget.ListView; @@ -74,6 +77,7 @@ import com.owncloud.android.files.services.FileDownloader; import com.owncloud.android.files.services.FileUploader; import com.owncloud.android.lib.common.utils.Log_OC; import com.owncloud.android.services.OperationsService; +import com.owncloud.android.ui.PreferenceWithLongSummary; import com.owncloud.android.ui.RadioButtonPreference; import com.owncloud.android.utils.DisplayUtils; @@ -114,6 +118,8 @@ public class Preferences extends PreferenceActivity protected FileDownloader.FileDownloaderBinder mDownloaderBinder = null; protected FileUploader.FileUploaderBinder mUploaderBinder = null; private ServiceConnection mDownloadServiceConnection, mUploadServiceConnection = null; + private PreferenceWithLongSummary mPrefStoragePath; + private String mStoragePath; @SuppressWarnings("deprecation") @Override @@ -151,7 +157,49 @@ public class Preferences extends PreferenceActivity mShowContextMenu = true; mAccountName = ((RadioButtonPreference) obj).getKey(); - Preferences.this.openContextMenu(listView); + String[] items = { + getResources().getString(R.string.change_password), + getResources().getString(R.string.delete_account) + }; + final AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(Preferences.this); + View convertView = getLayoutInflater().inflate(R.layout.alert_dialog_list_view, null); + alertDialogBuilder.setView(convertView); + ListView lv = (ListView) convertView.findViewById(R.id.list); + ArrayAdapter adapter = new ArrayAdapter( + Preferences.this,R.layout.simple_dialog_list_item,items); + lv.setAdapter(adapter); + + //Setup proper inline listener + final AlertDialog alertDialog = alertDialogBuilder.create(); + lv.setOnItemClickListener(new AdapterView.OnItemClickListener() { + @Override + public void onItemClick(AdapterView parent, View view, int position, long id) { + AccountManager am = (AccountManager) getSystemService(ACCOUNT_SERVICE); + Account accounts[] = am.getAccountsByType(MainApp.getAccountType()); + for (Account a : accounts) { + if (a.name.equals(mAccountName)) { + if (position==0) { + + // Change account password + Intent updateAccountCredentials = new Intent(Preferences.this, AuthenticatorActivity.class); + updateAccountCredentials.putExtra(AuthenticatorActivity.EXTRA_ACCOUNT, a); + updateAccountCredentials.putExtra(AuthenticatorActivity.EXTRA_ACTION, + AuthenticatorActivity.ACTION_UPDATE_TOKEN); + startActivity(updateAccountCredentials); + alertDialog.cancel(); + + } else if (position==1) { + + // Remove account + am.removeAccount(a, Preferences.this, mHandler); + Log_OC.d(TAG, "Remove an account " + a.name); + alertDialog.cancel(); + } + } + } + } + }); + alertDialog.show(); View.OnLongClickListener longListener = (View.OnLongClickListener) obj; return longListener.onLongClick(view); @@ -319,6 +367,32 @@ public class Preferences extends PreferenceActivity } } + mPrefStoragePath = (PreferenceWithLongSummary)findPreference("storage_path"); + if (mPrefStoragePath != null){ + + mPrefStoragePath.setOnPreferenceChangeListener(new OnPreferenceChangeListener() { + @Override + public boolean onPreferenceChange(Preference preference, Object newValue) { + MainApp.setStoragePath((String) newValue); + return true; + } + }); + +// mPrefStoragePath.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; +// } +// }); + } + mPrefInstantUploadPath = findPreference("instant_upload_path"); if (mPrefInstantUploadPath != null){ @@ -392,6 +466,7 @@ public class Preferences extends PreferenceActivity } loadInstantUploadPath(); + loadStoragePath(); loadInstantUploadVideoPath(); /* ComponentsGetter */ @@ -440,40 +515,6 @@ public class Preferences extends PreferenceActivity super.onCreateContextMenu(menu, v, menuInfo); } - /** - * Called when the user clicked on an item into the context menu created at - * {@link #onCreateContextMenu(ContextMenu, View, ContextMenuInfo)} for - * every ownCloud {@link Account} , containing 'secondary actions' for them. - * - * {@inheritDoc} - */ - @Override - public boolean onContextItemSelected(android.view.MenuItem item) { - AccountManager am = (AccountManager) getSystemService(ACCOUNT_SERVICE); - Account accounts[] = am.getAccountsByType(MainApp.getAccountType()); - for (Account a : accounts) { - if (a.name.equals(mAccountName)) { - if (item.getItemId() == R.id.change_password) { - - // Change account password - Intent updateAccountCredentials = new Intent(this, AuthenticatorActivity.class); - updateAccountCredentials.putExtra(AuthenticatorActivity.EXTRA_ACCOUNT, a); - updateAccountCredentials.putExtra(AuthenticatorActivity.EXTRA_ACTION, - AuthenticatorActivity.ACTION_UPDATE_TOKEN); - startActivity(updateAccountCredentials); - - } else if (item.getItemId() == R.id.delete_account) { - - // Remove account - am.removeAccount(a, this, mHandler); - Log_OC.d(TAG, "Remove an account " + a.name); - } - } - } - - return true; - } - @Override public void run(AccountManagerFuture future) { if (future.isDone()) { @@ -778,6 +819,17 @@ public class Preferences extends PreferenceActivity } /** + * Load storage path set on preferences + */ + private void loadStoragePath() { + SharedPreferences appPrefs = + PreferenceManager.getDefaultSharedPreferences(getApplicationContext()); + mStoragePath = appPrefs.getString("storage_path", Environment.getExternalStorageDirectory() + .getAbsolutePath()); + mPrefStoragePath.setSummary(mStoragePath); + } + + /** * Save the "Instant Upload Path" on preferences */ private void saveInstantUploadPathOnPreferences() { @@ -792,10 +844,7 @@ public class Preferences extends PreferenceActivity * 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); + mPrefInstantVideoUploadPath.setSummary(MainApp.getStoragePath()); } /**