X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/blobdiff_plain/9dd2cf294a5bd8427d344833f0098a1ab6800c98..c5d5b9d1d2e1697eaee5dbf4f933fd4c6d89d710:/src/eu/alefzero/owncloud/ui/activity/Preferences.java diff --git a/src/eu/alefzero/owncloud/ui/activity/Preferences.java b/src/eu/alefzero/owncloud/ui/activity/Preferences.java index 01a21ec6..e71dbdf0 100644 --- a/src/eu/alefzero/owncloud/ui/activity/Preferences.java +++ b/src/eu/alefzero/owncloud/ui/activity/Preferences.java @@ -17,20 +17,19 @@ */ package eu.alefzero.owncloud.ui.activity; -import java.net.URI; -import java.net.URISyntaxException; import java.util.Vector; import android.accounts.Account; import android.accounts.AccountManager; -import android.app.Activity; import android.content.Intent; +import android.content.SharedPreferences; import android.os.Bundle; import android.preference.CheckBoxPreference; import android.preference.ListPreference; import android.preference.Preference; +import android.preference.PreferenceManager; import android.preference.Preference.OnPreferenceChangeListener; -import android.preference.PreferenceScreen; +import android.preference.Preference.OnPreferenceClickListener; import android.util.Log; import android.view.ContextMenu; import android.view.ContextMenu.ContextMenuInfo; @@ -48,6 +47,7 @@ import eu.alefzero.owncloud.OwnCloudSession; import eu.alefzero.owncloud.R; import eu.alefzero.owncloud.authenticator.AccountAuthenticator; import eu.alefzero.owncloud.db.DbHandler; +import eu.alefzero.owncloud.syncadapter.FileSyncAdapter; /** * An Activity that allows the user to change the application's settings. @@ -56,7 +56,7 @@ import eu.alefzero.owncloud.db.DbHandler; * */ public class Preferences extends SherlockPreferenceActivity implements - OnPreferenceChangeListener { + OnPreferenceChangeListener{ private static final String TAG = "OwnCloudPreferences"; private final int mNewSession = 47; private final int mEditSession = 48; @@ -66,6 +66,7 @@ public class Preferences extends SherlockPreferenceActivity implements private ListPreference mAccountList; private ListPreference mTrackingUpdateInterval; private CheckBoxPreference mDeviceTracking; + private CheckBoxPreference pCode; private int mSelectedMenuItem; @Override @@ -74,34 +75,58 @@ public class Preferences extends SherlockPreferenceActivity implements mDbHandler = new DbHandler(getBaseContext()); mSessions = new Vector(); addPreferencesFromResource(R.xml.preferences); - registerForContextMenu(getListView()); populateAccountList(); ActionBar actionBar = getSherlock().getActionBar(); actionBar.setDisplayHomeAsUpEnabled(true); - } - - private void populateSessionList() { - mSessions.clear(); - mSessions = mDbHandler.getSessionList(); - PreferenceScreen ps = getPreferenceScreen(); - ps.removeAll(); - addPreferencesFromResource(R.xml.preferences); - for (int i = 0; i < mSessions.size(); i++) { - Preference preference = new Preference(getBaseContext()); - preference.setTitle(mSessions.get(i).getName()); - URI uri; - try { - uri = new URI(mSessions.get(i).getUrl()); - } catch (URISyntaxException e) { - e.printStackTrace(); // should never happen - continue; + Preference p = findPreference("manage_account"); + if (p != null) + p.setOnPreferenceClickListener(new OnPreferenceClickListener() { + @Override + public boolean onPreferenceClick(Preference preference) { + Intent i = new Intent(getApplicationContext(), AccountSelectActivity.class); + startActivity(i); + return true; } - preference.setSummary(uri.getScheme() + "://" + uri.getHost() - + uri.getPath()); - ps.addPreference(preference); + }); + + pCode = (CheckBoxPreference) findPreference("set_pincode"); + + + if (pCode != null){ + + pCode.setOnPreferenceChangeListener(new OnPreferenceChangeListener() { + @Override + public boolean onPreferenceChange(Preference preference, Object newValue) { + + Intent i = new Intent(getApplicationContext(), PinCodeActivity.class); + i.putExtra(PinCodeActivity.EXTRA_ACTIVITY, "preferences"); + i.putExtra(PinCodeActivity.EXTRA_NEW_STATE, newValue.toString()); + + startActivity(i); + + return true; + } + }); + } + + } + + + @Override + protected void onResume() { + // TODO Auto-generated method stub + SharedPreferences appPrefs = PreferenceManager + .getDefaultSharedPreferences(getApplicationContext()); + + boolean state = appPrefs.getBoolean("set_pincode", false); + pCode.setChecked(state); + + super.onResume(); } + + /** * Populates the account selector */ @@ -128,6 +153,8 @@ public class Preferences extends SherlockPreferenceActivity implements mAccountList.setEntryValues(accNames); } + + @Override public boolean onCreateOptionsMenu(Menu menu) { super.onCreateOptionsMenu(menu); @@ -157,13 +184,6 @@ public class Preferences extends SherlockPreferenceActivity implements .getUrl()); startActivityForResult(intent, mEditSession); break; - case R.id.SessionContextRemove: - OwnCloudSession ocs = mSessions.get(mSelectedMenuItem); - mDbHandler.removeSessionWithId(ocs.getEntryId()); - mSessions.remove(ocs); - getPreferenceScreen().removePreference( - getPreferenceScreen().getPreference(mSelectedMenuItem + 1)); - break; case android.R.id.home: intent = new Intent(getBaseContext(), FileDisplayActivity.class); intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); @@ -179,37 +199,6 @@ public class Preferences extends SherlockPreferenceActivity implements @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); - if (resultCode == Activity.RESULT_OK) { - switch (requestCode) { - case mNewSession: - mDbHandler.addSession(data.getStringExtra("sessionName"), - data.getStringExtra("sessionURL")); - getPreferenceScreen().removeAll(); - addPreferencesFromResource(R.xml.preferences); - populateSessionList(); - break; - case mEditSession: - mDbHandler.changeSessionFields( - data.getIntExtra("sessionId", -1), - data.getStringExtra("sessionName"), - data.getStringExtra("sessionURL")); - populateSessionList(); - break; - } - } - } - - @Override - public void onCreateContextMenu(ContextMenu menu, View v, - ContextMenuInfo menuInfo) { - super.onCreateContextMenu(menu, v, menuInfo); - AdapterContextMenuInfo info = (AdapterContextMenuInfo) menuInfo; - mSelectedMenuItem = info.position - 1; - menu.setHeaderTitle(mSessions.get(mSelectedMenuItem).getName()); - - MenuInflater inflater = getSherlock().getMenuInflater(); - inflater.inflate(R.menu.session_context_menu, (Menu) menu); - } @Override @@ -218,6 +207,8 @@ public class Preferences extends SherlockPreferenceActivity implements super.onDestroy(); } + + @Override /** * Updates various summaries after updates. Also starts and stops @@ -246,8 +237,10 @@ public class Preferences extends SherlockPreferenceActivity implements locationServiceIntent.putExtra("TRACKING_SETTING", (Boolean) newValue); sendBroadcast(locationServiceIntent); - } + } return true; } + + }