package cri.sanity.screen; import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.preference.Preference; import cri.sanity.*; import cri.sanity.util.*; public class GeneralActivity extends ScreenActivity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Admin.prefSetup(pref("admin")); on(K.QUICK_START, new Change(){ public boolean on(){ final Context ctx = A.app(); final Intent i = new Intent(ctx, BootService.class); if((Boolean)value) ctx.startService(i); else ctx. stopService(i); return true; }}); on(K.FORCE_BT_AUDIO, new Change(){ public boolean on(){ if(!(Boolean)value) return true; Alert.msg( A.rawstr(R.raw.force_bt), new Alert.Click(){ public void on(){ setChecked(pref, true); }}, null, Alert.YESNO, false ); return false; }}); final Preference p = pref(K.REVERSE_PROXIMITY); p.setEnabled(p.isEnabled() && A.sensorProxim()!=null); on(p, new Change(){ public boolean on(){ if(!(Boolean)value) return true; Alert.msg( A.rawstr(R.raw.reverse_proximity), new Alert.Click(){ public void on(){ setChecked(pref, true); }}, null, Alert.YESNO, false ); return false; }}); on("profile", new Click(){ public boolean on(){ startActivity(new Intent(A.app(), ProfileActivity.class)); return true; }}); on("backup_prefs", new Click(){ public boolean on(){ Alert.msg( A.s(R.string.msg_backup_prefs), new Alert.Click(){ public void on(){ final boolean ok = P.backup(); A.toast(ok? R.string.msg_backup_success : R.string.msg_backup_failed); }}, new Alert.Click(){ public void on(){ if(!P.backupExists()) Alert.msg(A.s(R.string.msg_backup_no)); else { skipAllKeys = true; final boolean ok = P.restore(); A.toast(ok? R.string.msg_restore_success : R.string.msg_restore_failed); if(ok) updateScreenPrefs(); skipAllKeys = false; } }}, Alert.BAKRES ); return true; }}); on("reset_prefs", new Click(){ public boolean on(){ Alert.msg( A.rawstr(R.raw.reset), new Alert.Click(){ public void on(){ final boolean agree = A.is(K.AGREE); final String ver = A.gets(K.VER); final int btcount = A.geti(K.BT_COUNT); A.edit().clear(); P.setDefaults(); setChecked(K.ENABLED, A.isEnabled()); updateScreenPrefs(); A.put(K.AGREE,agree).put(K.VER,ver).putc(K.BT_COUNT,btcount); }}, null ); return true; }}); on("delete_filters", new Click(){ public boolean on(){ Alert.msg( A.rawstr(R.raw.delete_filters), new Alert.Click(){ public void on(){ P.removeFilters(); pref.setEnabled(false); }}, null ); return true; }}); } @Override public void onResume() { Admin.prefCheck(pref("admin")); super.onResume(); } private void updateScreenPrefs() { updatePrefs(K.FORCE_BT_AUDIO, K.REVERSE_PROXIMITY); updatePrefsNoDep(K.SILENT_LIMIT, K.AIRPLANE_LIMIT, K.PWD_CLEAR, K.PWD); } }