Skip to content

Commit 7189a29

Browse files
authored
Merge pull request #250 from hotchemi/hotchemi/issues/244
Fix to use compat class.
2 parents b9cbc0f + 846b9c9 commit 7189a29

File tree

1 file changed

+8
-7
lines changed

1 file changed

+8
-7
lines changed

library/src/main/android/permissions/dispatcher/PermissionUtils.java

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,13 @@
11
package permissions.dispatcher;
22

3-
import android.annotation.TargetApi;
43
import android.app.Activity;
5-
import android.app.AppOpsManager;
64
import android.content.Context;
75
import android.content.pm.PackageInfo;
86
import android.content.pm.PackageManager;
97
import android.os.Build;
108
import android.os.Process;
119
import android.support.v4.app.ActivityCompat;
10+
import android.support.v4.app.AppOpsManagerCompat;
1211
import android.support.v4.util.SimpleArrayMap;
1312

1413
import static android.support.v4.content.PermissionChecker.checkSelfPermission;
@@ -106,11 +105,14 @@ private static boolean hasSelfPermission(Context context, String permission) {
106105
}
107106
}
108107

109-
@TargetApi(Build.VERSION_CODES.M)
110108
private static boolean hasSelfPermissionForXiaomi(Context context, String permission) {
111-
AppOpsManager appOpsManager = (AppOpsManager) context.getSystemService(Context.APP_OPS_SERVICE);
112-
int checkOp = appOpsManager.checkOp(AppOpsManager.permissionToOp(permission), Process.myUid(), context.getPackageName());
113-
return checkOp == AppOpsManager.MODE_ALLOWED && checkSelfPermission(context, permission) == PackageManager.PERMISSION_GRANTED;
109+
String permissionToOp = AppOpsManagerCompat.permissionToOp(permission);
110+
if (permissionToOp == null) {
111+
// in case of normal permissions(e.g. INTERNET)
112+
return true;
113+
}
114+
int noteOp = AppOpsManagerCompat.noteOp(context, permissionToOp, Process.myUid(), context.getPackageName());
115+
return noteOp == AppOpsManagerCompat.MODE_ALLOWED && checkSelfPermission(context, permission) == PackageManager.PERMISSION_GRANTED;
114116
}
115117

116118
/**
@@ -135,7 +137,6 @@ public static boolean shouldShowRequestPermissionRationale(Activity activity, St
135137
* @param context context
136138
* @return target sdk version
137139
*/
138-
@TargetApi(Build.VERSION_CODES.DONUT)
139140
public static int getTargetSdkVersion(Context context) {
140141
if (targetSdkVersion != -1) {
141142
return targetSdkVersion;

0 commit comments

Comments
 (0)