diff --git a/res/values/strings.xml b/res/values/strings.xml index 8a04767b76a..bf39c8baa32 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -4952,8 +4952,6 @@ No usage for past 24 hr - - Other users Estimated time left diff --git a/src/com/android/settings/fuelgauge/BatteryUtils.java b/src/com/android/settings/fuelgauge/BatteryUtils.java index 8bf5e166460..7b44fd3adb0 100644 --- a/src/com/android/settings/fuelgauge/BatteryUtils.java +++ b/src/com/android/settings/fuelgauge/BatteryUtils.java @@ -74,8 +74,6 @@ public class BatteryUtils { public static final int UID_REMOVED_APPS = -4; /** Special UID value for data usage by tethering. */ public static final int UID_TETHERING = -5; - /** Special UID for aggregated other users. */ - public static final long UID_OTHER_USERS = Long.MIN_VALUE; /** Flag to check if the dock defender mode has been temporarily bypassed */ public static final String SETTINGS_GLOBAL_DOCK_DEFENDER_BYPASS = "dock_defender_bypass"; diff --git a/src/com/android/settings/fuelgauge/batteryusage/BatteryDiffEntry.java b/src/com/android/settings/fuelgauge/batteryusage/BatteryDiffEntry.java index 496200e0320..893ca4c64e6 100644 --- a/src/com/android/settings/fuelgauge/batteryusage/BatteryDiffEntry.java +++ b/src/com/android/settings/fuelgauge/batteryusage/BatteryDiffEntry.java @@ -129,9 +129,6 @@ public class BatteryDiffEntry { /** Gets the app label name for this entry. */ public String getAppLabel() { - if (isOtherUsers()) { - return mContext.getString(R.string.battery_usage_other_users); - } loadLabelAndIcon(); // Returns default applicationn label if we cannot find it. return mAppLabel == null || mAppLabel.length() == 0 @@ -141,9 +138,6 @@ public class BatteryDiffEntry { /** Gets the app icon {@link Drawable} for this entry. */ public Drawable getAppIcon() { - if (isOtherUsers()) { - return mContext.getDrawable(R.drawable.ic_power_system); - } loadLabelAndIcon(); return mAppIcon != null && mAppIcon.getConstantState() != null ? mAppIcon.getConstantState().newDrawable() @@ -178,9 +172,6 @@ public class BatteryDiffEntry { /** Whether the current BatteryDiffEntry is system component or not. */ public boolean isSystemEntry() { - if (isOtherUsers()) { - return true; - } switch (mBatteryHistEntry.mConsumerType) { case ConvertUtils.CONSUMER_TYPE_USER_BATTERY: case ConvertUtils.CONSUMER_TYPE_SYSTEM_BATTERY: @@ -200,11 +191,6 @@ public class BatteryDiffEntry { return false; } - private boolean isOtherUsers() { - return mBatteryHistEntry.mConsumerType == ConvertUtils.CONSUMER_TYPE_UID_BATTERY - && mBatteryHistEntry.mUid == BatteryUtils.UID_OTHER_USERS; - } - void loadLabelAndIcon() { if (mIsLoaded) { return; diff --git a/src/com/android/settings/fuelgauge/batteryusage/DataProcessor.java b/src/com/android/settings/fuelgauge/batteryusage/DataProcessor.java index 14455883367..bfedeab9264 100644 --- a/src/com/android/settings/fuelgauge/batteryusage/DataProcessor.java +++ b/src/com/android/settings/fuelgauge/batteryusage/DataProcessor.java @@ -589,13 +589,13 @@ public final class DataProcessor { userHandle != null ? userHandle.getIdentifier() : Integer.MIN_VALUE; final List appEntries = new ArrayList<>(); final List systemEntries = new ArrayList<>(); - double consumePowerFromOtherUsers = 0f; for (BatteryHistEntry entry : batteryHistEntryList) { final boolean isFromOtherUsers = isConsumedFromOtherUsers( currentUserId, workProfileUserId, entry); + // Not show other users' battery usage data. if (isFromOtherUsers) { - consumePowerFromOtherUsers += entry.mConsumePower; + continue; } else { final BatteryDiffEntry currentBatteryDiffEntry = new BatteryDiffEntry( context, @@ -614,9 +614,6 @@ public final class DataProcessor { } } } - if (consumePowerFromOtherUsers != 0) { - systemEntries.add(createOtherUsersEntry(context, consumePowerFromOtherUsers)); - } // If there is no data, return null instead of empty item. if (appEntries.isEmpty() && systemEntries.isEmpty()) { @@ -1086,7 +1083,6 @@ public final class DataProcessor { allBatteryHistEntryKeys.addAll(nextBatteryHistMap.keySet()); allBatteryHistEntryKeys.addAll(nextTwoBatteryHistMap.keySet()); - double consumePowerFromOtherUsers = 0f; // Calculates all packages diff usage data in a specific time slot. for (String key : allBatteryHistEntryKeys) { final BatteryHistEntry currentEntry = @@ -1095,6 +1091,20 @@ public final class DataProcessor { nextBatteryHistMap.getOrDefault(key, EMPTY_BATTERY_HIST_ENTRY); final BatteryHistEntry nextTwoEntry = nextTwoBatteryHistMap.getOrDefault(key, EMPTY_BATTERY_HIST_ENTRY); + + final BatteryHistEntry selectedBatteryEntry = + selectBatteryHistEntry(currentEntry, nextEntry, nextTwoEntry); + if (selectedBatteryEntry == null) { + continue; + } + + // Not show other users' battery usage data. + final boolean isFromOtherUsers = isConsumedFromOtherUsers( + currentUserId, workProfileUserId, selectedBatteryEntry); + if (isFromOtherUsers) { + continue; + } + // Cumulative values is a specific time slot for a specific app. long foregroundUsageTimeInMs = getDiffValue( @@ -1137,11 +1147,6 @@ public final class DataProcessor { && consumePower == 0) { continue; } - final BatteryHistEntry selectedBatteryEntry = - selectBatteryHistEntry(currentEntry, nextEntry, nextTwoEntry); - if (selectedBatteryEntry == null) { - continue; - } // Forces refine the cumulative value since it may introduce deviation error since we // will apply the interpolation arithmetic. final float totalUsageTimeInMs = @@ -1165,31 +1170,22 @@ public final class DataProcessor { cachedUsageConsumePower = cachedUsageConsumePower * ratio; } - final boolean isFromOtherUsers = isConsumedFromOtherUsers( - currentUserId, workProfileUserId, selectedBatteryEntry); - if (isFromOtherUsers) { - consumePowerFromOtherUsers += consumePower; + final BatteryDiffEntry currentBatteryDiffEntry = new BatteryDiffEntry( + context, + foregroundUsageTimeInMs, + backgroundUsageTimeInMs, + consumePower, + foregroundUsageConsumePower, + foregroundServiceUsageConsumePower, + backgroundUsageConsumePower, + cachedUsageConsumePower, + selectedBatteryEntry); + if (currentBatteryDiffEntry.isSystemEntry()) { + systemEntries.add(currentBatteryDiffEntry); } else { - final BatteryDiffEntry currentBatteryDiffEntry = new BatteryDiffEntry( - context, - foregroundUsageTimeInMs, - backgroundUsageTimeInMs, - consumePower, - foregroundUsageConsumePower, - foregroundServiceUsageConsumePower, - backgroundUsageConsumePower, - cachedUsageConsumePower, - selectedBatteryEntry); - if (currentBatteryDiffEntry.isSystemEntry()) { - systemEntries.add(currentBatteryDiffEntry); - } else { - appEntries.add(currentBatteryDiffEntry); - } + appEntries.add(currentBatteryDiffEntry); } } - if (consumePowerFromOtherUsers != 0) { - systemEntries.add(createOtherUsersEntry(context, consumePowerFromOtherUsers)); - } // If there is no data, return null instead of empty item. if (appEntries.isEmpty() && systemEntries.isEmpty()) { @@ -1518,27 +1514,6 @@ public final class DataProcessor { return null; } - private static BatteryDiffEntry createOtherUsersEntry( - Context context, final double consumePower) { - final ContentValues values = new ContentValues(); - values.put(BatteryHistEntry.KEY_UID, BatteryUtils.UID_OTHER_USERS); - values.put(BatteryHistEntry.KEY_USER_ID, BatteryUtils.UID_OTHER_USERS); - values.put(BatteryHistEntry.KEY_CONSUMER_TYPE, ConvertUtils.CONSUMER_TYPE_UID_BATTERY); - // We will show the percentage for the "other users" item only, the aggregated - // running time information is useless for users to identify individual apps. - final BatteryDiffEntry batteryDiffEntry = new BatteryDiffEntry( - context, - /*foregroundUsageTimeInMs=*/ 0, - /*backgroundUsageTimeInMs=*/ 0, - consumePower, - /*foregroundUsageConsumePower=*/ 0, - /*foregroundServiceUsageConsumePower=*/ 0, - /*backgroundUsageConsumePower=*/ 0, - /*cachedUsageConsumePower=*/ 0, - new BatteryHistEntry(values)); - return batteryDiffEntry; - } - private static long getCurrentTimeMillis() { return sFakeCurrentTimeMillis > 0 ? sFakeCurrentTimeMillis : System.currentTimeMillis(); } diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryDiffEntryTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryDiffEntryTest.java index f8bcbc82663..cb2f5c80123 100644 --- a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryDiffEntryTest.java +++ b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryDiffEntryTest.java @@ -464,19 +464,6 @@ public final class BatteryDiffEntryTest { assertThat(entry.getPackageName()).isEqualTo(expectedPackageName); } - @Test - public void getAppLabel_withOtherUsersUid_returnExpectedLabel() { - final ContentValues values = getContentValuesWithType( - ConvertUtils.CONSUMER_TYPE_UID_BATTERY); - values.put(BatteryHistEntry.KEY_UID, BatteryUtils.UID_OTHER_USERS); - - final BatteryDiffEntry batteryDiffEntry = createBatteryDiffEntry( - /*consumePower=*/ 0, new BatteryHistEntry(values)); - - assertThat(batteryDiffEntry.getAppLabel()) - .isEqualTo(mContext.getString(R.string.battery_usage_other_users)); - } - private BatteryDiffEntry createBatteryDiffEntry( int consumerType, long uid, boolean isHidden) { final ContentValues values = getContentValuesWithType(consumerType); diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/DataProcessorTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/DataProcessorTest.java index 747acfe1a37..0f957541e44 100644 --- a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/DataProcessorTest.java +++ b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/DataProcessorTest.java @@ -41,7 +41,6 @@ import android.os.RemoteException; import android.os.UserManager; import android.text.format.DateUtils; -import com.android.settings.fuelgauge.BatteryUtils; import com.android.settings.fuelgauge.PowerUsageFeatureProvider; import com.android.settings.testutils.FakeFeatureFactory; @@ -934,13 +933,7 @@ public final class DataProcessorTest { /*foregroundUsageConsumePower=*/ 5, /*foregroundServiceUsageConsumePower=*/ 5, /*backgroundUsageConsumePower=*/ 5, /*cachedUsageConsumePower=*/ 5, /*foregroundUsageTimeInMs=*/ 10, /*backgroundUsageTimeInMs=*/ 10); - assertBatteryDiffEntry( - resultDiffData.getSystemDiffEntryList().get(0), BatteryUtils.UID_OTHER_USERS, - /*uid=*/ BatteryUtils.UID_OTHER_USERS, ConvertUtils.CONSUMER_TYPE_UID_BATTERY, - /*consumePercentage=*/ 100.0, - /*foregroundUsageConsumePower=*/ 0, /*foregroundServiceUsageConsumePower=*/ 0, - /*backgroundUsageConsumePower=*/ 0, /*cachedUsageConsumePower=*/ 0, - /*foregroundUsageTimeInMs=*/ 0, /*backgroundUsageTimeInMs=*/ 0); + assertThat(resultDiffData.getSystemDiffEntryList()).isEmpty(); assertThat(resultMap.get(0).get(0)).isNotNull(); assertThat(resultMap.get(0).get(DataProcessor.SELECTED_INDEX_ALL)).isNotNull(); }