import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
-import android.widget.ProgressBar;
import android.widget.Toast;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
private WifiDialog mDialog;
private WriteWifiConfigToNfcDialog mWifiToNfcDialog;
- private ProgressBar mProgressHeader;
+ private View mProgressHeader;
// this boolean extra specifies whether to disable the Next button when not connected. Used by
// account creation outside of setup wizard.
private static final String EXTRA_ENABLE_NEXT_ON_CONNECT = "wifi_enable_next_on_connect";
// This string extra specifies a network to open the connect dialog on, so the user can enter
- // network credentials. This is used by quick settings for secured networks.
- private static final String EXTRA_START_CONNECT_SSID = "wifi_start_connect_ssid";
+ // network credentials. This is used by quick settings for secured networks, among other
+ // things.
+ public static final String EXTRA_START_CONNECT_SSID = "wifi_start_connect_ssid";
// should Next button only be enabled when we have a connection?
private boolean mEnableNextOnConnection;
super.onViewCreated(view, savedInstanceState);
final Activity activity = getActivity();
if (activity != null) {
- mProgressHeader = (ProgressBar) setPinnedHeaderView(R.layout.wifi_progress_header);
+ mProgressHeader = setPinnedHeaderView(R.layout.wifi_progress_header)
+ .findViewById(R.id.progress_bar_animation);
setProgressBarVisible(false);
}
}
case MENU_ID_WPS_PBC:
showDialog(WPS_PBC_DIALOG_ID);
return true;
- /*
- case MENU_ID_P2P:
- if (getActivity() instanceof SettingsActivity) {
- ((SettingsActivity) getActivity()).startPreferencePanel(
- WifiP2pSettings.class.getCanonicalName(),
- null,
- R.string.wifi_p2p_settings_title, null,
- this, 0);
- } else {
- startFragment(this, WifiP2pSettings.class.getCanonicalName(),
- R.string.wifi_p2p_settings_title, -1, null);
- }
- return true;
- */
case MENU_ID_WPS_PIN:
showDialog(WPS_PIN_DIALOG_ID);
return true;
changeNextButtonState(mWifiTracker.isConnected());
}
+ /** Helper method to return whether an AccessPoint is disabled due to a wrong password */
+ private static boolean isDisabledByWrongPassword(AccessPoint accessPoint) {
+ WifiConfiguration config = accessPoint.getConfig();
+ if (config == null) {
+ return false;
+ }
+ WifiConfiguration.NetworkSelectionStatus networkStatus =
+ config.getNetworkSelectionStatus();
+ if (networkStatus == null || networkStatus.isNetworkEnabled()) {
+ return false;
+ }
+ int reason = networkStatus.getNetworkSelectionDisableReason();
+ return WifiConfiguration.NetworkSelectionStatus.DISABLED_BY_WRONG_PASSWORD == reason;
+ }
+
private void updateAccessPointPreferences() {
// in case state has changed
if (!mWifiManager.isWifiEnabled()) {
preference.setKey(key);
preference.setOrder(index);
if (mOpenSsid != null && mOpenSsid.equals(accessPoint.getSsidStr())
- && !accessPoint.isSaved()
&& accessPoint.getSecurity() != AccessPoint.SECURITY_NONE) {
- onPreferenceTreeClick(preference);
- mOpenSsid = null;
+ if (!accessPoint.isSaved() || isDisabledByWrongPassword(accessPoint)) {
+ onPreferenceTreeClick(preference);
+ mOpenSsid = null;
+ }
}
mAccessPointsPreferenceCategory.addPreference(preference);
accessPoint.setListener(WifiSettings.this);
protected void setProgressBarVisible(boolean visible) {
if (mProgressHeader != null) {
- mProgressHeader.setVisibility(visible ? View.VISIBLE : View.INVISIBLE);
+ mProgressHeader.setVisibility(visible ? View.VISIBLE : View.GONE);
}
}