Implemented nearby button that displays wifi sharing intent and long press button that opens wifi qr share fragment
Test: locally with phone Change-Id: I73663cd3e9e86431a9264925661159fbcd16b9d3 Merged-In: I931aabaada09c87b4a7936bcde4fcff8bc237dd0
This commit is contained in:
@@ -103,6 +103,7 @@ public class WifiSettings2 extends RestrictedSettingsFragment
|
||||
@VisibleForTesting
|
||||
static final int MENU_ID_FORGET = Menu.FIRST + 3;
|
||||
static final int MENU_ID_MODIFY = Menu.FIRST + 4;
|
||||
static final int MENU_ID_SHARE = Menu.FIRST + 5;
|
||||
|
||||
// Max age of tracked WifiEntries
|
||||
private static final long MAX_SCAN_AGE_MILLIS = 15_000;
|
||||
@@ -485,7 +486,8 @@ public class WifiSettings2 extends RestrictedSettingsFragment
|
||||
}
|
||||
|
||||
if (mSelectedWifiEntry.canDisconnect()) {
|
||||
menu.add(Menu.NONE, MENU_ID_DISCONNECT, 0 /* order */,
|
||||
menu.add(Menu.NONE, MENU_ID_SHARE, 0 /* order */, R.string.share);
|
||||
menu.add(Menu.NONE, MENU_ID_DISCONNECT, 1 /* order */,
|
||||
R.string.wifi_disconnect_button_text);
|
||||
}
|
||||
|
||||
@@ -524,6 +526,10 @@ public class WifiSettings2 extends RestrictedSettingsFragment
|
||||
case MENU_ID_FORGET:
|
||||
forget(mSelectedWifiEntry);
|
||||
return true;
|
||||
case MENU_ID_SHARE:
|
||||
WifiDppUtils.showLockScreen(getContext(),
|
||||
() -> launchWifiDppConfiguratorActivity(mSelectedWifiEntry));
|
||||
return true;
|
||||
case MENU_ID_MODIFY:
|
||||
showDialog(mSelectedWifiEntry, WifiConfigUiBase2.MODE_MODIFY);
|
||||
return true;
|
||||
@@ -558,6 +564,23 @@ public class WifiSettings2 extends RestrictedSettingsFragment
|
||||
return true;
|
||||
}
|
||||
|
||||
private void launchWifiDppConfiguratorActivity(WifiEntry wifiEntry) {
|
||||
final Intent intent = WifiDppUtils.getConfiguratorQrCodeGeneratorIntentOrNull(getContext(),
|
||||
mWifiManager, wifiEntry);
|
||||
|
||||
if (intent == null) {
|
||||
Log.e(TAG, "Launch Wi-Fi DPP QR code generator with a wrong Wi-Fi network!");
|
||||
} else {
|
||||
mMetricsFeatureProvider.action(SettingsEnums.PAGE_UNKNOWN,
|
||||
SettingsEnums.ACTION_SETTINGS_SHARE_WIFI_QR_CODE,
|
||||
SettingsEnums.SETTINGS_WIFI_DPP_CONFIGURATOR,
|
||||
/* key */ null,
|
||||
/* value */ Integer.MIN_VALUE);
|
||||
|
||||
startActivity(intent);
|
||||
}
|
||||
}
|
||||
|
||||
private void showDialog(WifiEntry wifiEntry, int dialogMode) {
|
||||
if (WifiUtils.isNetworkLockedDown(getActivity(), wifiEntry.getWifiConfiguration())
|
||||
&& wifiEntry.getConnectedState() == WifiEntry.CONNECTED_STATE_CONNECTED) {
|
||||
@@ -698,8 +721,8 @@ public class WifiSettings2 extends RestrictedSettingsFragment
|
||||
*/
|
||||
private void updateWifiEntryPreferencesDelayed() {
|
||||
// Safeguard from some delayed event handling
|
||||
if (getActivity() != null && !mIsRestricted &&
|
||||
mWifiPickerTracker.getWifiState() == WifiManager.WIFI_STATE_ENABLED) {
|
||||
if (getActivity() != null && !mIsRestricted
|
||||
&& mWifiPickerTracker.getWifiState() == WifiManager.WIFI_STATE_ENABLED) {
|
||||
final View view = getView();
|
||||
final Handler handler = view.getHandler();
|
||||
if (handler != null && handler.hasCallbacks(mUpdateWifiEntryPreferencesRunnable)) {
|
||||
|
||||
Reference in New Issue
Block a user