Revise layout for Wifi Setup in XLarge screen

- revise xml for new layout
- introduce padding View objects for resizing screen when
  software keyboard is shown.
- We now don't show the detailed status of Wi-Fi module anymore
  in SetupWizard flow (like "disconnected", "connecting", etc.)
- remove Forget button and relevant code.

Bug: 3347865
Change-Id: Ieab3246f06ee73af59e247b3f9f31c7570efc71f
This commit is contained in:
Daisuke Miyakawa
2011-01-12 21:19:24 -08:00
parent 3b9b6533a5
commit 14cbcb7fe8
7 changed files with 308 additions and 272 deletions

View File

@@ -18,7 +18,6 @@ package com.android.settings.wifi;
import com.android.settings.R;
import android.app.Activity;
import android.content.Context;
import android.os.Handler;
import android.util.Log;
@@ -38,16 +37,17 @@ public class WifiConfigUiForSetupWizardXL implements WifiConfigUiBase, OnFocusCh
private static final String TAG = "SetupWizard";
private Button mConnectButton;
private Button mForgetButton;
private Button mCancelButton;
private final Activity mActivity;
private final WifiSettingsForSetupWizardXL mActivity;
private View mView;
private WifiConfigController mController;
private AccessPoint mAccessPoint;
private boolean mEdit;
private Handler mHandler = new Handler();
private final InputMethodManager mInputMethodManager;
private LayoutInflater mInflater;
/**
@@ -58,10 +58,10 @@ public class WifiConfigUiForSetupWizardXL implements WifiConfigUiBase, OnFocusCh
* @param edit
*/
public WifiConfigUiForSetupWizardXL(
Activity activity, ViewGroup parent, AccessPoint accessPoint, boolean edit) {
WifiSettingsForSetupWizardXL activity, ViewGroup parent,
AccessPoint accessPoint, boolean edit) {
mActivity = activity;
mConnectButton = (Button)activity.findViewById(R.id.wifi_setup_connect);
mForgetButton = (Button)activity.findViewById(R.id.wifi_setup_forget);
mCancelButton = (Button)activity.findViewById(R.id.wifi_setup_cancel);
mAccessPoint = accessPoint;
mEdit = edit;
@@ -70,12 +70,14 @@ public class WifiConfigUiForSetupWizardXL implements WifiConfigUiBase, OnFocusCh
mView = mInflater.inflate(R.layout.wifi_config_ui_for_setup_wizard, parent, true);
mController = new WifiConfigController(this, mView, mAccessPoint, edit);
// Assumes R.id.password is inside security_fields.
// TODO: confirm it is ok to assume R.id.password is the only EditText to be focused, and
// R.id.security_fields is the only parent for possible EditTexts. Possibly we need to
// check parentand detect visibility manually.
mInputMethodManager = (InputMethodManager)
activity.getSystemService(Context.INPUT_METHOD_SERVICE);
if (mView.findViewById(R.id.security_fields).getVisibility() == View.VISIBLE) {
requestFocusAndShowKeyboard(R.id.password);
} else if (mView.findViewById(R.id.type).getVisibility() == View.VISIBLE) {
// Add Network flow.
requestFocusAndShowKeyboard(R.id.ssid);
}
}
@@ -90,13 +92,17 @@ public class WifiConfigUiForSetupWizardXL implements WifiConfigUiBase, OnFocusCh
} else if (!(viewToBeFocused instanceof EditText)) {
Log.w(TAG, "password field is not EditText");
} 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.",
(requestFocusResult ? "successful" : "failed")));
if (!requestFocusResult) {
viewToBeFocused.setOnFocusChangeListener(null);
if (viewToBeFocused.isFocused()) {
mInputMethodManager.showSoftInput(viewToBeFocused, 0);
} 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.",
(requestFocusResult ? "successful" : "failed")));
if (!requestFocusResult) {
viewToBeFocused.setOnFocusChangeListener(null);
}
}
}
}
@@ -131,7 +137,7 @@ public class WifiConfigUiForSetupWizardXL implements WifiConfigUiBase, OnFocusCh
@Override
public Button getForgetButton() {
return mForgetButton;
return null;
}
@Override
@@ -143,16 +149,11 @@ public class WifiConfigUiForSetupWizardXL implements WifiConfigUiBase, OnFocusCh
public void setSubmitButton(CharSequence text) {
mConnectButton.setVisibility(View.VISIBLE);
mConnectButton.setText(text);
// test
mForgetButton.setVisibility(View.GONE);
}
@Override
public void setForgetButton(CharSequence text) {
// In XL setup screen, we won't show Forget button for simplifying the UI.
// mForgetButton.setVisibility(View.VISIBLE);
// mForgetButton.setText(text);
}
@Override
@@ -177,12 +178,9 @@ public class WifiConfigUiForSetupWizardXL implements WifiConfigUiBase, OnFocusCh
Log.d(TAG, "Ignoring setTitle");
}
private static class FocusRunnable implements Runnable {
final InputMethodManager mInputMethodManager;
private class FocusRunnable implements Runnable {
final View mViewToBeFocused;
public FocusRunnable(Context context, View viewToBeFocused) {
mInputMethodManager = (InputMethodManager)
context.getSystemService(Context.INPUT_METHOD_SERVICE);
public FocusRunnable(View viewToBeFocused) {
mViewToBeFocused = viewToBeFocused;
}
@@ -191,7 +189,9 @@ public class WifiConfigUiForSetupWizardXL implements WifiConfigUiBase, OnFocusCh
// mInputMethodManager.focusIn(mViewToBeFocused);
final boolean showSoftInputResult =
mInputMethodManager.showSoftInput(mViewToBeFocused, 0);
if (!showSoftInputResult) {
if (showSoftInputResult) {
mActivity.setPaddingVisibility(View.GONE);
} else {
Log.w(TAG, "Failed to show software keyboard ");
}
}
@@ -201,7 +201,7 @@ public class WifiConfigUiForSetupWizardXL implements WifiConfigUiBase, OnFocusCh
public void onFocusChange(View view, boolean hasFocus) {
view.setOnFocusChangeListener(null);
if (hasFocus) {
mHandler.post(new FocusRunnable(mActivity, view));
mHandler.post(new FocusRunnable(view));
}
}
}