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

Commit f41ee681 authored by Kenny Guy's avatar Kenny Guy Committed by Android (Google) Code Review
Browse files

Merge "Limit access to package names in brightness slider data."

parents ab1a6b31 29aa30e5
Loading
Loading
Loading
Loading
+19 −1
Original line number Diff line number Diff line
@@ -21,6 +21,8 @@ import android.os.Parcelable;

/**
 * Data about a brightness settings change.
 *
 * {@see DisplayManager.getBrightnessEvents()}
 * TODO make this SystemAPI
 * @hide
 */
@@ -31,7 +33,9 @@ public final class BrightnessChangeEvent implements Parcelable {
    /** Timestamp of the change {@see System.currentTimeMillis()} */
    public long timeStamp;

    /** Package name of focused activity when brightness was changed. */
    /** Package name of focused activity when brightness was changed.
     *  This will be null if the caller of {@see DisplayManager.getBrightnessEvents()}
     *  does not have access to usage stats {@see UsageStatsManager} */
    public String packageName;

    /** User id of of the user running when brightness was changed.
@@ -59,6 +63,20 @@ public final class BrightnessChangeEvent implements Parcelable {
    public BrightnessChangeEvent() {
    }

    /** @hide */
    public BrightnessChangeEvent(BrightnessChangeEvent other) {
        this.brightness = other.brightness;
        this.timeStamp = other.timeStamp;
        this.packageName = other.packageName;
        this.userId = other.userId;
        this.luxValues = other.luxValues;
        this.luxTimestamps = other.luxTimestamps;
        this.batteryLevel = other.batteryLevel;
        this.nightMode = other.nightMode;
        this.colorTemperature = other.colorTemperature;
        this.lastBrightness = other.lastBrightness;
    }

    private BrightnessChangeEvent(Parcel source) {
        brightness = source.readInt();
        timeStamp = source.readLong();
+4 −1
Original line number Diff line number Diff line
@@ -16,8 +16,10 @@

package android.hardware.display;

import android.Manifest;
import android.annotation.NonNull;
import android.annotation.Nullable;
import android.annotation.RequiresPermission;
import android.annotation.SystemApi;
import android.annotation.SystemService;
import android.app.KeyguardManager;
@@ -619,8 +621,9 @@ public final class DisplayManager {
     * Fetch {@link BrightnessChangeEvent}s.
     * @hide until we make it a system api.
     */
    @RequiresPermission(Manifest.permission.BRIGHTNESS_SLIDER_USAGE)
    public List<BrightnessChangeEvent> getBrightnessEvents() {
        return mGlobal.getBrightnessEvents();
        return mGlobal.getBrightnessEvents(mContext.getOpPackageName());
    }

    /**
+3 −2
Original line number Diff line number Diff line
@@ -462,9 +462,10 @@ public final class DisplayManagerGlobal {
    /**
     * Retrieves brightness change events.
     */
    public List<BrightnessChangeEvent> getBrightnessEvents() {
    public List<BrightnessChangeEvent> getBrightnessEvents(String callingPackage) {
        try {
            ParceledListSlice<BrightnessChangeEvent> events = mDm.getBrightnessEvents();
            ParceledListSlice<BrightnessChangeEvent> events =
                    mDm.getBrightnessEvents(callingPackage);
            if (events == null) {
                return Collections.emptyList();
            }
+1 −1
Original line number Diff line number Diff line
@@ -84,7 +84,7 @@ interface IDisplayManager {
    Point getStableDisplaySize();

    // Requires BRIGHTNESS_SLIDER_USAGE permission.
    ParceledListSlice getBrightnessEvents();
    ParceledListSlice getBrightnessEvents(String callingPackage);

    // STOPSHIP remove when adaptive brightness code is updated to accept curves.
    // Requires BRIGHTNESS_SLIDER_USAGE permission.
+9 −2
Original line number Diff line number Diff line
@@ -196,9 +196,10 @@ public class BrightnessTracker {

    /**
     * @param userId userId to fetch data for.
     * @param includePackage if false we will null out BrightnessChangeEvent.packageName
     * @return List of recent {@link BrightnessChangeEvent}s
     */
    public ParceledListSlice<BrightnessChangeEvent> getEvents(int userId) {
    public ParceledListSlice<BrightnessChangeEvent> getEvents(int userId, boolean includePackage) {
        // TODO include apps from any managed profiles in the brightness information.
        BrightnessChangeEvent[] events;
        synchronized (mEventsLock) {
@@ -207,7 +208,13 @@ public class BrightnessTracker {
        ArrayList<BrightnessChangeEvent> out = new ArrayList<>(events.length);
        for (int i = 0; i < events.length; ++i) {
            if (events[i].userId == userId) {
                if (includePackage) {
                    out.add(events[i]);
                } else {
                    BrightnessChangeEvent event = new BrightnessChangeEvent((events[i]));
                    event.packageName = null;
                    out.add(event);
                }
            }
        }
        return new ParceledListSlice<>(out);
Loading