Snap for 7677822 from 2889a7d49f to sc-v2-release

Change-Id: I0971fd54e7b831213e9407725e017e9c0b4625e8
This commit is contained in:
Android Build Coastguard Worker
2021-08-26 23:12:32 +00:00
17 changed files with 145 additions and 55 deletions

View File

@@ -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">

View File

@@ -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] -->

View File

@@ -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"/>

View File

@@ -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 */ }

View File

@@ -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(),

View File

@@ -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);

View File

@@ -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())

View File

@@ -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));
} }
} }

View File

@@ -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();

View File

@@ -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())

View File

@@ -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);
} }

View File

@@ -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();
} }
/** /**

View File

@@ -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();

View File

@@ -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();

View File

@@ -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);

View File

@@ -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);

View File

@@ -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