am c538b651
: Fix some UI flow issues when the keystore is locked in WiFi setting.
Merge commit 'c538b651a23287ab25584995c6c4b7a68ece027c' * commit 'c538b651a23287ab25584995c6c4b7a68ece027c': Fix some UI flow issues when the keystore is locked in WiFi setting.
This commit is contained in:
@@ -217,6 +217,14 @@ public class AccessPointDialog extends AlertDialog implements DialogInterface.On
|
||||
setTitle(getContext().getString(titleId));
|
||||
}
|
||||
|
||||
public void enableEnterpriseFields() {
|
||||
setEnterpriseFieldsVisible(true);
|
||||
updateCertificateSelection();
|
||||
setGenericPasswordVisible(true);
|
||||
// Both WPA and WPA2 show the same caption, so either is ok
|
||||
updatePasswordCaption(AccessPointState.WPA);
|
||||
}
|
||||
|
||||
/** Called after flags are set, the dialog's layout/etc should be set up here */
|
||||
private void onLayout() {
|
||||
final Context context = getContext();
|
||||
@@ -318,6 +326,14 @@ public class AccessPointDialog extends AlertDialog implements DialogInterface.On
|
||||
if (mMode == MODE_CONFIGURE ||
|
||||
(mState.isEnterprise() && !mState.configured)) {
|
||||
setEnterpriseFields(view);
|
||||
updateCertificateSelection();
|
||||
}
|
||||
}
|
||||
|
||||
private void updateCertificateSelection() {
|
||||
setSpinnerAdapter(mClientCertSpinner, getAllUserCertificateKeys());
|
||||
setSpinnerAdapter(mCaCertSpinner, getAllCaCertificateKeys());
|
||||
|
||||
mPhase2Spinner.setSelection(getSelectionIndex(
|
||||
R.array.wifi_phase2_entries, mState.getPhase2()));
|
||||
mEapSpinner.setSelection(getSelectionIndex(
|
||||
@@ -329,7 +345,6 @@ public class AccessPointDialog extends AlertDialog implements DialogInterface.On
|
||||
getAllCaCertificateKeys(), mState.getEnterpriseField(
|
||||
AccessPointState.CA_CERT)));
|
||||
}
|
||||
}
|
||||
|
||||
private String[] getAllCaCertificateKeys() {
|
||||
return appendEmptyInSelection(mCertTool.getAllCaCertificateKeys());
|
||||
@@ -788,13 +803,9 @@ public class AccessPointDialog extends AlertDialog implements DialogInterface.On
|
||||
if (Keystore.getInstance().getState() != Keystore.UNLOCKED) {
|
||||
getContext().startActivity(new Intent(
|
||||
SecuritySettings.ACTION_UNLOCK_CREDENTIAL_STORAGE));
|
||||
mSecuritySpinner.setSelection(0);
|
||||
return;
|
||||
}
|
||||
setEnterpriseFieldsVisible(true);
|
||||
setGenericPasswordVisible(true);
|
||||
// Both WPA and WPA2 show the same caption, so either is ok
|
||||
updatePasswordCaption(AccessPointState.WPA);
|
||||
enableEnterpriseFields();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@@ -87,6 +87,9 @@ public class WifiSettings extends PreferenceActivity implements WifiLayer.Callba
|
||||
|
||||
private WeakHashMap<AccessPointState, AccessPointPreference> mAps;
|
||||
|
||||
private AccessPointState mResumeState = null;
|
||||
private int mResumeMode;
|
||||
|
||||
//============================
|
||||
// Wifi member variables
|
||||
//============================
|
||||
@@ -152,6 +155,20 @@ public class WifiSettings extends PreferenceActivity implements WifiLayer.Callba
|
||||
super.onResume();
|
||||
mWifiLayer.onResume();
|
||||
mWifiEnabler.resume();
|
||||
// do what we should have after keystore is unlocked.
|
||||
if (mResumeState != null) {
|
||||
if (Keystore.getInstance().getState() == Keystore.UNLOCKED) {
|
||||
showAccessPointDialog(mResumeState, mResumeMode);
|
||||
}
|
||||
mResumeMode = -1;
|
||||
mResumeState = null;
|
||||
} else {
|
||||
if (mResumeMode == AccessPointDialog.MODE_CONFIGURE) {
|
||||
if (Keystore.getInstance().getState() == Keystore.UNLOCKED) {
|
||||
((AccessPointDialog) mDialog).enableEnterpriseFields();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -231,6 +248,7 @@ public class WifiSettings extends PreferenceActivity implements WifiLayer.Callba
|
||||
public void onDismiss(DialogInterface dialog) {
|
||||
if (dialog == mDialog) {
|
||||
mDialog = null;
|
||||
mResumeMode = -1;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -350,6 +368,7 @@ public class WifiSettings extends PreferenceActivity implements WifiLayer.Callba
|
||||
dialog.setMode(AccessPointDialog.MODE_CONFIGURE);
|
||||
dialog.setTitle(R.string.wifi_add_other_network);
|
||||
dialog.setAutoSecurityAllowed(false);
|
||||
mResumeMode = AccessPointDialog.MODE_CONFIGURE;
|
||||
showDialog(dialog);
|
||||
}
|
||||
|
||||
@@ -358,6 +377,8 @@ public class WifiSettings extends PreferenceActivity implements WifiLayer.Callba
|
||||
Keystore.getInstance().getState() != Keystore.UNLOCKED) {
|
||||
startActivity(new Intent(
|
||||
SecuritySettings.ACTION_UNLOCK_CREDENTIAL_STORAGE));
|
||||
mResumeState = state;
|
||||
mResumeMode = mode;
|
||||
return;
|
||||
}
|
||||
AccessPointDialog dialog = new AccessPointDialog(this, mWifiLayer);
|
||||
|
Reference in New Issue
Block a user