lock call activity in portrait mode during audio call

This commit is contained in:
Daniel Gultsch 2023-04-03 13:38:22 +02:00
parent 9456ba6f56
commit d38c264e7d
No known key found for this signature in database
GPG key ID: F43D18AD2A0982C2

View file

@ -10,6 +10,7 @@ import android.app.PictureInPictureParams;
import android.content.ActivityNotFoundException; import android.content.ActivityNotFoundException;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.content.pm.ActivityInfo;
import android.content.pm.PackageManager; import android.content.pm.PackageManager;
import android.os.Build; import android.os.Build;
import android.os.Bundle; import android.os.Bundle;
@ -406,7 +407,7 @@ public class RtpSessionActivity extends XmppActivity
private void putScreenInCallMode(final Set<Media> media) { private void putScreenInCallMode(final Set<Media> media) {
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
if (!media.contains(Media.VIDEO)) { if (Media.audioOnly(media)) {
final JingleRtpConnection rtpConnection = final JingleRtpConnection rtpConnection =
rtpConnectionReference != null ? rtpConnectionReference.get() : null; rtpConnectionReference != null ? rtpConnectionReference.get() : null;
final AppRTCAudioManager audioManager = final AppRTCAudioManager audioManager =
@ -417,6 +418,15 @@ public class RtpSessionActivity extends XmppActivity
acquireProximityWakeLock(); acquireProximityWakeLock();
} }
} }
lockOrientation(media);
}
private void lockOrientation(final Set<Media> media) {
if (Media.audioOnly(media)) {
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
} else {
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED);
}
} }
@SuppressLint("WakelockTimeout") @SuppressLint("WakelockTimeout")
@ -1379,6 +1389,7 @@ public class RtpSessionActivity extends XmppActivity
final AbstractJingleConnection.Id id = requireRtpConnection().getId(); final AbstractJingleConnection.Id id = requireRtpConnection().getId();
final boolean verified = requireRtpConnection().isVerified(); final boolean verified = requireRtpConnection().isVerified();
final Set<Media> media = getMedia(); final Set<Media> media = getMedia();
lockOrientation(media);
final ContentAddition contentAddition = getPendingContentAddition(); final ContentAddition contentAddition = getPendingContentAddition();
final Contact contact = getWith(); final Contact contact = getWith();
if (account == id.account && id.with.equals(with) && id.sessionId.equals(sessionId)) { if (account == id.account && id.with.equals(with) && id.sessionId.equals(sessionId)) {