40
40
import android .app .ActivityManager ;
41
41
import android .app .ActivityManager .RunningTaskInfo ;
42
42
43
- import com .facebook .react .HeadlessJsTaskService ;
44
- import com .facebook .react .bridge .ReactContext ;
45
- import com .facebook .react .common .LifecycleState ;
46
-
47
43
import java .util .ArrayList ;
48
44
import java .util .HashMap ;
49
45
import java .util .Iterator ;
53
49
import java .util .UUID ;
54
50
import java .util .stream .Collectors ;
55
51
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 ;
70
59
71
60
// @see https://github.com/kbagchiGWC/voice-quickstart-android/blob/9a2aff7fbe0d0a5ae9457b48e9ad408740dfb968/exampleConnectionService/src/main/java/com/twilio/voice/examples/connectionservice/VoiceConnectionService.java
72
61
@ TargetApi (Build .VERSION_CODES .M )
@@ -76,6 +65,7 @@ public class VoiceConnectionService extends ConnectionService {
76
65
private static Boolean isReachable ;
77
66
private static String notReachableCallUuid ;
78
67
private static ConnectionRequest currentConnectionRequest ;
68
+ private static PhoneAccountHandle phoneAccountHandle ;
79
69
private static String TAG = "RNCK:VoiceConnectionService" ;
80
70
public static Map <String , VoiceConnection > currentConnections = new HashMap <>();
81
71
public static Boolean hasOutgoingCall = false ;
@@ -98,6 +88,10 @@ public VoiceConnectionService() {
98
88
currentConnectionService = this ;
99
89
}
100
90
91
+ public static void setPhoneAccountHandle (PhoneAccountHandle phoneAccountHandle ) {
92
+ VoiceConnectionService .phoneAccountHandle = phoneAccountHandle ;
93
+ }
94
+
101
95
public static void setAvailable (Boolean value ) {
102
96
Log .d (TAG , "setAvailable: " + (value ? "true" : "false" ));
103
97
if (value ) {
@@ -196,19 +190,11 @@ private Connection makeOutgoingCall(ConnectionRequest request, String uuid, Bool
196
190
}
197
191
198
192
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 );
212
198
}
213
199
214
200
private void wakeUpAfterReachabilityTimeout (ConnectionRequest request ) {
@@ -271,9 +257,7 @@ public void onConference(Connection connection1, Connection connection2) {
271
257
VoiceConnection voiceConnection1 = (VoiceConnection ) connection1 ;
272
258
VoiceConnection voiceConnection2 = (VoiceConnection ) connection2 ;
273
259
274
- PhoneAccountHandle phoneAccountHandle = RNCallKeepModule .handle ;
275
-
276
- VoiceConference voiceConference = new VoiceConference (handle );
260
+ VoiceConference voiceConference = new VoiceConference (phoneAccountHandle );
277
261
voiceConference .addConnection (voiceConnection1 );
278
262
voiceConference .addConnection (voiceConnection2 );
279
263
0 commit comments