Wrap and carry clicked slot information data for restriction page

Refresh category title by different time slot condition

Bug: 177406865
Test: make SettingsRoboTests
Test: make SettingsGoogleRoboTests
Change-Id: I006f6825fdb471f863c0355c65bfc4ca9d980191
This commit is contained in:
ykhung
2021-04-25 17:07:58 +08:00
committed by YUKAI HUNG
parent 5e578ddd13
commit 75c5fc5906
3 changed files with 32 additions and 14 deletions

View File

@@ -113,6 +113,7 @@ public class AdvancedPowerUsageDetail extends DashboardFragment implements
private String mUsagePercent; private String mUsagePercent;
private String mPackageName; private String mPackageName;
private String mAppLabel; private String mAppLabel;
private String mSlotInformation;
private int mUid; private int mUid;
private int mIconId; private int mIconId;
private int mConsumedPower; private int mConsumedPower;
@@ -124,18 +125,22 @@ public class AdvancedPowerUsageDetail extends DashboardFragment implements
/** Launches battery details page for an individual battery consumer. */ /** Launches battery details page for an individual battery consumer. */
public static void startBatteryDetailPage( public static void startBatteryDetailPage(
Activity caller, InstrumentedPreferenceFragment fragment, Activity caller, InstrumentedPreferenceFragment fragment,
BatteryDiffEntry diffEntry, String usagePercent) { BatteryDiffEntry diffEntry, String usagePercent,
boolean isValidToShowSummary, String slotInformation) {
final BatteryHistEntry histEntry = diffEntry.mBatteryHistEntry; final BatteryHistEntry histEntry = diffEntry.mBatteryHistEntry;
final LaunchBatteryDetailPageArgs launchArgs = new LaunchBatteryDetailPageArgs(); final LaunchBatteryDetailPageArgs launchArgs = new LaunchBatteryDetailPageArgs();
// configure the launch argument. // configure the launch argument.
launchArgs.mUsagePercent = usagePercent; launchArgs.mUsagePercent = usagePercent;
launchArgs.mPackageName = diffEntry.getPackageName(); launchArgs.mPackageName = diffEntry.getPackageName();
launchArgs.mAppLabel = diffEntry.getAppLabel(); launchArgs.mAppLabel = diffEntry.getAppLabel();
launchArgs.mSlotInformation = slotInformation;
launchArgs.mUid = (int) histEntry.mUid; launchArgs.mUid = (int) histEntry.mUid;
launchArgs.mIconId = diffEntry.getAppIconId(); launchArgs.mIconId = diffEntry.getAppIconId();
launchArgs.mConsumedPower = (int) diffEntry.mConsumePower; launchArgs.mConsumedPower = (int) diffEntry.mConsumePower;
launchArgs.mForegroundTimeMs = diffEntry.mForegroundUsageTimeInMs; launchArgs.mForegroundTimeMs =
launchArgs.mBackgroundTimeMs = diffEntry.mBackgroundUsageTimeInMs; isValidToShowSummary ? diffEntry.mForegroundUsageTimeInMs : 0;
launchArgs.mBackgroundTimeMs =
isValidToShowSummary ? diffEntry.mBackgroundUsageTimeInMs : 0;
launchArgs.mIsUserEntry = histEntry.isUserEntry(); launchArgs.mIsUserEntry = histEntry.isUserEntry();
startBatteryDetailPage(caller, fragment, launchArgs); startBatteryDetailPage(caller, fragment, launchArgs);
} }

View File

