- }\r
-\r
- @Override\r
- public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {\r
- super.onCreateContextMenu(menu, v, menuInfo);\r
- AdapterContextMenuInfo info = (AdapterContextMenuInfo) menuInfo;\r
- mSelectedMenuItem = info.position-1;\r
- menu.setHeaderTitle(mSessions.get(mSelectedMenuItem).getName());\r
- \r
- MenuInflater inflater = getSherlock().getMenuInflater();\r
- inflater.inflate(R.menu.session_context_menu, (Menu) menu);\r
- \r
- }\r
- \r
- @Override\r
- protected void onDestroy() {\r
- mDbHandler.close();\r
- super.onDestroy();\r
- }\r
-\r
-@Override\r
-/**\r
- * Updates the summary of the account selector after a new account has \r
- * been selected\r
- */\r
-public boolean onPreferenceChange(Preference preference, Object newValue) {\r
- if(preference.equals(mAccountList)) {\r
- mAccountList.setSummary(newValue.toString());\r
- }\r
- return true;\r
-}\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
+ }\r
+\r
+ @Override\r
+ public void onCreateContextMenu(ContextMenu menu, View v,\r
+ ContextMenuInfo menuInfo) {\r
+ super.onCreateContextMenu(menu, v, menuInfo);\r
+ AdapterContextMenuInfo info = (AdapterContextMenuInfo) menuInfo;\r
+ mSelectedMenuItem = info.position - 1;\r
+ menu.setHeaderTitle(mSessions.get(mSelectedMenuItem).getName());\r
+\r
+ MenuInflater inflater = getSherlock().getMenuInflater();\r
+ inflater.inflate(R.menu.session_context_menu, (Menu) menu);\r
+\r
+ }\r
+\r
+ @Override\r
+ protected void onDestroy() {\r
+ mDbHandler.close();\r
+ super.onDestroy();\r
+ }\r
+\r
+ @Override\r
+ /**\r
+ * Updates various summaries after updates. Also starts and stops \r
+ * the\r
+ */\r
+ public boolean onPreferenceChange(Preference preference, Object newValue) {\r
+ // Update current account summary\r
+ if (preference.equals(mAccountList)) {\r
+ mAccountList.setSummary(newValue.toString());\r
+ }\r
+\r
+ // Update tracking interval summary\r
+ else if (preference.equals(mTrackingUpdateInterval)) {\r
+ String trackingSummary = getResources().getString(\r
+ R.string.prefs_trackmydevice_interval_summary);\r
+ trackingSummary = String.format(trackingSummary,\r
+ newValue.toString());\r
+ mTrackingUpdateInterval.setSummary(trackingSummary);\r
+ }\r
+\r
+ // Start or stop tracking service\r
+ else if (preference.equals(mDeviceTracking)) {\r
+ Intent locationServiceIntent = new Intent();\r
+ locationServiceIntent\r
+ .setAction("eu.alefzero.owncloud.location.LocationLauncher");\r
+ locationServiceIntent.putExtra("TRACKING_SETTING",\r
+ (Boolean) newValue);\r
+ sendBroadcast(locationServiceIntent);\r
+ }\r
+ return true;\r
+ }\r
+\r