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

Commit 0f021a16 authored by Nate Myren's avatar Nate Myren Committed by Android (Google) Code Review
Browse files

Merge "Open SensorPrivacy and WRITE_SECURE_SETTINGS to PC"

parents 4b30ed54 d53beec9
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -11443,6 +11443,7 @@ package android.content {
    field public static final String ACTION_VIEW_LOCUS = "android.intent.action.VIEW_LOCUS";
    field @RequiresPermission(android.Manifest.permission.START_VIEW_PERMISSION_USAGE) public static final String ACTION_VIEW_PERMISSION_USAGE = "android.intent.action.VIEW_PERMISSION_USAGE";
    field @RequiresPermission(android.Manifest.permission.START_VIEW_PERMISSION_USAGE) public static final String ACTION_VIEW_PERMISSION_USAGE_FOR_PERIOD = "android.intent.action.VIEW_PERMISSION_USAGE_FOR_PERIOD";
    field @RequiresPermission("android.permission.MANAGE_SENSOR_PRIVACY") public static final String ACTION_VIEW_SAFETY_HUB = "android.intent.action.VIEW_SAFETY_HUB";
    field public static final String ACTION_VOICE_COMMAND = "android.intent.action.VOICE_COMMAND";
    field @Deprecated public static final String ACTION_WALLPAPER_CHANGED = "android.intent.action.WALLPAPER_CHANGED";
    field public static final String ACTION_WEB_SEARCH = "android.intent.action.WEB_SEARCH";
+1 −0
Original line number Diff line number Diff line
@@ -3296,6 +3296,7 @@ package android.hardware {
    method @RequiresPermission(android.Manifest.permission.OBSERVE_SENSOR_PRIVACY) public void addSensorPrivacyListener(int, @NonNull java.util.concurrent.Executor, @NonNull android.hardware.SensorPrivacyManager.OnSensorPrivacyChangedListener);
    method @RequiresPermission(android.Manifest.permission.OBSERVE_SENSOR_PRIVACY) public boolean isSensorPrivacyEnabled(int);
    method @RequiresPermission(android.Manifest.permission.OBSERVE_SENSOR_PRIVACY) public void removeSensorPrivacyListener(int, @NonNull android.hardware.SensorPrivacyManager.OnSensorPrivacyChangedListener);
    method @RequiresPermission(android.Manifest.permission.MANAGE_SENSOR_PRIVACY) public void setSensorPrivacy(int, boolean);
  }
  public static interface SensorPrivacyManager.OnSensorPrivacyChangedListener {
+1 −1
Original line number Diff line number Diff line
@@ -1067,13 +1067,13 @@ package android.hardware {

  public final class SensorPrivacyManager {
    method @RequiresPermission(android.Manifest.permission.MANAGE_SENSOR_PRIVACY) public void setSensorPrivacy(int, int, boolean);
    method @RequiresPermission(android.Manifest.permission.MANAGE_SENSOR_PRIVACY) public void setSensorPrivacyForProfileGroup(int, int, boolean);
  }

  public static class SensorPrivacyManager.Sources {
    field public static final int DIALOG = 3; // 0x3
    field public static final int OTHER = 5; // 0x5
    field public static final int QS_TILE = 1; // 0x1
    field public static final int SAFETY_HUB = 6; // 0x6
    field public static final int SETTINGS = 2; // 0x2
    field public static final int SHELL = 4; // 0x4
  }
+16 −0
Original line number Diff line number Diff line
@@ -18,6 +18,7 @@ package android.content;

import static android.content.ContentProvider.maybeAddUserId;

import android.Manifest;
import android.accessibilityservice.AccessibilityService;
import android.annotation.AnyRes;
import android.annotation.BroadcastBehavior;
@@ -2040,6 +2041,21 @@ public class Intent implements Parcelable, Cloneable {
    public static final String ACTION_VIEW_PERMISSION_USAGE_FOR_PERIOD =
            "android.intent.action.VIEW_PERMISSION_USAGE_FOR_PERIOD";

    /**
     * Activity action: Launch the Safety Hub UI.
     *
     * <p>
     * Input: Nothing.
     * </p>
     * <p>
     * Output: Nothing.
     * </p>
     */
    @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
    @RequiresPermission(Manifest.permission.MANAGE_SENSOR_PRIVACY)
    public static final String ACTION_VIEW_SAFETY_HUB =
            "android.intent.action.VIEW_SAFETY_HUB";

    /**
     * Activity action: Launch UI to manage a default app.
     * <p>
+33 −2
Original line number Diff line number Diff line
@@ -41,6 +41,7 @@ import com.android.internal.annotations.GuardedBy;

import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.util.Objects;
import java.util.concurrent.Executor;

/**
@@ -136,6 +137,11 @@ public final class SensorPrivacyManager {
         */
        public static final int OTHER = SensorPrivacyToggleSourceProto.OTHER;

        /**
         * Constant for SAFETY_HUB.
         */
        public static final int SAFETY_HUB = SensorPrivacyToggleSourceProto.SAFETY_HUB;

        /**
         * Source for toggling sensors
         *
@@ -146,7 +152,8 @@ public final class SensorPrivacyManager {
                SETTINGS,
                DIALOG,
                SHELL,
                OTHER
                OTHER,
                SAFETY_HUB
        })
        @Retention(RetentionPolicy.SOURCE)
        public @interface Source {}
@@ -401,6 +408,31 @@ public final class SensorPrivacyManager {
        }
    }

    /**
     * Sets sensor privacy to the specified state for an individual sensor.
     *
     * @param sensor the sensor which to change the state for
     * @param enable the state to which sensor privacy should be set.
     *
     * @hide
     */
    @SystemApi
    @RequiresPermission(Manifest.permission.MANAGE_SENSOR_PRIVACY)
    public void setSensorPrivacy(@Sensors.Sensor int sensor,
            boolean enable) {
        setSensorPrivacy(resolveSourceFromCurrentContext(), sensor, enable,
                UserHandle.USER_CURRENT);
    }

    private @Sources.Source int resolveSourceFromCurrentContext() {
        String packageName = mContext.getOpPackageName();
        if (Objects.equals(packageName,
                mContext.getPackageManager().getPermissionControllerPackageName())) {
            return Sources.SAFETY_HUB;
        }
        return Sources.OTHER;
    }

    /**
     * Sets sensor privacy to the specified state for an individual sensor.
     *
@@ -445,7 +477,6 @@ public final class SensorPrivacyManager {
     *
     * @hide
     */
    @TestApi
    @RequiresPermission(Manifest.permission.MANAGE_SENSOR_PRIVACY)
    public void setSensorPrivacyForProfileGroup(@Sources.Source int source,
            @Sensors.Sensor int sensor, boolean enable) {
Loading