36 lines
1.1 KiB
Java
36 lines
1.1 KiB
Java
package androidx.core.content.pm;
|
|
|
|
import android.annotation.SuppressLint;
|
|
import android.content.pm.PermissionInfo;
|
|
import android.os.Build;
|
|
import androidx.annotation.NonNull;
|
|
import androidx.annotation.RestrictTo;
|
|
import java.lang.annotation.Retention;
|
|
import java.lang.annotation.RetentionPolicy;
|
|
public final class PermissionInfoCompat {
|
|
|
|
@Retention(RetentionPolicy.SOURCE)
|
|
@RestrictTo({RestrictTo.Scope.LIBRARY})
|
|
public @interface Protection {
|
|
}
|
|
|
|
@SuppressLint({"UniqueConstants"})
|
|
@Retention(RetentionPolicy.SOURCE)
|
|
@RestrictTo({RestrictTo.Scope.LIBRARY})
|
|
public @interface ProtectionFlags {
|
|
}
|
|
|
|
private PermissionInfoCompat() {
|
|
}
|
|
|
|
@SuppressLint({"WrongConstant"})
|
|
public static int getProtection(@NonNull PermissionInfo permissionInfo) {
|
|
return Build.VERSION.SDK_INT >= 28 ? permissionInfo.getProtection() : permissionInfo.protectionLevel & 15;
|
|
}
|
|
|
|
@SuppressLint({"WrongConstant"})
|
|
public static int getProtectionFlags(@NonNull PermissionInfo permissionInfo) {
|
|
return Build.VERSION.SDK_INT >= 28 ? permissionInfo.getProtectionFlags() : permissionInfo.protectionLevel & -16;
|
|
}
|
|
}
|