Implement WifiNetworkListFragment - Part 2
Uses connected access point to start DPP in Configurator-Initiator role directly. Bug: 118794978 Test: RunSettingsRoboTests Change-Id: Ie2d5661fdef3588bb597d4a7e4dfe5f981737c84
This commit is contained in:
@@ -19,6 +19,7 @@ package com.android.settings.wifi.dpp;
|
||||
import android.app.Activity;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.net.NetworkInfo.DetailedState;
|
||||
import android.net.wifi.WifiConfiguration;
|
||||
import android.net.wifi.WifiManager;
|
||||
import android.os.Bundle;
|
||||
@@ -38,6 +39,7 @@ import com.android.settingslib.wifi.WifiTrackerFactory;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import androidx.annotation.VisibleForTesting;
|
||||
import androidx.preference.Preference;
|
||||
import androidx.preference.PreferenceCategory;
|
||||
|
||||
@@ -60,6 +62,9 @@ public class WifiNetworkListFragment extends SettingsPreferenceFragment implemen
|
||||
|
||||
private WifiManager.ActionListener mSaveListener;
|
||||
|
||||
@VisibleForTesting
|
||||
boolean mUseConnectedAccessPointDirectly;
|
||||
|
||||
// Container Activity must implement this interface
|
||||
public interface OnChooseNetworkListener {
|
||||
public void onChooseNetwork(WifiNetworkConfig wifiNetworkConfig);
|
||||
@@ -92,7 +97,7 @@ public class WifiNetworkListFragment extends SettingsPreferenceFragment implemen
|
||||
super.onActivityCreated(savedInstanceState);
|
||||
|
||||
mWifiTracker = WifiTrackerFactory.create(getActivity(), this,
|
||||
getSettingsLifecycle(), /* includeSaved */true, /* includeSaved */ true);
|
||||
getSettingsLifecycle(), /* includeSaved */true, /* includeScans */ true);
|
||||
mWifiManager = mWifiTracker.getManager();
|
||||
|
||||
mSaveListener = new WifiManager.ActionListener() {
|
||||
@@ -111,6 +116,8 @@ public class WifiNetworkListFragment extends SettingsPreferenceFragment implemen
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
mUseConnectedAccessPointDirectly = true;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -281,6 +288,17 @@ public class WifiNetworkListFragment extends SettingsPreferenceFragment implemen
|
||||
// Check if this access point is valid for DPP.
|
||||
if (isValidForDppConfiguration(accessPoint)) {
|
||||
final String key = accessPoint.getKey();
|
||||
|
||||
// Check if this access point is already connected.
|
||||
if (mUseConnectedAccessPointDirectly
|
||||
&& accessPoint.getDetailedState() == DetailedState.CONNECTED) {
|
||||
// Uses connected access point to start DPP in Configurator-Initiator role
|
||||
// directly.
|
||||
onPreferenceTreeClick(createAccessPointPreference(accessPoint));
|
||||
removeCachedPrefs(mAccessPointsPreferenceCategory);
|
||||
return;
|
||||
}
|
||||
|
||||
hasAvailableAccessPoints = true;
|
||||
final AccessPointPreference pref = (AccessPointPreference) getCachedPreference(key);
|
||||
if (pref != null) {
|
||||
|
@@ -98,6 +98,7 @@ public class WifiNetworkListFragmentTest {
|
||||
private void callOnWifiStateChanged(int state) {
|
||||
mActivityRule.getActivity().getMainThreadHandler()
|
||||
.post(() -> mWifiNetworkListFragment.onWifiStateChanged(state));
|
||||
mWifiNetworkListFragment.mUseConnectedAccessPointDirectly = false;
|
||||
}
|
||||
|
||||
/** Launch the activity via an Intent with a String extra. */
|
||||
|
Reference in New Issue
Block a user