mirror of
https://github.com/signalapp/Signal-Android.git
synced 2026-04-20 16:49:40 +01:00
committed by
Greyson Parrelli
parent
18957b1f41
commit
15ee8c6cac
@@ -80,7 +80,6 @@ import org.whispersystems.signalservice.api.push.exceptions.UnregisteredUserExce
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
@@ -202,6 +201,7 @@ public class WebRtcCallService extends Service implements CallManager.Observer,
|
||||
@Nullable private RemotePeer busyPeer;
|
||||
@Nullable private RemotePeer preJoinPeer;
|
||||
@Nullable private SparseArray<RemotePeer> peerMap;
|
||||
private long callStartTimestamp;
|
||||
|
||||
@Nullable private EglBase eglBase;
|
||||
@Nullable private BroadcastVideoSink localSink;
|
||||
@@ -422,7 +422,7 @@ public class WebRtcCallService extends Service implements CallManager.Observer,
|
||||
Log.i(TAG, "PSTN line is busy.");
|
||||
intent.putExtra(EXTRA_BROADCAST, true);
|
||||
handleSendBusy(intent);
|
||||
insertMissedCall(remotePeer, true);
|
||||
insertMissedCall(remotePeer, true, serverReceivedTimestamp);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -431,11 +431,12 @@ public class WebRtcCallService extends Service implements CallManager.Observer,
|
||||
intent.putExtra(EXTRA_BROADCAST, true);
|
||||
intent.putExtra(EXTRA_HANGUP_TYPE, HangupMessage.Type.NEED_PERMISSION.getCode());
|
||||
handleSendHangup(intent);
|
||||
insertMissedCall(remotePeer, true);
|
||||
insertMissedCall(remotePeer, true, serverReceivedTimestamp);
|
||||
return;
|
||||
}
|
||||
|
||||
peerMap.append(remotePeer.hashCode(), remotePeer);
|
||||
callStartTimestamp = serverReceivedTimestamp;
|
||||
Log.i(TAG, "add remotePeer callId: " + remotePeer.getCallId() + " key: " + remotePeer.hashCode());
|
||||
|
||||
isRemoteVideoOffer = offerType == OfferMessage.Type.VIDEO_CALL;
|
||||
@@ -523,6 +524,7 @@ public class WebRtcCallService extends Service implements CallManager.Observer,
|
||||
EventBus.getDefault().removeStickyEvent(WebRtcViewModel.class);
|
||||
|
||||
peerMap.append(remotePeer.hashCode(), remotePeer);
|
||||
callStartTimestamp = System.currentTimeMillis();
|
||||
Log.i(TAG, "add remotePeer callId: " + remotePeer.getCallId() + " key: " + remotePeer.hashCode());
|
||||
|
||||
initializeVideo();
|
||||
@@ -552,8 +554,8 @@ public class WebRtcCallService extends Service implements CallManager.Observer,
|
||||
}
|
||||
}
|
||||
|
||||
private void insertMissedCall(@NonNull RemotePeer remotePeer, boolean signal) {
|
||||
Pair<Long, Long> messageAndThreadId = DatabaseFactory.getSmsDatabase(this).insertMissedCall(remotePeer.getId());
|
||||
private void insertMissedCall(@NonNull RemotePeer remotePeer, boolean signal, long timestamp) {
|
||||
Pair<Long, Long> messageAndThreadId = DatabaseFactory.getSmsDatabase(this).insertMissedCall(remotePeer.getId(), timestamp);
|
||||
ApplicationDependencies.getMessageNotifier().updateNotification(this, messageAndThreadId.second(), signal);
|
||||
}
|
||||
|
||||
@@ -572,7 +574,7 @@ public class WebRtcCallService extends Service implements CallManager.Observer,
|
||||
|
||||
try {
|
||||
callManager.hangup();
|
||||
DatabaseFactory.getSmsDatabase(this).insertMissedCall(activePeer.getId());
|
||||
DatabaseFactory.getSmsDatabase(this).insertMissedCall(activePeer.getId(), System.currentTimeMillis());
|
||||
terminate(activePeer);
|
||||
} catch (CallException e) {
|
||||
callFailure("hangup() failed: ", e);
|
||||
@@ -1166,7 +1168,7 @@ public class WebRtcCallService extends Service implements CallManager.Observer,
|
||||
|
||||
Log.i(TAG, "handleReceivedOfferExpired(): call_id: " + remotePeer.getCallId());
|
||||
|
||||
insertMissedCall(remotePeer, true);
|
||||
insertMissedCall(remotePeer, true, callStartTimestamp);
|
||||
|
||||
terminate(remotePeer);
|
||||
}
|
||||
@@ -1195,7 +1197,7 @@ public class WebRtcCallService extends Service implements CallManager.Observer,
|
||||
stopForeground(true);
|
||||
}
|
||||
|
||||
insertMissedCall(remotePeer, true);
|
||||
insertMissedCall(remotePeer, true, callStartTimestamp);
|
||||
|
||||
terminate(remotePeer);
|
||||
}
|
||||
@@ -1216,7 +1218,7 @@ public class WebRtcCallService extends Service implements CallManager.Observer,
|
||||
|
||||
boolean incomingBeforeAccept = remotePeer.getState() == CallState.ANSWERING || remotePeer.getState() == CallState.LOCAL_RINGING;
|
||||
if (incomingBeforeAccept) {
|
||||
insertMissedCall(remotePeer, true);
|
||||
insertMissedCall(remotePeer, true, callStartTimestamp);
|
||||
}
|
||||
|
||||
terminate(remotePeer);
|
||||
@@ -1303,7 +1305,7 @@ public class WebRtcCallService extends Service implements CallManager.Observer,
|
||||
|
||||
boolean incomingBeforeAccept = remotePeer.getState() == CallState.ANSWERING || remotePeer.getState() == CallState.LOCAL_RINGING;
|
||||
if (incomingBeforeAccept) {
|
||||
insertMissedCall(remotePeer, true);
|
||||
insertMissedCall(remotePeer, true, callStartTimestamp);
|
||||
}
|
||||
|
||||
terminate(remotePeer);
|
||||
@@ -1319,7 +1321,7 @@ public class WebRtcCallService extends Service implements CallManager.Observer,
|
||||
}
|
||||
|
||||
if (remotePeer.getState() == CallState.ANSWERING || remotePeer.getState() == CallState.LOCAL_RINGING) {
|
||||
insertMissedCall(remotePeer, true);
|
||||
insertMissedCall(remotePeer, true, callStartTimestamp);
|
||||
}
|
||||
|
||||
terminate(remotePeer);
|
||||
@@ -1383,7 +1385,7 @@ public class WebRtcCallService extends Service implements CallManager.Observer,
|
||||
camera.setEnabled(false);
|
||||
camera.dispose();
|
||||
}
|
||||
|
||||
|
||||
camera = new Camera(WebRtcCallService.this, WebRtcCallService.this, eglBase, localCameraState.getActiveDirection());
|
||||
localCameraState = camera.getCameraState();
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user