diff --git a/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetail.java b/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetail.java index 3ef7c455302..2ebff347396 100644 --- a/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetail.java +++ b/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetail.java @@ -113,6 +113,7 @@ public class AdvancedPowerUsageDetail extends DashboardFragment implements private String mUsagePercent; private String mPackageName; private String mAppLabel; + private String mSlotInformation; private int mUid; private int mIconId; private int mConsumedPower; @@ -124,18 +125,22 @@ public class AdvancedPowerUsageDetail extends DashboardFragment implements /** Launches battery details page for an individual battery consumer. */ public static void startBatteryDetailPage( Activity caller, InstrumentedPreferenceFragment fragment, - BatteryDiffEntry diffEntry, String usagePercent) { + BatteryDiffEntry diffEntry, String usagePercent, + boolean isValidToShowSummary, String slotInformation) { final BatteryHistEntry histEntry = diffEntry.mBatteryHistEntry; final LaunchBatteryDetailPageArgs launchArgs = new LaunchBatteryDetailPageArgs(); // configure the launch argument. launchArgs.mUsagePercent = usagePercent; launchArgs.mPackageName = diffEntry.getPackageName(); launchArgs.mAppLabel = diffEntry.getAppLabel(); + launchArgs.mSlotInformation = slotInformation; launchArgs.mUid = (int) histEntry.mUid; launchArgs.mIconId = diffEntry.getAppIconId(); launchArgs.mConsumedPower = (int) diffEntry.mConsumePower; - launchArgs.mForegroundTimeMs = diffEntry.mForegroundUsageTimeInMs; - launchArgs.mBackgroundTimeMs = diffEntry.mBackgroundUsageTimeInMs; + launchArgs.mForegroundTimeMs = + isValidToShowSummary ? diffEntry.mForegroundUsageTimeInMs : 0; + launchArgs.mBackgroundTimeMs = + isValidToShowSummary ? diffEntry.mBackgroundUsageTimeInMs : 0; launchArgs.mIsUserEntry = histEntry.isUserEntry(); startBatteryDetailPage(caller, fragment, launchArgs); } diff --git a/src/com/android/settings/fuelgauge/BatteryChartPreferenceController.java b/src/com/android/settings/fuelgauge/BatteryChartPreferenceController.java index ff7447725fc..99e6b0db666 100644 --- a/src/com/android/settings/fuelgauge/BatteryChartPreferenceController.java +++ b/src/com/android/settings/fuelgauge/BatteryChartPreferenceController.java @@ -151,21 +151,22 @@ public class BatteryChartPreferenceController extends AbstractPreferenceControll final PowerGaugePreference powerPref = (PowerGaugePreference) preference; final BatteryDiffEntry diffEntry = powerPref.getBatteryDiffEntry(); final BatteryHistEntry histEntry = diffEntry.mBatteryHistEntry; + final String packageName = histEntry.mPackageName; // Checks whether the package is installed or not. boolean isValidPackage = true; if (histEntry.isAppEntry()) { if (mBatteryUtils == null) { mBatteryUtils = BatteryUtils.getInstance(mPrefContext); } - isValidPackage = mBatteryUtils.getPackageUid(histEntry.mPackageName) + isValidPackage = mBatteryUtils.getPackageUid(packageName) != BatteryUtils.UID_NULL; } Log.d(TAG, String.format("handleClick() label=%s key=%s isValid:%b %s", - diffEntry.getAppLabel(), histEntry.getKey(), isValidPackage, - histEntry.mPackageName)); + diffEntry.getAppLabel(), histEntry.getKey(), isValidPackage, packageName)); if (isValidPackage) { AdvancedPowerUsageDetail.startBatteryDetailPage( - mActivity, mFragment, diffEntry, powerPref.getPercent()); + mActivity, mFragment, diffEntry, powerPref.getPercent(), + isValidToShowSummary(packageName), getSlotInformation()); return true; } return false; @@ -267,8 +268,8 @@ public class BatteryChartPreferenceController extends AbstractPreferenceControll || (mTrapezoidIndex == trapezoidIndex && !isForce)) { return false; } - Log.d(TAG, String.format("refreshUi: index=%d batteryIndexedMap.size=%d", - mTrapezoidIndex, mBatteryIndexedMap.size())); + Log.d(TAG, String.format("refreshUi: index=%d size=%d isForce:%b", + trapezoidIndex, mBatteryIndexedMap.size(), isForce)); mTrapezoidIndex = trapezoidIndex; mHandler.post(() -> { @@ -471,11 +472,9 @@ public class BatteryChartPreferenceController extends AbstractPreferenceControll final long backgroundUsageTimeInMs = entry.mBackgroundUsageTimeInMs; final long totalUsageTimeInMs = foregroundUsageTimeInMs + backgroundUsageTimeInMs; // Checks whether the package is allowed to show summary or not. - for (CharSequence notAllowPackageName : mNotAllowShowSummaryPackages) { - if (TextUtils.equals(entry.getPackageName(), notAllowPackageName)) { - preference.setSummary(null); - return; - } + if (!isValidToShowSummary(entry.getPackageName())) { + preference.setSummary(null); + return; } String usageTimeSummary = null; // Not shows summary for some system components without usage time. @@ -515,6 +514,17 @@ public class BatteryChartPreferenceController extends AbstractPreferenceControll return mPrefContext.getString(resourceId, timeSequence); } + private boolean isValidToShowSummary(String packageName) { + if (mNotAllowShowSummaryPackages != null) { + for (CharSequence notAllowPackageName : mNotAllowShowSummaryPackages) { + if (TextUtils.equals(packageName, notAllowPackageName)) { + return false; + } + } + } + return true; + } + private static String utcToLocalTime(long[] timestamps) { final StringBuilder builder = new StringBuilder(); for (int index = 0; index < timestamps.length; index++) { diff --git a/src/com/android/settings/fuelgauge/ExpandDividerPreference.java b/src/com/android/settings/fuelgauge/ExpandDividerPreference.java index 40536eb37c7..b89f2d42acb 100644 --- a/src/com/android/settings/fuelgauge/ExpandDividerPreference.java +++ b/src/com/android/settings/fuelgauge/ExpandDividerPreference.java @@ -38,6 +38,7 @@ public class ExpandDividerPreference extends Preference { private OnExpandListener mOnExpandListener; private boolean mIsExpanded = false; + private String mTitleContent = null; /** A callback listener for expand state is changed by users. */ public interface OnExpandListener { @@ -72,6 +73,7 @@ public class ExpandDividerPreference extends Preference { } void setTitle(final String titleContent) { + mTitleContent = titleContent; if (mTextView != null) { mTextView.postDelayed( () -> mTextView.setText(titleContent), 50); @@ -95,5 +97,6 @@ public class ExpandDividerPreference extends Preference { if (mImageView != null) { mImageView.setImageResource(iconId); } + setTitle(mTitleContent); } }