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

Commit fa94f9b5 authored by Yeabkal Wubshit's avatar Yeabkal Wubshit Committed by Android (Google) Code Review
Browse files

Merge changes I12e6ca4c,If29d4fb0 into main

* changes:
  Enable batterystats for all display IDs
  Implement screen state batterystat events
parents 04b5dc6c 3cf332a4
Loading
Loading
Loading
Loading
+6 −3
Original line number Original line Diff line number Diff line
@@ -2066,9 +2066,11 @@ public abstract class BatteryStats {
        public static final int EVENT_LONG_WAKE_LOCK = 0x0014;
        public static final int EVENT_LONG_WAKE_LOCK = 0x0014;
        // Event for reporting change of some device states, triggered by a specific UID
        // Event for reporting change of some device states, triggered by a specific UID
        public static final int EVENT_STATE_CHANGE = 0x0015;
        public static final int EVENT_STATE_CHANGE = 0x0015;
        // Event for reporting change of screen states.
        public static final int EVENT_DISPLAY_STATE_CHANGED = 0x0016;


        // Number of event types.
        // Number of event types.
        public static final int EVENT_COUNT = 0x0016;
        public static final int EVENT_COUNT = 0x0017;
        // Mask to extract out only the type part of the event.
        // Mask to extract out only the type part of the event.
        public static final int EVENT_TYPE_MASK = ~(EVENT_FLAG_START|EVENT_FLAG_FINISH);
        public static final int EVENT_TYPE_MASK = ~(EVENT_FLAG_START|EVENT_FLAG_FINISH);


@@ -3079,13 +3081,14 @@ public abstract class BatteryStats {
    public static final String[] HISTORY_EVENT_NAMES = new String[] {
    public static final String[] HISTORY_EVENT_NAMES = new String[] {
            "null", "proc", "fg", "top", "sync", "wake_lock_in", "job", "user", "userfg", "conn",
            "null", "proc", "fg", "top", "sync", "wake_lock_in", "job", "user", "userfg", "conn",
            "active", "pkginst", "pkgunin", "alarm", "stats", "pkginactive", "pkgactive",
            "active", "pkginst", "pkgunin", "alarm", "stats", "pkginactive", "pkgactive",
            "tmpwhitelist", "screenwake", "wakeupap", "longwake", "state"
            "tmpwhitelist", "screenwake", "wakeupap", "longwake", "state",
            "display_state_changed"
    };
    };


    public static final String[] HISTORY_EVENT_CHECKIN_NAMES = new String[] {
    public static final String[] HISTORY_EVENT_CHECKIN_NAMES = new String[] {
            "Enl", "Epr", "Efg", "Etp", "Esy", "Ewl", "Ejb", "Eur", "Euf", "Ecn",
            "Enl", "Epr", "Efg", "Etp", "Esy", "Ewl", "Ejb", "Eur", "Euf", "Ecn",
            "Eac", "Epi", "Epu", "Eal", "Est", "Eai", "Eaa", "Etw",
            "Eac", "Epi", "Epu", "Eal", "Est", "Eai", "Eaa", "Etw",
            "Esw", "Ewa", "Elw", "Eec", "Esc"
            "Esw", "Ewa", "Elw", "Eec", "Esc", "Eds"
    };
    };


    @FunctionalInterface
    @FunctionalInterface
+2 −2
Original line number Original line Diff line number Diff line
@@ -144,9 +144,9 @@ interface IBatteryStats {
    @EnforcePermission("UPDATE_DEVICE_STATS")
    @EnforcePermission("UPDATE_DEVICE_STATS")
    void noteGpsSignalQuality(int signalLevel);
    void noteGpsSignalQuality(int signalLevel);
    @EnforcePermission("UPDATE_DEVICE_STATS")
    @EnforcePermission("UPDATE_DEVICE_STATS")
    void noteScreenState(int state);
    void noteScreenState(int displayId, int state, int reason);
    @EnforcePermission("UPDATE_DEVICE_STATS")
    @EnforcePermission("UPDATE_DEVICE_STATS")
    void noteScreenBrightness(int brightness);
    void noteScreenBrightness(int displayId, int brightness);
    @EnforcePermission("UPDATE_DEVICE_STATS")
    @EnforcePermission("UPDATE_DEVICE_STATS")
    void noteUserActivity(int uid, int event);
    void noteUserActivity(int uid, int event);
    @EnforcePermission("UPDATE_DEVICE_STATS")
    @EnforcePermission("UPDATE_DEVICE_STATS")
+6 −4
Original line number Original line Diff line number Diff line
@@ -1833,7 +1833,7 @@ public final class BatteryStatsService extends IBatteryStats.Stub


    @Override
    @Override
    @EnforcePermission(UPDATE_DEVICE_STATS)
    @EnforcePermission(UPDATE_DEVICE_STATS)
    public void noteScreenState(final int state) {
    public void noteScreenState(final int displayId, final int state, final int reason) {
        super.noteScreenState_enforcePermission();
        super.noteScreenState_enforcePermission();


        synchronized (mLock) {
        synchronized (mLock) {
@@ -1843,7 +1843,8 @@ public final class BatteryStatsService extends IBatteryStats.Stub
            mHandler.post(() -> {
            mHandler.post(() -> {
                if (DBG) Slog.d(TAG, "begin noteScreenState");
                if (DBG) Slog.d(TAG, "begin noteScreenState");
                synchronized (mStats) {
                synchronized (mStats) {
                    mStats.noteScreenStateLocked(0, state, elapsedRealtime, uptime, currentTime);
                    mStats.noteScreenStateLocked(
                            displayId, state, reason, elapsedRealtime, uptime, currentTime);
                }
                }
                if (DBG) Slog.d(TAG, "end noteScreenState");
                if (DBG) Slog.d(TAG, "end noteScreenState");
            });
            });
@@ -1853,7 +1854,7 @@ public final class BatteryStatsService extends IBatteryStats.Stub


    @Override
    @Override
    @EnforcePermission(UPDATE_DEVICE_STATS)
    @EnforcePermission(UPDATE_DEVICE_STATS)
    public void noteScreenBrightness(final int brightness) {
    public void noteScreenBrightness(final int displayId, final int brightness) {
        super.noteScreenBrightness_enforcePermission();
        super.noteScreenBrightness_enforcePermission();


        synchronized (mLock) {
        synchronized (mLock) {
@@ -1861,7 +1862,8 @@ public final class BatteryStatsService extends IBatteryStats.Stub
            final long uptime = SystemClock.uptimeMillis();
            final long uptime = SystemClock.uptimeMillis();
            mHandler.post(() -> {
            mHandler.post(() -> {
                synchronized (mStats) {
                synchronized (mStats) {
                    mStats.noteScreenBrightnessLocked(0, brightness, elapsedRealtime, uptime);
                    mStats.noteScreenBrightnessLocked(
                            displayId, brightness, elapsedRealtime, uptime);
                }
                }
            });
            });
        }
        }
+5 −4
Original line number Original line Diff line number Diff line
@@ -536,7 +536,9 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
        mLastBrightnessEvent = new BrightnessEvent(mDisplayId);
        mLastBrightnessEvent = new BrightnessEvent(mDisplayId);
        mTempBrightnessEvent = new BrightnessEvent(mDisplayId);
        mTempBrightnessEvent = new BrightnessEvent(mDisplayId);


        if (mDisplayId == Display.DEFAULT_DISPLAY) {
        if (flags.isBatteryStatsEnabledForAllDisplays()) {
            mBatteryStats = BatteryStatsService.getService();
        } else if (mDisplayId == Display.DEFAULT_DISPLAY) {
            mBatteryStats = BatteryStatsService.getService();
            mBatteryStats = BatteryStatsService.getService();
        } else {
        } else {
            mBatteryStats = null;
            mBatteryStats = null;
@@ -2791,8 +2793,7 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
                screenState, mDisplayStatsId, reason);
                screenState, mDisplayStatsId, reason);
        if (mBatteryStats != null) {
        if (mBatteryStats != null) {
            try {
            try {
                // TODO(multi-display): make this multi-display
                mBatteryStats.noteScreenState(mDisplayId, screenState, reason);
                mBatteryStats.noteScreenState(screenState);
            } catch (RemoteException e) {
            } catch (RemoteException e) {
                // same process
                // same process
            }
            }
@@ -2807,7 +2808,7 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
                int brightnessInt = mFlags.isBrightnessIntRangeUserPerceptionEnabled()
                int brightnessInt = mFlags.isBrightnessIntRangeUserPerceptionEnabled()
                        ? BrightnessSynchronizer.brightnessFloatToIntSetting(mContext, brightness)
                        ? BrightnessSynchronizer.brightnessFloatToIntSetting(mContext, brightness)
                        : BrightnessSynchronizer.brightnessFloatToInt(brightness);
                        : BrightnessSynchronizer.brightnessFloatToInt(brightness);
                mBatteryStats.noteScreenBrightness(brightnessInt);
                mBatteryStats.noteScreenBrightness(mDisplayId, brightnessInt);
            } catch (RemoteException e) {
            } catch (RemoteException e) {
                // same process
                // same process
            }
            }
+14 −0
Original line number Original line Diff line number Diff line
@@ -200,6 +200,11 @@ public class DisplayManagerFlags {
            Flags::normalBrightnessForDozeParameter
            Flags::normalBrightnessForDozeParameter
    );
    );


    private final FlagState mEnableBatteryStatsForAllDisplays = new FlagState(
            Flags.FLAG_ENABLE_BATTERY_STATS_FOR_ALL_DISPLAYS,
            Flags::enableBatteryStatsForAllDisplays
    );

    /**
    /**
     * @return {@code true} if 'port' is allowed in display layout configuration file.
     * @return {@code true} if 'port' is allowed in display layout configuration file.
     */
     */
@@ -414,6 +419,14 @@ public class DisplayManagerFlags {
        return mIdleScreenConfigInSubscribingLightSensor.isEnabled();
        return mIdleScreenConfigInSubscribingLightSensor.isEnabled();
    }
    }


    /**
      * @return {@code true} if battery stats is enabled for all displays, not just the primary
      * display.
      */
    public boolean isBatteryStatsEnabledForAllDisplays() {
        return mEnableBatteryStatsForAllDisplays.isEnabled();
    }

    /**
    /**
     * dumps all flagstates
     * dumps all flagstates
     * @param pw printWriter
     * @param pw printWriter
@@ -456,6 +469,7 @@ public class DisplayManagerFlags {
        pw.println(" " + mNewHdrBrightnessModifier);
        pw.println(" " + mNewHdrBrightnessModifier);
        pw.println(" " + mNormalBrightnessForDozeParameter);
        pw.println(" " + mNormalBrightnessForDozeParameter);
        pw.println(" " + mIdleScreenConfigInSubscribingLightSensor);
        pw.println(" " + mIdleScreenConfigInSubscribingLightSensor);
        pw.println(" " + mEnableBatteryStatsForAllDisplays);
    }
    }


    private static class FlagState {
    private static class FlagState {
Loading