Reduce the number of keystore connections to 1

at entering the security settings.
This commit is contained in:
Hung-ying Tyan
2009-08-02 20:28:54 +08:00
parent 38322393a6
commit 233991a242

View File

@@ -233,10 +233,10 @@ public class SecuritySettings extends PreferenceActivity implements
PreferenceCategory credStoreCat = new PreferenceCategory(this);
credStoreCat.setTitle(R.string.cstor_settings_category);
root.addPreference(credStoreCat);
boolean i = mCstorHelper.isCstorInitialized();
credStoreCat.addPreference(mCstorHelper.createAccessCheckBox(i));
int s = mCstorHelper.getCstorState();
credStoreCat.addPreference(mCstorHelper.createAccessCheckBox(s));
credStoreCat.addPreference(mCstorHelper.createSetPasswordPreference());
credStoreCat.addPreference(mCstorHelper.createResetPreference(i));
credStoreCat.addPreference(mCstorHelper.createResetPreference(s));
return root;
}
@@ -486,6 +486,10 @@ public class SecuritySettings extends PreferenceActivity implements
}
}
private int getCstorState() {
return mKeystore.getState();
}
private boolean isCstorUnlocked() {
return (mKeystore.getState() == Keystore.UNLOCKED);
}
@@ -794,27 +798,25 @@ public class SecuritySettings extends PreferenceActivity implements
mResetButton.setEnabled(enabled);
}
private Preference createAccessCheckBox(boolean isInitialized) {
private Preference createAccessCheckBox(int state) {
CheckBoxPreference pref = new CheckBoxPreference(
SecuritySettings.this);
pref.setTitle(R.string.cstor_access_title);
pref.setSummary(R.string.cstor_access_summary);
if (isInitialized) pref.setChecked(isCstorUnlocked());
pref.setEnabled(state != Keystore.UNINITIALIZED);
pref.setChecked(state == Keystore.UNLOCKED);
pref.setOnPreferenceChangeListener(
new Preference.OnPreferenceChangeListener() {
public boolean onPreferenceChange(
Preference pref, Object value) {
if (((Boolean) value)) {
showCstorDialog(isCstorInitialized()
? CSTOR_UNLOCK_DIALOG
: CSTOR_INIT_DIALOG);
showCstorDialog(CSTOR_UNLOCK_DIALOG);
} else {
lockCstor();
}
return true;
}
});
pref.setEnabled(isInitialized);
mAccessCheckBox = pref;
return pref;
}
@@ -835,7 +837,7 @@ public class SecuritySettings extends PreferenceActivity implements
return pref;
}
private Preference createResetPreference(boolean isInitialized) {
private Preference createResetPreference(int state) {
Preference pref = new Preference(SecuritySettings.this);
pref.setTitle(R.string.cstor_reset_title);
pref.setSummary(R.string.cstor_reset_summary);
@@ -846,7 +848,7 @@ public class SecuritySettings extends PreferenceActivity implements
return true;
}
});
pref.setEnabled(isInitialized);
pref.setEnabled(state != Keystore.UNINITIALIZED);
mResetButton = pref;
return pref;
}