Skip to content

Commit 59342fe

Browse files
committed
android: fix recordPermission for android 6
1 parent 3927e91 commit 59342fe

File tree

2 files changed

+27
-25
lines changed

2 files changed

+27
-25
lines changed

android/src/main/java/com/zxcpoiu/incallmanager/InCallManagerModule.java

Lines changed: 22 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ public class InCallManagerModule extends ReactContextBaseJavaModule implements L
5252
private static final String REACT_NATIVE_MODULE_NAME = "InCallManager";
5353
private static final String TAG = REACT_NATIVE_MODULE_NAME;
5454
private static ReactApplicationContext reactContext;
55-
private final SparseArray<Promise> mRequestPermissionCodePromises;
55+
private static SparseArray<Promise> mRequestPermissionCodePromises;
5656

5757
// --- Screen Manager
5858
private PowerManager mPowerManager;
@@ -98,7 +98,7 @@ public class InCallManagerModule extends ReactContextBaseJavaModule implements L
9898
private MyPlayerInterface mRingback;
9999
private MyPlayerInterface mBusytone;
100100
private String media = "audio";
101-
private String recordPermission = "unknow";
101+
private static String recordPermission = "unknow";
102102

103103
interface MyPlayerInterface {
104104
public boolean isPlaying();
@@ -580,9 +580,9 @@ private static void sendEvent(final String eventName, @Nullable WritableMap para
580580
}
581581

582582
@ReactMethod
583-
public void start(final String media, final boolean auto, final String ringbackUriType) {
584-
this.media = media;
585-
if (this.media.equals("video")) {
583+
public void start(final String _media, final boolean auto, final String ringbackUriType) {
584+
media = _media;
585+
if (media.equals("video")) {
586586
defaultSpeakerOn = true;
587587
} else {
588588
defaultSpeakerOn = false;
@@ -1326,34 +1326,33 @@ public boolean isPlaying() {
13261326
@ReactMethod
13271327
public void checkRecordPermission(Promise promise) {
13281328
Log.d(TAG, "RNInCallManager.checkRecordPermission(): enter");
1329-
this._checkRecordPermission();
1330-
if (this.recordPermission.equals("unknow")) {
1329+
_checkRecordPermission();
1330+
if (recordPermission.equals("unknow")) {
13311331
Log.d(TAG, "RNInCallManager.checkRecordPermission(): failed");
13321332
promise.reject(new Exception("checkRecordPermission failed"));
13331333
} else {
1334-
promise.resolve(this.recordPermission);
1334+
promise.resolve(recordPermission);
13351335
}
13361336
}
13371337

13381338
public void _checkRecordPermission() {
1339-
String recordPermission = "unknow";
1340-
if (ContextCompat.checkSelfPermission(this.reactContext, permission.RECORD_AUDIO) == PackageManager.PERMISSION_GRANTED) {
1341-
recordPermission = "granted";
1339+
String _recordPermission = "unknow";
1340+
if (ContextCompat.checkSelfPermission(reactContext, permission.RECORD_AUDIO) == PackageManager.PERMISSION_GRANTED) {
1341+
_recordPermission = "granted";
13421342
} else {
1343-
recordPermission = "denied";
1343+
_recordPermission = "denied";
13441344
}
1345-
this.recordPermission = recordPermission;
1346-
Log.d(TAG, String.format("RNInCallManager.checkRecordPermission(): recordPermission=%s", this.recordPermission));
1345+
recordPermission = _recordPermission;
1346+
Log.d(TAG, String.format("RNInCallManager.checkRecordPermission(): recordPermission=%s", recordPermission));
13471347
}
13481348

13491349
@ReactMethod
13501350
public void requestRecordPermission(Promise promise) {
13511351
Log.d(TAG, "RNInCallManager.requestRecordPermission(): enter");
1352-
this._checkRecordPermission();
1353-
if (!this.recordPermission.equals("granted")) {
1352+
_checkRecordPermission();
1353+
if (!recordPermission.equals("granted")) {
13541354
Activity currentActivity = getCurrentActivity();
13551355
if (currentActivity == null) {
1356-
this.recordPermission = recordPermission;
13571356
Log.d(TAG, "RNInCallManager.requestRecordPermission(): ReactContext doesn't hava any Activity attached.");
13581357
promise.reject(new Exception("requestRecordPermission(): currentActivity is not attached"));
13591358
}
@@ -1376,7 +1375,7 @@ public void onClick(DialogInterface dialog, int which) {
13761375
ActivityCompat.requestPermissions(currentActivity, new String[] {permission.RECORD_AUDIO}, requestPermissionCode);
13771376
} else {
13781377
// --- already granted
1379-
promise.resolve(this.recordPermission);
1378+
promise.resolve(recordPermission);
13801379
}
13811380
}
13821381

@@ -1388,8 +1387,7 @@ private static int getRandomInteger(int min, int max) {
13881387
return random.nextInt((max - min) + 1) + min;
13891388
}
13901389

1391-
//@Override
1392-
protected void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
1390+
protected static void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
13931391
Log.d(TAG, "RNInCallManager.onRequestPermissionsResult(): enter");
13941392
Promise promise = mRequestPermissionCodePromises.get(requestCode, null);
13951393
mRequestPermissionCodePromises.delete(requestCode);
@@ -1407,13 +1405,13 @@ protected void onRequestPermissionsResult(int requestCode, String[] permissions,
14071405
return;
14081406
}
14091407

1410-
String recordPermission = "unknow";
1408+
String _recordPermission = "unknow";
14111409
if (permissionResultMap.get(permission.RECORD_AUDIO) == PackageManager.PERMISSION_GRANTED) {
1412-
recordPermission = "granted";
1410+
_recordPermission = "granted";
14131411
} else {
1414-
recordPermission = "denied";
1412+
_recordPermission = "denied";
14151413
}
1416-
this.recordPermission = recordPermission;
1414+
recordPermission = _recordPermission;
14171415
promise.resolve(recordPermission);
14181416
} else {
14191417
//super.onRequestPermissionsResult(requestCode, permissions, grantResults);

android/src/main/java/com/zxcpoiu/incallmanager/InCallManagerPackage.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,10 @@ public List<Class<? extends JavaScriptModule>> createJSModules() {
2727

2828
@Override
2929
public List<ViewManager> createViewManagers(ReactApplicationContext reactContext) {
30-
return Arrays.<ViewManager>asList();
30+
return Collections.emptyList();
31+
}
32+
33+
public static void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
34+
InCallManagerModule.onRequestPermissionsResult(requestCode, permissions, grantResults);
3135
}
3236
}

0 commit comments

Comments
 (0)