commit 2ceeb6b5325658b0e1c4570c04af2eae35bd9031
Author: Leszek Koltunski <leszek@koltunski.pl>
Date:   Fri Jan 20 00:54:34 2023 +0100

    Support RTL in Bandaged Creator Activity.

diff --git a/src/main/java/org/distorted/bandaged/BandagedCreatorActivity.java b/src/main/java/org/distorted/bandaged/BandagedCreatorActivity.java
index 2c13467a..9ebc61c0 100644
--- a/src/main/java/org/distorted/bandaged/BandagedCreatorActivity.java
+++ b/src/main/java/org/distorted/bandaged/BandagedCreatorActivity.java
@@ -9,10 +9,13 @@
 
 package org.distorted.bandaged;
 
+import static android.view.View.LAYOUT_DIRECTION_RTL;
+
 import java.io.InputStream;
 
 import android.content.Intent;
 import android.content.SharedPreferences;
+import android.content.res.Configuration;
 import android.graphics.Bitmap;
 import android.os.Build;
 import android.os.Bundle;
@@ -42,7 +45,6 @@ public class BandagedCreatorActivity extends AppCompatActivity
     private static final float RATIO_BUT   = 0.07f;
     static final float RATIO_SCROLL= 0.30f;
 
-    public static final float DIALOG_BUTTON_SIZE = 0.06f;
     public static final float SPINNER_TEXT_SIZE  = 0.03f;
 
     public static final int FLAGS =  View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
@@ -54,6 +56,7 @@ public class BandagedCreatorActivity extends AppCompatActivity
     private static int mScreenWidth, mScreenHeight;
     private int mCurrentApiVersion;
     private BandagedCreatorScreen mScreen;
+    private boolean mRTL;
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
@@ -70,6 +73,10 @@ public class BandagedCreatorActivity extends AppCompatActivity
       mScreenWidth =displaymetrics.widthPixels;
       mScreenHeight=displaymetrics.heightPixels;
 
+      final Configuration config = getResources().getConfiguration();
+      final int layoutDirection = config.getLayoutDirection();
+      mRTL = layoutDirection==LAYOUT_DIRECTION_RTL;
+
       hideNavigationBar();
       cutoutHack();
       computeHeights();
@@ -233,6 +240,13 @@ public class BandagedCreatorActivity extends AppCompatActivity
       renderer.changeObject(x,y,z);
       }
 
+///////////////////////////////////////////////////////////////////////////////////////////////////
+
+    public boolean isRTL()
+      {
+      return mRTL;
+      }
+
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
     public BandagedCreatorRenderer getRenderer()
diff --git a/src/main/java/org/distorted/bandaged/BandagedCreatorObjectView.java b/src/main/java/org/distorted/bandaged/BandagedCreatorObjectView.java
index d9da6cde..df2a40cc 100644
--- a/src/main/java/org/distorted/bandaged/BandagedCreatorObjectView.java
+++ b/src/main/java/org/distorted/bandaged/BandagedCreatorObjectView.java
@@ -42,7 +42,7 @@ public class BandagedCreatorObjectView
     int height   = act.getScreenHeightInPixels();
     int textSize = (int)(height*TEXT_SIZE);
 
-    LinearLayout.LayoutParams params = createPaneParams(height,leftmost);
+    LinearLayout.LayoutParams params = createPaneParams(height,leftmost,act.isRTL());
     mPane.setLayoutParams(params);
 
     LinearLayout bottom = mPane.findViewById(R.id.bandagedCreatorObjectLayout);
@@ -85,7 +85,7 @@ public class BandagedCreatorObjectView
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
-  static LinearLayout.LayoutParams createPaneParams(int height, boolean leftmost)
+  static LinearLayout.LayoutParams createPaneParams(int height, boolean leftmost, boolean rtl)
     {
     int margin = (int)(height*MARGIN);
     int length = (int)(height*BandagedCreatorActivity.RATIO_SCROLL*0.65f);
@@ -93,8 +93,17 @@ public class BandagedCreatorObjectView
     LinearLayout.LayoutParams params = new LinearLayout.LayoutParams( length, LinearLayout.LayoutParams.MATCH_PARENT);
     params.bottomMargin = margin;
     params.topMargin    = margin;
-    params.leftMargin   = leftmost ? margin : 0;
-    params.rightMargin  = margin;
+
+    if( !rtl )
+      {
+      params.leftMargin   = leftmost ? margin : 0;
+      params.rightMargin  = margin;
+      }
+    else
+      {
+      params.rightMargin  = leftmost ? margin : 0;
+      params.leftMargin   = margin;
+      }
 
     return params;
     }
diff --git a/src/main/java/org/distorted/bandaged/BandagedCreatorScreen.java b/src/main/java/org/distorted/bandaged/BandagedCreatorScreen.java
index 06f12c99..1b954b57 100644
--- a/src/main/java/org/distorted/bandaged/BandagedCreatorScreen.java
+++ b/src/main/java/org/distorted/bandaged/BandagedCreatorScreen.java
@@ -261,7 +261,7 @@ public class BandagedCreatorScreen implements AdapterView.OnItemSelectedListener
           BandagedCreatorObjectView v2 = mViews.get(v);
           LinearLayout p2 = v2.getPane();
           int height = act.getScreenHeightInPixels();
-          LinearLayout.LayoutParams params = BandagedCreatorObjectView.createPaneParams(height,true);
+          LinearLayout.LayoutParams params = BandagedCreatorObjectView.createPaneParams(height,true,act.isRTL());
           p2.setLayoutParams(params);
           }
 
