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

Commit 30c99155 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Remove usages of AppPermissionActivity" into rvc-dev

parents 356d3501 9dc10111
Loading
Loading
Loading
Loading
+5 −4
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@
package com.android.permissioncontroller.permission.service;

import static android.Manifest.permission.ACCESS_FINE_LOCATION;
import static android.Manifest.permission_group.LOCATION;
import static android.app.AppOpsManager.OPSTR_FINE_LOCATION;
import static android.app.NotificationManager.IMPORTANCE_LOW;
import static android.app.PendingIntent.FLAG_ONE_SHOT;
@@ -24,8 +25,9 @@ import static android.app.PendingIntent.FLAG_UPDATE_CURRENT;
import static android.app.PendingIntent.getBroadcast;
import static android.app.job.JobScheduler.RESULT_SUCCESS;
import static android.content.Context.MODE_PRIVATE;
import static android.content.Intent.ACTION_MANAGE_APP_PERMISSION;
import static android.content.Intent.EXTRA_PACKAGE_NAME;
import static android.content.Intent.EXTRA_PERMISSION_NAME;
import static android.content.Intent.EXTRA_PERMISSION_GROUP_NAME;
import static android.content.Intent.EXTRA_UID;
import static android.content.Intent.EXTRA_USER;
import static android.content.Intent.FLAG_ACTIVITY_MULTIPLE_TASK;
@@ -103,7 +105,6 @@ import androidx.core.util.Preconditions;
import com.android.permissioncontroller.PermissionControllerStatsLog;
import com.android.permissioncontroller.R;
import com.android.permissioncontroller.permission.model.AppPermissionGroup;
import com.android.permissioncontroller.permission.ui.AppPermissionActivity;
import com.android.permissioncontroller.permission.utils.Utils;

import java.io.BufferedReader;
@@ -906,9 +907,9 @@ public class LocationAccessCheck {
                    "Location access check notification clicked with sessionId=" + sessionId + ""
                            + " uid=" + uid + " pkgName=" + pkg);

            Intent manageAppPermission = new Intent(context, AppPermissionActivity.class);
            Intent manageAppPermission = new Intent(ACTION_MANAGE_APP_PERMISSION);
            manageAppPermission.addFlags(FLAG_ACTIVITY_NEW_TASK | FLAG_ACTIVITY_MULTIPLE_TASK);
            manageAppPermission.putExtra(EXTRA_PERMISSION_NAME, ACCESS_FINE_LOCATION);
            manageAppPermission.putExtra(EXTRA_PERMISSION_GROUP_NAME, LOCATION);
            manageAppPermission.putExtra(EXTRA_PACKAGE_NAME, pkg);
            manageAppPermission.putExtra(EXTRA_USER, user);
            manageAppPermission.putExtra(EXTRA_SESSION_ID, sessionId);
+13 −1
Original line number Diff line number Diff line
@@ -43,8 +43,15 @@ import com.android.permissioncontroller.permission.utils.Utils;
import java.util.List;

/**
 * Manage a single permission of a single app
 * Manage a single permission of a single app.
 *
 * @deprecated This class is deprecated for handheld UI, and will throw an error if used for
 * handheld (read: non auto, TV, or wear) UIs. Instead, users should create an intent with the
 * ACTION_MANAGE_APP_PERMISSION action, which will intent into the ManagePermissionsActivity.
 *
 * @see ManagePermissionsActivity
 */
