diff --git a/AndroidManifest.xml b/AndroidManifest.xml index 7f23ce01afe..7879d0c9885 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -315,6 +315,7 @@ diff --git a/res/layout/wifi_config_ui_for_setup_wizard.xml b/res/layout/wifi_config_ui_for_setup_wizard.xml index 698ce20d4f3..dc3d185a193 100644 --- a/res/layout/wifi_config_ui_for_setup_wizard.xml +++ b/res/layout/wifi_config_ui_for_setup_wizard.xml @@ -52,12 +52,13 @@ android:layout_height="wrap_content" android:orientation="vertical" android:visibility="gone"> - + android:textSize="20sp" + android:gravity="bottom" /> - + - + - + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - + android:paddingLeft="4dip" + android:textAppearance="?android:attr/textAppearanceMedium" + android:textSize="20sp" + android:gravity="left|center_vertical"/> + + diff --git a/src/com/android/settings/wifi/WifiConfigController.java b/src/com/android/settings/wifi/WifiConfigController.java index 7ab647e118b..3efedf604f9 100644 --- a/src/com/android/settings/wifi/WifiConfigController.java +++ b/src/com/android/settings/wifi/WifiConfigController.java @@ -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(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); diff --git a/src/com/android/settings/wifi/WifiConfigUiForSetupWizardXL.java b/src/com/android/settings/wifi/WifiConfigUiForSetupWizardXL.java index bffcc61f7e7..440e6946fce 100644 --- a/src/com/android/settings/wifi/WifiConfigUiForSetupWizardXL.java +++ b/src/com/android/settings/wifi/WifiConfigUiForSetupWizardXL.java @@ -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); diff --git a/src/com/android/settings/wifi/WifiSettingsForSetupWizardXL.java b/src/com/android/settings/wifi/WifiSettingsForSetupWizardXL.java index e8a6a2594bb..c50c030699a 100644 --- a/src/com/android/settings/wifi/WifiSettingsForSetupWizardXL.java +++ b/src/com/android/settings/wifi/WifiSettingsForSetupWizardXL.java @@ -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); }