Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 75c5fc59 authored by ykhung's avatar ykhung Committed by YUKAI HUNG
Browse files

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
parent 5e578ddd
Loading
Loading
Loading
Loading
+8 −3
Original line number Diff line number Diff line
@@ -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);
    }
+21 −11
Original line number Diff line number Diff line
@@ -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,12 +472,10 @@ 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)) {
        if (!isValidToShowSummary(entry.getPackageName())) {
            preference.setSummary(null);
            return;
        }
        }
        String usageTimeSummary = null;
        // Not shows summary for some system components without usage time.
        if (totalUsageTimeInMs == 0) {
@@ -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++) {
+3 −0
Original line number Diff line number Diff line
@@ -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);
    }
}