Merge "Refine optimize page log pattern" into udc-dev
diff --git a/src/com/android/settings/datausage/DataUsageList.java b/src/com/android/settings/datausage/DataUsageList.java
index 1855c2e..dd8312c 100644
--- a/src/com/android/settings/datausage/DataUsageList.java
+++ b/src/com/android/settings/datausage/DataUsageList.java
@@ -165,11 +165,7 @@
}
processArgument();
- mMobileNetworkRepository = MobileNetworkRepository.getInstance(getContext());
- ThreadUtils.postOnBackgroundThread(() -> {
- mSubscriptionInfoEntity = mMobileNetworkRepository.getSubInfoById(
- String.valueOf(mSubId));
- });
+ updateSubscriptionInfoEntity();
mDataStateListener = new MobileDataEnabledListener(activity, this);
}
@@ -294,6 +290,15 @@
}
}
+ @VisibleForTesting
+ void updateSubscriptionInfoEntity() {
+ mMobileNetworkRepository = MobileNetworkRepository.getInstance(getContext());
+ ThreadUtils.postOnBackgroundThread(() -> {
+ mSubscriptionInfoEntity = mMobileNetworkRepository.getSubInfoById(
+ String.valueOf(mSubId));
+ });
+ }
+
/**
* Implementation of {@code MobileDataEnabledListener.Client}
*/
@@ -503,11 +508,13 @@
Collections.sort(items);
final List<String> packageNames = Arrays.asList(getContext().getResources().getStringArray(
R.array.datausage_hiding_carrier_service_package_names));
+ // When there is no specified SubscriptionInfo, Wi-Fi data usage will be displayed.
+ // In this case, the carrier service package also needs to be hidden.
boolean shouldHidePackageName = mSubscriptionInfoEntity != null
? Arrays.stream(getContext().getResources().getIntArray(
R.array.datausage_hiding_carrier_service_carrier_id))
.anyMatch(carrierId -> (carrierId == mSubscriptionInfoEntity.carrierId))
- : false;
+ : true;
for (int i = 0; i < items.size(); i++) {
UidDetail detail = mUidDetailProvider.getUidDetail(items.get(i).key, true);
diff --git a/src/com/android/settings/fuelgauge/BatteryBackupHelper.java b/src/com/android/settings/fuelgauge/BatteryBackupHelper.java
index bf874bb..0558d46 100644
--- a/src/com/android/settings/fuelgauge/BatteryBackupHelper.java
+++ b/src/com/android/settings/fuelgauge/BatteryBackupHelper.java
@@ -24,7 +24,6 @@
import android.content.Context;
import android.content.pm.ApplicationInfo;
import android.content.pm.IPackageManager;
-import android.os.Build;
import android.os.IDeviceIdleController;
import android.os.ParcelFileDescriptor;
import android.os.RemoteException;
@@ -48,7 +47,6 @@
/** An inditifier for {@link BackupHelper}. */
public static final String TAG = "BatteryBackupHelper";
private static final String DEVICE_IDLE_SERVICE = "deviceidle";
- private static final boolean DEBUG = Build.TYPE.equals("userdebug");
static final String DELIMITER = ",";
static final String DELIMITER_MODE = ":";
@@ -119,7 +117,7 @@
Log.e(TAG, "backupFullPowerList() failed", e);
return null;
}
- // Ignores unexpected emptty result case.
+ // Ignores unexpected empty result case.
if (allowlistedApps == null || allowlistedApps.length == 0) {
Log.w(TAG, "no data found in the getFullPowerList()");
return new ArrayList<>();
@@ -145,8 +143,7 @@
final AppOpsManager appOps = mContext.getSystemService(AppOpsManager.class);
// Converts application into the AppUsageState.
for (ApplicationInfo info : applications) {
- final int mode = appOps.checkOpNoThrow(
- AppOpsManager.OP_RUN_ANY_IN_BACKGROUND, info.uid, info.packageName);
+ final int mode = BatteryOptimizeUtils.getMode(appOps, info.uid, info.packageName);
@BatteryOptimizeUtils.OptimizationMode
final int optimizationMode = BatteryOptimizeUtils.getAppOptimizationMode(
mode, allowlistedApps.contains(info.packageName));
@@ -159,7 +156,7 @@
final String packageOptimizeMode =
info.packageName + DELIMITER_MODE + optimizationMode;
builder.append(packageOptimizeMode + DELIMITER);
- debugLog(packageOptimizeMode);
+ Log.d(TAG, "backupOptimizationMode: " + packageOptimizeMode);
backupCount++;
}
@@ -255,9 +252,8 @@
}
private boolean isSystemOrDefaultApp(String packageName, int uid) {
- final PowerAllowlistBackend powerAllowlistBackend = getPowerAllowlistBackend();
- return powerAllowlistBackend.isSysAllowlisted(packageName)
- || powerAllowlistBackend.isDefaultActiveApp(packageName, uid);
+ return BatteryOptimizeUtils.isSystemOrDefaultApp(
+ getPowerAllowlistBackend(), packageName, uid);
}
private ArraySet<ApplicationInfo> getInstalledApplications() {
@@ -267,10 +263,6 @@
return BatteryOptimizeUtils.getInstalledApplications(mContext, getIPackageManager());
}
- private void debugLog(String debugContent) {
- if (DEBUG) Log.d(TAG, debugContent);
- }
-
private static void writeBackupData(
BackupDataOutput data, String dataKey, String dataContent) {
final byte[] dataContentBytes = dataContent.getBytes();
@@ -283,6 +275,6 @@
}
private static boolean isOwner() {
- return UserHandle.myUserId() == UserHandle.USER_OWNER;
+ return UserHandle.myUserId() == UserHandle.USER_SYSTEM;
}
}
diff --git a/src/com/android/settings/fuelgauge/BatteryOptimizeUtils.java b/src/com/android/settings/fuelgauge/BatteryOptimizeUtils.java
index 6354f3b..b9ac64d 100644
--- a/src/com/android/settings/fuelgauge/BatteryOptimizeUtils.java
+++ b/src/com/android/settings/fuelgauge/BatteryOptimizeUtils.java
@@ -83,8 +83,7 @@
mAppOpsManager = context.getSystemService(AppOpsManager.class);
mBatteryUtils = BatteryUtils.getInstance(context);
mPowerAllowListBackend = PowerAllowlistBackend.getInstance(context);
- mMode = mAppOpsManager
- .checkOpNoThrow(AppOpsManager.OP_RUN_ANY_IN_BACKGROUND, mUid, mPackageName);
+ mMode = getMode(mAppOpsManager, mUid, mPackageName);
mAllowListed = mPowerAllowListBackend.isAllowlisted(mPackageName, mUid);
}
@@ -204,7 +203,12 @@
return mPackageName == null ? UNKNOWN_PACKAGE : mPackageName;
}
- private static boolean isSystemOrDefaultApp(
+ static int getMode(AppOpsManager appOpsManager, int uid, String packageName) {
+ return appOpsManager.checkOpNoThrow(
+ AppOpsManager.OP_RUN_ANY_IN_BACKGROUND, uid, packageName);
+ }
+
+ static boolean isSystemOrDefaultApp(
PowerAllowlistBackend powerAllowlistBackend, String packageName, int uid) {
return powerAllowlistBackend.isSysAllowlisted(packageName)
|| powerAllowlistBackend.isDefaultActiveApp(packageName, uid);
diff --git a/src/com/android/settings/fuelgauge/batterytip/BatteryTipLoader.java b/src/com/android/settings/fuelgauge/batterytip/BatteryTipLoader.java
index 8e9d485..34c431a 100644
--- a/src/com/android/settings/fuelgauge/batterytip/BatteryTipLoader.java
+++ b/src/com/android/settings/fuelgauge/batterytip/BatteryTipLoader.java
@@ -67,9 +67,6 @@
tips.add(new LowBatteryDetector(context, policy, batteryInfo, isPowerSaveMode).detect());
tips.add(new HighUsageDetector(context, policy, mBatteryUsageStats, batteryInfo).detect());
- tips.add(new SmartBatteryDetector(
- context, policy, batteryInfo, context.getContentResolver(), isPowerSaveMode)
- .detect());
tips.add(new BatteryDefenderDetector(batteryInfo, context).detect());
tips.add(new DockDefenderDetector(batteryInfo, context).detect());
tips.add(new IncompatibleChargerDetector(context).detect());
diff --git a/tests/robotests/src/com/android/settings/datausage/DataUsageListTest.java b/tests/robotests/src/com/android/settings/datausage/DataUsageListTest.java
index 9cedba9..762fbf8 100644
--- a/tests/robotests/src/com/android/settings/datausage/DataUsageListTest.java
+++ b/tests/robotests/src/com/android/settings/datausage/DataUsageListTest.java
@@ -106,6 +106,7 @@
ReflectionHelpers.setField(mDataUsageList, "services", mNetworkServices);
doReturn(mLoaderManager).when(mDataUsageList).getLoaderManager();
mDataUsageList.mLoadingViewController = mock(LoadingViewController.class);
+ doNothing().when(mDataUsageList).updateSubscriptionInfoEntity();
}
@Test
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batterytip/BatteryTipLoaderTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batterytip/BatteryTipLoaderTest.java
index 5b0ae04..e13dcc0 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batterytip/BatteryTipLoaderTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batterytip/BatteryTipLoaderTest.java
@@ -54,8 +54,7 @@
BatteryTip.TipType.BATTERY_DEFENDER,
BatteryTip.TipType.DOCK_DEFENDER,
BatteryTip.TipType.INCOMPATIBLE_CHARGER,
- BatteryTip.TipType.HIGH_DEVICE_USAGE,
- BatteryTip.TipType.SMART_BATTERY_MANAGER};
+ BatteryTip.TipType.HIGH_DEVICE_USAGE};
@Mock(answer = Answers.RETURNS_DEEP_STUBS)
private BatteryUsageStats mBatteryUsageStats;
@Mock