Set pip auto-enter based off live view-model value.

This commit is contained in:
Alex Hart
2024-09-27 10:27:08 -03:00
parent 588f107300
commit 5394aaa44c
2 changed files with 22 additions and 11 deletions

View File

@@ -370,7 +370,7 @@ public class WebRtcCallActivity extends BaseActivity implements SafetyNumberChan
private boolean enterPipModeIfPossible() {
if (isSystemPipEnabledAndAvailable()) {
if (viewModel.canEnterPipMode()) {
if (Boolean.TRUE.equals(viewModel.canEnterPipMode().getValue())) {
try {
enterPictureInPictureMode(pipBuilderParams.build());
} catch (Exception e) {
@@ -380,6 +380,7 @@ public class WebRtcCallActivity extends BaseActivity implements SafetyNumberChan
return true;
}
if (Build.VERSION.SDK_INT >= 31) {
pipBuilderParams.setAutoEnterEnabled(false);
}
@@ -573,15 +574,24 @@ public class WebRtcCallActivity extends BaseActivity implements SafetyNumberChan
pipBuilderParams = new PictureInPictureParams.Builder();
pipBuilderParams.setAspectRatio(aspectRatio);
if (Build.VERSION.SDK_INT >= 31) {
pipBuilderParams.setAutoEnterEnabled(true);
viewModel.canEnterPipMode().observe(this, canEnterPipMode -> {
pipBuilderParams.setAutoEnterEnabled(canEnterPipMode);
tryToSetPictureInPictureParams();
});
} else {
tryToSetPictureInPictureParams();
}
if (Build.VERSION.SDK_INT >= 26) {
try {
setPictureInPictureParams(pipBuilderParams.build());
} catch (Exception e) {
Log.w(TAG, "System lied about having PiP available.", e);
}
}
}
private void tryToSetPictureInPictureParams() {
if (Build.VERSION.SDK_INT >= 26) {
try {
setPictureInPictureParams(pipBuilderParams.build());
} catch (Exception e) {
Log.w(TAG, "System lied about having PiP available.", e);
}
}
}