Hide Wi-Fi QR code scan button for unsupported Wi-Fi networks

Wi-Fi QR code scan button only shows for the Wi-Fi network which
supports Wi-Fi Easy Connect or ZXing Wi-Fi config format.

Bug: 128847959
Test: manual
Change-Id: If6460ce88748e7b06893bf62060418a8727d3134
This commit is contained in:
Arc Wang
2019-03-28 15:39:03 +08:00
parent bab3bf6f22
commit dae6c695ca
2 changed files with 65 additions and 19 deletions

View File

@@ -55,6 +55,7 @@ import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
import android.widget.EditText;
import android.widget.ImageButton;
import android.widget.ScrollView;
import android.widget.Spinner;
import android.widget.TextView;
@@ -64,6 +65,7 @@ import androidx.annotation.VisibleForTesting;
import com.android.settings.ProxySelector;
import com.android.settings.R;
import com.android.settings.wifi.details.WifiPrivacyPreferenceController;
import com.android.settings.wifi.dpp.WifiDppUtils;
import com.android.settingslib.Utils;
import com.android.settingslib.utils.ThreadUtils;
import com.android.settingslib.wifi.AccessPoint;
@@ -129,6 +131,8 @@ public class WifiConfigController implements TextWatcher,
@VisibleForTesting
int mAccessPointSecurity;
private TextView mPasswordView;
private ImageButton mSsidScanButton;
private ImageButton mPasswordScanButton;
private String mUnspecifiedCertString;
private String mMultipleCertSetString;
@@ -239,6 +243,8 @@ public class WifiConfigController implements TextWatcher,
mDoNotValidateEapServerString =
mContext.getString(R.string.wifi_do_not_validate_eap_server);
mSsidScanButton = (ImageButton) mView.findViewById(R.id.ssid_scanner_button);
mPasswordScanButton = (ImageButton) mView.findViewById(R.id.password_scanner_button);
mDialogContainer = mView.findViewById(R.id.dialog_scrollview);
mIpSettingsSpinner = (Spinner) mView.findViewById(R.id.ip_settings);
mIpSettingsSpinner.setOnItemSelectedListener(this);
@@ -264,6 +270,7 @@ public class WifiConfigController implements TextWatcher,
if (mAccessPoint == null) { // new network
configureSecuritySpinner();
mConfigUi.setSubmitButton(res.getString(R.string.wifi_save));
mPasswordScanButton.setVisibility(View.GONE);
} else {
mConfigUi.setTitle(mAccessPoint.getTitle());
@@ -408,6 +415,11 @@ public class WifiConfigController implements TextWatcher,
mConfigUi.setForgetButton(res.getString(R.string.wifi_forget));
}
}
if (!WifiDppUtils.isSupportEnrolleeQrCodeScanner(mContext, mAccessPointSecurity)) {
mPasswordScanButton.setVisibility(View.GONE);
}
mSsidScanButton.setVisibility(View.GONE);
}
if (!isSplitSystemUser()) {
@@ -1444,6 +1456,12 @@ public class WifiConfigController implements TextWatcher,
// Convert menu position to actual Wi-Fi security type
mAccessPointSecurity = mSecurityInPosition[position];
showSecurityFields();
if (WifiDppUtils.isSupportEnrolleeQrCodeScanner(mContext, mAccessPointSecurity)) {
mSsidScanButton.setVisibility(View.VISIBLE);
} else {
mSsidScanButton.setVisibility(View.GONE);
}
} else if (parent == mEapMethodSpinner || parent == mEapCaCertSpinner) {
showSecurityFields();
} else if (parent == mPhase2Spinner