mirror of
https://github.com/nextcloud/talk-android
synced 2025-03-08 23:19:55 +00:00
Merge pull request #2613 from nextcloud/bugfix/2612/fixNpeWhenRingtoneSilent
fix crash when joining call while silent ringtone is set
This commit is contained in:
commit
b0a68e8193
@ -1469,20 +1469,20 @@ public class CallActivity extends CallBaseActivity {
|
|||||||
.takeWhile(observable -> isConnectionEstablished())
|
.takeWhile(observable -> isConnectionEstablished())
|
||||||
.doOnNext(value -> delayOnError.set(0))
|
.doOnNext(value -> delayOnError.set(0))
|
||||||
.retryWhen(errors -> errors
|
.retryWhen(errors -> errors
|
||||||
.flatMap(error -> {
|
.flatMap(error -> {
|
||||||
if (!isConnectionEstablished()) {
|
if (!isConnectionEstablished()) {
|
||||||
return Observable.error(error);
|
return Observable.error(error);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (delayOnError.get() == 0) {
|
if (delayOnError.get() == 0) {
|
||||||
delayOnError.set(1);
|
delayOnError.set(1);
|
||||||
} else if (delayOnError.get() < 16) {
|
} else if (delayOnError.get() < 16) {
|
||||||
delayOnError.set(delayOnError.get() * 2);
|
delayOnError.set(delayOnError.get() * 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
return Observable.timer(delayOnError.get(), TimeUnit.SECONDS);
|
return Observable.timer(delayOnError.get(), TimeUnit.SECONDS);
|
||||||
})
|
})
|
||||||
)
|
)
|
||||||
.subscribe(new Observer<SignalingOverall>() {
|
.subscribe(new Observer<SignalingOverall>() {
|
||||||
@Override
|
@Override
|
||||||
public void onSubscribe(@io.reactivex.annotations.NonNull Disposable d) {
|
public void onSubscribe(@io.reactivex.annotations.NonNull Disposable d) {
|
||||||
@ -1911,7 +1911,7 @@ public class CallActivity extends CallBaseActivity {
|
|||||||
Log.d(TAG, " newSession joined: " + sessionId);
|
Log.d(TAG, " newSession joined: " + sessionId);
|
||||||
getOrCreatePeerConnectionWrapperForSessionIdAndType(sessionId, VIDEO_STREAM_TYPE_VIDEO, false);
|
getOrCreatePeerConnectionWrapperForSessionIdAndType(sessionId, VIDEO_STREAM_TYPE_VIDEO, false);
|
||||||
|
|
||||||
String userId = userIdsBySessionId.get(sessionId);
|
String userId = userIdsBySessionId.get(sessionId);
|
||||||
|
|
||||||
runOnUiThread(() -> {
|
runOnUiThread(() -> {
|
||||||
setupVideoStreamForLayout(
|
setupVideoStreamForLayout(
|
||||||
@ -2621,22 +2621,24 @@ public class CallActivity extends CallBaseActivity {
|
|||||||
"/tr110_1_kap8_3_freiton1");
|
"/tr110_1_kap8_3_freiton1");
|
||||||
}
|
}
|
||||||
|
|
||||||
mediaPlayer = new MediaPlayer();
|
if (ringtoneUri != null) {
|
||||||
try {
|
mediaPlayer = new MediaPlayer();
|
||||||
mediaPlayer.setDataSource(this, ringtoneUri);
|
try {
|
||||||
mediaPlayer.setLooping(true);
|
mediaPlayer.setDataSource(this, ringtoneUri);
|
||||||
AudioAttributes audioAttributes = new AudioAttributes.Builder().setContentType(
|
mediaPlayer.setLooping(true);
|
||||||
AudioAttributes.CONTENT_TYPE_SONIFICATION)
|
AudioAttributes audioAttributes = new AudioAttributes.Builder().setContentType(
|
||||||
.setUsage(AudioAttributes.USAGE_VOICE_COMMUNICATION)
|
AudioAttributes.CONTENT_TYPE_SONIFICATION)
|
||||||
.build();
|
.setUsage(AudioAttributes.USAGE_VOICE_COMMUNICATION)
|
||||||
mediaPlayer.setAudioAttributes(audioAttributes);
|
.build();
|
||||||
|
mediaPlayer.setAudioAttributes(audioAttributes);
|
||||||
|
|
||||||
mediaPlayer.setOnPreparedListener(mp -> mediaPlayer.start());
|
mediaPlayer.setOnPreparedListener(mp -> mediaPlayer.start());
|
||||||
|
|
||||||
mediaPlayer.prepareAsync();
|
mediaPlayer.prepareAsync();
|
||||||
|
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
Log.e(TAG, "Failed to play sound");
|
Log.e(TAG, "Failed to play sound");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user