4040import android .app .ActivityManager ;
4141import android .app .ActivityManager .RunningTaskInfo ;
4242
43- import com .facebook .react .HeadlessJsTaskService ;
44- import com .facebook .react .bridge .ReactContext ;
45- import com .facebook .react .common .LifecycleState ;
46-
4743import java .util .ArrayList ;
4844import java .util .HashMap ;
4945import java .util .Iterator ;
5349import java .util .UUID ;
5450import java .util .stream .Collectors ;
5551
56- import static io .wazo .callkeep .RNCallKeepModule .ACTION_ANSWER_CALL ;
57- import static io .wazo .callkeep .RNCallKeepModule .ACTION_AUDIO_SESSION ;
58- import static io .wazo .callkeep .RNCallKeepModule .ACTION_DTMF_TONE ;
59- import static io .wazo .callkeep .RNCallKeepModule .ACTION_END_CALL ;
60- import static io .wazo .callkeep .RNCallKeepModule .ACTION_HOLD_CALL ;
61- import static io .wazo .callkeep .RNCallKeepModule .ACTION_MUTE_CALL ;
62- import static io .wazo .callkeep .RNCallKeepModule .ACTION_ONGOING_CALL ;
63- import static io .wazo .callkeep .RNCallKeepModule .ACTION_UNHOLD_CALL ;
64- import static io .wazo .callkeep .RNCallKeepModule .ACTION_UNMUTE_CALL ;
65- import static io .wazo .callkeep .RNCallKeepModule .ACTION_CHECK_REACHABILITY ;
66- import static io .wazo .callkeep .RNCallKeepModule .EXTRA_CALLER_NAME ;
67- import static io .wazo .callkeep .RNCallKeepModule .EXTRA_CALL_NUMBER ;
68- import static io .wazo .callkeep .RNCallKeepModule .EXTRA_CALL_UUID ;
69- import static io .wazo .callkeep .RNCallKeepModule .handle ;
52+ import static io .wazo .callkeep .Constants .ACTION_AUDIO_SESSION ;
53+ import static io .wazo .callkeep .Constants .ACTION_ONGOING_CALL ;
54+ import static io .wazo .callkeep .Constants .ACTION_CHECK_REACHABILITY ;
55+ import static io .wazo .callkeep .Constants .ACTION_WAKE_APP ;
56+ import static io .wazo .callkeep .Constants .EXTRA_CALLER_NAME ;
57+ import static io .wazo .callkeep .Constants .EXTRA_CALL_NUMBER ;
58+ import static io .wazo .callkeep .Constants .EXTRA_CALL_UUID ;
7059
7160// @see https://github.com/kbagchiGWC/voice-quickstart-android/blob/9a2aff7fbe0d0a5ae9457b48e9ad408740dfb968/exampleConnectionService/src/main/java/com/twilio/voice/examples/connectionservice/VoiceConnectionService.java
7261@ TargetApi (Build .VERSION_CODES .M )
@@ -76,6 +65,7 @@ public class VoiceConnectionService extends ConnectionService {
7665 private static Boolean isReachable ;
7766 private static String notReachableCallUuid ;
7867 private static ConnectionRequest currentConnectionRequest ;
68+ private static PhoneAccountHandle phoneAccountHandle ;
7969 private static String TAG = "RNCK:VoiceConnectionService" ;
8070 public static Map <String , VoiceConnection > currentConnections = new HashMap <>();
8171 public static Boolean hasOutgoingCall = false ;
@@ -98,6 +88,10 @@ public VoiceConnectionService() {
9888 currentConnectionService = this ;
9989 }
10090
91+ public static void setPhoneAccountHandle (PhoneAccountHandle phoneAccountHandle ) {
92+ VoiceConnectionService .phoneAccountHandle = phoneAccountHandle ;
93+ }
94+
10195 public static void setAvailable (Boolean value ) {
10296 Log .d (TAG , "setAvailable: " + (value ? "true" : "false" ));
10397 if (value ) {
@@ -196,19 +190,11 @@ private Connection makeOutgoingCall(ConnectionRequest request, String uuid, Bool
196190 }
197191
198192 private void wakeUpApplication (String uuid , String number , String displayName ) {
199- Intent headlessIntent = new Intent (
200- this .getApplicationContext (),
201- RNCallKeepBackgroundMessagingService .class
202- );
203- headlessIntent .putExtra ("callUUID" , uuid );
204- headlessIntent .putExtra ("name" , displayName );
205- headlessIntent .putExtra ("handle" , number );
206- Log .d (TAG , "wakeUpApplication: " + uuid + ", number : " + number + ", displayName:" + displayName );
207-
208- ComponentName name = this .getApplicationContext ().startService (headlessIntent );
209- if (name != null ) {
210- HeadlessJsTaskService .acquireWakeLockNow (this .getApplicationContext ());
211- }
193+ HashMap <String , String > extrasMap = new HashMap ();
194+ extrasMap .put (EXTRA_CALL_UUID , uuid );
195+ extrasMap .put (EXTRA_CALLER_NAME , displayName );
196+ extrasMap .put (EXTRA_CALL_NUMBER , number );
197+ sendCallRequestToActivity (ACTION_WAKE_APP , extrasMap );
212198 }
213199
214200 private void wakeUpAfterReachabilityTimeout (ConnectionRequest request ) {
@@ -271,9 +257,7 @@ public void onConference(Connection connection1, Connection connection2) {
271257 VoiceConnection voiceConnection1 = (VoiceConnection ) connection1 ;
272258 VoiceConnection voiceConnection2 = (VoiceConnection ) connection2 ;
273259
274- PhoneAccountHandle phoneAccountHandle = RNCallKeepModule .handle ;
275-
276- VoiceConference voiceConference = new VoiceConference (handle );
260+ VoiceConference voiceConference = new VoiceConference (phoneAccountHandle );
277261 voiceConference .addConnection (voiceConnection1 );
278262 voiceConference .addConnection (voiceConnection2 );
279263
0 commit comments