summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorDaisuke Miyakawa <dmiyakawa@google.com>2011-01-17 14:17:10 -0800
committerAndroid (Google) Code Review <android-gerrit@google.com>2011-01-17 14:17:10 -0800
commitc69e178350121bfa3a4cc7a6efc7717a9d9a8b14 (patch)
tree3bdeeb73266a733af9e345b5a6944c12dce402b3 /src
parent5be37c28f8e6a5b69a872656734ae15b7d9ae1ef (diff)
parent14cbcb7fe88dab90cb50efa3a09869bc48297170 (diff)
downloadpackages_apps_Settings-c69e178350121bfa3a4cc7a6efc7717a9d9a8b14.zip
packages_apps_Settings-c69e178350121bfa3a4cc7a6efc7717a9d9a8b14.tar.gz
packages_apps_Settings-c69e178350121bfa3a4cc7a6efc7717a9d9a8b14.tar.bz2
Merge "Revise layout for Wifi Setup in XLarge screen" into honeycomb
Diffstat (limited to 'src')
-rw-r--r--src/com/android/settings/wifi/WifiConfigUiBase.java2
-rw-r--r--src/com/android/settings/wifi/WifiConfigUiForSetupWizardXL.java58
-rw-r--r--src/com/android/settings/wifi/WifiSettings.java2
-rw-r--r--src/com/android/settings/wifi/WifiSettingsForSetupWizardXL.java153
4 files changed, 118 insertions, 97 deletions
diff --git a/src/com/android/settings/wifi/WifiConfigUiBase.java b/src/com/android/settings/wifi/WifiConfigUiBase.java
index d930b58..11dcc00 100644
--- a/src/com/android/settings/wifi/WifiConfigUiBase.java
+++ b/src/com/android/settings/wifi/WifiConfigUiBase.java
@@ -22,7 +22,7 @@ import android.widget.Button;
/**
* Foundation interface glues between Activities and UIs like
- * {@link WifiDialog} or {@link WifiConfigPreference}.
+ * {@link WifiDialog} or {@link WifiConfigUiForSetupWizardXL}.
*/
public interface WifiConfigUiBase {
public Context getContext();
diff --git a/src/com/android/settings/wifi/WifiConfigUiForSetupWizardXL.java b/src/com/android/settings/wifi/WifiConfigUiForSetupWizardXL.java
index bbd8f80..bffcc61 100644
--- a/src/com/android/settings/wifi/WifiConfigUiForSetupWizardXL.java
+++ b/src/com/android/settings/wifi/WifiConfigUiForSetupWizardXL.java
@@ -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));
}
}
} \ No newline at end of file
diff --git a/src/com/android/settings/wifi/WifiSettings.java b/src/com/android/settings/wifi/WifiSettings.java
index ffe48a9..ccc40fb 100644
--- a/src/com/android/settings/wifi/WifiSettings.java
+++ b/src/com/android/settings/wifi/WifiSettings.java
@@ -567,7 +567,7 @@ public class WifiSettings extends SettingsPreferenceFragment
public void onClick(DialogInterface dialogInterface, int button) {
if (mInXlSetupWizard) {
if (button == WifiDialog.BUTTON_FORGET && mSelectedAccessPoint != null) {
- ((WifiSettingsForSetupWizardXL)getActivity()).onForgetButtonPressed();
+ forget();
} else if (button == WifiDialog.BUTTON_SUBMIT) {
((WifiSettingsForSetupWizardXL)getActivity()).onConnectButtonPressed();
}
diff --git a/src/com/android/settings/wifi/WifiSettingsForSetupWizardXL.java b/src/com/android/settings/wifi/WifiSettingsForSetupWizardXL.java
index 7fccce0..59d61ab 100644
--- a/src/com/android/settings/wifi/WifiSettingsForSetupWizardXL.java
+++ b/src/com/android/settings/wifi/WifiSettingsForSetupWizardXL.java
@@ -29,10 +29,10 @@ import android.os.Handler;
import android.preference.PreferenceCategory;
import android.text.TextUtils;
import android.util.Log;
-import android.view.View;
+import android.view.ContextMenu;
import android.view.ContextMenu.ContextMenuInfo;
+import android.view.View;
import android.view.View.OnClickListener;
-import android.view.ContextMenu;
import android.view.ViewGroup;
import android.view.Window;
import android.view.WindowManager;
@@ -69,16 +69,31 @@ public class WifiSettingsForSetupWizardXL extends Activity implements OnClickLis
private WifiManager mWifiManager;
- private TextView mProgressText;
+ /**
+ * Used for resizing a padding above title. Hiden when software keyboard is shown.
+ */
+ private View mTopPadding;
+
+ /**
+ * Used for resizing a padding inside Config UI. Hiden when software keyboard is shown.
+ */
+ private View mWifiConfigPadding;
+
+ private TextView mTitleView;
+ /**
+ * The name of a network currently connecting, or trying to connect.
+ * This may be empty ("") at first, and updated when configuration is changed.
+ */
+ private CharSequence mNetworkName = "";
+ private CharSequence mEditingTitle;
+
private ProgressBar mProgressBar;
private WifiSettings mWifiSettings;
- private TextView mStatusText;
private Button mAddNetworkButton;
private Button mRefreshButton;
private Button mSkipOrNextButton;
private Button mConnectButton;
- private Button mForgetButton;
private Button mBackButton;
// true when a user already pressed "Connect" button and waiting for connection.
@@ -130,14 +145,11 @@ public class WifiSettingsForSetupWizardXL extends Activity implements OnClickLis
}
public void setup() {
- mProgressText = (TextView)findViewById(R.id.scanning_progress_text);
+ mTitleView = (TextView)findViewById(R.id.wifi_setup_title);
mProgressBar = (ProgressBar)findViewById(R.id.scanning_progress_bar);
mProgressBar.setMax(2);
- mStatusText = (TextView)findViewById(R.id.wifi_setup_status);
- mProgressText.setText(Summary.get(this, DetailedState.SCANNING));
mProgressBar.setIndeterminate(true);
- mStatusText.setText(R.string.wifi_setup_status_scanning);
mAddNetworkButton = (Button)findViewById(R.id.wifi_setup_add_network);
mAddNetworkButton.setOnClickListener(this);
@@ -147,11 +159,12 @@ public class WifiSettingsForSetupWizardXL extends Activity implements OnClickLis
mSkipOrNextButton.setOnClickListener(this);
mConnectButton = (Button)findViewById(R.id.wifi_setup_connect);
mConnectButton.setOnClickListener(this);
- mForgetButton = (Button)findViewById(R.id.wifi_setup_forget);
- mForgetButton.setOnClickListener(this);
mBackButton = (Button)findViewById(R.id.wifi_setup_cancel);
mBackButton.setOnClickListener(this);
+ mTopPadding = findViewById(R.id.top_padding);
+ mWifiConfigPadding = findViewById(R.id.wifi_config_padding);
+
// At first, Wifi module doesn't return SCANNING state (it's too early), so we manually
// show it.
showScanningStatus();
@@ -163,8 +176,8 @@ public class WifiSettingsForSetupWizardXL extends Activity implements OnClickLis
mRefreshButton.setVisibility(View.VISIBLE);
mSkipOrNextButton.setVisibility(View.VISIBLE);
mConnectButton.setVisibility(View.GONE);
- mForgetButton.setVisibility(View.GONE);
mBackButton.setVisibility(View.GONE);
+ setPaddingVisibility(View.VISIBLE, View.GONE);
}
@Override
@@ -188,9 +201,6 @@ public class WifiSettingsForSetupWizardXL extends Activity implements OnClickLis
} else if (view == mConnectButton) {
if (DEBUG) Log.d(TAG, "Connect button pressed");
onConnectButtonPressed();
- } else if (view == mForgetButton) {
- if (DEBUG) Log.d(TAG, "Forget button pressed");
- onForgetButtonPressed();
} else if (view == mBackButton) {
if (DEBUG) Log.d(TAG, "Back button pressed");
onBackButtonPressed();
@@ -222,7 +232,6 @@ public class WifiSettingsForSetupWizardXL extends Activity implements OnClickLis
// no visible network on the list.
if (mWifiSettings.getAccessPointsCount() == 0) {
mProgressBar.setIndeterminate(true);
- mProgressText.setText(Summary.get(this, DetailedState.SCANNING));
} else {
// Users already connected to a network, or see available networks.
mProgressBar.setIndeterminate(false);
@@ -234,14 +243,14 @@ public class WifiSettingsForSetupWizardXL extends Activity implements OnClickLis
break;
}
case CONNECTED: {
+ hideSoftwareKeyboard();
+
// If the device is already connected to a wifi without users' "Connect" request,
// this can be false here. We want to treat it as "after connect action".
mAfterConnectAction = true;
mProgressBar.setIndeterminate(false);
mProgressBar.setProgress(2);
- mProgressText.setText(Summary.get(this, state));
- mStatusText.setText(R.string.wifi_setup_status_proceed_to_next);
mConnectButton.setVisibility(View.GONE);
mAddNetworkButton.setVisibility(View.GONE);
@@ -250,8 +259,6 @@ public class WifiSettingsForSetupWizardXL extends Activity implements OnClickLis
mSkipOrNextButton.setVisibility(View.VISIBLE);
mSkipOrNextButton.setEnabled(true);
mHandler.removeCallbacks(mSkipButtonEnabler);
-
- mProgressText.setText(Summary.get(this, state));
break;
}
default: // DISCONNECTED, FAILED
@@ -264,31 +271,34 @@ public class WifiSettingsForSetupWizardXL extends Activity implements OnClickLis
mProgressBar.setIndeterminate(false);
mProgressBar.setProgress(0);
- mProgressText.setText(stateString);
-
mAddNetworkButton.setEnabled(true);
mRefreshButton.setEnabled(true);
}
private void showConnectingStatus() {
+ // We save this title and show it when authentication failed.
+ mEditingTitle = mTitleView.getText();
+ showTitleForNetworkEditing();
mProgressBar.setIndeterminate(false);
mProgressBar.setProgress(1);
- mStatusText.setText(R.string.wifi_setup_status_connecting);
- mProgressText.setText(Summary.get(this, DetailedState.CONNECTING));
+ setPaddingVisibility(View.VISIBLE);
+ }
+
+ private void showTitleForNetworkEditing() {
+ if (TextUtils.isEmpty(mNetworkName) && mWifiConfig != null) {
+ mNetworkName = mWifiConfig.getController().getConfig().SSID;
+ }
+ mTitleView.setText(getString(R.string.wifi_setup_title_editing_network, mNetworkName));
}
private void showScanningStatus() {
mProgressBar.setIndeterminate(true);
((Button)findViewById(R.id.wifi_setup_add_network)).setEnabled(false);
((Button)findViewById(R.id.wifi_setup_refresh_list)).setEnabled(false);
- mProgressText.setText(Summary.get(this, DetailedState.SCANNING));
- mStatusText.setText(R.string.wifi_setup_status_scanning);
}
private void onAddNetworkButtonPressed() {
- // onConfigUiShown() will be called.
mWifiSettings.onAddNetworkPressed();
-
}
/**
@@ -318,34 +328,39 @@ public class WifiSettingsForSetupWizardXL extends Activity implements OnClickLis
mWifiConfig = new WifiConfigUiForSetupWizardXL(this, parent, selectedAccessPoint, edit);
final View view = mWifiConfig.getView();
if (selectedAccessPoint != null) {
- view.findViewById(R.id.wifi_general_info).setVisibility(View.VISIBLE);
- ((TextView)view.findViewById(R.id.title)).setText(selectedAccessPoint.getTitle());
- ((TextView)view.findViewById(R.id.summary)).setText(selectedAccessPoint.getSummary());
+ mNetworkName = selectedAccessPoint.getTitle().toString();
+ mTitleView.setText(getString(R.string.wifi_setup_title_editing_network, mNetworkName));
} else {
+ mNetworkName = "";
+ mTitleView.setText(R.string.wifi_setup_title_add_network);
view.findViewById(R.id.wifi_general_info).setVisibility(View.GONE);
}
if (selectedAccessPoint != null &&
selectedAccessPoint.security == AccessPoint.SECURITY_NONE) {
- mStatusText.setText(R.string.wifi_setup_status_unsecured_network);
+ // onConnectButtonPressed() will change visibility status.
+ mConnectButton.performClick();
} else if (selectedAccessPoint != null &&
selectedAccessPoint.security == AccessPoint.SECURITY_EAP) {
- mStatusText.setText(R.string.wifi_setup_status_eap_not_supported);
mConnectButton.setVisibility(View.GONE);
+
+ mSkipOrNextButton.setVisibility(View.GONE);
+ mAddNetworkButton.setVisibility(View.GONE);
+ mRefreshButton.setVisibility(View.GONE);
+ mBackButton.setVisibility(View.VISIBLE);
} else {
- mStatusText.setText(R.string.wifi_setup_status_edit_network);
mConnectButton.setVisibility(View.VISIBLE);
- }
- // WifiConfigController shows Connect button as "Save" when edit==true and a user
- // tried to connect the network.
- // In SetupWizard, we just show the button as "Connect" instead.
- mConnectButton.setText(R.string.wifi_connect);
+ // WifiConfigController shows Connect button as "Save" when edit==true and a user
+ // tried to connect the network.
+ // In SetupWizard, we just show the button as "Connect" instead.
+ mConnectButton.setText(R.string.wifi_connect);
- mAddNetworkButton.setVisibility(View.GONE);
- mRefreshButton.setVisibility(View.GONE);
- mSkipOrNextButton.setVisibility(View.GONE);
- mBackButton.setVisibility(View.VISIBLE);
+ mSkipOrNextButton.setVisibility(View.GONE);
+ mAddNetworkButton.setVisibility(View.GONE);
+ mRefreshButton.setVisibility(View.GONE);
+ mBackButton.setVisibility(View.VISIBLE);
+ }
}
// May be called when user press "connect" button in WifiDialog
@@ -388,21 +403,6 @@ public class WifiSettingsForSetupWizardXL extends Activity implements OnClickLis
mRefreshButton.setVisibility(View.GONE);
}
- // May be called when user press "forget" button in WifiDialog
- /* package */ void onForgetButtonPressed() {
- mWifiSettings.forget();
-
- refreshAccessPoints(false);
- restoreFirstButtonVisibilityState();
- mAddNetworkButton.setEnabled(true);
- mRefreshButton.setEnabled(true);
- mSkipOrNextButton.setEnabled(true);
-
- mProgressBar.setIndeterminate(false);
- mProgressBar.setProgress(0);
- mProgressText.setText(getString(R.string.wifi_setup_not_connected));
- }
-
private void onBackButtonPressed() {
if (mAfterConnectAction) {
if (DEBUG) Log.d(TAG, "Back button pressed after connect action.");
@@ -421,7 +421,6 @@ public class WifiSettingsForSetupWizardXL extends Activity implements OnClickLis
} else { // During user's Wifi configuration.
mWifiSettings.resumeWifiScan();
- mStatusText.setText(R.string.wifi_setup_status_select_network);
restoreFirstButtonVisibilityState();
mAddNetworkButton.setEnabled(true);
@@ -470,7 +469,8 @@ public class WifiSettingsForSetupWizardXL extends Activity implements OnClickLis
}
/**
- * Called when {@link WifiSettings} received {@link WifiManager#SUPPLICANT_CHANGED_ACTION}.
+ * Called when {@link WifiSettings} received
+ * {@link WifiManager#SUPPLICANT_STATE_CHANGED_ACTION}.
*/
/* package */ void onSupplicantStateChanged(Intent intent) {
final int errorCode = intent.getIntExtra(WifiManager.EXTRA_SUPPLICANT_ERROR, -1);
@@ -485,11 +485,17 @@ public class WifiSettingsForSetupWizardXL extends Activity implements OnClickLis
*/
private void onAuthenticationFailure() {
mAfterConnectAction = false;
- mStatusText.setText(R.string.wifi_setup_status_edit_network);
mSkipOrNextButton.setVisibility(View.GONE);
mConnectButton.setVisibility(View.VISIBLE);
mConnectButton.setEnabled(true);
+ if (!TextUtils.isEmpty(mEditingTitle)) {
+ mTitleView.setText(mEditingTitle);
+ } else {
+ Log.w(TAG, "Title during editing/adding a network was empty.");
+ showTitleForNetworkEditing();
+ }
+
// Restore View status which was tweaked on connection.
final View wpsFieldView = findViewById(R.id.wps_fields);
if (wpsFieldView != null) {
@@ -502,21 +508,36 @@ public class WifiSettingsForSetupWizardXL extends Activity implements OnClickLis
final View passwordView = findViewById(R.id.password);
if (passwordView != null) {
if (passwordView.isFocused()) {
- final InputMethodManager inputMethodManager = (InputMethodManager)
- getSystemService(Context.INPUT_METHOD_SERVICE);
- inputMethodManager.showSoftInput(passwordView, 0);
- } else {
- mWifiConfig.requestFocusAndShowKeyboard(R.id.password);
+ setPaddingVisibility(View.GONE);
}
+ mWifiConfig.requestFocusAndShowKeyboard(R.id.password);
}
}
}
final View typeView = findViewById(R.id.type);
if (typeView != null) {
typeView.setVisibility(mPreviousTypeVisibility);
+ if (mPreviousTypeVisibility == View.VISIBLE && mWifiConfig != null) {
+ final View ssidView = findViewById(R.id.ssid);
+ if (ssidView != null) {
+ if (ssidView.isFocused()) {
+ setPaddingVisibility(View.GONE);
+ }
+ mWifiConfig.requestFocusAndShowKeyboard(R.id.ssid);
+ }
+ }
}
}
+ public void setPaddingVisibility(int visibility) {
+ setPaddingVisibility(visibility, visibility);
+ }
+
+ private void setPaddingVisibility(int topPaddingVisibility, int configVisibility) {
+ mTopPadding.setVisibility(topPaddingVisibility);
+ mWifiConfigPadding.setVisibility(configVisibility);
+ }
+
/**
* Called when WifiManager is requested to save a network. This method sholud include
* WifiManager#saveNetwork() call.