@Deprecated
public final class AppPermissionActivity extends FragmentActivity {
    private static final String LOG_TAG = AppPermissionActivity.class.getSimpleName();

@@ -62,6 +69,11 @@ public final class AppPermissionActivity extends FragmentActivity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        if (!DeviceUtils.isAuto(this) && !DeviceUtils.isWear(this)
                && !DeviceUtils.isTelevision(this)) {
            throw new IllegalStateException("Do not use AppPermissionActivity for handheld ui. "
                    + "Create intent with ACTION_MANAGE_APP_PERMISSION instead.");
        }
        if (DeviceUtils.isAuto(this)) {
            // Automotive relies on a different theme. Apply before calling super so that
            // fragments are restored properly on configuration changes.
+10 −10
Original line number Diff line number Diff line
@@ -16,11 +16,11 @@

package com.android.permissioncontroller.permission.ui;

import static android.Manifest.permission.ACCESS_FINE_LOCATION;
import static android.app.PendingIntent.FLAG_UPDATE_CURRENT;
import static android.app.PendingIntent.getActivity;
import static android.content.Intent.ACTION_MANAGE_APP_PERMISSION;
import static android.content.Intent.EXTRA_PACKAGE_NAME;
import static android.content.Intent.EXTRA_PERMISSION_NAME;
import static android.content.Intent.EXTRA_PERMISSION_GROUP_NAME;
import static android.content.Intent.EXTRA_USER;
import static android.content.Intent.FLAG_ACTIVITY_MULTIPLE_TASK;
import static android.content.Intent.FLAG_ACTIVITY_NEW_TASK;
@@ -199,13 +199,13 @@ public class AutoGrantPermissionsNotifier {
    private @NonNull Intent getSettingsPermissionIntent(long sessionId) {
        UserHandle callingUser = getUserHandleForUid(mPackageInfo.applicationInfo.uid);

        return new Intent(mContext, AppPermissionActivity.class)
        return new Intent(ACTION_MANAGE_APP_PERMISSION)
                .addFlags(FLAG_ACTIVITY_NEW_TASK | FLAG_ACTIVITY_MULTIPLE_TASK)
        .putExtra(EXTRA_PERMISSION_NAME, ACCESS_FINE_LOCATION)
                .putExtra(EXTRA_PERMISSION_GROUP_NAME, Manifest.permission_group.LOCATION)
                .putExtra(EXTRA_PACKAGE_NAME, mPackageInfo.packageName)
                .putExtra(EXTRA_USER, callingUser)
                .putExtra(EXTRA_SESSION_ID, sessionId)
        .putExtra(AppPermissionActivity.EXTRA_CALLER_NAME,
                .putExtra(ManagePermissionsActivity.EXTRA_CALLER_NAME,
                        AutoGrantPermissionsNotifier.class.getName());
    }

+8 −9
Original line number Diff line number Diff line
@@ -41,6 +41,9 @@ import static com.android.permissioncontroller.permission.ui.GrantPermissionsVie
import static com.android.permissioncontroller.permission.ui.GrantPermissionsViewHandler.GRANTED_FOREGROUND_ONLY;
import static com.android.permissioncontroller.permission.ui.GrantPermissionsViewHandler.GRANTED_ONE_TIME;
import static com.android.permissioncontroller.permission.ui.GrantPermissionsViewHandler.LINKED_TO_SETTINGS;
import static com.android.permissioncontroller.permission.ui.ManagePermissionsActivity.EXTRA_CALLER_NAME;
import static com.android.permissioncontroller.permission.ui.ManagePermissionsActivity.EXTRA_RESULT_PERMISSION_INTERACTED;
import static com.android.permissioncontroller.permission.ui.ManagePermissionsActivity.EXTRA_RESULT_PERMISSION_RESULT;
import static com.android.permissioncontroller.permission.utils.Utils.getRequestMessage;

import android.Manifest;
@@ -723,8 +726,8 @@ public class GrantPermissionsActivity extends Activity
                            if (mActivityResultCallback == null) {
                                startAppPermissionFragment(groupState);
                                mActivityResultCallback = data -> {
                                    if (data == null || data.getStringExtra(AppPermissionActivity
                                            .EXTRA_RESULT_PERMISSION_INTERACTED) == null) {
                                    if (data == null || data.getStringExtra(
                                            EXTRA_RESULT_PERMISSION_INTERACTED) == null) {
                                        // User didn't interact, count against rate limit
                                        if (groupState.mGroup.isUserSet()) {
                                            groupState.mGroup.setUserFixed(true);
@@ -866,13 +869,10 @@ public class GrantPermissionsActivity extends Activity
                startAppPermissionFragment(groupState);
                mActivityResultCallback = data -> {
                    if (data != null) {
                        String groupName = data.getStringExtra(
                                AppPermissionActivity.EXTRA_RESULT_PERMISSION_INTERACTED);
                        String groupName = data.getStringExtra(EXTRA_RESULT_PERMISSION_INTERACTED);
                        if (groupName != null) {
                            mPermissionGroupsToSkip.add(groupName);
                            int result = data.getIntExtra(
                                            AppPermissionActivity.EXTRA_RESULT_PERMISSION_RESULT,
                                    -1);
                            int result = data.getIntExtra(EXTRA_RESULT_PERMISSION_RESULT, -1);
                            logSettingsInteraction(groupName, result);
                        }
                    }
@@ -933,8 +933,7 @@ public class GrantPermissionsActivity extends Activity
                .putExtra(Intent.EXTRA_PACKAGE_NAME, mAppPermissions.getPackageInfo().packageName)
                .putExtra(Intent.EXTRA_PERMISSION_GROUP_NAME, groupState.mGroup.getName())
                .putExtra(Intent.EXTRA_USER, groupState.mGroup.getUser())
                .putExtra(AppPermissionActivity.EXTRA_CALLER_NAME,
                        GrantPermissionsActivity.class.getName())
                .putExtra(EXTRA_CALLER_NAME, GrantPermissionsActivity.class.getName())
                .putExtra(Constants.EXTRA_SESSION_ID, mRequestId)
                .addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
        startActivityForResult(intent, APP_PERMISSION_REQUEST_CODE);
+15 −0
Original line number Diff line number Diff line
@@ -58,6 +58,21 @@ public final class ManagePermissionsActivity extends FragmentActivity {
    public static final String EXTRA_ALL_PERMISSIONS =
            "com.android.permissioncontroller.extra.ALL_PERMISSIONS";

    /**
     * Name of the extra parameter that is the fragment that called the current fragment.
     */
    public static final String EXTRA_CALLER_NAME =
            "com.android.permissioncontroller.extra.CALLER_NAME";

    // The permission group which was interacted with
    public static final String EXTRA_RESULT_PERMISSION_INTERACTED = "com.android"
            + ".permissioncontroller.extra.RESULT_PERMISSION_INTERACTED";
    /**
     * The result of the permission in terms of {@link GrantPermissionsViewHandler.Result}
     */
    public static final String EXTRA_RESULT_PERMISSION_RESULT = "com.android"
            + ".permissioncontroller.extra.PERMISSION_RESULT";

    @Override
    public void onCreate(Bundle savedInstanceState) {
        if (DeviceUtils.isAuto(this)) {
Loading