@@ -151,21 +151,22 @@ public class BatteryChartPreferenceController extends AbstractPreferenceControll
final PowerGaugePreference powerPref = (PowerGaugePreference) preference; final PowerGaugePreference powerPref = (PowerGaugePreference) preference;
final BatteryDiffEntry diffEntry = powerPref.getBatteryDiffEntry(); final BatteryDiffEntry diffEntry = powerPref.getBatteryDiffEntry();
final BatteryHistEntry histEntry = diffEntry.mBatteryHistEntry; final BatteryHistEntry histEntry = diffEntry.mBatteryHistEntry;
final String packageName = histEntry.mPackageName;
// Checks whether the package is installed or not. // Checks whether the package is installed or not.
boolean isValidPackage = true; boolean isValidPackage = true;
if (histEntry.isAppEntry()) { if (histEntry.isAppEntry()) {
if (mBatteryUtils == null) { if (mBatteryUtils == null) {
mBatteryUtils = BatteryUtils.getInstance(mPrefContext); mBatteryUtils = BatteryUtils.getInstance(mPrefContext);
} }
isValidPackage = mBatteryUtils.getPackageUid(histEntry.mPackageName) isValidPackage = mBatteryUtils.getPackageUid(packageName)
!= BatteryUtils.UID_NULL; != BatteryUtils.UID_NULL;
} }
Log.d(TAG, String.format("handleClick() label=%s key=%s isValid:%b %s", Log.d(TAG, String.format("handleClick() label=%s key=%s isValid:%b %s",
diffEntry.getAppLabel(), histEntry.getKey(), isValidPackage, diffEntry.getAppLabel(), histEntry.getKey(), isValidPackage, packageName));
histEntry.mPackageName));
if (isValidPackage) { if (isValidPackage) {
AdvancedPowerUsageDetail.startBatteryDetailPage( AdvancedPowerUsageDetail.startBatteryDetailPage(
mActivity, mFragment, diffEntry, powerPref.getPercent()); mActivity, mFragment, diffEntry, powerPref.getPercent(),
isValidToShowSummary(packageName), getSlotInformation());
return true; return true;
} }
return false; return false;
@@ -267,8 +268,8 @@ public class BatteryChartPreferenceController extends AbstractPreferenceControll
|| (mTrapezoidIndex == trapezoidIndex && !isForce)) { || (mTrapezoidIndex == trapezoidIndex && !isForce)) {
return false; return false;
} }
Log.d(TAG, String.format("refreshUi: index=%d batteryIndexedMap.size=%d", Log.d(TAG, String.format("refreshUi: index=%d size=%d isForce:%b",
mTrapezoidIndex, mBatteryIndexedMap.size())); trapezoidIndex, mBatteryIndexedMap.size(), isForce));
mTrapezoidIndex = trapezoidIndex; mTrapezoidIndex = trapezoidIndex;
mHandler.post(() -> { mHandler.post(() -> {
@@ -471,11 +472,9 @@ public class BatteryChartPreferenceController extends AbstractPreferenceControll
final long backgroundUsageTimeInMs = entry.mBackgroundUsageTimeInMs; final long backgroundUsageTimeInMs = entry.mBackgroundUsageTimeInMs;
final long totalUsageTimeInMs = foregroundUsageTimeInMs + backgroundUsageTimeInMs; final long totalUsageTimeInMs = foregroundUsageTimeInMs + backgroundUsageTimeInMs;
// Checks whether the package is allowed to show summary or not. // Checks whether the package is allowed to show summary or not.
for (CharSequence notAllowPackageName : mNotAllowShowSummaryPackages) { if (!isValidToShowSummary(entry.getPackageName())) {
if (TextUtils.equals(entry.getPackageName(), notAllowPackageName)) { preference.setSummary(null);
preference.setSummary(null); return;
return;
}
} }
String usageTimeSummary = null; String usageTimeSummary = null;
// Not shows summary for some system components without usage time. // Not shows summary for some system components without usage time.
@@ -515,6 +514,17 @@ public class BatteryChartPreferenceController extends AbstractPreferenceControll
return mPrefContext.getString(resourceId, timeSequence); 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) { private static String utcToLocalTime(long[] timestamps) {
final StringBuilder builder = new StringBuilder(); final StringBuilder builder = new StringBuilder();
for (int index = 0; index < timestamps.length; index++) { for (int index = 0; index < timestamps.length; index++) {

View File

@@ -38,6 +38,7 @@ public class ExpandDividerPreference extends Preference {
private OnExpandListener mOnExpandListener; private OnExpandListener mOnExpandListener;
private boolean mIsExpanded = false; private boolean mIsExpanded = false;
private String mTitleContent = null;
/** A callback listener for expand state is changed by users. */ /** A callback listener for expand state is changed by users. */
public interface OnExpandListener { public interface OnExpandListener {
@@ -72,6 +73,7 @@ public class ExpandDividerPreference extends Preference {
} }
void setTitle(final String titleContent) { void setTitle(final String titleContent) {
mTitleContent = titleContent;
if (mTextView != null) { if (mTextView != null) {
mTextView.postDelayed( mTextView.postDelayed(
() -> mTextView.setText(titleContent), 50); () -> mTextView.setText(titleContent), 50);
@@ -95,5 +97,6 @@ public class ExpandDividerPreference extends Preference {
if (mImageView != null) { if (mImageView != null) {
mImageView.setImageResource(iconId); mImageView.setImageResource(iconId);
} }
setTitle(mTitleContent);
} }
} }