6
6
import android .os .Build ;
7
7
import android .util .Log ;
8
8
9
- import androidx .core .app .ActivityCompat ;
10
-
11
9
import java .util .ArrayList ;
12
10
import java .util .Arrays ;
13
11
import java .util .List ;
@@ -18,18 +16,20 @@ public class PermissionHandler {
18
16
public static final int PUBLISH_PERMISSION_REQUEST_CODE = 1 ;
19
17
public static final int PLAY_PERMISSION_REQUEST_CODE = 2 ;
20
18
21
-
22
- public static final String [] BLUETOOTH_PERMISSIONS = Build . VERSION . SDK_INT >= Build . VERSION_CODES . S ?
23
- new String [] { Manifest . permission . BLUETOOTH_CONNECT } : new String [] {} ;
19
+ public static final String [] BLUETOOTH_PERMISSIONS = Build . VERSION . SDK_INT >= Build . VERSION_CODES . S
20
+ ? new String []{ Manifest . permission . BLUETOOTH_CONNECT }
21
+ : new String []{} ;
24
22
25
23
public static final String [] CAMERA_PERMISSIONS =
26
- new String [] {Manifest .permission .CAMERA };
24
+ new String []{Manifest .permission .CAMERA };
27
25
28
26
public static final String [] PUBLISH_PERMISSIONS =
29
- new String [] {Manifest .permission .CAMERA , Manifest .permission .RECORD_AUDIO };
27
+ new String []{Manifest .permission .CAMERA , Manifest .permission .RECORD_AUDIO };
30
28
31
- public static final String [] REQUIRED_MINIMUM_PERMISSIONS = {"android.permission.MODIFY_AUDIO_SETTINGS" ,
32
- "android.permission.INTERNET" };
29
+ public static final String [] REQUIRED_MINIMUM_PERMISSIONS = {
30
+ Manifest .permission .MODIFY_AUDIO_SETTINGS ,
31
+ Manifest .permission .INTERNET
32
+ };
33
33
34
34
public static final String [] FULL_PERMISSIONS = concatArrays (
35
35
BLUETOOTH_PERMISSIONS ,
@@ -53,78 +53,80 @@ private static String[] concatArrays(String[]... arrays) {
53
53
return result ;
54
54
}
55
55
56
- public static boolean checkCameraPermissions (Activity activity ){
56
+ public static boolean checkCameraPermissions (Activity activity ) {
57
57
ArrayList <String > permissions = new ArrayList <>();
58
58
permissions .addAll (Arrays .asList (REQUIRED_MINIMUM_PERMISSIONS ));
59
59
permissions .addAll (Arrays .asList (CAMERA_PERMISSIONS ));
60
60
return hasPermissions (activity , permissions );
61
61
}
62
62
63
- public static boolean checkPublishPermissions (Activity activity , boolean bluetoothEnabled ){
63
+ public static boolean checkPublishPermissions (Activity activity , boolean bluetoothEnabled ) {
64
64
ArrayList <String > permissions = new ArrayList <>();
65
65
permissions .addAll (Arrays .asList (REQUIRED_MINIMUM_PERMISSIONS ));
66
66
permissions .addAll (Arrays .asList (PUBLISH_PERMISSIONS ));
67
67
68
- if (bluetoothEnabled ){
68
+ if (bluetoothEnabled ) {
69
69
permissions .addAll (Arrays .asList (BLUETOOTH_PERMISSIONS ));
70
70
}
71
71
72
72
return hasPermissions (activity , permissions );
73
73
}
74
74
75
- public static boolean checkPlayPermissions (Activity activity , boolean bluetoothEnabled ){
75
+ public static boolean checkPlayPermissions (Activity activity , boolean bluetoothEnabled ) {
76
76
ArrayList <String > permissions = new ArrayList <>();
77
77
permissions .addAll (Arrays .asList (REQUIRED_MINIMUM_PERMISSIONS ));
78
- if (bluetoothEnabled ){
78
+ if (bluetoothEnabled ) {
79
79
permissions .addAll (Arrays .asList (BLUETOOTH_PERMISSIONS ));
80
80
}
81
- return hasPermissions (activity ,permissions );
81
+ return hasPermissions (activity , permissions );
82
82
}
83
83
84
84
public static void requestPermissions (Activity activity , List <String > permissions , int requestCode ) {
85
- String [] permissionArray = new String [permissions .size ()];
86
- permissions .toArray (permissionArray );
87
- ActivityCompat .requestPermissions (activity , permissionArray , requestCode );
85
+ if (activity == null ) return ;
86
+ String [] permissionArray = permissions .toArray (new String [0 ]);
87
+ if (Build .VERSION .SDK_INT >= Build .VERSION_CODES .M ) {
88
+ activity .requestPermissions (permissionArray , requestCode );
89
+ }
88
90
}
89
91
90
92
public static boolean hasPermissions (Activity activity , List <String > permissions ) {
91
93
if (activity != null && permissions != null ) {
92
94
for (String permission : permissions ) {
93
- if (ActivityCompat .checkSelfPermission (activity , permission )
94
- != PackageManager .PERMISSION_GRANTED ) {
95
- Log .w (PermissionHandler .class .getSimpleName (), "Permission required:" +permission );
96
- return false ;
95
+ if (Build .VERSION .SDK_INT >= Build .VERSION_CODES .M ) {
96
+ if (activity .checkSelfPermission (permission ) != PackageManager .PERMISSION_GRANTED ) {
97
+ Log .w (PermissionHandler .class .getSimpleName (), "Permission required: " + permission );
98
+ return false ;
99
+ }
97
100
}
98
101
}
99
102
}
100
103
return true ;
101
104
}
102
105
103
- public static void requestCameraPermissions (Activity activity ){
106
+ public static void requestCameraPermissions (Activity activity ) {
104
107
ArrayList <String > permissions = new ArrayList <>();
105
108
permissions .addAll (Arrays .asList (REQUIRED_MINIMUM_PERMISSIONS ));
106
109
permissions .addAll (Arrays .asList (CAMERA_PERMISSIONS ));
107
110
requestPermissions (activity , permissions , CAMERA_PERMISSION_REQUEST_CODE );
108
111
}
109
112
110
- public static void requestPublishPermissions (Activity activity , boolean bluetoothEnabled ){
113
+ public static void requestPublishPermissions (Activity activity , boolean bluetoothEnabled ) {
111
114
ArrayList <String > permissions = new ArrayList <>();
112
115
permissions .addAll (Arrays .asList (REQUIRED_MINIMUM_PERMISSIONS ));
113
116
permissions .addAll (Arrays .asList (PUBLISH_PERMISSIONS ));
114
117
115
- if (bluetoothEnabled ){
118
+ if (bluetoothEnabled ) {
116
119
permissions .addAll (Arrays .asList (BLUETOOTH_PERMISSIONS ));
117
120
}
118
121
requestPermissions (activity , permissions , PUBLISH_PERMISSION_REQUEST_CODE );
119
122
}
120
123
121
- public static void requestPlayPermissions (Activity activity , boolean bluetoothEnabled ){
124
+ public static void requestPlayPermissions (Activity activity , boolean bluetoothEnabled ) {
122
125
ArrayList <String > permissions = new ArrayList <>();
123
126
permissions .addAll (Arrays .asList (REQUIRED_MINIMUM_PERMISSIONS ));
124
- if (bluetoothEnabled ){
127
+ if (bluetoothEnabled ) {
125
128
permissions .addAll (Arrays .asList (BLUETOOTH_PERMISSIONS ));
126
129
}
127
130
requestPermissions (activity , permissions , PLAY_PERMISSION_REQUEST_CODE );
128
131
}
129
132
}
130
-
0 commit comments