commit 1db194416ed37673c8d220265a514f3c8f084c84
Author: Leszek Koltunski <leszek@koltunski.pl>
Date:   Thu Apr 14 14:46:40 2022 +0200

    BandagedPlay: dialog

diff --git a/src/main/java/org/distorted/bandaged/BandagedPlayScreen.java b/src/main/java/org/distorted/bandaged/BandagedPlayScreen.java
index dbbc0ea9..a9d2792f 100644
--- a/src/main/java/org/distorted/bandaged/BandagedPlayScreen.java
+++ b/src/main/java/org/distorted/bandaged/BandagedPlayScreen.java
@@ -26,6 +26,7 @@ import android.content.SharedPreferences;
 import android.view.View;
 import android.widget.LinearLayout;
 
+import org.distorted.dialogs.RubikDialogBandagedSettings;
 import org.distorted.helpers.LockController;
 import org.distorted.helpers.MovesController;
 import org.distorted.helpers.TransparentImageButton;
@@ -41,9 +42,9 @@ public class BandagedPlayScreen
   public static final int ANIMATION_ON  = 0;
   public static final int ANIMATION_OFF = 1;
 
-  private static final int NUM_SCRAMBLES = 2;
+  private static final int NUM_SCRAMBLES = 30;
 
-  private TransparentImageButton mBackButton, mScrambleButton, mSolveButton;
+  private TransparentImageButton mBackButton, mScrambleButton, mSolveButton, mSettingsButton;
   private final LockController mLockController;
   private final MovesController mMovesController;
   private String mKey;
@@ -84,6 +85,25 @@ public class BandagedPlayScreen
       });
     }
 
+///////////////////////////////////////////////////////////////////////////////////////////////////
+
+  private void setupSettingsButton(final BandagedPlayActivity act)
+    {
+    int icon = BandagedPlayActivity.getDrawable(R.drawable.ui_small_settings,R.drawable.ui_medium_settings, R.drawable.ui_big_settings, R.drawable.ui_huge_settings);
+    LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,LinearLayout.LayoutParams.MATCH_PARENT);
+    mSettingsButton = new TransparentImageButton(act, icon, TransparentImageButton.GRAVITY_MIDDLE, params);
+
+    mSettingsButton.setOnClickListener( new View.OnClickListener()
+      {
+      @Override
+      public void onClick(View v)
+        {
+        RubikDialogBandagedSettings setDiag = new RubikDialogBandagedSettings();
+        setDiag.show(act.getSupportFragmentManager(), null);
+        }
+      });
+    }
+
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
   private void setupSolveButton(final BandagedPlayActivity act)
@@ -182,8 +202,9 @@ public class BandagedPlayScreen
     layoutLower.addView(layoutMid);
     layoutLower.addView(layoutRight);
 
-    setupScrambleButton(act);
     setupSolveButton(act);
+    setupSettingsButton(act);
+    setupScrambleButton(act);
 
     LinearLayout layoutUpper = act.findViewById(R.id.upperBar);
 
@@ -195,6 +216,7 @@ public class BandagedPlayScreen
     layoutRightU.setLayoutParams(paramsR);
 
     layoutLeftU.addView(mSolveButton);
+    layoutMidU.addView(mSettingsButton);
     layoutRightU.addView(mScrambleButton);
 
     layoutUpper.removeAllViews();
