Snap for 7677822 from 2889a7d49f to sc-v2-release
Change-Id: I0971fd54e7b831213e9407725e017e9c0b4625e8
This commit is contained in:
@@ -302,6 +302,26 @@
|
|||||||
android:value="true" />
|
android:value="true" />
|
||||||
</activity>
|
</activity>
|
||||||
|
|
||||||
|
<activity
|
||||||
|
android:name="Settings$WifiDetailsSettingsActivity"
|
||||||
|
android:label="@string/wifi_details_title"
|
||||||
|
android:icon="@drawable/ic_homepage_network"
|
||||||
|
android:exported="true"
|
||||||
|
android:permission="android.permission.CHANGE_WIFI_STATE"
|
||||||
|
android:configChanges="orientation|keyboardHidden|screenSize">
|
||||||
|
<!-- The intent action is only public to OEM, because a special library is required. -->
|
||||||
|
<intent-filter android:priority="1">
|
||||||
|
<action android:name="android.settings.WIFI_DETAILS_SETTINGS" />
|
||||||
|
<category android:name="android.intent.category.DEFAULT" />
|
||||||
|
</intent-filter>
|
||||||
|
<meta-data
|
||||||
|
android:name="com.android.settings.FRAGMENT_CLASS"
|
||||||
|
android:value="com.android.settings.wifi.details.WifiNetworkDetailsFragment" />
|
||||||
|
<meta-data
|
||||||
|
android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED"
|
||||||
|
android:value="true" />
|
||||||
|
</activity>
|
||||||
|
|
||||||
<activity
|
<activity
|
||||||
android:name=".wifi.WifiPickerActivity"
|
android:name=".wifi.WifiPickerActivity"
|
||||||
android:exported="true">
|
android:exported="true">
|
||||||
|
|||||||
@@ -13370,8 +13370,6 @@
|
|||||||
<string name="calls_sms_no_sim">No SIM</string>
|
<string name="calls_sms_no_sim">No SIM</string>
|
||||||
<!-- Network & internet preferences title [CHAR LIMIT=NONE] -->
|
<!-- Network & internet preferences title [CHAR LIMIT=NONE] -->
|
||||||
<string name="network_and_internet_preferences_title">Network preferences</string>
|
<string name="network_and_internet_preferences_title">Network preferences</string>
|
||||||
<!-- Network & internet preferences summary [CHAR LIMIT=NONE] -->
|
|
||||||
<string name="network_and_internet_preferences_summary">Connect to public networks</string>
|
|
||||||
<!-- Search keywords for "Internet" settings [CHAR_LIMIT=NONE] -->
|
<!-- Search keywords for "Internet" settings [CHAR_LIMIT=NONE] -->
|
||||||
<string name="keywords_internet">network connection, internet, wireless, data, wifi, wi-fi, wi fi, cellular, mobile, cell carrier, 4g, 3g, 2g, lte</string>
|
<string name="keywords_internet">network connection, internet, wireless, data, wifi, wi-fi, wi fi, cellular, mobile, cell carrier, 4g, 3g, 2g, lte</string>
|
||||||
<!-- Slice title text for turning on the Wi-Fi networks. [CHAR LIMIT=40] -->
|
<!-- Slice title text for turning on the Wi-Fi networks. [CHAR LIMIT=40] -->
|
||||||
|
|||||||
@@ -70,7 +70,6 @@
|
|||||||
<Preference
|
<Preference
|
||||||
android:key="configure_wifi_settings"
|
android:key="configure_wifi_settings"
|
||||||
android:title="@string/network_and_internet_preferences_title"
|
android:title="@string/network_and_internet_preferences_title"
|
||||||
android:summary="@string/network_and_internet_preferences_summary"
|
|
||||||
settings:allowDividerAbove="true"
|
settings:allowDividerAbove="true"
|
||||||
android:fragment="com.android.settings.wifi.ConfigureWifiSettings"/>
|
android:fragment="com.android.settings.wifi.ConfigureWifiSettings"/>
|
||||||
|
|
||||||
|
|||||||
@@ -90,6 +90,8 @@ public class Settings extends SettingsActivity {
|
|||||||
public static class WifiSettingsActivity extends SettingsActivity { /* empty */ }
|
public static class WifiSettingsActivity extends SettingsActivity { /* empty */ }
|
||||||
public static class WifiSettings2Activity extends SettingsActivity { /* empty */ }
|
public static class WifiSettings2Activity extends SettingsActivity { /* empty */ }
|
||||||
public static class NetworkProviderSettingsActivity extends SettingsActivity { /* empty */ }
|
public static class NetworkProviderSettingsActivity extends SettingsActivity { /* empty */ }
|
||||||
|
/** Activity for the Wi-Fi network details settings. */
|
||||||
|
public static class WifiDetailsSettingsActivity extends SettingsActivity { /* empty */ }
|
||||||
public static class WifiP2pSettingsActivity extends SettingsActivity { /* empty */ }
|
public static class WifiP2pSettingsActivity extends SettingsActivity { /* empty */ }
|
||||||
public static class AvailableVirtualKeyboardActivity extends SettingsActivity { /* empty */ }
|
public static class AvailableVirtualKeyboardActivity extends SettingsActivity { /* empty */ }
|
||||||
public static class KeyboardLayoutPickerActivity extends SettingsActivity { /* empty */ }
|
public static class KeyboardLayoutPickerActivity extends SettingsActivity { /* empty */ }
|
||||||
|
|||||||
@@ -159,6 +159,7 @@ import com.android.settings.wifi.WifiInfo;
|
|||||||
import com.android.settings.wifi.WifiSettings;
|
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.details.WifiNetworkDetailsFragment;
|
||||||
import com.android.settings.wifi.p2p.WifiP2pSettings;
|
import com.android.settings.wifi.p2p.WifiP2pSettings;
|
||||||
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;
|
||||||
@@ -173,6 +174,7 @@ public class SettingsGateway {
|
|||||||
AdvancedConnectedDeviceDashboardFragment.class.getName(),
|
AdvancedConnectedDeviceDashboardFragment.class.getName(),
|
||||||
CreateShortcut.class.getName(),
|
CreateShortcut.class.getName(),
|
||||||
WifiSettings.class.getName(),
|
WifiSettings.class.getName(),
|
||||||
|
WifiNetworkDetailsFragment.class.getName(),
|
||||||
ConfigureWifiSettings.class.getName(),
|
ConfigureWifiSettings.class.getName(),
|
||||||
SavedAccessPointsWifiSettings2.class.getName(),
|
SavedAccessPointsWifiSettings2.class.getName(),
|
||||||
AllInOneTetherSettings.class.getName(),
|
AllInOneTetherSettings.class.getName(),
|
||||||
|
|||||||
@@ -37,6 +37,8 @@ import android.util.Log;
|
|||||||
|
|
||||||
import androidx.annotation.VisibleForTesting;
|
import androidx.annotation.VisibleForTesting;
|
||||||
|
|
||||||
|
import com.android.settingslib.fuelgauge.PowerAllowlistBackend;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
@@ -63,6 +65,8 @@ public final class BatteryBackupHelper implements BackupHelper {
|
|||||||
static final String KEY_FULL_POWER_LIST = "full_power_list";
|
static final String KEY_FULL_POWER_LIST = "full_power_list";
|
||||||
static final String KEY_OPTIMIZATION_LIST = "optimization_mode_list";
|
static final String KEY_OPTIMIZATION_LIST = "optimization_mode_list";
|
||||||
|
|
||||||
|
@VisibleForTesting
|
||||||
|
PowerAllowlistBackend mPowerAllowlistBackend;
|
||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
IDeviceIdleController mIDeviceIdleController;
|
IDeviceIdleController mIDeviceIdleController;
|
||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
@@ -127,6 +131,7 @@ public final class BatteryBackupHelper implements BackupHelper {
|
|||||||
Log.w(TAG, "no data found in the getInstalledApplications()");
|
Log.w(TAG, "no data found in the getInstalledApplications()");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
int backupCount = 0;
|
||||||
final StringBuilder builder = new StringBuilder();
|
final StringBuilder builder = new StringBuilder();
|
||||||
final AppOpsManager appOps = mContext.getSystemService(AppOpsManager.class);
|
final AppOpsManager appOps = mContext.getSystemService(AppOpsManager.class);
|
||||||
// Converts application into the AppUsageState.
|
// Converts application into the AppUsageState.
|
||||||
@@ -136,20 +141,22 @@ public final class BatteryBackupHelper implements BackupHelper {
|
|||||||
@BatteryOptimizeUtils.OptimizationMode
|
@BatteryOptimizeUtils.OptimizationMode
|
||||||
final int optimizationMode = BatteryOptimizeUtils.getAppOptimizationMode(
|
final int optimizationMode = BatteryOptimizeUtils.getAppOptimizationMode(
|
||||||
mode, allowlistedApps.contains(info.packageName));
|
mode, allowlistedApps.contains(info.packageName));
|
||||||
// Ignores default optimized or unknown state.
|
// Ignores default optimized/unknown state or system/default apps.
|
||||||
if (optimizationMode == BatteryOptimizeUtils.MODE_OPTIMIZED
|
if (optimizationMode == BatteryOptimizeUtils.MODE_OPTIMIZED
|
||||||
|| optimizationMode == BatteryOptimizeUtils.MODE_UNKNOWN) {
|
|| optimizationMode == BatteryOptimizeUtils.MODE_UNKNOWN
|
||||||
|
|| isSystemOrDefaultApp(info.packageName)) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
final String packageOptimizeMode =
|
final String packageOptimizeMode =
|
||||||
info.packageName + DELIMITER_MODE + optimizationMode;
|
info.packageName + DELIMITER_MODE + optimizationMode;
|
||||||
builder.append(packageOptimizeMode + DELIMITER);
|
builder.append(packageOptimizeMode + DELIMITER);
|
||||||
debugLog(packageOptimizeMode);
|
debugLog(packageOptimizeMode);
|
||||||
|
backupCount++;
|
||||||
}
|
}
|
||||||
|
|
||||||
writeBackupData(data, KEY_OPTIMIZATION_LIST, builder.toString());
|
writeBackupData(data, KEY_OPTIMIZATION_LIST, builder.toString());
|
||||||
Log.d(TAG, String.format("backup getInstalledApplications() size=%d in %d/ms",
|
Log.d(TAG, String.format("backup getInstalledApplications():%d count=%d in %d/ms",
|
||||||
applications.size(), (System.currentTimeMillis() - timestamp)));
|
applications.size(), backupCount, (System.currentTimeMillis() - timestamp)));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Provides an opportunity to inject mock IDeviceIdleController for testing.
|
// Provides an opportunity to inject mock IDeviceIdleController for testing.
|
||||||
@@ -170,6 +177,20 @@ public final class BatteryBackupHelper implements BackupHelper {
|
|||||||
return mIPackageManager;
|
return mIPackageManager;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private PowerAllowlistBackend getPowerAllowlistBackend() {
|
||||||
|
if (mPowerAllowlistBackend != null) {
|
||||||
|
return mPowerAllowlistBackend;
|
||||||
|
}
|
||||||
|
mPowerAllowlistBackend = PowerAllowlistBackend.getInstance(mContext);
|
||||||
|
return mPowerAllowlistBackend;
|
||||||
|
}
|
||||||
|
|
||||||
|
private boolean isSystemOrDefaultApp(String packageName) {
|
||||||
|
final PowerAllowlistBackend powerAllowlistBackend = getPowerAllowlistBackend();
|
||||||
|
return powerAllowlistBackend.isSysAllowlisted(packageName)
|
||||||
|
|| powerAllowlistBackend.isDefaultActiveApp(packageName);
|
||||||
|
}
|
||||||
|
|
||||||
private List<ApplicationInfo> getInstalledApplications() {
|
private List<ApplicationInfo> getInstalledApplications() {
|
||||||
final List<ApplicationInfo> applications = new ArrayList<>();
|
final List<ApplicationInfo> applications = new ArrayList<>();
|
||||||
final UserManager um = mContext.getSystemService(UserManager.class);
|
final UserManager um = mContext.getSystemService(UserManager.class);
|
||||||
|
|||||||
@@ -71,7 +71,7 @@ import com.android.settings.wifi.WifiConnectListener;
|
|||||||
import com.android.settings.wifi.WifiDialog2;
|
import com.android.settings.wifi.WifiDialog2;
|
||||||
import com.android.settings.wifi.WifiPickerTrackerHelper;
|
import com.android.settings.wifi.WifiPickerTrackerHelper;
|
||||||
import com.android.settings.wifi.WifiUtils;
|
import com.android.settings.wifi.WifiUtils;
|
||||||
import com.android.settings.wifi.details2.WifiNetworkDetailsFragment2;
|
import com.android.settings.wifi.details.WifiNetworkDetailsFragment;
|
||||||
import com.android.settings.wifi.dpp.WifiDppUtils;
|
import com.android.settings.wifi.dpp.WifiDppUtils;
|
||||||
import com.android.settingslib.HelpUtils;
|
import com.android.settingslib.HelpUtils;
|
||||||
import com.android.settingslib.RestrictedLockUtils;
|
import com.android.settingslib.RestrictedLockUtils;
|
||||||
@@ -929,11 +929,11 @@ public class NetworkProviderSettings extends RestrictedSettingsFragment
|
|||||||
: context.getText(R.string.pref_title_network_details);
|
: context.getText(R.string.pref_title_network_details);
|
||||||
|
|
||||||
final Bundle bundle = new Bundle();
|
final Bundle bundle = new Bundle();
|
||||||
bundle.putString(WifiNetworkDetailsFragment2.KEY_CHOSEN_WIFIENTRY_KEY, wifiEntry.getKey());
|
bundle.putString(WifiNetworkDetailsFragment.KEY_CHOSEN_WIFIENTRY_KEY, wifiEntry.getKey());
|
||||||
|
|
||||||
new SubSettingLauncher(context)
|
new SubSettingLauncher(context)
|
||||||
.setTitleText(title)
|
.setTitleText(title)
|
||||||
.setDestination(WifiNetworkDetailsFragment2.class.getName())
|
.setDestination(WifiNetworkDetailsFragment.class.getName())
|
||||||
.setArguments(bundle)
|
.setArguments(bundle)
|
||||||
.setSourceMetricsCategory(getMetricsCategory())
|
.setSourceMetricsCategory(getMetricsCategory())
|
||||||
.launch();
|
.launch();
|
||||||
@@ -966,12 +966,10 @@ public class NetworkProviderSettings extends RestrictedSettingsFragment
|
|||||||
|
|
||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
void setAdditionalSettingsSummaries() {
|
void setAdditionalSettingsSummaries() {
|
||||||
if (!FeatureFlagUtils.isEnabled(getContext(), FeatureFlagUtils.SETTINGS_PROVIDER_MODEL)) {
|
|
||||||
mConfigureWifiSettingsPreference.setSummary(getString(
|
mConfigureWifiSettingsPreference.setSummary(getString(
|
||||||
isWifiWakeupEnabled()
|
isWifiWakeupEnabled()
|
||||||
? R.string.wifi_configure_settings_preference_summary_wakeup_on
|
? R.string.wifi_configure_settings_preference_summary_wakeup_on
|
||||||
: R.string.wifi_configure_settings_preference_summary_wakeup_off));
|
: R.string.wifi_configure_settings_preference_summary_wakeup_off));
|
||||||
}
|
|
||||||
|
|
||||||
final int numSavedNetworks = mWifiPickerTracker.getNumSavedNetworks();
|
final int numSavedNetworks = mWifiPickerTracker.getNumSavedNetworks();
|
||||||
final int numSavedSubscriptions = mWifiPickerTracker.getNumSavedSubscriptions();
|
final int numSavedSubscriptions = mWifiPickerTracker.getNumSavedSubscriptions();
|
||||||
@@ -1184,7 +1182,7 @@ public class NetworkProviderSettings extends RestrictedSettingsFragment
|
|||||||
|
|
||||||
private void launchConfigNewNetworkFragment(WifiEntry wifiEntry) {
|
private void launchConfigNewNetworkFragment(WifiEntry wifiEntry) {
|
||||||
final Bundle bundle = new Bundle();
|
final Bundle bundle = new Bundle();
|
||||||
bundle.putString(WifiNetworkDetailsFragment2.KEY_CHOSEN_WIFIENTRY_KEY,
|
bundle.putString(WifiNetworkDetailsFragment.KEY_CHOSEN_WIFIENTRY_KEY,
|
||||||
wifiEntry.getKey());
|
wifiEntry.getKey());
|
||||||
new SubSettingLauncher(getContext())
|
new SubSettingLauncher(getContext())
|
||||||
.setTitleText(wifiEntry.getTitle())
|
.setTitleText(wifiEntry.getTitle())
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ import androidx.annotation.VisibleForTesting;
|
|||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
import com.android.settings.core.InstrumentedFragment;
|
import com.android.settings.core.InstrumentedFragment;
|
||||||
import com.android.settings.overlay.FeatureFactory;
|
import com.android.settings.overlay.FeatureFactory;
|
||||||
import com.android.settings.wifi.details2.WifiNetworkDetailsFragment2;
|
import com.android.settings.wifi.details.WifiNetworkDetailsFragment;
|
||||||
import com.android.wifitrackerlib.NetworkDetailsTracker;
|
import com.android.wifitrackerlib.NetworkDetailsTracker;
|
||||||
import com.android.wifitrackerlib.WifiEntry;
|
import com.android.wifitrackerlib.WifiEntry;
|
||||||
|
|
||||||
@@ -238,6 +238,6 @@ public class ConfigureWifiEntryFragment extends InstrumentedFragment implements
|
|||||||
MAX_SCAN_AGE_MILLIS,
|
MAX_SCAN_AGE_MILLIS,
|
||||||
SCAN_INTERVAL_MILLIS,
|
SCAN_INTERVAL_MILLIS,
|
||||||
getArguments().getString(
|
getArguments().getString(
|
||||||
WifiNetworkDetailsFragment2.KEY_CHOSEN_WIFIENTRY_KEY));
|
WifiNetworkDetailsFragment.KEY_CHOSEN_WIFIENTRY_KEY));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -34,7 +34,7 @@ import androidx.preference.PreferenceScreen;
|
|||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
import com.android.settings.core.SubSettingLauncher;
|
import com.android.settings.core.SubSettingLauncher;
|
||||||
import com.android.settings.overlay.FeatureFactory;
|
import com.android.settings.overlay.FeatureFactory;
|
||||||
import com.android.settings.wifi.details2.WifiNetworkDetailsFragment2;
|
import com.android.settings.wifi.details.WifiNetworkDetailsFragment;
|
||||||
import com.android.settingslib.core.AbstractPreferenceController;
|
import com.android.settingslib.core.AbstractPreferenceController;
|
||||||
import com.android.settingslib.core.lifecycle.Lifecycle;
|
import com.android.settingslib.core.lifecycle.Lifecycle;
|
||||||
import com.android.settingslib.wifi.WifiEntryPreference;
|
import com.android.settingslib.wifi.WifiEntryPreference;
|
||||||
@@ -165,11 +165,11 @@ public class WifiConnectionPreferenceController extends AbstractPreferenceContro
|
|||||||
mPreference.setOrder(order);
|
mPreference.setOrder(order);
|
||||||
mPreference.setOnPreferenceClickListener(pref -> {
|
mPreference.setOnPreferenceClickListener(pref -> {
|
||||||
final Bundle args = new Bundle();
|
final Bundle args = new Bundle();
|
||||||
args.putString(WifiNetworkDetailsFragment2.KEY_CHOSEN_WIFIENTRY_KEY,
|
args.putString(WifiNetworkDetailsFragment.KEY_CHOSEN_WIFIENTRY_KEY,
|
||||||
wifiEntry.getKey());
|
wifiEntry.getKey());
|
||||||
new SubSettingLauncher(mPrefContext)
|
new SubSettingLauncher(mPrefContext)
|
||||||
.setTitleRes(R.string.pref_title_network_details)
|
.setTitleRes(R.string.pref_title_network_details)
|
||||||
.setDestination(WifiNetworkDetailsFragment2.class.getName())
|
.setDestination(WifiNetworkDetailsFragment.class.getName())
|
||||||
.setArguments(args)
|
.setArguments(args)
|
||||||
.setSourceMetricsCategory(mMetricsCategory)
|
.setSourceMetricsCategory(mMetricsCategory)
|
||||||
.launch();
|
.launch();
|
||||||
|
|||||||
@@ -67,7 +67,7 @@ import com.android.settings.location.WifiScanningFragment;
|
|||||||
import com.android.settings.overlay.FeatureFactory;
|
import com.android.settings.overlay.FeatureFactory;
|
||||||
import com.android.settings.search.BaseSearchIndexProvider;
|
import com.android.settings.search.BaseSearchIndexProvider;
|
||||||
import com.android.settings.widget.MainSwitchBarController;
|
import com.android.settings.widget.MainSwitchBarController;
|
||||||
import com.android.settings.wifi.details2.WifiNetworkDetailsFragment2;
|
import com.android.settings.wifi.details.WifiNetworkDetailsFragment;
|
||||||
import com.android.settings.wifi.dpp.WifiDppUtils;
|
import com.android.settings.wifi.dpp.WifiDppUtils;
|
||||||
import com.android.settingslib.HelpUtils;
|
import com.android.settingslib.HelpUtils;
|
||||||
import com.android.settingslib.RestrictedLockUtils;
|
import com.android.settingslib.RestrictedLockUtils;
|
||||||
@@ -844,11 +844,11 @@ public class WifiSettings extends RestrictedSettingsFragment
|
|||||||
: context.getText(R.string.pref_title_network_details);
|
: context.getText(R.string.pref_title_network_details);
|
||||||
|
|
||||||
final Bundle bundle = new Bundle();
|
final Bundle bundle = new Bundle();
|
||||||
bundle.putString(WifiNetworkDetailsFragment2.KEY_CHOSEN_WIFIENTRY_KEY, wifiEntry.getKey());
|
bundle.putString(WifiNetworkDetailsFragment.KEY_CHOSEN_WIFIENTRY_KEY, wifiEntry.getKey());
|
||||||
|
|
||||||
new SubSettingLauncher(context)
|
new SubSettingLauncher(context)
|
||||||
.setTitleText(title)
|
.setTitleText(title)
|
||||||
.setDestination(WifiNetworkDetailsFragment2.class.getName())
|
.setDestination(WifiNetworkDetailsFragment.class.getName())
|
||||||
.setArguments(bundle)
|
.setArguments(bundle)
|
||||||
.setSourceMetricsCategory(getMetricsCategory())
|
.setSourceMetricsCategory(getMetricsCategory())
|
||||||
.launch();
|
.launch();
|
||||||
@@ -1121,7 +1121,7 @@ public class WifiSettings extends RestrictedSettingsFragment
|
|||||||
|
|
||||||
private void launchConfigNewNetworkFragment(WifiEntry wifiEntry) {
|
private void launchConfigNewNetworkFragment(WifiEntry wifiEntry) {
|
||||||
final Bundle bundle = new Bundle();
|
final Bundle bundle = new Bundle();
|
||||||
bundle.putString(WifiNetworkDetailsFragment2.KEY_CHOSEN_WIFIENTRY_KEY,
|
bundle.putString(WifiNetworkDetailsFragment.KEY_CHOSEN_WIFIENTRY_KEY,
|
||||||
wifiEntry.getKey());
|
wifiEntry.getKey());
|
||||||
new SubSettingLauncher(getContext())
|
new SubSettingLauncher(getContext())
|
||||||
.setTitleText(wifiEntry.getTitle())
|
.setTitleText(wifiEntry.getTitle())
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (C) 2019 The Android Open Source Project
|
* Copyright (C) 2021 The Android Open Source Project
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@@ -13,7 +13,7 @@
|
|||||||
* See the License for the specific language governing permissions and
|
* See the License for the specific language governing permissions and
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
package com.android.settings.wifi.details2;
|
package com.android.settings.wifi.details;
|
||||||
|
|
||||||
import static com.android.settings.wifi.WifiSettings.WIFI_DIALOG_ID;
|
import static com.android.settings.wifi.WifiSettings.WIFI_DIALOG_ID;
|
||||||
|
|
||||||
@@ -45,6 +45,13 @@ import com.android.settings.dashboard.RestrictedDashboardFragment;
|
|||||||
import com.android.settings.overlay.FeatureFactory;
|
import com.android.settings.overlay.FeatureFactory;
|
||||||
import com.android.settings.wifi.WifiConfigUiBase2;
|
import com.android.settings.wifi.WifiConfigUiBase2;
|
||||||
import com.android.settings.wifi.WifiDialog2;
|
import com.android.settings.wifi.WifiDialog2;
|
||||||
|
import com.android.settings.wifi.details2.AddDevicePreferenceController2;
|
||||||
|
import com.android.settings.wifi.details2.WifiAutoConnectPreferenceController2;
|
||||||
|
import com.android.settings.wifi.details2.WifiDetailPreferenceController2;
|
||||||
|
import com.android.settings.wifi.details2.WifiMeteredPreferenceController2;
|
||||||
|
import com.android.settings.wifi.details2.WifiPrivacyPreferenceController2;
|
||||||
|
import com.android.settings.wifi.details2.WifiSecondSummaryController2;
|
||||||
|
import com.android.settings.wifi.details2.WifiSubscriptionDetailPreferenceController2;
|
||||||
import com.android.settingslib.RestrictedLockUtils;
|
import com.android.settingslib.RestrictedLockUtils;
|
||||||
import com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
|
import com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
|
||||||
import com.android.settingslib.RestrictedLockUtilsInternal;
|
import com.android.settingslib.RestrictedLockUtilsInternal;
|
||||||
@@ -63,10 +70,10 @@ import java.util.List;
|
|||||||
* <p>The key of {@link WifiEntry} should be saved to the intent Extras when launching this class
|
* <p>The key of {@link WifiEntry} should be saved to the intent Extras when launching this class
|
||||||
* in order to properly render this page.
|
* in order to properly render this page.
|
||||||
*/
|
*/
|
||||||
public class WifiNetworkDetailsFragment2 extends RestrictedDashboardFragment implements
|
public class WifiNetworkDetailsFragment extends RestrictedDashboardFragment implements
|
||||||
WifiDialog2.WifiDialog2Listener {
|
WifiDialog2.WifiDialog2Listener {
|
||||||
|
|
||||||
private static final String TAG = "WifiNetworkDetailsFrg2";
|
private static final String TAG = "WifiNetworkDetailsFrg";
|
||||||
|
|
||||||
// Key of a Bundle to save/restore the selected WifiEntry
|
// Key of a Bundle to save/restore the selected WifiEntry
|
||||||
public static final String KEY_CHOSEN_WIFIENTRY_KEY = "key_chosen_wifientry_key";
|
public static final String KEY_CHOSEN_WIFIENTRY_KEY = "key_chosen_wifientry_key";
|
||||||
@@ -86,7 +93,7 @@ public class WifiNetworkDetailsFragment2 extends RestrictedDashboardFragment imp
|
|||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
List<AbstractPreferenceController> mControllers;
|
List<AbstractPreferenceController> mControllers;
|
||||||
|
|
||||||
public WifiNetworkDetailsFragment2() {
|
public WifiNetworkDetailsFragment() {
|
||||||
super(UserManager.DISALLOW_CONFIG_WIFI);
|
super(UserManager.DISALLOW_CONFIG_WIFI);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -76,6 +76,7 @@ import com.android.settings.widget.EntityHeaderController;
|
|||||||
import com.android.settings.wifi.WifiDialog2;
|
import com.android.settings.wifi.WifiDialog2;
|
||||||
import com.android.settings.wifi.WifiDialog2.WifiDialog2Listener;
|
import com.android.settings.wifi.WifiDialog2.WifiDialog2Listener;
|
||||||
import com.android.settings.wifi.WifiUtils;
|
import com.android.settings.wifi.WifiUtils;
|
||||||
|
import com.android.settings.wifi.details.WifiNetworkDetailsFragment;
|
||||||
import com.android.settings.wifi.dpp.WifiDppUtils;
|
import com.android.settings.wifi.dpp.WifiDppUtils;
|
||||||
import com.android.settingslib.core.AbstractPreferenceController;
|
import com.android.settingslib.core.AbstractPreferenceController;
|
||||||
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
|
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
|
||||||
@@ -1099,7 +1100,7 @@ public class WifiDetailPreferenceController2 extends AbstractPreferenceControlle
|
|||||||
refreshPage();
|
refreshPage();
|
||||||
|
|
||||||
// Refresh the Preferences in fragment.
|
// Refresh the Preferences in fragment.
|
||||||
((WifiNetworkDetailsFragment2) mFragment).refreshPreferences();
|
((WifiNetworkDetailsFragment) mFragment).refreshPreferences();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -39,7 +39,7 @@ import com.android.settings.R;
|
|||||||
import com.android.settings.core.SubSettingLauncher;
|
import com.android.settings.core.SubSettingLauncher;
|
||||||
import com.android.settings.dashboard.DashboardFragment;
|
import com.android.settings.dashboard.DashboardFragment;
|
||||||
import com.android.settings.wifi.WifiSettings;
|
import com.android.settings.wifi.WifiSettings;
|
||||||
import com.android.settings.wifi.details2.WifiNetworkDetailsFragment2;
|
import com.android.settings.wifi.details.WifiNetworkDetailsFragment;
|
||||||
import com.android.wifitrackerlib.SavedNetworkTracker;
|
import com.android.wifitrackerlib.SavedNetworkTracker;
|
||||||
|
|
||||||
import java.time.Clock;
|
import java.time.Clock;
|
||||||
@@ -126,7 +126,7 @@ public class SavedAccessPointsWifiSettings2 extends DashboardFragment
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Shows {@link WifiNetworkDetailsFragment2} for assigned key of {@link WifiEntry}.
|
* Shows {@link WifiNetworkDetailsFragment} for assigned key of {@link WifiEntry}.
|
||||||
*/
|
*/
|
||||||
public void showWifiPage(@NonNull String key, CharSequence title) {
|
public void showWifiPage(@NonNull String key, CharSequence title) {
|
||||||
removeDialog(WifiSettings.WIFI_DIALOG_ID);
|
removeDialog(WifiSettings.WIFI_DIALOG_ID);
|
||||||
@@ -137,11 +137,11 @@ public class SavedAccessPointsWifiSettings2 extends DashboardFragment
|
|||||||
}
|
}
|
||||||
|
|
||||||
final Bundle bundle = new Bundle();
|
final Bundle bundle = new Bundle();
|
||||||
bundle.putString(WifiNetworkDetailsFragment2.KEY_CHOSEN_WIFIENTRY_KEY, key);
|
bundle.putString(WifiNetworkDetailsFragment.KEY_CHOSEN_WIFIENTRY_KEY, key);
|
||||||
|
|
||||||
new SubSettingLauncher(getContext())
|
new SubSettingLauncher(getContext())
|
||||||
.setTitleText(title)
|
.setTitleText(title)
|
||||||
.setDestination(WifiNetworkDetailsFragment2.class.getName())
|
.setDestination(WifiNetworkDetailsFragment.class.getName())
|
||||||
.setArguments(bundle)
|
.setArguments(bundle)
|
||||||
.setSourceMetricsCategory(getMetricsCategory())
|
.setSourceMetricsCategory(getMetricsCategory())
|
||||||
.launch();
|
.launch();
|
||||||
|
|||||||
@@ -50,7 +50,7 @@ import com.android.settings.slices.SliceBuilderUtils;
|
|||||||
import com.android.settings.wifi.WifiDialogActivity;
|
import com.android.settings.wifi.WifiDialogActivity;
|
||||||
import com.android.settings.wifi.WifiSettings;
|
import com.android.settings.wifi.WifiSettings;
|
||||||
import com.android.settings.wifi.WifiUtils;
|
import com.android.settings.wifi.WifiUtils;
|
||||||
import com.android.settings.wifi.details2.WifiNetworkDetailsFragment2;
|
import com.android.settings.wifi.details.WifiNetworkDetailsFragment;
|
||||||
import com.android.wifitrackerlib.WifiEntry;
|
import com.android.wifitrackerlib.WifiEntry;
|
||||||
|
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
@@ -200,11 +200,11 @@ public class WifiSlice implements CustomSliceable {
|
|||||||
|
|
||||||
if (wifiSliceItem.getConnectedState() != WifiEntry.CONNECTED_STATE_DISCONNECTED) {
|
if (wifiSliceItem.getConnectedState() != WifiEntry.CONNECTED_STATE_DISCONNECTED) {
|
||||||
final Bundle bundle = new Bundle();
|
final Bundle bundle = new Bundle();
|
||||||
bundle.putString(WifiNetworkDetailsFragment2.KEY_CHOSEN_WIFIENTRY_KEY,
|
bundle.putString(WifiNetworkDetailsFragment.KEY_CHOSEN_WIFIENTRY_KEY,
|
||||||
wifiSliceItem.getKey());
|
wifiSliceItem.getKey());
|
||||||
final Intent intent = new SubSettingLauncher(mContext)
|
final Intent intent = new SubSettingLauncher(mContext)
|
||||||
.setTitleRes(R.string.pref_title_network_details)
|
.setTitleRes(R.string.pref_title_network_details)
|
||||||
.setDestination(WifiNetworkDetailsFragment2.class.getName())
|
.setDestination(WifiNetworkDetailsFragment.class.getName())
|
||||||
.setArguments(bundle)
|
.setArguments(bundle)
|
||||||
.setSourceMetricsCategory(SettingsEnums.WIFI)
|
.setSourceMetricsCategory(SettingsEnums.WIFI)
|
||||||
.toIntent();
|
.toIntent();
|
||||||
|
|||||||
@@ -40,6 +40,8 @@ import android.os.RemoteException;
|
|||||||
import android.os.UserHandle;
|
import android.os.UserHandle;
|
||||||
import android.os.UserManager;
|
import android.os.UserManager;
|
||||||
|
|
||||||
|
import com.android.settingslib.fuelgauge.PowerAllowlistBackend;
|
||||||
|
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@@ -59,6 +61,9 @@ import org.robolectric.annotation.Resetter;
|
|||||||
@RunWith(RobolectricTestRunner.class)
|
@RunWith(RobolectricTestRunner.class)
|
||||||
@Config(shadows = {BatteryBackupHelperTest.ShadowUserHandle.class})
|
@Config(shadows = {BatteryBackupHelperTest.ShadowUserHandle.class})
|
||||||
public final class BatteryBackupHelperTest {
|
public final class BatteryBackupHelperTest {
|
||||||
|
private static final String PACKAGE_NAME1 = "com.android.testing.1";
|
||||||
|
private static final String PACKAGE_NAME2 = "com.android.testing.2";
|
||||||
|
private static final String PACKAGE_NAME3 = "com.android.testing.3";
|
||||||
|
|
||||||
private Context mContext;
|
private Context mContext;
|
||||||
private BatteryBackupHelper mBatteryBackupHelper;
|
private BatteryBackupHelper mBatteryBackupHelper;
|
||||||
@@ -73,6 +78,8 @@ public final class BatteryBackupHelperTest {
|
|||||||
private AppOpsManager mAppOpsManager;
|
private AppOpsManager mAppOpsManager;
|
||||||
@Mock
|
@Mock
|
||||||
private UserManager mUserManager;
|
private UserManager mUserManager;
|
||||||
|
@Mock
|
||||||
|
private PowerAllowlistBackend mPowerAllowlistBackend;
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
public void setUp() {
|
public void setUp() {
|
||||||
@@ -84,6 +91,7 @@ public final class BatteryBackupHelperTest {
|
|||||||
mBatteryBackupHelper = new BatteryBackupHelper(mContext);
|
mBatteryBackupHelper = new BatteryBackupHelper(mContext);
|
||||||
mBatteryBackupHelper.mIDeviceIdleController = mDeviceController;
|
mBatteryBackupHelper.mIDeviceIdleController = mDeviceController;
|
||||||
mBatteryBackupHelper.mIPackageManager = mIPackageManager;
|
mBatteryBackupHelper.mIPackageManager = mIPackageManager;
|
||||||
|
mBatteryBackupHelper.mPowerAllowlistBackend = mPowerAllowlistBackend;
|
||||||
}
|
}
|
||||||
|
|
||||||
@After
|
@After
|
||||||
@@ -172,16 +180,49 @@ public final class BatteryBackupHelperTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void backupOptimizationMode_backupOptimizationMode() throws Exception {
|
public void backupOptimizationMode_backupOptimizationMode() throws Exception {
|
||||||
final String packageName1 = "com.android.testing.1";
|
final List<String> allowlistedApps = Arrays.asList(PACKAGE_NAME1);
|
||||||
final String packageName2 = "com.android.testing.2";
|
createTestingData(PACKAGE_NAME1, PACKAGE_NAME2, PACKAGE_NAME3);
|
||||||
final String packageName3 = "com.android.testing.3";
|
|
||||||
final List<String> allowlistedApps = Arrays.asList(packageName1);
|
|
||||||
createTestingData(packageName1, packageName2, packageName3);
|
|
||||||
|
|
||||||
mBatteryBackupHelper.backupOptimizationMode(mBackupDataOutput, allowlistedApps);
|
mBatteryBackupHelper.backupOptimizationMode(mBackupDataOutput, allowlistedApps);
|
||||||
|
|
||||||
// 2 for UNRESTRICTED mode and 1 for RESTRICTED mode.
|
// 2 for UNRESTRICTED mode and 1 for RESTRICTED mode.
|
||||||
final String expectedResult = packageName1 + "|2," + packageName2 + "|1,";
|
final String expectedResult = PACKAGE_NAME1 + "|2," + PACKAGE_NAME2 + "|1,";
|
||||||
|
verifyBackupData(expectedResult);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void backupOptimizationMode_backupOptimizationModeAndIgnoreSystemApp()
|
||||||
|
throws Exception {
|
||||||
|
final List<String> allowlistedApps = Arrays.asList(PACKAGE_NAME1);
|
||||||
|
createTestingData(PACKAGE_NAME1, PACKAGE_NAME2, PACKAGE_NAME3);
|
||||||
|
// Sets "com.android.testing.1" as system app.
|
||||||
|
doReturn(true).when(mPowerAllowlistBackend).isSysAllowlisted(PACKAGE_NAME1);
|
||||||
|
doReturn(false).when(mPowerAllowlistBackend).isDefaultActiveApp(anyString());
|
||||||
|
|
||||||
|
mBatteryBackupHelper.backupOptimizationMode(mBackupDataOutput, allowlistedApps);
|
||||||
|
|
||||||
|
// "com.android.testing.2" for RESTRICTED mode.
|
||||||
|
final String expectedResult = PACKAGE_NAME2 + "|1,";
|
||||||
|
verifyBackupData(expectedResult);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void backupOptimizationMode_backupOptimizationModeAndIgnoreDefaultApp()
|
||||||
|
throws Exception {
|
||||||
|
final List<String> allowlistedApps = Arrays.asList(PACKAGE_NAME1);
|
||||||
|
createTestingData(PACKAGE_NAME1, PACKAGE_NAME2, PACKAGE_NAME3);
|
||||||
|
// Sets "com.android.testing.1" as device default app.
|
||||||
|
doReturn(true).when(mPowerAllowlistBackend).isDefaultActiveApp(PACKAGE_NAME1);
|
||||||
|
doReturn(false).when(mPowerAllowlistBackend).isSysAllowlisted(anyString());
|
||||||
|
|
||||||
|
mBatteryBackupHelper.backupOptimizationMode(mBackupDataOutput, allowlistedApps);
|
||||||
|
|
||||||
|
// "com.android.testing.2" for RESTRICTED mode.
|
||||||
|
final String expectedResult = PACKAGE_NAME2 + "|1,";
|
||||||
|
verifyBackupData(expectedResult);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void verifyBackupData(String expectedResult) throws Exception {
|
||||||
final byte[] expectedBytes = expectedResult.getBytes();
|
final byte[] expectedBytes = expectedResult.getBytes();
|
||||||
verify(mBackupDataOutput).writeEntityHeader(
|
verify(mBackupDataOutput).writeEntityHeader(
|
||||||
BatteryBackupHelper.KEY_OPTIMIZATION_LIST, expectedBytes.length);
|
BatteryBackupHelper.KEY_OPTIMIZATION_LIST, expectedBytes.length);
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (C) 2020 The Android Open Source Project
|
* Copyright (C) 2021 The Android Open Source Project
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@@ -14,7 +14,7 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package com.android.settings.wifi.details2;
|
package com.android.settings.wifi.details;
|
||||||
|
|
||||||
import static com.android.settings.wifi.WifiSettings.WIFI_DIALOG_ID;
|
import static com.android.settings.wifi.WifiSettings.WIFI_DIALOG_ID;
|
||||||
|
|
||||||
@@ -54,9 +54,9 @@ import org.robolectric.RuntimeEnvironment;
|
|||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
|
||||||
@RunWith(RobolectricTestRunner.class)
|
@RunWith(RobolectricTestRunner.class)
|
||||||
public class WifiNetworkDetailsFragment2Test {
|
public class WifiNetworkDetailsFragmentTest {
|
||||||
|
|
||||||
final String TEST_PREFERENCE_KEY = "TEST_PREFERENCE_KEY";
|
private static final String TEST_PREFERENCE_KEY = "TEST_PREFERENCE_KEY";
|
||||||
|
|
||||||
@Mock
|
@Mock
|
||||||
WifiEntry mWifiEntry;
|
WifiEntry mWifiEntry;
|
||||||
@@ -64,7 +64,7 @@ public class WifiNetworkDetailsFragment2Test {
|
|||||||
NetworkDetailsTracker mNetworkDetailsTracker;
|
NetworkDetailsTracker mNetworkDetailsTracker;
|
||||||
@Mock
|
@Mock
|
||||||
Menu mMenu;
|
Menu mMenu;
|
||||||
private WifiNetworkDetailsFragment2 mFragment;
|
private WifiNetworkDetailsFragment mFragment;
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
public void setUp() {
|
public void setUp() {
|
||||||
@@ -72,7 +72,7 @@ public class WifiNetworkDetailsFragment2Test {
|
|||||||
doReturn(mWifiEntry).when(mNetworkDetailsTracker).getWifiEntry();
|
doReturn(mWifiEntry).when(mNetworkDetailsTracker).getWifiEntry();
|
||||||
doReturn(true).when(mWifiEntry).isSaved();
|
doReturn(true).when(mWifiEntry).isSaved();
|
||||||
|
|
||||||
mFragment = new WifiNetworkDetailsFragment2();
|
mFragment = new WifiNetworkDetailsFragment();
|
||||||
mFragment.mNetworkDetailsTracker = mNetworkDetailsTracker;
|
mFragment.mNetworkDetailsTracker = mNetworkDetailsTracker;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -165,8 +165,8 @@ public class WifiNetworkDetailsFragment2Test {
|
|||||||
verify(controller).displayPreference(screen);
|
verify(controller).displayPreference(screen);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Fake WifiNetworkDetailsFragment2 to override the protected method as public.
|
// Fake WifiNetworkDetailsFragment to override the protected method as public.
|
||||||
public class FakeFragment extends WifiNetworkDetailsFragment2 {
|
public static class FakeFragment extends WifiNetworkDetailsFragment {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void addPreferenceController(AbstractPreferenceController controller) {
|
public void addPreferenceController(AbstractPreferenceController controller) {
|
||||||
@@ -179,7 +179,7 @@ public class WifiNetworkDetailsFragment2Test {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public class TestController extends BasePreferenceController {
|
public static class TestController extends BasePreferenceController {
|
||||||
|
|
||||||
public TestController() {
|
public TestController() {
|
||||||
super(RuntimeEnvironment.application, TEST_PREFERENCE_KEY);
|
super(RuntimeEnvironment.application, TEST_PREFERENCE_KEY);
|
||||||
@@ -76,6 +76,7 @@ import com.android.settings.Utils;
|
|||||||
import com.android.settings.testutils.shadow.ShadowDevicePolicyManager;
|
import com.android.settings.testutils.shadow.ShadowDevicePolicyManager;
|
||||||
import com.android.settings.testutils.shadow.ShadowEntityHeaderController;
|
import com.android.settings.testutils.shadow.ShadowEntityHeaderController;
|
||||||
import com.android.settings.widget.EntityHeaderController;
|
import com.android.settings.widget.EntityHeaderController;
|
||||||
|
import com.android.settings.wifi.details.WifiNetworkDetailsFragment;
|
||||||
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
|
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
|
||||||
import com.android.settingslib.core.lifecycle.Lifecycle;
|
import com.android.settingslib.core.lifecycle.Lifecycle;
|
||||||
import com.android.settingslib.utils.StringUtil;
|
import com.android.settingslib.utils.StringUtil;
|
||||||
@@ -145,7 +146,7 @@ public class WifiDetailPreferenceController2Test {
|
|||||||
@Mock
|
@Mock
|
||||||
private WifiInfo mMockWifiInfo;
|
private WifiInfo mMockWifiInfo;
|
||||||
@Mock
|
@Mock
|
||||||
private WifiNetworkDetailsFragment2 mMockFragment;
|
private WifiNetworkDetailsFragment mMockFragment;
|
||||||
@Mock
|
@Mock
|
||||||
private WifiManager mMockWifiManager;
|
private WifiManager mMockWifiManager;
|
||||||
@Mock
|
@Mock
|
||||||
|
|||||||
Reference in New Issue
Block a user