package org.ohmage.activity; import android.app.Dialog; import android.content.Intent; import android.os.Bundle; import android.preference.CheckBoxPreference; import android.preference.Preference; import android.preference.PreferenceActivity; import android.preference.PreferenceManager; import android.preference.PreferenceScreen; import org.ohmage.AccountActivityHelper; import org.ohmage.R; import org.ohmage.UserPreferencesHelper; import org.ohmage.logprobe.Analytics; import org.ohmage.logprobe.LogProbe.Status; public class AdminSettingsActivity extends PreferenceActivity { private static final String KEY_UPDATE_PASSWORD = "key_update_password"; private static final String KEY_LOGOUT = "key_logout"; private static final String KEY_QUERY_TEST = "key_querytest"; private static final String KEY_BASELINE_START_TIME = "key_baseline_start_time"; private static final String KEY_BASELINE_END_TIME = "key_baseline_end_time"; private static final CharSequence KEY_BASELINE_CLEAR = "key_baseline_clear"; private PreferenceScreen mUpdatePassword; private PreferenceScreen mLogout; private PreferenceScreen mQueryTest; private AccountActivityHelper mAccountHelper; private Preference mBaseLineClear; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setTitle(R.string.admin_settings); mAccountHelper = new AccountActivityHelper(this); PreferenceManager prefMgr = getPreferenceManager(); prefMgr.setSharedPreferencesName(UserPreferencesHelper.getPreferencesName(this)); prefMgr.setSharedPreferencesMode(MODE_PRIVATE); // Load the preferences from an XML resource addPreferencesFromResource(R.xml.admin_preferences); // We should make sure the state is always consistant with the UserPrefHelper since the defaults are set there UserPreferencesHelper userPrefHelper = new UserPreferencesHelper(this); ((CheckBoxPreference) findPreference(UserPreferencesHelper.KEY_SHOW_FEEDBACK)).setChecked(userPrefHelper.showFeedback()); ((CheckBoxPreference) findPreference(UserPreferencesHelper.KEY_SHOW_PROFILE)).setChecked(userPrefHelper.showProfile()); ((CheckBoxPreference) findPreference(UserPreferencesHelper.KEY_SHOW_UPLOAD_QUEUE)).setChecked(userPrefHelper.showUploadQueue()); ((CheckBoxPreference) findPreference(UserPreferencesHelper.KEY_SHOW_MOBILITY)).setChecked(userPrefHelper.showMobility()); ((CheckBoxPreference) findPreference(UserPreferencesHelper.KEY_SHOW_MOBILITY_FEEDBACK)).setChecked(userPrefHelper.showMobilityFeedback()); ((CheckBoxPreference) findPreference(UserPreferencesHelper.KEY_SINGLE_CAMPAIGN_MODE)).setChecked(userPrefHelper.isSingleCampaignMode()); mUpdatePassword = (PreferenceScreen) findPreference(KEY_UPDATE_PASSWORD); mUpdatePassword.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() { @Override public boolean onPreferenceClick(Preference preference) { mAccountHelper.updatePassword(); return true; } }); mLogout = (PreferenceScreen) findPreference(KEY_LOGOUT); mLogout.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() { @Override public boolean onPreferenceClick(Preference preference) { mAccountHelper.logout(); return true; } }); mQueryTest = (PreferenceScreen) findPreference(KEY_QUERY_TEST); mQueryTest.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() { @Override public boolean onPreferenceClick(Preference preference) { startActivity(new Intent(getBaseContext(), QueryTestActivity.class)); return true; } }); mBaseLineClear = findPreference(KEY_BASELINE_CLEAR); mBaseLineClear.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() { @Override public boolean onPreferenceClick(Preference preference) { UserPreferencesHelper.clearBaseLineTime(AdminSettingsActivity.this); findPreference(KEY_BASELINE_START_TIME).setSummary(null); findPreference(KEY_BASELINE_END_TIME).setSummary(null); return true; } }); } @Override public void onResume() { super.onResume(); Analytics.activity(this, Status.ON); } @Override protected void onPause() { super.onPause(); Analytics.activity(this, Status.OFF); } @Override protected void onPrepareDialog(int id, Dialog dialog, Bundle args) { mAccountHelper.onPrepareDialog(id, dialog); } @Override protected Dialog onCreateDialog(int id) { Dialog dialog = mAccountHelper.onCreateDialog(id); if(dialog == null) dialog = super.onCreateDialog(id); return dialog; } }