diff --git a/src/main/java/org/distorted/dialogs/RubikDialogBandagedSettings.java b/src/main/java/org/distorted/dialogs/RubikDialogBandagedSettings.java
new file mode 100644
index 00000000..6a2014eb
--- /dev/null
+++ b/src/main/java/org/distorted/dialogs/RubikDialogBandagedSettings.java
@@ -0,0 +1,100 @@
+///////////////////////////////////////////////////////////////////////////////////////////////////
+// Copyright 2019 Leszek Koltunski                                                               //
+//                                                                                               //
+// This file is part of Magic Cube.                                                              //
+//                                                                                               //
+// Magic Cube is free software: you can redistribute it and/or modify                            //
+// it under the terms of the GNU General Public License as published by                          //
+// the Free Software Foundation, either version 2 of the License, or                             //
+// (at your option) any later version.                                                           //
+//                                                                                               //
+// Magic Cube is distributed in the hope that it will be useful,                                 //
+// but WITHOUT ANY WARRANTY; without even the implied warranty of                                //
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the                                 //
+// GNU General Public License for more details.                                                  //
+//                                                                                               //
+// You should have received a copy of the GNU General Public License                             //
+// along with Magic Cube.  If not, see <http://www.gnu.org/licenses/>.                           //
+///////////////////////////////////////////////////////////////////////////////////////////////////
+
+package org.distorted.dialogs;
+
+import android.app.Dialog;
+import android.content.DialogInterface;
+import android.os.Bundle;
+import android.util.DisplayMetrics;
+import android.util.TypedValue;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.Window;
+import android.widget.Button;
+import android.widget.TextView;
+
+import androidx.annotation.NonNull;
+import androidx.appcompat.app.AlertDialog;
+import androidx.appcompat.app.AppCompatDialogFragment;
+import androidx.fragment.app.FragmentActivity;
+
+import org.distorted.main.R;
+import org.distorted.main.RubikActivity;
+
+///////////////////////////////////////////////////////////////////////////////////////////////////
+
+public class RubikDialogBandagedSettings extends AppCompatDialogFragment
+  {
+  @NonNull
+  @Override
+  public Dialog onCreateDialog(Bundle savedInstanceState)
+    {
+    FragmentActivity act = getActivity();
+    LayoutInflater inflater = act.getLayoutInflater();
+    AlertDialog.Builder builder = new AlertDialog.Builder(act);
+
+    DisplayMetrics displaymetrics = new DisplayMetrics();
+    act.getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
+    final float titleSize= displaymetrics.widthPixels * RubikActivity.MENU_BIG_TEXT_SIZE;
+    final float okSize   = displaymetrics.widthPixels * RubikActivity.DIALOG_BUTTON_SIZE;
+    final float textSize = displaymetrics.widthPixels * RubikActivity.MENU_SMALL_TEXT_SIZE;
+
+    TextView tv = (TextView) inflater.inflate(R.layout.dialog_title, null);
+    tv.setTextSize(TypedValue.COMPLEX_UNIT_PX, titleSize);
+    tv.setText(R.string.settings);
+    builder.setCustomTitle(tv);
+
+    builder.setCancelable(true);
+    builder.setPositiveButton( R.string.ok, new DialogInterface.OnClickListener()
+      {
+      @Override
+      public void onClick(DialogInterface dialog, int which)
+        {
+
+        }
+      });
+
+    final View view = inflater.inflate(R.layout.dialog_settings, null);
+
+
+    builder.setView(view);
+
+    Dialog dialog = builder.create();
+    dialog.setCanceledOnTouchOutside(false);
+    Window window = dialog.getWindow();
+
+    if( window!=null )
+      {
+      window.getDecorView().setSystemUiVisibility(RubikActivity.FLAGS);
+      }
+
+    dialog.setOnShowListener(new DialogInterface.OnShowListener()
+      {
+      @Override
+      public void onShow(DialogInterface dialog)
+        {
+        Button btnPositive = ((AlertDialog)dialog).getButton(Dialog.BUTTON_POSITIVE);
+        btnPositive.setTextSize(TypedValue.COMPLEX_UNIT_PX, okSize);
+        }
+      });
+
+    return dialog;
+    }
+  }
diff --git a/src/main/res/layout/dialog_settings.xml b/src/main/res/layout/dialog_settings.xml
new file mode 100644
index 00000000..89ae86fa
--- /dev/null
+++ b/src/main/res/layout/dialog_settings.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:gravity="center_horizontal"
+    android:orientation="vertical">
+
+    <LinearLayout
+        android:layout_width="fill_parent"
+        android:layout_height="fill_parent"
+        android:gravity="center|fill_horizontal"
+        android:layout_marginLeft="10dp"
+        android:layout_marginRight="10dp"
+        android:layout_marginTop="0dp"
+        android:background="@color/grey"
+        android:orientation="vertical">
+
+        <TextView
+            android:id="@+id/solved_time"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:gravity="center"
+            android:textSize="24sp"
+            android:layout_marginTop="10dp"
+            android:layout_marginLeft="10dp"
+            android:layout_marginRight="10dp"
+            android:layout_marginBottom="10dp"/>
+
+    </LinearLayout>
+</LinearLayout>
\ No newline at end of file
diff --git a/src/main/res/values-de/strings.xml b/src/main/res/values-de/strings.xml
index 3a7940f3..9b43a311 100755
--- a/src/main/res/values-de/strings.xml
+++ b/src/main/res/values-de/strings.xml
@@ -41,6 +41,7 @@
     <string name="save_object_really">Möchten Sie diesen Cube speichern?</string>
     <string name="delete_object">Löschen</string>
     <string name="delete_object_really">Möchten Sie diesen Cube löschen?</string>
+    <string name="settings">Einstellungen</string>
 
     <string name="scores">Highscores</string>
     <string name="patterns">Hübsche Muster</string>
diff --git a/src/main/res/values-es/strings.xml b/src/main/res/values-es/strings.xml
index 6649a3cd..03918b21 100755
--- a/src/main/res/values-es/strings.xml
+++ b/src/main/res/values-es/strings.xml
@@ -41,6 +41,7 @@
     <string name="save_object_really">¿Quieres guardar este Cubo?</string>
     <string name="delete_object">Borrar</string>
     <string name="delete_object_really">¿Quieres borrar este Cubo?</string>
+    <string name="settings">Ajustes</string>
 
     <string name="scores">Leaderboard</string>
     <string name="patterns">Patrones</string>
