- return true;\r
- }\r
-\r
- @Override\r
- protected void onActivityResult(int requestCode, int resultCode, Intent data) {\r
- super.onActivityResult(requestCode, resultCode, data);\r
- if (resultCode == Activity.RESULT_OK) {\r
- switch (requestCode) {\r
- case mNewSession:\r
- mDbHandler.addSession(data.getStringExtra("sessionName"), \r
- data.getStringExtra("sessionURL"));\r
- getPreferenceScreen().removeAll();\r
- addPreferencesFromResource(R.xml.preferences);\r
- populateSessionList();\r
- break;\r
- case mEditSession:\r
- mDbHandler.changeSessionFields(data.getIntExtra("sessionId", -1),\r
- data.getStringExtra("sessionName"),\r
- data.getStringExtra("sessionURL"));\r
- populateSessionList();\r
- break;\r
- }\r
+\r
+ /**\r
+ * Populates the account selector\r
+ */\r
+ private void populateAccountList() {\r
+ AccountManager accMan = AccountManager.get(this);\r
+ mAccounts = accMan.getAccountsByType(AccountAuthenticator.ACCOUNT_TYPE);\r
+ mAccountList = (ListPreference) findPreference("select_oc_account");\r
+ mAccountList.setOnPreferenceChangeListener(this);\r
+\r
+ // Display the name of the current account if there is any\r
+ Account defaultAccount = AccountUtils.getCurrentOwnCloudAccount(this);\r
+ if (defaultAccount != null) {\r
+ mAccountList.setSummary(defaultAccount.name);\r
+ }\r
+\r
+ // Transform accounts into array of string for preferences to use\r
+ String[] accNames = new String[mAccounts.length];\r
+ for (int i = 0; i < mAccounts.length; i++) {\r
+ Account account = mAccounts[i];\r
+ accNames[i] = account.name;\r
+ }\r
+\r
+ mAccountList.setEntries(accNames);\r
+ mAccountList.setEntryValues(accNames);\r
+ }\r
+\r
+ @Override\r
+ public boolean onCreateOptionsMenu(Menu menu) {\r
+ super.onCreateOptionsMenu(menu);\r
+ //MenuInflater inflater = getSherlock().getMenuInflater();\r
+ //inflater.inflate(R.menu.prefs_menu, menu);\r
+ return true;\r
+ }\r
+\r
+ @Override\r
+ public boolean onMenuItemSelected(int featureId, MenuItem item) {\r
+ super.onMenuItemSelected(featureId, item);\r
+ Intent intent;\r
+\r
+ switch (item.getItemId()) {\r
+ //case R.id.addSessionItem:\r
+ case 1:\r
+ intent = new Intent(this, PreferencesNewSession.class);\r
+ startActivityForResult(intent, mNewSession);\r
+ break;\r
+ case R.id.SessionContextEdit:\r
+ intent = new Intent(this, PreferencesNewSession.class);\r
+ intent.putExtra("sessionId", mSessions.get(mSelectedMenuItem)\r
+ .getEntryId());\r
+ intent.putExtra("sessionName", mSessions.get(mSelectedMenuItem)\r
+ .getName());\r
+ intent.putExtra("sessionURL", mSessions.get(mSelectedMenuItem)\r
+ .getUrl());\r
+ startActivityForResult(intent, mEditSession);\r
+ break;\r
+ case R.id.SessionContextRemove:\r
+ OwnCloudSession ocs = mSessions.get(mSelectedMenuItem);\r
+ mDbHandler.removeSessionWithId(ocs.getEntryId());\r
+ mSessions.remove(ocs);\r
+ getPreferenceScreen().removePreference(\r
+ getPreferenceScreen().getPreference(mSelectedMenuItem + 1));\r
+ break;\r
+ case android.R.id.home:\r
+ intent = new Intent(getBaseContext(), LandingActivity.class);\r
+ intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);\r
+ startActivity(intent);\r
+ break;\r
+ default:\r
+ Log.w(TAG, "Unknown menu item triggered");\r
+ return false;\r
+ }\r
+ return true;\r
+ }\r
+\r
+ @Override\r
+ protected void onActivityResult(int requestCode, int resultCode, Intent data) {\r
+ super.onActivityResult(requestCode, resultCode, data);\r
+ if (resultCode == Activity.RESULT_OK) {\r
+ switch (requestCode) {\r
+ case mNewSession:\r
+ mDbHandler.addSession(data.getStringExtra("sessionName"),\r
+ data.getStringExtra("sessionURL"));\r
+ getPreferenceScreen().removeAll();\r
+ addPreferencesFromResource(R.xml.preferences);\r
+ populateSessionList();\r
+ break;\r
+ case mEditSession:\r
+ mDbHandler.changeSessionFields(\r
+ data.getIntExtra("sessionId", -1),\r
+ data.getStringExtra("sessionName"),\r
+ data.getStringExtra("sessionURL"));\r
+ populateSessionList();\r
+ break;\r
+ }\r
+ }\r