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.app.Activity;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
|
import android.net.NetworkInfo.DetailedState;
|
||||||
import android.net.wifi.WifiConfiguration;
|
import android.net.wifi.WifiConfiguration;
|
||||||
import android.net.wifi.WifiManager;
|
import android.net.wifi.WifiManager;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
@@ -38,6 +39,7 @@ import com.android.settingslib.wifi.WifiTrackerFactory;
|
|||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import androidx.annotation.VisibleForTesting;
|
||||||
import androidx.preference.Preference;
|
import androidx.preference.Preference;
|
||||||
import androidx.preference.PreferenceCategory;
|
import androidx.preference.PreferenceCategory;
|
||||||
|
|
||||||
@@ -60,6 +62,9 @@ public class WifiNetworkListFragment extends SettingsPreferenceFragment implemen
|
|||||||
|
|
||||||
private WifiManager.ActionListener mSaveListener;
|
private WifiManager.ActionListener mSaveListener;
|
||||||
|
|
||||||
|
@VisibleForTesting
|
||||||
|
boolean mUseConnectedAccessPointDirectly;
|
||||||
|
|
||||||
// Container Activity must implement this interface
|
// Container Activity must implement this interface
|
||||||
public interface OnChooseNetworkListener {
|
public interface OnChooseNetworkListener {
|
||||||
public void onChooseNetwork(WifiNetworkConfig wifiNetworkConfig);
|
public void onChooseNetwork(WifiNetworkConfig wifiNetworkConfig);
|
||||||
@@ -92,7 +97,7 @@ public class WifiNetworkListFragment extends SettingsPreferenceFragment implemen
|
|||||||
super.onActivityCreated(savedInstanceState);
|
super.onActivityCreated(savedInstanceState);
|
||||||
|
|
||||||
mWifiTracker = WifiTrackerFactory.create(getActivity(), this,
|
mWifiTracker = WifiTrackerFactory.create(getActivity(), this,
|
||||||
getSettingsLifecycle(), /* includeSaved */true, /* includeSaved */ true);
|
getSettingsLifecycle(), /* includeSaved */true, /* includeScans */ true);
|
||||||
mWifiManager = mWifiTracker.getManager();
|
mWifiManager = mWifiTracker.getManager();
|
||||||
|
|
||||||
mSaveListener = new WifiManager.ActionListener() {
|
mSaveListener = new WifiManager.ActionListener() {
|
||||||
@@ -111,6 +116,8 @@ public class WifiNetworkListFragment extends SettingsPreferenceFragment implemen
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
mUseConnectedAccessPointDirectly = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -281,6 +288,17 @@ public class WifiNetworkListFragment extends SettingsPreferenceFragment implemen
|
|||||||
// Check if this access point is valid for DPP.
|
// Check if this access point is valid for DPP.
|
||||||
if (isValidForDppConfiguration(accessPoint)) {
|
if (isValidForDppConfiguration(accessPoint)) {
|
||||||
final String key = accessPoint.getKey();
|
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;
|
hasAvailableAccessPoints = true;
|
||||||
final AccessPointPreference pref = (AccessPointPreference) getCachedPreference(key);
|
final AccessPointPreference pref = (AccessPointPreference) getCachedPreference(key);
|
||||||
if (pref != null) {
|
if (pref != null) {
|
||||||
|
@@ -98,6 +98,7 @@ public class WifiNetworkListFragmentTest {
|
|||||||
private void callOnWifiStateChanged(int state) {
|
private void callOnWifiStateChanged(int state) {
|
||||||
mActivityRule.getActivity().getMainThreadHandler()
|
mActivityRule.getActivity().getMainThreadHandler()
|
||||||
.post(() -> mWifiNetworkListFragment.onWifiStateChanged(state));
|
.post(() -> mWifiNetworkListFragment.onWifiStateChanged(state));
|
||||||
|
mWifiNetworkListFragment.mUseConnectedAccessPointDirectly = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Launch the activity via an Intent with a String extra. */
|
/** Launch the activity via an Intent with a String extra. */
|
||||||
|
Reference in New Issue
Block a user