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

Commit 9f70039d authored by Eugene Susla's avatar Eugene Susla Committed by Android (Google) Code Review
Browse files

Merge "Avoid aborting sms kill switch cleanup on unexpected exception"

parents f2f46e6c 6ca90168
Loading
Loading
Loading
Loading
+32 −24
Original line number Diff line number Diff line
@@ -182,12 +182,14 @@ public class RoleControllerServiceImpl extends RoleControllerService {
    void onSmsKillSwitchToggled(boolean smsRestrictionEnabled, PackageInfo pkg,
            List<PermissionInfo> permissions) {
        PackageManager pm = getPackageManager();
        int uid = pkg.applicationInfo.uid; //TODO multiuser support?
        int uid = pkg.applicationInfo.uid;

        for (int i = 0, permissionsSize = permissions.size(); i < permissionsSize; i++) {
            PermissionInfo permission = permissions.get(i);
            try {
                int permFlags =
                    pm.getPermissionFlags(permission.name, pkg.packageName, Process.myUserHandle());
                        pm.getPermissionFlags(permission.name, pkg.packageName,
                                Process.myUserHandle());

                if ((permFlags
                        & (PackageManager.FLAG_PERMISSION_GRANTED_BY_DEFAULT
@@ -209,10 +211,16 @@ public class RoleControllerServiceImpl extends RoleControllerService {
                }

                if (!smsRestrictionEnabled
                    && pkg.applicationInfo.targetSdkVersion > Build.VERSION_CODES.LOLLIPOP_MR1) {
                        && pkg.applicationInfo.targetSdkVersion
                        > Build.VERSION_CODES.LOLLIPOP_MR1) {
                    pm.revokeRuntimePermission(
                            pkg.packageName, permission.name, Process.myUserHandle());
                }
            } catch (Exception e) {
                Log.e(LOG_TAG, "Unexpected exception while cleaning up state for package "
                        + pkg.packageName + " & " + permission.name, e);
                continue;
            }
        }
    }