[Wi-Fi] Remove all files in com.android.settings.wifi.savedaccesspoints
Developers should developer the files of com.android.settings.wifi.savedaccesspoints2 with WifiTrackerLib objects. Bug: 152571756 Test: make RunSettingsRoboTests ROBOTEST_FILTER=com.android.settings.wifi.savedaccesspoints2 Change-Id: I6c8548fb7b3c9403ad300da0024e93e0e0cb8607
This commit is contained in:
@@ -1,33 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<!-- Copyright (C) 2014 The Android Open Source Project
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
-->
|
|
||||||
|
|
||||||
<PreferenceScreen
|
|
||||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
|
||||||
xmlns:settings="http://schemas.android.com/apk/res-auto"
|
|
||||||
android:key="saved_access_points"
|
|
||||||
android:title="@string/wifi_saved_access_points_label">
|
|
||||||
|
|
||||||
<PreferenceCategory
|
|
||||||
android:key="subscribed_access_points_category"
|
|
||||||
android:title="@string/wifi_subscribed_access_points_tab"
|
|
||||||
settings:controller="com.android.settings.wifi.savedaccesspoints.SubscribedAccessPointsPreferenceController"/>
|
|
||||||
|
|
||||||
<PreferenceCategory
|
|
||||||
android:key="saved_access_points_category"
|
|
||||||
android:title="@string/wifi_saved_access_points_tab"
|
|
||||||
settings:controller="com.android.settings.wifi.savedaccesspoints.SavedAccessPointsPreferenceController"/>
|
|
||||||
|
|
||||||
</PreferenceScreen>
|
|
@@ -153,7 +153,6 @@ import com.android.settings.wifi.WifiSettings;
|
|||||||
import com.android.settings.wifi.calling.WifiCallingDisclaimerFragment;
|
import com.android.settings.wifi.calling.WifiCallingDisclaimerFragment;
|
||||||
import com.android.settings.wifi.calling.WifiCallingSettings;
|
import com.android.settings.wifi.calling.WifiCallingSettings;
|
||||||
import com.android.settings.wifi.p2p.WifiP2pSettings;
|
import com.android.settings.wifi.p2p.WifiP2pSettings;
|
||||||
import com.android.settings.wifi.savedaccesspoints.SavedAccessPointsWifiSettings;
|
|
||||||
import com.android.settings.wifi.savedaccesspoints2.SavedAccessPointsWifiSettings2;
|
import com.android.settings.wifi.savedaccesspoints2.SavedAccessPointsWifiSettings2;
|
||||||
import com.android.settings.wifi.tether.WifiTetherSettings;
|
import com.android.settings.wifi.tether.WifiTetherSettings;
|
||||||
|
|
||||||
@@ -168,7 +167,6 @@ public class SettingsGateway {
|
|||||||
CreateShortcut.class.getName(),
|
CreateShortcut.class.getName(),
|
||||||
WifiSettings.class.getName(),
|
WifiSettings.class.getName(),
|
||||||
ConfigureWifiSettings.class.getName(),
|
ConfigureWifiSettings.class.getName(),
|
||||||
SavedAccessPointsWifiSettings.class.getName(),
|
|
||||||
SavedAccessPointsWifiSettings2.class.getName(),
|
SavedAccessPointsWifiSettings2.class.getName(),
|
||||||
AllInOneTetherSettings.class.getName(),
|
AllInOneTetherSettings.class.getName(),
|
||||||
TetherSettings.class.getName(),
|
TetherSettings.class.getName(),
|
||||||
|
@@ -16,7 +16,6 @@
|
|||||||
package com.android.settings.wifi;
|
package com.android.settings.wifi;
|
||||||
|
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.util.FeatureFlagUtils;
|
|
||||||
|
|
||||||
import androidx.preference.PreferenceFragmentCompat;
|
import androidx.preference.PreferenceFragmentCompat;
|
||||||
|
|
||||||
@@ -24,7 +23,6 @@ import com.android.settings.ButtonBarHandler;
|
|||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
import com.android.settings.SettingsActivity;
|
import com.android.settings.SettingsActivity;
|
||||||
import com.android.settings.wifi.p2p.WifiP2pSettings;
|
import com.android.settings.wifi.p2p.WifiP2pSettings;
|
||||||
import com.android.settings.wifi.savedaccesspoints.SavedAccessPointsWifiSettings;
|
|
||||||
import com.android.settings.wifi.savedaccesspoints2.SavedAccessPointsWifiSettings2;
|
import com.android.settings.wifi.savedaccesspoints2.SavedAccessPointsWifiSettings2;
|
||||||
|
|
||||||
public class WifiPickerActivity extends SettingsActivity implements ButtonBarHandler {
|
public class WifiPickerActivity extends SettingsActivity implements ButtonBarHandler {
|
||||||
@@ -41,14 +39,8 @@ public class WifiPickerActivity extends SettingsActivity implements ButtonBarHan
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected boolean isValidFragment(String fragmentName) {
|
protected boolean isValidFragment(String fragmentName) {
|
||||||
boolean isSavedAccessPointsWifiSettings;
|
final boolean isSavedAccessPointsWifiSettings =
|
||||||
if (FeatureFlagUtils.isEnabled(this, FeatureFlagUtils.SETTINGS_WIFITRACKER2)) {
|
SavedAccessPointsWifiSettings2.class.getName().equals(fragmentName);
|
||||||
isSavedAccessPointsWifiSettings =
|
|
||||||
SavedAccessPointsWifiSettings2.class.getName().equals(fragmentName);
|
|
||||||
} else {
|
|
||||||
isSavedAccessPointsWifiSettings =
|
|
||||||
SavedAccessPointsWifiSettings.class.getName().equals(fragmentName);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (WifiSettings.class.getName().equals(fragmentName)
|
if (WifiSettings.class.getName().equals(fragmentName)
|
||||||
|| WifiP2pSettings.class.getName().equals(fragmentName)
|
|| WifiP2pSettings.class.getName().equals(fragmentName)
|
||||||
|
@@ -1,109 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (C) 2018 The Android Open Source Project
|
|
||||||
*
|
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and
|
|
||||||
* limitations under the License.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.android.settings.wifi.savedaccesspoints;
|
|
||||||
|
|
||||||
import android.content.Context;
|
|
||||||
import android.net.wifi.WifiManager;
|
|
||||||
|
|
||||||
import androidx.annotation.VisibleForTesting;
|
|
||||||
import androidx.preference.Preference;
|
|
||||||
import androidx.preference.PreferenceGroup;
|
|
||||||
import androidx.preference.PreferenceScreen;
|
|
||||||
|
|
||||||
import com.android.settings.core.BasePreferenceController;
|
|
||||||
import com.android.settingslib.wifi.AccessPoint;
|
|
||||||
import com.android.settingslib.wifi.AccessPointPreference;
|
|
||||||
import com.android.settingslib.wifi.AccessPointPreference.UserBadgeCache;
|
|
||||||
import com.android.settingslib.wifi.WifiSavedConfigUtils;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.stream.Collectors;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Controller that manages a PreferenceGroup, which contains a list of saved access points.
|
|
||||||
*
|
|
||||||
* Migrating from Wi-Fi SettingsLib to to WifiTrackerLib, this object will be removed in the near
|
|
||||||
* future, please develop in
|
|
||||||
* {@link com.android.settings.wifi.savedaccesspoints2.SavedAccessPointsPreferenceController2}.
|
|
||||||
*/
|
|
||||||
public class SavedAccessPointsPreferenceController extends BasePreferenceController implements
|
|
||||||
Preference.OnPreferenceClickListener {
|
|
||||||
|
|
||||||
protected final WifiManager mWifiManager;
|
|
||||||
private final UserBadgeCache mUserBadgeCache;
|
|
||||||
private PreferenceGroup mPreferenceGroup;
|
|
||||||
private SavedAccessPointsWifiSettings mHost;
|
|
||||||
@VisibleForTesting
|
|
||||||
List<AccessPoint> mAccessPoints;
|
|
||||||
|
|
||||||
public SavedAccessPointsPreferenceController(Context context, String preferenceKey) {
|
|
||||||
super(context, preferenceKey);
|
|
||||||
mUserBadgeCache = new AccessPointPreference.UserBadgeCache(context.getPackageManager());
|
|
||||||
mWifiManager = context.getSystemService(WifiManager.class);
|
|
||||||
}
|
|
||||||
|
|
||||||
public SavedAccessPointsPreferenceController setHost(SavedAccessPointsWifiSettings host) {
|
|
||||||
mHost = host;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public int getAvailabilityStatus() {
|
|
||||||
refreshSavedAccessPoints();
|
|
||||||
return mAccessPoints.size() > 0 ? AVAILABLE : CONDITIONALLY_UNAVAILABLE;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void displayPreference(PreferenceScreen screen) {
|
|
||||||
mPreferenceGroup = screen.findPreference(getPreferenceKey());
|
|
||||||
refreshSavedAccessPoints();
|
|
||||||
updatePreference();
|
|
||||||
super.displayPreference(screen);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean onPreferenceClick(Preference preference) {
|
|
||||||
if (mHost != null) {
|
|
||||||
final Preference preferenceInGroup =
|
|
||||||
mPreferenceGroup.findPreference(preference.getKey());
|
|
||||||
mHost.showWifiPage((AccessPointPreference) preferenceInGroup);
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
protected void refreshSavedAccessPoints() {
|
|
||||||
mAccessPoints = WifiSavedConfigUtils.getAllConfigs(mContext, mWifiManager).stream()
|
|
||||||
.filter(accessPoint -> !accessPoint.isPasspointConfig())
|
|
||||||
.sorted(SavedNetworkComparator.INSTANCE)
|
|
||||||
.collect(Collectors.toList());
|
|
||||||
}
|
|
||||||
|
|
||||||
private void updatePreference() {
|
|
||||||
mPreferenceGroup.removeAll();
|
|
||||||
for (AccessPoint accessPoint : mAccessPoints) {
|
|
||||||
final String key = accessPoint.getKey();
|
|
||||||
|
|
||||||
final AccessPointPreference preference = new AccessPointPreference(accessPoint,
|
|
||||||
mContext, mUserBadgeCache, true /* forSavedNetworks */);
|
|
||||||
preference.setKey(key);
|
|
||||||
preference.setIcon(null);
|
|
||||||
preference.setOnPreferenceClickListener(this);
|
|
||||||
|
|
||||||
mPreferenceGroup.addPreference(preference);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@@ -1,137 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (C) 2014 The Android Open Source Project
|
|
||||||
*
|
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and
|
|
||||||
* limitations under the License.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.android.settings.wifi.savedaccesspoints;
|
|
||||||
|
|
||||||
import android.annotation.Nullable;
|
|
||||||
import android.app.settings.SettingsEnums;
|
|
||||||
import android.content.Context;
|
|
||||||
import android.os.Bundle;
|
|
||||||
|
|
||||||
import androidx.annotation.VisibleForTesting;
|
|
||||||
import androidx.preference.PreferenceScreen;
|
|
||||||
|
|
||||||
import com.android.settings.R;
|
|
||||||
import com.android.settings.core.SubSettingLauncher;
|
|
||||||
import com.android.settings.dashboard.DashboardFragment;
|
|
||||||
import com.android.settings.wifi.WifiSettings;
|
|
||||||
import com.android.settings.wifi.details.WifiNetworkDetailsFragment;
|
|
||||||
import com.android.settingslib.wifi.AccessPoint;
|
|
||||||
import com.android.settingslib.wifi.AccessPointPreference;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* UI to manage saved networks/access points.
|
|
||||||
*
|
|
||||||
* Migrating from Wi-Fi SettingsLib to to WifiTrackerLib, this object will be removed in the near
|
|
||||||
* future, please develop in
|
|
||||||
* {@link com.android.settings.wifi.savedaccesspoints2.SavedAccessPointsWifiSettings2}.
|
|
||||||
*/
|
|
||||||
public class SavedAccessPointsWifiSettings extends DashboardFragment {
|
|
||||||
|
|
||||||
private static final String TAG = "SavedAccessPoints";
|
|
||||||
|
|
||||||
@VisibleForTesting
|
|
||||||
Bundle mAccessPointSavedState;
|
|
||||||
private AccessPoint mSelectedAccessPoint;
|
|
||||||
|
|
||||||
// Instance state key
|
|
||||||
private static final String SAVE_DIALOG_ACCESS_POINT_STATE = "wifi_ap_state";
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public int getMetricsCategory() {
|
|
||||||
return SettingsEnums.WIFI_SAVED_ACCESS_POINTS;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected int getPreferenceScreenResId() {
|
|
||||||
return R.xml.wifi_display_saved_access_points;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected String getLogTag() {
|
|
||||||
return TAG;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onAttach(Context context) {
|
|
||||||
super.onAttach(context);
|
|
||||||
use(SavedAccessPointsPreferenceController.class)
|
|
||||||
.setHost(this);
|
|
||||||
use(SubscribedAccessPointsPreferenceController.class)
|
|
||||||
.setHost(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onCreate(Bundle savedInstanceState) {
|
|
||||||
super.onCreate(savedInstanceState);
|
|
||||||
if (savedInstanceState != null) {
|
|
||||||
if (savedInstanceState.containsKey(SAVE_DIALOG_ACCESS_POINT_STATE)) {
|
|
||||||
mAccessPointSavedState =
|
|
||||||
savedInstanceState.getBundle(SAVE_DIALOG_ACCESS_POINT_STATE);
|
|
||||||
} else {
|
|
||||||
mAccessPointSavedState = null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onStart() {
|
|
||||||
super.onStart();
|
|
||||||
if (mAccessPointSavedState != null) {
|
|
||||||
final PreferenceScreen screen = getPreferenceScreen();
|
|
||||||
use(SavedAccessPointsPreferenceController.class).displayPreference(screen);
|
|
||||||
use(SubscribedAccessPointsPreferenceController.class).displayPreference(screen);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void showWifiPage(@Nullable AccessPointPreference accessPoint) {
|
|
||||||
removeDialog(WifiSettings.WIFI_DIALOG_ID);
|
|
||||||
|
|
||||||
if (accessPoint != null) {
|
|
||||||
// Save the access point and edit mode
|
|
||||||
mSelectedAccessPoint = accessPoint.getAccessPoint();
|
|
||||||
} else {
|
|
||||||
// No access point is selected. Clear saved state.
|
|
||||||
mSelectedAccessPoint = null;
|
|
||||||
mAccessPointSavedState = null;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (mSelectedAccessPoint == null) {
|
|
||||||
mSelectedAccessPoint = new AccessPoint(getActivity(), mAccessPointSavedState);
|
|
||||||
}
|
|
||||||
final Bundle savedState = new Bundle();
|
|
||||||
mSelectedAccessPoint.saveWifiState(savedState);
|
|
||||||
|
|
||||||
new SubSettingLauncher(getContext())
|
|
||||||
.setTitleText(mSelectedAccessPoint.getTitle())
|
|
||||||
.setDestination(WifiNetworkDetailsFragment.class.getName())
|
|
||||||
.setArguments(savedState)
|
|
||||||
.setSourceMetricsCategory(getMetricsCategory())
|
|
||||||
.launch();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onSaveInstanceState(Bundle outState) {
|
|
||||||
super.onSaveInstanceState(outState);
|
|
||||||
// If the dialog is showing (indicated by the existence of mSelectedAccessPoint), then we
|
|
||||||
// save its state.
|
|
||||||
if (mSelectedAccessPoint != null) {
|
|
||||||
mAccessPointSavedState = new Bundle();
|
|
||||||
mSelectedAccessPoint.saveWifiState(mAccessPointSavedState);
|
|
||||||
outState.putBundle(SAVE_DIALOG_ACCESS_POINT_STATE, mAccessPointSavedState);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@@ -1,40 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (C) 2018 The Android Open Source Project
|
|
||||||
*
|
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and
|
|
||||||
* limitations under the License.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.android.settings.wifi.savedaccesspoints;
|
|
||||||
|
|
||||||
import android.icu.text.Collator;
|
|
||||||
|
|
||||||
import com.android.settingslib.wifi.AccessPoint;
|
|
||||||
|
|
||||||
import java.util.Comparator;
|
|
||||||
|
|
||||||
public final class SavedNetworkComparator {
|
|
||||||
public static final Comparator<AccessPoint> INSTANCE =
|
|
||||||
new Comparator<AccessPoint>() {
|
|
||||||
final Collator mCollator = Collator.getInstance();
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public int compare(AccessPoint ap1, AccessPoint ap2) {
|
|
||||||
return mCollator.compare(
|
|
||||||
nullToEmpty(ap1.getTitle()), nullToEmpty(ap2.getTitle()));
|
|
||||||
}
|
|
||||||
|
|
||||||
private String nullToEmpty(String string) {
|
|
||||||
return (string == null) ? "" : string;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
|
@@ -1,46 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (C) 2019 The Android Open Source Project
|
|
||||||
*
|
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and
|
|
||||||
* limitations under the License.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.android.settings.wifi.savedaccesspoints;
|
|
||||||
|
|
||||||
import android.content.Context;
|
|
||||||
|
|
||||||
import com.android.settingslib.wifi.WifiSavedConfigUtils;
|
|
||||||
|
|
||||||
import java.util.stream.Collectors;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Controller that manages a PreferenceGroup, which contains a list of subscribed access points.
|
|
||||||
*
|
|
||||||
* Migrating from Wi-Fi SettingsLib to to WifiTrackerLib, this object will be removed in the near
|
|
||||||
* future, please develop in
|
|
||||||
* {@link com.android.settings.wifi.savedaccesspoints2.SubscribedAccessPointsPreferenceController2}.
|
|
||||||
*/
|
|
||||||
public class SubscribedAccessPointsPreferenceController extends
|
|
||||||
SavedAccessPointsPreferenceController {
|
|
||||||
|
|
||||||
public SubscribedAccessPointsPreferenceController(Context context, String preferenceKey) {
|
|
||||||
super(context, preferenceKey);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void refreshSavedAccessPoints() {
|
|
||||||
mAccessPoints = WifiSavedConfigUtils.getAllConfigs(mContext, mWifiManager).stream()
|
|
||||||
.filter(accessPoint -> accessPoint.isPasspointConfig())
|
|
||||||
.sorted(SavedNetworkComparator.INSTANCE)
|
|
||||||
.collect(Collectors.toList());
|
|
||||||
}
|
|
||||||
}
|
|
@@ -1,123 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (C) 2018 The Android Open Source Project
|
|
||||||
*
|
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and
|
|
||||||
* limitations under the License.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.android.settings.wifi.savedaccesspoints;
|
|
||||||
|
|
||||||
import static com.android.settings.core.BasePreferenceController.CONDITIONALLY_UNAVAILABLE;
|
|
||||||
|
|
||||||
import static com.google.common.truth.Truth.assertThat;
|
|
||||||
|
|
||||||
import static org.mockito.ArgumentMatchers.any;
|
|
||||||
import static org.mockito.Mockito.never;
|
|
||||||
import static org.mockito.Mockito.spy;
|
|
||||||
import static org.mockito.Mockito.verify;
|
|
||||||
import static org.mockito.Mockito.when;
|
|
||||||
|
|
||||||
import android.content.Context;
|
|
||||||
import android.net.wifi.WifiConfiguration;
|
|
||||||
import android.net.wifi.WifiManager;
|
|
||||||
|
|
||||||
import androidx.preference.PreferenceCategory;
|
|
||||||
import androidx.preference.PreferenceScreen;
|
|
||||||
|
|
||||||
import com.android.settings.testutils.shadow.ShadowAccessPoint;
|
|
||||||
import com.android.settings.testutils.shadow.ShadowWifiManager;
|
|
||||||
import com.android.settingslib.wifi.AccessPointPreference;
|
|
||||||
|
|
||||||
import org.junit.Before;
|
|
||||||
import org.junit.Test;
|
|
||||||
import org.junit.runner.RunWith;
|
|
||||||
import org.mockito.ArgumentCaptor;
|
|
||||||
import org.mockito.Mock;
|
|
||||||
import org.mockito.MockitoAnnotations;
|
|
||||||
import org.robolectric.RobolectricTestRunner;
|
|
||||||
import org.robolectric.RuntimeEnvironment;
|
|
||||||
import org.robolectric.annotation.Config;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
|
|
||||||
@RunWith(RobolectricTestRunner.class)
|
|
||||||
@Config(shadows = {ShadowWifiManager.class})
|
|
||||||
public class SavedAccessPointsPreferenceControllerTest {
|
|
||||||
|
|
||||||
@Mock
|
|
||||||
private PreferenceScreen mPreferenceScreen;
|
|
||||||
@Mock
|
|
||||||
private PreferenceCategory mPreferenceCategory;
|
|
||||||
|
|
||||||
private Context mContext;
|
|
||||||
private WifiManager mWifiManager;
|
|
||||||
private SavedAccessPointsWifiSettings mSettings;
|
|
||||||
private SavedAccessPointsPreferenceController mController;
|
|
||||||
|
|
||||||
@Before
|
|
||||||
public void setUp() {
|
|
||||||
MockitoAnnotations.initMocks(this);
|
|
||||||
mContext = RuntimeEnvironment.application;
|
|
||||||
mWifiManager = mContext.getSystemService(WifiManager.class);
|
|
||||||
mSettings = spy(new SavedAccessPointsWifiSettings());
|
|
||||||
mController = spy(new SavedAccessPointsPreferenceController(mContext, "test_key"));
|
|
||||||
mController.setHost(mSettings);
|
|
||||||
|
|
||||||
when(mPreferenceScreen.findPreference(mController.getPreferenceKey()))
|
|
||||||
.thenReturn(mPreferenceCategory);
|
|
||||||
when(mPreferenceCategory.getContext()).thenReturn(mContext);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void getAvailability_noSavedAccessPoint_shouldNotAvailable() {
|
|
||||||
mController.mAccessPoints = new ArrayList<>();
|
|
||||||
|
|
||||||
assertThat(mController.getAvailabilityStatus()).isEqualTo(CONDITIONALLY_UNAVAILABLE);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void getAvailability_shouldRefreshSavedAccessPoints() {
|
|
||||||
mController.getAvailabilityStatus();
|
|
||||||
|
|
||||||
verify(mController).refreshSavedAccessPoints();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
@Config(shadows = ShadowAccessPoint.class)
|
|
||||||
public void displayPreference_oneAccessPoint_shouldListNonSubscribedAPs() {
|
|
||||||
final WifiConfiguration config = new WifiConfiguration();
|
|
||||||
config.SSID = "SSID";
|
|
||||||
config.BSSID = "BSSID";
|
|
||||||
config.networkId = 2;
|
|
||||||
mWifiManager.addNetwork(config);
|
|
||||||
|
|
||||||
final ArgumentCaptor<AccessPointPreference> captor =
|
|
||||||
ArgumentCaptor.forClass(AccessPointPreference.class);
|
|
||||||
mController.displayPreference(mPreferenceScreen);
|
|
||||||
|
|
||||||
verify(mPreferenceCategory).addPreference(captor.capture());
|
|
||||||
|
|
||||||
final AccessPointPreference pref = captor.getValue();
|
|
||||||
assertThat(pref.getTitle()).isEqualTo(config.SSID);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
@Config(shadows = ShadowAccessPoint.class)
|
|
||||||
public void displayPreference_onePasspoint_shouldNotListSubscribedAPs() {
|
|
||||||
mWifiManager.addOrUpdatePasspointConfiguration(
|
|
||||||
SubscribedAccessPointsPreferenceControllerTest.createMockPasspointConfiguration());
|
|
||||||
|
|
||||||
mController.displayPreference(mPreferenceScreen);
|
|
||||||
|
|
||||||
verify(mPreferenceCategory, never()).addPreference(any(AccessPointPreference.class));
|
|
||||||
}
|
|
||||||
}
|
|
@@ -1,68 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (C) 2017 The Android Open Source Project
|
|
||||||
*
|
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and
|
|
||||||
* limitations under the License.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.android.settings.wifi.savedaccesspoints;
|
|
||||||
|
|
||||||
import static com.google.common.truth.Truth.assertThat;
|
|
||||||
import static org.mockito.Mockito.doReturn;
|
|
||||||
import static org.mockito.Mockito.spy;
|
|
||||||
|
|
||||||
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
|
|
||||||
import com.android.settings.R;
|
|
||||||
import com.android.settingslib.core.AbstractPreferenceController;
|
|
||||||
|
|
||||||
import org.junit.Before;
|
|
||||||
import org.junit.Test;
|
|
||||||
import org.junit.runner.RunWith;
|
|
||||||
import org.mockito.Mock;
|
|
||||||
import org.mockito.MockitoAnnotations;
|
|
||||||
import org.robolectric.RobolectricTestRunner;
|
|
||||||
|
|
||||||
@RunWith(RobolectricTestRunner.class)
|
|
||||||
public class SavedAccessPointsWifiSettingsTest {
|
|
||||||
|
|
||||||
@Mock
|
|
||||||
private SubscribedAccessPointsPreferenceController mSubscribedApController;
|
|
||||||
@Mock
|
|
||||||
private SavedAccessPointsPreferenceController mSavedApController;
|
|
||||||
|
|
||||||
private TestFragment mSettings;
|
|
||||||
|
|
||||||
@Before
|
|
||||||
public void setUp() {
|
|
||||||
MockitoAnnotations.initMocks(this);
|
|
||||||
mSettings = spy(new TestFragment());
|
|
||||||
|
|
||||||
doReturn(mSubscribedApController).when(mSettings)
|
|
||||||
.use(SubscribedAccessPointsPreferenceController.class);
|
|
||||||
doReturn(mSavedApController).when(mSettings)
|
|
||||||
.use(SavedAccessPointsPreferenceController.class);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void verifyConstants() {
|
|
||||||
assertThat(mSettings.getMetricsCategory()).isEqualTo(MetricsEvent.WIFI_SAVED_ACCESS_POINTS);
|
|
||||||
assertThat(mSettings.getPreferenceScreenResId())
|
|
||||||
.isEqualTo(R.xml.wifi_display_saved_access_points);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static class TestFragment extends SavedAccessPointsWifiSettings {
|
|
||||||
|
|
||||||
public <T extends AbstractPreferenceController> T use(Class<T> clazz) {
|
|
||||||
return super.use(clazz);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@@ -1,124 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (C) 2019 The Android Open Source Project
|
|
||||||
*
|
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and
|
|
||||||
* limitations under the License.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.android.settings.wifi.savedaccesspoints;
|
|
||||||
|
|
||||||
import static com.google.common.truth.Truth.assertThat;
|
|
||||||
|
|
||||||
import static org.mockito.ArgumentMatchers.any;
|
|
||||||
import static org.mockito.Mockito.never;
|
|
||||||
import static org.mockito.Mockito.spy;
|
|
||||||
import static org.mockito.Mockito.verify;
|
|
||||||
import static org.mockito.Mockito.when;
|
|
||||||
|
|
||||||
import android.content.Context;
|
|
||||||
import android.net.wifi.EAPConstants;
|
|
||||||
import android.net.wifi.WifiConfiguration;
|
|
||||||
import android.net.wifi.WifiManager;
|
|
||||||
import android.net.wifi.hotspot2.PasspointConfiguration;
|
|
||||||
import android.net.wifi.hotspot2.pps.Credential;
|
|
||||||
import android.net.wifi.hotspot2.pps.HomeSp;
|
|
||||||
|
|
||||||
import androidx.preference.PreferenceCategory;
|
|
||||||
import androidx.preference.PreferenceScreen;
|
|
||||||
|
|
||||||
import com.android.settings.testutils.shadow.ShadowAccessPoint;
|
|
||||||
import com.android.settings.testutils.shadow.ShadowWifiManager;
|
|
||||||
import com.android.settingslib.wifi.AccessPointPreference;
|
|
||||||
|
|
||||||
import org.junit.Before;
|
|
||||||
import org.junit.Test;
|
|
||||||
import org.junit.runner.RunWith;
|
|
||||||
import org.mockito.ArgumentCaptor;
|
|
||||||
import org.mockito.Mock;
|
|
||||||
import org.mockito.MockitoAnnotations;
|
|
||||||
import org.robolectric.RobolectricTestRunner;
|
|
||||||
import org.robolectric.RuntimeEnvironment;
|
|
||||||
import org.robolectric.annotation.Config;
|
|
||||||
|
|
||||||
@RunWith(RobolectricTestRunner.class)
|
|
||||||
@Config(shadows = {ShadowWifiManager.class})
|
|
||||||
public class SubscribedAccessPointsPreferenceControllerTest {
|
|
||||||
|
|
||||||
@Mock
|
|
||||||
private PreferenceScreen mPreferenceScreen;
|
|
||||||
@Mock
|
|
||||||
private PreferenceCategory mPreferenceCategory;
|
|
||||||
|
|
||||||
private Context mContext;
|
|
||||||
private WifiManager mWifiManager;
|
|
||||||
private SavedAccessPointsWifiSettings mSettings;
|
|
||||||
private SubscribedAccessPointsPreferenceController mController;
|
|
||||||
|
|
||||||
@Before
|
|
||||||
public void setUp() {
|
|
||||||
MockitoAnnotations.initMocks(this);
|
|
||||||
mContext = RuntimeEnvironment.application;
|
|
||||||
mWifiManager = mContext.getSystemService(WifiManager.class);
|
|
||||||
mSettings = spy(new SavedAccessPointsWifiSettings());
|
|
||||||
mController = spy(new SubscribedAccessPointsPreferenceController(mContext, "test_key"));
|
|
||||||
mController.setHost(mSettings);
|
|
||||||
|
|
||||||
when(mPreferenceScreen.findPreference(mController.getPreferenceKey()))
|
|
||||||
.thenReturn(mPreferenceCategory);
|
|
||||||
when(mPreferenceCategory.getContext()).thenReturn(mContext);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
@Config(shadows = ShadowAccessPoint.class)
|
|
||||||
public void displayPreference_oneAccessPoint_shouldNotListNonSubscribedAPs() {
|
|
||||||
final WifiConfiguration config = new WifiConfiguration();
|
|
||||||
config.SSID = "SSID";
|
|
||||||
config.BSSID = "BSSID";
|
|
||||||
config.networkId = 2;
|
|
||||||
mWifiManager.addNetwork(config);
|
|
||||||
|
|
||||||
mController.displayPreference(mPreferenceScreen);
|
|
||||||
|
|
||||||
verify(mPreferenceCategory, never()).addPreference(any(AccessPointPreference.class));
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
@Config(shadows = ShadowAccessPoint.class)
|
|
||||||
public void displayPreference_onePasspoint_shouldListSubscribedAPs() {
|
|
||||||
mWifiManager.addOrUpdatePasspointConfiguration(createMockPasspointConfiguration());
|
|
||||||
|
|
||||||
mController.displayPreference(mPreferenceScreen);
|
|
||||||
|
|
||||||
final ArgumentCaptor<AccessPointPreference> captor =
|
|
||||||
ArgumentCaptor.forClass(AccessPointPreference.class);
|
|
||||||
verify(mPreferenceCategory).addPreference(captor.capture());
|
|
||||||
|
|
||||||
final AccessPointPreference pref = captor.getValue();
|
|
||||||
assertThat(pref.getTitle()).isEqualTo("TESTPASSPOINT");
|
|
||||||
}
|
|
||||||
|
|
||||||
public static PasspointConfiguration createMockPasspointConfiguration() {
|
|
||||||
final PasspointConfiguration config = new PasspointConfiguration();
|
|
||||||
final HomeSp homeSp = new HomeSp();
|
|
||||||
homeSp.setFqdn("FQDN");
|
|
||||||
homeSp.setFriendlyName("TESTPASSPOINT");
|
|
||||||
config.setHomeSp(homeSp);
|
|
||||||
final Credential.SimCredential simCredential = new Credential.SimCredential();
|
|
||||||
final Credential credential = new Credential();
|
|
||||||
credential.setRealm("test.example.com");
|
|
||||||
simCredential.setImsi("12345*");
|
|
||||||
simCredential.setEapType(EAPConstants.EAP_SIM);
|
|
||||||
credential.setSimCredential(simCredential);
|
|
||||||
config.setCredential(credential);
|
|
||||||
return config;
|
|
||||||
}
|
|
||||||
}
|
|
Reference in New Issue
Block a user