Loading src/com/android/permissioncontroller/permission/service/LocationAccessCheck.java +5 −4 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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; Loading Loading @@ -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; Loading Loading @@ -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); Loading src/com/android/permissioncontroller/permission/ui/AppPermissionActivity.java +13 −1 Original line number Diff line number Diff line Loading @@ -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(); Loading @@ -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. Loading src/com/android/permissioncontroller/permission/ui/AutoGrantPermissionsNotifier.java +10 −10 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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()); } Loading src/com/android/permissioncontroller/permission/ui/GrantPermissionsActivity.java +8 −9 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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); Loading Loading @@ -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); } } Loading Loading @@ -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); Loading src/com/android/permissioncontroller/permission/ui/ManagePermissionsActivity.java +15 −0 Original line number Diff line number Diff line Loading @@ -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 Loading
src/com/android/permissioncontroller/permission/service/LocationAccessCheck.java +5 −4 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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; Loading Loading @@ -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; Loading Loading @@ -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); Loading
src/com/android/permissioncontroller/permission/ui/AppPermissionActivity.java +13 −1 Original line number Diff line number Diff line Loading @@ -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(); Loading @@ -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. Loading
src/com/android/permissioncontroller/permission/ui/AutoGrantPermissionsNotifier.java +10 −10 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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()); } Loading
src/com/android/permissioncontroller/permission/ui/GrantPermissionsActivity.java +8 −9 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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); Loading Loading @@ -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); } } Loading Loading @@ -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); Loading
src/com/android/permissioncontroller/permission/ui/ManagePermissionsActivity.java +15 −0 Original line number Diff line number Diff line Loading @@ -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