Skip to content

Commit

Permalink
Fix android build errors with RN 0.71
Browse files Browse the repository at this point in the history
- Add redundant handling for missing permission exceptions. Existing checks work but do not satisfy lint, so this is the only way to resolve react-native-webrtc#646.

- Upgrade gradle to maximum compatible version (3.6.4) to satisfy new minimum (3.2.0).

- Replace use of deprecated API methods and constants.

- Increase android minSdk version to 27 (to use Activity.setShowWhenLocked/setTurnScreenOn).
  • Loading branch information
ramijarrar committed Oct 31, 2023
1 parent cc308ce commit 8298ce8
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 11 deletions.
4 changes: 2 additions & 2 deletions android/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ buildscript {
}

dependencies {
classpath 'com.android.tools.build:gradle:3.0.1'
classpath 'com.android.tools.build:gradle:3.6.4'
}
}

Expand All @@ -19,7 +19,7 @@ android {
compileSdkVersion safeExtGet('compileSdkVersion', 28)

defaultConfig {
minSdkVersion safeExtGet('minSdkVersion', 23)
minSdkVersion safeExtGet('minSdkVersion', 27)
targetSdkVersion safeExtGet('targetSdkVersion', 28)
versionCode 1
versionName "1.0"
Expand Down
20 changes: 12 additions & 8 deletions android/src/main/java/io/wazo/callkeep/RNCallKeepModule.java
Original file line number Diff line number Diff line change
Expand Up @@ -512,7 +512,9 @@ public void startCall(String uuid, String number, String callerName, boolean has

Log.d(TAG, "[RNCallKeepModule] startCall, uuid: " + uuid);
this.listenToNativeCallsState();
telecomManager.placeCall(uri, extras);
try {
telecomManager.placeCall(uri, extras);
} catch (SecurityException ignored) {}
}

@ReactMethod
Expand All @@ -530,7 +532,7 @@ public void endCall(String uuid) {
}
Context context = this.getAppContext();
AudioManager audioManager = (AudioManager) context.getSystemService(context.AUDIO_SERVICE);
audioManager.setMode(0);
audioManager.setMode(AudioManager.MODE_NORMAL);
conn.onDisconnect();
this.stopListenToNativeCallsState();
this.hasActiveCall = false;
Expand Down Expand Up @@ -673,7 +675,11 @@ public void checkDefaultPhoneAccount(Promise promise) {
}

boolean hasSim = telephonyManager.getSimState() != TelephonyManager.SIM_STATE_ABSENT;
boolean hasDefaultAccount = telecomManager.getDefaultOutgoingPhoneAccount("tel") != null;

boolean hasDefaultAccount = false;
try {
hasDefaultAccount = telecomManager.getDefaultOutgoingPhoneAccount("tel") != null;
} catch (SecurityException ignored) {}

promise.resolve(!hasSim || hasDefaultAccount);
}
Expand Down Expand Up @@ -1079,11 +1085,9 @@ public void backToForeground() {
focusIntent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
activity.startActivity(focusIntent);
} else {
focusIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK +
WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED +
WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD +
WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);

focusIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
activity.setShowWhenLocked(true);
activity.setTurnScreenOn(true);
getReactApplicationContext().startActivity(focusIntent);
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.app.Activity;
import android.app.Service;
import android.content.res.Resources;
import android.content.Intent;
import android.content.Context;
Expand Down Expand Up @@ -359,7 +360,7 @@ private void stopForegroundService() {
}

try {
stopForeground(FOREGROUND_SERVICE_TYPE_MICROPHONE);
stopForeground(Service.STOP_FOREGROUND_REMOVE);
} catch (Exception e) {
Log.w(TAG, "[VoiceConnectionService] can't stop foreground service :" + e.toString());
}
Expand Down

0 comments on commit 8298ce8

Please sign in to comment.