Show more graceful screens for "add network" flow
- use TableLayout instead of RelativeLayout for wifi configuration to align each columns appropriately. - split @id/type field into two fields in SetupWizard Bug: 3403168 Change-Id: I37f2c60ce1b0473af7d20dee1775e9893d2abade
This commit is contained in:
@@ -154,17 +154,21 @@ public class WifiConfigController implements TextWatcher,
|
||||
|
||||
if (mAccessPoint == null) { // new network
|
||||
mConfigUi.setTitle(R.string.wifi_add_network);
|
||||
mView.findViewById(R.id.type).setVisibility(View.VISIBLE);
|
||||
|
||||
mSsidView = (TextView) mView.findViewById(R.id.ssid);
|
||||
mSsidView.addTextChangedListener(this);
|
||||
mSecuritySpinner = ((Spinner) mView.findViewById(R.id.security));
|
||||
mSecuritySpinner.setOnItemSelectedListener(this);
|
||||
if (mInXlSetupWizard) {
|
||||
mView.findViewById(R.id.type_ssid).setVisibility(View.VISIBLE);
|
||||
mView.findViewById(R.id.type_security).setVisibility(View.VISIBLE);
|
||||
// We want custom layout. The content must be same as the other cases.
|
||||
mSecuritySpinner.setAdapter(
|
||||
new ArrayAdapter<String>(context, R.layout.wifi_setup_custom_list_item_1,
|
||||
android.R.id.text1,
|
||||
context.getResources().getStringArray(R.array.wifi_security)));
|
||||
} else {
|
||||
mView.findViewById(R.id.type).setVisibility(View.VISIBLE);
|
||||
}
|
||||
mConfigUi.setSubmitButton(context.getString(R.string.wifi_save));
|
||||
} else {
|
||||
@@ -512,7 +516,7 @@ public class WifiConfigController implements TextWatcher,
|
||||
return;
|
||||
}
|
||||
mView.findViewById(R.id.eap).setVisibility(View.VISIBLE);
|
||||
|
||||
|
||||
if (mEapMethodSpinner == null) {
|
||||
mEapMethodSpinner = (Spinner) mView.findViewById(R.id.method);
|
||||
mPhase2Spinner = (Spinner) mView.findViewById(R.id.phase2);
|
||||
@@ -537,7 +541,7 @@ public class WifiConfigController implements TextWatcher,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private void showNetworkSetupFields() {
|
||||
mView.findViewById(R.id.setup_fields).setVisibility(View.VISIBLE);
|
||||
|
||||
|
@@ -75,7 +75,7 @@ public class WifiConfigUiForSetupWizardXL implements WifiConfigUiBase, OnFocusCh
|
||||
|
||||
if (mView.findViewById(R.id.security_fields).getVisibility() == View.VISIBLE) {
|
||||
requestFocusAndShowKeyboard(R.id.password);
|
||||
} else if (mView.findViewById(R.id.type).getVisibility() == View.VISIBLE) {
|
||||
} else if (mView.findViewById(R.id.type_ssid).getVisibility() == View.VISIBLE) {
|
||||
// Add Network flow.
|
||||
requestFocusAndShowKeyboard(R.id.ssid);
|
||||
}
|
||||
@@ -93,12 +93,15 @@ public class WifiConfigUiForSetupWizardXL implements WifiConfigUiBase, OnFocusCh
|
||||
Log.w(TAG, "password field is not EditText");
|
||||
} else {
|
||||
if (viewToBeFocused.isFocused()) {
|
||||
mInputMethodManager.showSoftInput(viewToBeFocused, 0);
|
||||
Log.i(TAG, "Already focused");
|
||||
if (!mInputMethodManager.showSoftInput(viewToBeFocused, 0)) {
|
||||
Log.w(TAG, "Failed to show SoftInput");
|
||||
}
|
||||
} else {
|
||||
// After acquiring the focus, we show software keyboard.
|
||||
viewToBeFocused.setOnFocusChangeListener(this);
|
||||
final boolean requestFocusResult = viewToBeFocused.requestFocus();
|
||||
Log.i(TAG, String.format("Focus request %s.",
|
||||
Log.i(TAG, String.format("Focus request: %s",
|
||||
(requestFocusResult ? "successful" : "failed")));
|
||||
if (!requestFocusResult) {
|
||||
viewToBeFocused.setOnFocusChangeListener(null);
|
||||
|
@@ -505,12 +505,13 @@ public class WifiSettingsForSetupWizardXL extends Activity implements OnClickLis
|
||||
view.findViewById(R.id.ssid_layout).setVisibility(View.VISIBLE);
|
||||
|
||||
if (accessPointSecurity == AccessPoint.SECURITY_EAP) {
|
||||
setPaddingVisibility(View.VISIBLE);
|
||||
hideSoftwareKeyboard();
|
||||
|
||||
// In SetupWizard for XLarge screen, we don't have enough space for showing
|
||||
// configurations needed for EAP. We instead disable the whole feature there and let
|
||||
// users configure those networks after the setup.
|
||||
if (view.findViewById(R.id.type).getVisibility() == View.VISIBLE) {
|
||||
if (view.findViewById(R.id.type_ssid).getVisibility() == View.VISIBLE) {
|
||||
view.findViewById(R.id.eap_not_supported_for_add_network)
|
||||
.setVisibility(View.VISIBLE);
|
||||
} else {
|
||||
@@ -525,11 +526,26 @@ public class WifiSettingsForSetupWizardXL extends Activity implements OnClickLis
|
||||
return false;
|
||||
}
|
||||
|
||||
mConnectButton.setVisibility(View.VISIBLE);
|
||||
setPaddingVisibility(View.GONE);
|
||||
|
||||
// In "add network" flow, we'll see multiple initSecurityFields() calls with different
|
||||
// accessPointSecurity variable. We want to show software keyboard conditionally everytime
|
||||
// when this method is called.
|
||||
if (mWifiConfig != null) {
|
||||
if (accessPointSecurity == AccessPoint.SECURITY_PSK ||
|
||||
accessPointSecurity == AccessPoint.SECURITY_WEP) {
|
||||
mWifiConfig.requestFocusAndShowKeyboard(R.id.password);
|
||||
} else {
|
||||
mWifiConfig.requestFocusAndShowKeyboard(R.id.ssid);
|
||||
}
|
||||
}
|
||||
|
||||
// Let the caller init security fields.
|
||||
return true;
|
||||
}
|
||||
|
||||
/* package */ void onEapNetworkSelected() {
|
||||
private void onEapNetworkSelected() {
|
||||
mConnectButton.setVisibility(View.GONE);
|
||||
mBackButton.setText(R.string.wifi_setup_back);
|
||||
}
|
||||
|
Reference in New Issue
Block a user