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

Commit b902b37b authored by Automerger Merge Worker's avatar Automerger Merge Worker
Browse files

Merge "Revert "Revert "Add method to enforce READ_PRECISE_PHONE_STATE p...""...

Merge "Revert "Revert "Add method to enforce READ_PRECISE_PHONE_STATE p..."" am: 55f9664e am: ba526d50 am: a4ba1c1a

Change-Id: I87a79941758ba646ec3f777d89d5a296eb9876ce
parents 4358533b a4ba1c1a
Loading
Loading
Loading
Loading
+28 −1
Original line number Diff line number Diff line
@@ -558,13 +558,40 @@ public final class TelephonyPermissions {
        }

        if (DBG) {
            Log.d(LOG_TAG, "No READ_PRIVILEDED_PHONE_STATE permission, "
            Log.d(LOG_TAG, "No READ_PRIVILEGED_PHONE_STATE permission, "
                    + "check carrier privilege next.");
        }

        enforceCallingOrSelfCarrierPrivilege(context, subId, message);
    }

    /**
     * Ensure the caller (or self, if not processing an IPC) has
     * {@link android.Manifest.permission#READ_PRIVILEGED_PHONE_STATE} or
     * {@link android.Manifest.permission#READ_PRECISE_PHONE_STATE} or carrier privileges.
     *
     * @throws SecurityException if the caller does not have the required permission/privileges
     */
    public static void enforeceCallingOrSelfReadPrecisePhoneStatePermissionOrCarrierPrivilege(
            Context context, int subId, String message) {
        if (context.checkCallingOrSelfPermission(Manifest.permission.READ_PRIVILEGED_PHONE_STATE)
                == PERMISSION_GRANTED) {
            return;
        }

        if (context.checkCallingOrSelfPermission(Manifest.permission.READ_PRECISE_PHONE_STATE)
                == PERMISSION_GRANTED) {
            return;
        }

        if (DBG) {
            Log.d(LOG_TAG, "No READ_PRIVILEGED_PHONE_STATE nor READ_PRECISE_PHONE_STATE permission"
                    + ", check carrier privilege next.");
        }

        enforceCallingOrSelfCarrierPrivilege(context, subId, message);
    }

    /**
     * Make sure the caller (or self, if not processing an IPC) has carrier privileges.
     *