commit 7fe59aa5e82683354a4310eaf4839db0911e528f
Author: Leszek Koltunski <leszek@koltunski.pl>
Date:   Mon Jul 4 10:13:25 2022 +0200

    Correctly get the whole size fo the screen (along with thee top and bottom system bars) from the very beginning of the Activity.

diff --git a/src/main/java/org/distorted/bandaged/BandagedCreatorActivity.java b/src/main/java/org/distorted/bandaged/BandagedCreatorActivity.java
index e51ec32f..283a7efe 100644
--- a/src/main/java/org/distorted/bandaged/BandagedCreatorActivity.java
+++ b/src/main/java/org/distorted/bandaged/BandagedCreatorActivity.java
@@ -81,12 +81,10 @@ public class BandagedCreatorActivity extends AppCompatActivity
       mFirebaseAnalytics = FirebaseAnalytics.getInstance(this);
 
       DisplayMetrics displaymetrics = new DisplayMetrics();
-      getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
+      getWindowManager().getDefaultDisplay().getRealMetrics(displaymetrics);
       mScreenWidth =displaymetrics.widthPixels;
       mScreenHeight=displaymetrics.heightPixels;
-      mScreenHeight = (int)(1.07f*mScreenHeight); // add 7% for the upper bar
-                                                  // which is not yet hidden.
-                                                  // TODO: figure this out exactly.
+
       hideNavigationBar();
       cutoutHack();
       computeHeights();
@@ -101,7 +99,7 @@ public class BandagedCreatorActivity extends AppCompatActivity
       int butHeight    = (int)(mScreenHeight*RATIO_BUT);
       int viewHeight   = (int)(mScreenHeight*RATIO_SCROLL);
       int objectHeight = (int)(mScreenHeight*(1-RATIO_SCROLL+RATIO_BAR));
-      int padding      = (int)(mScreenHeight* RubikActivity.PADDING);
+      int padding      = (int)(mScreenHeight*RubikActivity.PADDING);
 
       LinearLayout botLayout = findViewById(R.id.lowerBar);
       ViewGroup.LayoutParams paramsL = botLayout.getLayoutParams();
diff --git a/src/main/java/org/distorted/bandaged/BandagedPlayActivity.java b/src/main/java/org/distorted/bandaged/BandagedPlayActivity.java
index ad39b65f..f664530a 100644
--- a/src/main/java/org/distorted/bandaged/BandagedPlayActivity.java
+++ b/src/main/java/org/distorted/bandaged/BandagedPlayActivity.java
@@ -83,12 +83,10 @@ public class BandagedPlayActivity extends AppCompatActivity
       mFirebaseAnalytics = FirebaseAnalytics.getInstance(this);
 
       DisplayMetrics displaymetrics = new DisplayMetrics();
-      getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
+      getWindowManager().getDefaultDisplay().getRealMetrics(displaymetrics);
       mScreenWidth =displaymetrics.widthPixels;
       mScreenHeight=displaymetrics.heightPixels;
-      mScreenHeight = (int)(1.07f*mScreenHeight); // add 7% for the upper bar
-                                                  // which is not yet hidden.
-                                                  // TODO: figure this out exactly.
+
       hideNavigationBar();
       cutoutHack();
       computeBarHeights();
