mirror of
https://github.com/oxen-io/session-android.git
synced 2025-06-09 07:48:34 +00:00
Fix ellapsed call timer restarting between activity restarts.
This commit is contained in:
parent
fa5729bac6
commit
e2ac55e9ac
@ -14,9 +14,7 @@ import org.thoughtcrime.securesms.events.WebRtcViewModel;
|
||||
import org.thoughtcrime.securesms.recipients.LiveRecipient;
|
||||
import org.thoughtcrime.securesms.recipients.Recipient;
|
||||
import org.thoughtcrime.securesms.ringrtc.CameraState;
|
||||
import org.thoughtcrime.securesms.service.WebRtcCallService;
|
||||
import org.thoughtcrime.securesms.util.SingleLiveEvent;
|
||||
import org.thoughtcrime.securesms.util.livedata.LiveDataPair;
|
||||
import org.thoughtcrime.securesms.util.livedata.LiveDataUtil;
|
||||
|
||||
public class WebRtcCallViewModel extends ViewModel {
|
||||
@ -134,11 +132,11 @@ public class WebRtcCallViewModel extends ViewModel {
|
||||
updateWebRtcControls(webRtcViewModel.getState(), webRtcViewModel.isRemoteVideoOffer());
|
||||
|
||||
if (webRtcViewModel.getState() == WebRtcViewModel.State.CALL_CONNECTED && callConnectedTime == -1) {
|
||||
callConnectedTime = System.currentTimeMillis();
|
||||
callConnectedTime = webRtcViewModel.getCallConnectedTime();
|
||||
startTimer();
|
||||
} else if (webRtcViewModel.getState() != WebRtcViewModel.State.CALL_CONNECTED) {
|
||||
callConnectedTime = -1;
|
||||
cancelTimer();
|
||||
callConnectedTime = -1;
|
||||
}
|
||||
|
||||
if (webRtcViewModel.getLocalCameraState().isEnabled()) {
|
||||
|
@ -46,6 +46,8 @@ public class WebRtcViewModel {
|
||||
private final SurfaceViewRenderer localRenderer;
|
||||
private final SurfaceViewRenderer remoteRenderer;
|
||||
|
||||
private final long callConnectedTime;
|
||||
|
||||
public WebRtcViewModel(@NonNull State state,
|
||||
@NonNull Recipient recipient,
|
||||
@NonNull CameraState localCameraState,
|
||||
@ -54,7 +56,8 @@ public class WebRtcViewModel {
|
||||
boolean remoteVideoEnabled,
|
||||
boolean isBluetoothAvailable,
|
||||
boolean isMicrophoneEnabled,
|
||||
boolean isRemoteVideoOffer)
|
||||
boolean isRemoteVideoOffer,
|
||||
long callConnectedTime)
|
||||
{
|
||||
this(state,
|
||||
recipient,
|
||||
@ -65,7 +68,8 @@ public class WebRtcViewModel {
|
||||
remoteVideoEnabled,
|
||||
isBluetoothAvailable,
|
||||
isMicrophoneEnabled,
|
||||
isRemoteVideoOffer);
|
||||
isRemoteVideoOffer,
|
||||
callConnectedTime);
|
||||
}
|
||||
|
||||
public WebRtcViewModel(@NonNull State state,
|
||||
@ -77,7 +81,8 @@ public class WebRtcViewModel {
|
||||
boolean remoteVideoEnabled,
|
||||
boolean isBluetoothAvailable,
|
||||
boolean isMicrophoneEnabled,
|
||||
boolean isRemoteVideoOffer)
|
||||
boolean isRemoteVideoOffer,
|
||||
long callConnectedTime)
|
||||
{
|
||||
this.state = state;
|
||||
this.recipient = recipient;
|
||||
@ -89,6 +94,7 @@ public class WebRtcViewModel {
|
||||
this.isBluetoothAvailable = isBluetoothAvailable;
|
||||
this.isMicrophoneEnabled = isMicrophoneEnabled;
|
||||
this.isRemoteVideoOffer = isRemoteVideoOffer;
|
||||
this.callConnectedTime = callConnectedTime;
|
||||
}
|
||||
|
||||
public @NonNull State getState() {
|
||||
@ -131,7 +137,18 @@ public class WebRtcViewModel {
|
||||
return remoteRenderer;
|
||||
}
|
||||
|
||||
public long getCallConnectedTime() {
|
||||
return callConnectedTime;
|
||||
}
|
||||
|
||||
public @NonNull String toString() {
|
||||
return "[State: " + state + ", recipient: " + recipient.getId().serialize() + ", identity: " + identityKey + ", remoteVideo: " + remoteVideoEnabled + ", localVideo: " + localCameraState.isEnabled() + ", isRemoteVideoOffer: " + isRemoteVideoOffer + "]";
|
||||
return "[State: " + state +
|
||||
", recipient: " + recipient.getId().serialize() +
|
||||
", identity: " + identityKey +
|
||||
", remoteVideo: " + remoteVideoEnabled +
|
||||
", localVideo: " + localCameraState.isEnabled() +
|
||||
", isRemoteVideoOffer: " + isRemoteVideoOffer +
|
||||
", callConnectedTime: " + callConnectedTime +
|
||||
"]";
|
||||
}
|
||||
}
|
||||
|
@ -167,6 +167,8 @@ public class WebRtcCallService extends Service implements CallManager.Observer,
|
||||
private boolean isRemoteVideoOffer = false;
|
||||
private boolean acceptWithVideo = false;
|
||||
|
||||
private long callConnectedTime = -1;
|
||||
|
||||
private SignalServiceMessageSender messageSender;
|
||||
private SignalServiceAccountManager accountManager;
|
||||
private SignalAudioManager audioManager;
|
||||
@ -925,6 +927,8 @@ public class WebRtcCallService extends Service implements CallManager.Observer,
|
||||
lockManager.updatePhoneState(getInCallPhoneState());
|
||||
}
|
||||
|
||||
callConnectedTime = System.currentTimeMillis();
|
||||
|
||||
sendMessage(WebRtcViewModel.State.CALL_CONNECTED, activePeer, localCameraState, remoteVideoEnabled, bluetoothAvailable, microphoneEnabled, isRemoteVideoOffer);
|
||||
|
||||
unregisterPowerButtonReceiver();
|
||||
@ -1277,7 +1281,8 @@ public class WebRtcCallService extends Service implements CallManager.Observer,
|
||||
remoteVideoEnabled,
|
||||
bluetoothAvailable,
|
||||
microphoneEnabled,
|
||||
isRemoteVideoOffer));
|
||||
isRemoteVideoOffer,
|
||||
callConnectedTime));
|
||||
}
|
||||
|
||||
private void sendMessage(@NonNull WebRtcViewModel.State state,
|
||||
@ -1298,7 +1303,8 @@ public class WebRtcCallService extends Service implements CallManager.Observer,
|
||||
remoteVideoEnabled,
|
||||
bluetoothAvailable,
|
||||
microphoneEnabled,
|
||||
isRemoteVideoOffer));
|
||||
isRemoteVideoOffer,
|
||||
callConnectedTime));
|
||||
}
|
||||
|
||||
private ListenableFutureTask<Boolean> sendMessage(@NonNull final RemotePeer remotePeer,
|
||||
|
Loading…
x
Reference in New Issue
Block a user