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

Commit 0fc2da03 authored by Ray Essick's avatar Ray Essick
Browse files

Allow app-level updates to video/audio timers

Relax permission checking so that an app can self-report that it is
playing video. This helps as more video playback moves to app space
rather than a system service.

Bug: 123732427
Test: play videos, dumpsys batterystats
parent 5d38dc3f
Loading
Loading
Loading
Loading
+11 −4
Original line number Diff line number Diff line
@@ -754,7 +754,7 @@ public final class BatteryStatsService extends IBatteryStats.Stub
    }

    public void noteStartAudio(int uid) {
        enforceCallingPermission();
        enforceSelfOrCallingPermission(uid);
        synchronized (mStats) {
            mStats.noteAudioOnLocked(uid);
            StatsLog.write_non_chained(StatsLog.AUDIO_STATE_CHANGED, uid, null,
@@ -763,7 +763,7 @@ public final class BatteryStatsService extends IBatteryStats.Stub
    }

    public void noteStopAudio(int uid) {
        enforceCallingPermission();
        enforceSelfOrCallingPermission(uid);
        synchronized (mStats) {
            mStats.noteAudioOffLocked(uid);
            StatsLog.write_non_chained(StatsLog.AUDIO_STATE_CHANGED, uid, null,
@@ -772,7 +772,7 @@ public final class BatteryStatsService extends IBatteryStats.Stub
    }

    public void noteStartVideo(int uid) {
        enforceCallingPermission();
        enforceSelfOrCallingPermission(uid);
        synchronized (mStats) {
            mStats.noteVideoOnLocked(uid);
            StatsLog.write_non_chained(StatsLog.MEDIA_CODEC_STATE_CHANGED, uid, null,
@@ -781,7 +781,7 @@ public final class BatteryStatsService extends IBatteryStats.Stub
    }

    public void noteStopVideo(int uid) {
        enforceCallingPermission();
        enforceSelfOrCallingPermission(uid);
        synchronized (mStats) {
            mStats.noteVideoOffLocked(uid);
            StatsLog.write_non_chained(StatsLog.MEDIA_CODEC_STATE_CHANGED, uid,
@@ -1182,6 +1182,13 @@ public final class BatteryStatsService extends IBatteryStats.Stub
                Binder.getCallingPid(), Binder.getCallingUid(), null);
    }

    private void enforceSelfOrCallingPermission(int uid) {
        if (Binder.getCallingUid() == uid) {
            return;
        }
        enforceCallingPermission();
    }

    final class WakeupReasonThread extends Thread {
        private static final int MAX_REASON_SIZE = 512;
        private CharsetDecoder mDecoder;