@@ -99,8 +97,7 @@ public class BandagedPlayActivity extends AppCompatActivity
 
     private void computeBarHeights()
       {
-      float height = mScreenHeight;
-      int barHeight = (int)(height*RATIO_BAR);
+      int barHeight = (int)(mScreenHeight*RATIO_BAR);
       mHeightLowerBar = barHeight;
       mHeightUpperBar = barHeight;
 
diff --git a/src/main/java/org/distorted/config/ConfigActivity.java b/src/main/java/org/distorted/config/ConfigActivity.java
index 502adb3a..c5e56caa 100644
--- a/src/main/java/org/distorted/config/ConfigActivity.java
+++ b/src/main/java/org/distorted/config/ConfigActivity.java
@@ -79,12 +79,10 @@ public class ConfigActivity extends AppCompatActivity
       mFirebaseAnalytics = FirebaseAnalytics.getInstance(this);
 
       DisplayMetrics displaymetrics = new DisplayMetrics();
-      getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
+      getWindowManager().getDefaultDisplay().getRealMetrics(displaymetrics);
       mScreenWidth =displaymetrics.widthPixels;
       mScreenHeight=displaymetrics.heightPixels;
-      mScreenHeight = (int)(1.07f*mScreenHeight); // add 7% for the upper bar
-                                                  // which is not yet hidden.
-                                                  // TODO: figure this out exactly.
+
       hideNavigationBar();
       cutoutHack();
       computeBarHeights();
diff --git a/src/main/java/org/distorted/main/RubikActivity.java b/src/main/java/org/distorted/main/RubikActivity.java
index 5ab9193d..4d2f1f80 100644
--- a/src/main/java/org/distorted/main/RubikActivity.java
+++ b/src/main/java/org/distorted/main/RubikActivity.java
@@ -126,12 +126,10 @@ public class RubikActivity extends AppCompatActivity
       mIsChinese = localeIsChinese();
 
       DisplayMetrics displaymetrics = new DisplayMetrics();
-      getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
+      getWindowManager().getDefaultDisplay().getRealMetrics(displaymetrics);
       mScreenWidth =displaymetrics.widthPixels;
       mScreenHeight=displaymetrics.heightPixels;
-      mScreenHeight = (int)(1.07f*mScreenHeight); // add 7% for the upper bar
-                                                  // which is not yet hidden.
-                                                  // TODO: figure this out exactly.
+
       hideNavigationBar();
       cutoutHack();
       computeBarHeights();
@@ -142,8 +140,7 @@ public class RubikActivity extends AppCompatActivity
 
     private void computeBarHeights()
       {
-      float height = mScreenHeight;
-      int barHeight = (int)(height*RATIO_BAR);
+      int barHeight = (int)(mScreenHeight*RATIO_BAR);
       mHeightLowerBar = barHeight;
       mHeightUpperBar = barHeight;
 
@@ -421,14 +418,6 @@ public class RubikActivity extends AppCompatActivity
       errDiag.show(getSupportFragmentManager(), null);
       }
 
-///////////////////////////////////////////////////////////////////////////////////////////////////
-
-    void setScreenSize(int width, int height)
-      {
-      mScreenWidth = width;
-      mScreenHeight= height;
-      }
-
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 // PUBLIC API
 ///////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/src/main/java/org/distorted/main/RubikSurfaceView.java b/src/main/java/org/distorted/main/RubikSurfaceView.java
index d305a71a..7d5541fe 100644
--- a/src/main/java/org/distorted/main/RubikSurfaceView.java
+++ b/src/main/java/org/distorted/main/RubikSurfaceView.java
@@ -59,16 +59,6 @@ public class RubikSurfaceView extends GLSurfaceView
         TwistyObjectNode objectNode = mObjectController.getNode();
         mRenderer.getScreen().attach(objectNode);
         }
-
-      try
-        {
-        RubikActivity act = (RubikActivity)getContext();
-        act.setScreenSize(width,height);
-        }
-      catch( Exception ex )
-        {
-        android.util.Log.e("D", "Failed to set screen size!");
-        }
       }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/src/main/java/org/distorted/tutorials/TutorialActivity.java b/src/main/java/org/distorted/tutorials/TutorialActivity.java
index 636b8ed0..cd8fcf81 100644
--- a/src/main/java/org/distorted/tutorials/TutorialActivity.java
+++ b/src/main/java/org/distorted/tutorials/TutorialActivity.java
@@ -92,7 +92,7 @@ public class TutorialActivity extends AppCompatActivity
       mFirebaseAnalytics = FirebaseAnalytics.getInstance(this);
 
       DisplayMetrics displaymetrics = new DisplayMetrics();
-      getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
+      getWindowManager().getDefaultDisplay().getRealMetrics(displaymetrics);
       mScreenWidth =displaymetrics.widthPixels;
       mScreenHeight=displaymetrics.heightPixels;
 
