Merge pull request #12033 from rlac/android_screensize_fixes

Android: Display measurement fixes
This commit is contained in:
Henrik Rydgård authored and GitHub committed 2019-05-13 13:34:05 +02:00
commit 02ff1fa1e9
1 file changed
+14 -2
@@ -457,7 +457,12 @@ public abstract class NativeActivity extends Activity implements SurfaceHolder.C
DisplayMetrics metrics = new DisplayMetrics();
if (useImmersive() && Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
display.getRealMetrics(metrics);
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.N || !isInMultiWindowMode()) {
display.getRealMetrics(metrics);
} else {
// multi-window mode
display.getMetrics(metrics);
}
} else {
display.getMetrics(metrics);
}
@@ -568,7 +573,6 @@ public abstract class NativeActivity extends Activity implements SurfaceHolder.C
}
Log.d(TAG, "Surface created. pixelWidth=" + pixelWidth + ", pixelHeight=" + pixelHeight + " holder: " + holder.toString() + " or: " + requestedOr);
NativeApp.setDisplayParameters(pixelWidth, pixelHeight, (int) densityDpi, refreshRate);
getDesiredBackbufferSize(desiredSize);
// Note that desiredSize might be 0,0 here - but that's fine when calling setFixedSize! It means auto.
@@ -788,6 +792,14 @@ public abstract class NativeActivity extends Activity implements SurfaceHolder.C
}
}
@Override
public void onMultiWindowModeChanged(boolean isInMultiWindowMode, Configuration newConfig) {
// onConfigurationChanged not called on multi-window change
Log.i(TAG, "onMultiWindowModeChanged: isInMultiWindowMode = " + isInMultiWindowMode);
super.onMultiWindowModeChanged(isInMultiWindowMode, newConfig);
updateDisplayMeasurements();
}
// keep this static so we can call this even if we don't
// instantiate NativeAudioPlayer
public static void gainAudioFocus(AudioManager audioManager, AudioFocusChangeListener focusChangeListener) {