diff --git a/src/main/res/values-fr/strings.xml b/src/main/res/values-fr/strings.xml
index b05718c8..69c89edc 100755
--- a/src/main/res/values-fr/strings.xml
+++ b/src/main/res/values-fr/strings.xml
@@ -41,6 +41,7 @@
     <string name="save_object_really">Voulez-vous enregistrer ce Cube?</string>
     <string name="delete_object">Supprimer</string>
     <string name="delete_object_really">Voulez-vous supprimer ce Cube?</string>
+    <string name="settings">Réglages</string>
 
     <string name="scores">Meilleurs scores</string>
     <string name="patterns">Jolis motifs</string>
diff --git a/src/main/res/values-ja/strings.xml b/src/main/res/values-ja/strings.xml
index 649268d6..18e81e05 100755
--- a/src/main/res/values-ja/strings.xml
+++ b/src/main/res/values-ja/strings.xml
@@ -41,6 +41,7 @@
     <string name="save_object_really">このキューブを保存しますか?</string>
     <string name="delete_object">消す</string>
     <string name="delete_object_really">このキューブを削除しますか?</string>
+    <string name="settings">設定</string>
 
     <string name="scores">ハイスコア</string>
     <string name="patterns">プリティパターン</string>
diff --git a/src/main/res/values-ko/strings.xml b/src/main/res/values-ko/strings.xml
index 0a1080d5..d24710e8 100755
--- a/src/main/res/values-ko/strings.xml
+++ b/src/main/res/values-ko/strings.xml
@@ -41,6 +41,7 @@
     <string name="save_object_really">이 큐브를 저장하시겠습니까?</string>
     <string name="delete_object">삭제</string>
     <string name="delete_object_really">이 큐브를 삭제하시겠습니까?</string>
+    <string name="settings">설정</string>
 
     <string name="scores">고득점</string>
     <string name="patterns">예쁜 패턴</string>
diff --git a/src/main/res/values-pl/strings.xml b/src/main/res/values-pl/strings.xml
index 9e24e49a..f27ad4f7 100644
--- a/src/main/res/values-pl/strings.xml
+++ b/src/main/res/values-pl/strings.xml
@@ -41,6 +41,7 @@
     <string name="save_object_really">Chcesz zapisać tą kostkę?</string>
     <string name="delete_object">Usuń</string>
     <string name="delete_object_really">Chcesz usunąć tą kostkę?</string>
+    <string name="settings">Ustawienia</string>
 
     <string name="scores">Lista najlepszych</string>
     <string name="patterns">Piękne Wzory</string>
diff --git a/src/main/res/values-ru/strings.xml b/src/main/res/values-ru/strings.xml
index 3e819fee..118dd346 100755
--- a/src/main/res/values-ru/strings.xml
+++ b/src/main/res/values-ru/strings.xml
@@ -41,6 +41,7 @@
     <string name="save_object_really">Вы хотите сохранить этот куб?</string>
     <string name="delete_object">Удалить</string>
     <string name="delete_object_really">Вы хотите удалить этот куб?</string>
+    <string name="settings">Настройки</string>
 
     <string name="scores">Высокие баллы</string>
     <string name="patterns">Красивые узоры</string>
diff --git a/src/main/res/values-zh-rCN/strings.xml b/src/main/res/values-zh-rCN/strings.xml
index 22f63aa8..b84d2ddf 100644
--- a/src/main/res/values-zh-rCN/strings.xml
+++ b/src/main/res/values-zh-rCN/strings.xml
@@ -41,6 +41,7 @@
     <string name="save_object_really">你想保存这个多维数据集吗?</string>
     <string name="delete_object">删除</string>
     <string name="delete_object_really">你想删除这个立方体吗?</string>
+    <string name="settings">设置</string>
 
     <string name="scores">高分</string>
     <string name="patterns">模式</string>
diff --git a/src/main/res/values-zh-rTW/strings.xml b/src/main/res/values-zh-rTW/strings.xml
index 774e356f..e5cf82b0 100644
--- a/src/main/res/values-zh-rTW/strings.xml
+++ b/src/main/res/values-zh-rTW/strings.xml
@@ -41,6 +41,7 @@
     <string name="save_object_really">你想保存這個多維數據集嗎?</string>
     <string name="delete_object">刪除</string>
     <string name="delete_object_really">是否要刪除此多維數據集?</string>
+    <string name="settings">設置</string>
 
     <string name="scores">高分</string>
     <string name="patterns">模式</string>
diff --git a/src/main/res/values/strings.xml b/src/main/res/values/strings.xml
index 84c06ec9..5d2393d4 100644
--- a/src/main/res/values/strings.xml
+++ b/src/main/res/values/strings.xml
@@ -42,6 +42,7 @@
     <string name="save_object_really">Do you want to save this Cube?</string>
     <string name="delete_object">Delete</string>
     <string name="delete_object_really">Do you want to delete this Cube?</string>
+    <string name="settings">Settings</string>
 
     <string name="scores">High Scores</string>
     <string name="patterns">Pretty Patterns</string>
