commit 8c4e4bf47dc184503181f5addb751dd9a586b594
Author: leszek <leszek@koltunski.pl>
Date:   Thu May 9 16:33:50 2024 +0200

    progress with colors in styles

diff --git a/src/main/java/org/distorted/bandaged/BandagedRenderer.java b/src/main/java/org/distorted/bandaged/BandagedRenderer.java
index 5b6335d9..4e49756e 100644
--- a/src/main/java/org/distorted/bandaged/BandagedRenderer.java
+++ b/src/main/java/org/distorted/bandaged/BandagedRenderer.java
@@ -51,7 +51,6 @@ import org.json.JSONException;
 
 public class BandagedRenderer implements GLSurfaceView.Renderer, DistortedLibrary.LibraryUser
 {
-   public static final float BRIGHTNESS = 0.333f;
    private static final int RESET_DURATION = 1000;
    private static final float MAX_SIZE_CHANGE = 1.70f;
    private static final float MIN_SIZE_CHANGE = 0.50f;
@@ -97,7 +96,10 @@ public class BandagedRenderer implements GLSurfaceView.Renderer, DistortedLibrar
      mSaveIcon = -1;
 
      mScreen = new DistortedScreen();
-     mScreen.glClearColor(BRIGHTNESS, BRIGHTNESS, BRIGHTNESS, 1.0f);
+
+     BandagedActivity act = (BandagedActivity)v.getContext();
+     act.setUpBackgroundColor(mScreen);
+
      mScale = new Static3D(1,1,1);
      mObject= LocallyBandagedList.create(ordinal,mScreen);
 
@@ -366,7 +368,8 @@ public class BandagedRenderer implements GLSurfaceView.Renderer, DistortedLibrar
      if( mFramebuffer==null )
        {
        mFramebuffer = new DistortedFramebuffer(FBO_WIDTH,FBO_HEIGHT,1, InternalOutputSurface.DEPTH_NO_STENCIL);
-       mFramebuffer.glClearColor(BRIGHTNESS, BRIGHTNESS, BRIGHTNESS, 1.0f);
+       BandagedActivity bact = (BandagedActivity)act;
+       bact.setUpBackgroundColor(mFramebuffer);
        }
 
      mFramebuffer.setProjection( mObject.computeProjectionAngle() ,0.1f);
diff --git a/src/main/java/org/distorted/config/ConfigRenderer.java b/src/main/java/org/distorted/config/ConfigRenderer.java
index fb488271..71a739a2 100644
--- a/src/main/java/org/distorted/config/ConfigRenderer.java
+++ b/src/main/java/org/distorted/config/ConfigRenderer.java
@@ -51,8 +51,6 @@ public class ConfigRenderer implements GLSurfaceView.Renderer, DistortedLibrary.
 
    ConfigRenderer(ConfigSurfaceView v)
      {
-     final float BRIGHTNESS = 0.333f;
-
      mResettingObject = false;
      mEffectApplied   = false;
      mAngle = new Static1D(0);
@@ -62,7 +60,9 @@ public class ConfigRenderer implements GLSurfaceView.Renderer, DistortedLibrary.
 
      mResources = v.getResources();
      mScreen = new DistortedScreen();
-     mScreen.glClearColor(BRIGHTNESS, BRIGHTNESS, BRIGHTNESS, 1.0f);
+
+     ConfigActivity act = (ConfigActivity)v.getContext();
+     act.setUpBackgroundColor(mScreen);
      }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/src/main/java/org/distorted/dialogs/RubikDialogTutorial.java b/src/main/java/org/distorted/dialogs/RubikDialogTutorial.java
index 7bb29a93..8e904ae5 100644
--- a/src/main/java/org/distorted/dialogs/RubikDialogTutorial.java
+++ b/src/main/java/org/distorted/dialogs/RubikDialogTutorial.java
@@ -108,8 +108,11 @@ public class RubikDialogTutorial extends RubikDialogAbstract
 
       LinearLayout layout = view.findViewById(R.id.tutLayout);
 
-      int colorB = getResources().getColor(R.color.lightGrey);
-      int colorT = getResources().getColor(R.color.white);
+      TutorialActivity mact = (TutorialActivity)act;
+      int backgroundC = mact.getVeryDarkColor();
+
+      int colorB = res.getColor(backgroundC);
+      int colorT = res.getColor(R.color.white);
 
       int numTuts = tutorials.length;
 
diff --git a/src/main/java/org/distorted/helpers/BaseActivity.java b/src/main/java/org/distorted/helpers/BaseActivity.java
index cc5c1e36..167f9573 100644
--- a/src/main/java/org/distorted/helpers/BaseActivity.java
+++ b/src/main/java/org/distorted/helpers/BaseActivity.java
@@ -22,6 +22,7 @@ import android.widget.LinearLayout;
 import androidx.appcompat.app.AppCompatActivity;
 import androidx.preference.PreferenceManager;
 
+import org.distorted.library.main.DistortedFramebuffer;
 import org.distorted.main.R;
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
@@ -44,7 +45,7 @@ public class BaseActivity extends AppCompatActivity
     protected int mScreenWidth, mScreenHeight;
     protected int mHeightLowerBar, mHeightUpperBar;
     protected float mDensity;
-    protected int mDarkC, mNormalC, mMediumC, mLightC;
+    protected int mVeryDarkC, mDarkC, mNormalC, mMediumC, mLightC, mPassedC;
     protected SharedPreferences mPreferences;
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
@@ -60,28 +61,85 @@ public class BaseActivity extends AppCompatActivity
       switch(mCurrentTheme)
         {
         case THEME_WHITE : setTheme(R.style.WhiteTheme);
-                           mDarkC   = R.color.darkWhite;
-                           mNormalC = R.color.normalWhite;
-                           mMediumC = R.color.mediumWhite;
-                           mLightC  = R.color.lightWhite;
+                           mVeryDarkC= R.color.veryDarkWhite;
+                           mDarkC    = R.color.darkWhite;
+                           mNormalC  = R.color.normalWhite;
+                           mMediumC  = R.color.mediumWhite;
+                           mLightC   = R.color.lightWhite;
+                           mPassedC  = R.color.passedWhite;
                            break;
         case THEME_GREEN : setTheme(R.style.GreenTheme);
-                           mDarkC   = R.color.darkGreen;
-                           mNormalC = R.color.normalGreen;
-                           mMediumC = R.color.mediumGreen;
-                           mLightC  = R.color.lightGreen;
+                           mVeryDarkC= R.color.veryDarkGreen;
+                           mDarkC    = R.color.darkGreen;
+                           mNormalC  = R.color.normalGreen;
+                           mMediumC  = R.color.mediumGreen;
+                           mLightC   = R.color.lightGreen;
+                           mPassedC  = R.color.passedGreen;
                            break;
         default          : setTheme(R.style.GreyTheme);
-                           mDarkC   = R.color.darkGrey;
-                           mNormalC = R.color.normalGrey;
-                           mMediumC = R.color.mediumGrey;
-                           mLightC  = R.color.lightGrey;
+                           mVeryDarkC= R.color.veryDarkGrey;
+                           mDarkC    = R.color.darkGrey;
+                           mNormalC  = R.color.normalGrey;
+                           mMediumC  = R.color.mediumGrey;
+                           mLightC   = R.color.lightGrey;
+                           mPassedC  = R.color.passedGrey;
                            break;
         }
 
       super.onCreate(savedState);
       }
 
+///////////////////////////////////////////////////////////////////////////////////////////////////
+
+    public int getVeryDarkColor()
+      {
+      return mVeryDarkC;
+      }
+
+///////////////////////////////////////////////////////////////////////////////////////////////////
+
+    public int getDarkColor()
+      {
+      return mDarkC;
+      }
+
+///////////////////////////////////////////////////////////////////////////////////////////////////
+
+    public int getNormalColor()
+      {
+      return mNormalC;
+      }
+
+///////////////////////////////////////////////////////////////////////////////////////////////////
+
+    public int getMediumColor()
+      {
+      return mMediumC;
+      }
+
+///////////////////////////////////////////////////////////////////////////////////////////////////
+
+    public int getLightColor()
+      {
+      return mLightC;
+      }
+
+///////////////////////////////////////////////////////////////////////////////////////////////////
+
+    public void setUpBackgroundColor(DistortedFramebuffer df)
+      {
+      int color = getResources().getColor(mLightC);
+      int r = (color>>16) & 0xff;
+      int g = (color>> 8) & 0xff;
+      int b = (color    ) & 0xff;
+
+      float rC = (float)r/255;
+      float gC = (float)g/255;
+      float bC = (float)b/255;
+
+      df.glClearColor(rC, gC, bC, 1.0f);
+      }
+
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
     public void changeThemeTo(int theme)
diff --git a/src/main/java/org/distorted/info/InfoRenderer.java b/src/main/java/org/distorted/info/InfoRenderer.java
index 706504c8..e6367b7f 100644
--- a/src/main/java/org/distorted/info/InfoRenderer.java
+++ b/src/main/java/org/distorted/info/InfoRenderer.java
@@ -37,12 +37,12 @@ public class InfoRenderer implements GLSurfaceView.Renderer, DistortedLibrary.Li
 
    InfoRenderer(InfoSurfaceView v)
      {
-     final float BRIGHTNESS = 0.333f;
-
      mView = v;
      mResources = v.getResources();
      mScreen = new DistortedScreen();
-     mScreen.glClearColor(BRIGHTNESS, BRIGHTNESS, BRIGHTNESS, 1.0f);
+
+     InfoActivity act = (InfoActivity)v.getContext();
+     act.setUpBackgroundColor(mScreen);
      }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/src/main/java/org/distorted/main/MainActivity.java b/src/main/java/org/distorted/main/MainActivity.java
index 4459bbc6..4eef2c94 100644
--- a/src/main/java/org/distorted/main/MainActivity.java
+++ b/src/main/java/org/distorted/main/MainActivity.java
@@ -121,7 +121,7 @@ public class MainActivity extends BaseActivity implements RubikNetwork.Updatee,
       {
       super.onConfigurationChanged(conf);
       getWindowWidth(conf);
-      if( mGrid!=null ) mGrid.updateGrid(this,mScreenWidth,mDarkC);
+      if( mGrid!=null ) mGrid.updateGrid(this,mScreenWidth,mDarkC,mPassedC);
       }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
@@ -144,7 +144,7 @@ public class MainActivity extends BaseActivity implements RubikNetwork.Updatee,
       restorePreferences(mJustStarted);
 
       mGrid = new MainScrollGrid();
-      mGrid.createGrid(this,mScreenWidth,mSortMode,mDarkC);
+      mGrid.createGrid(this,mScreenWidth,mSortMode,mDarkC,mPassedC);
 
       RubikNetwork network = RubikNetwork.getInstance();
       network.signUpForUpdates(this);
@@ -419,7 +419,7 @@ public class MainActivity extends BaseActivity implements RubikNetwork.Updatee,
       {
       mNumUpdates--;
       updateBubble(mNumUpdates);
-      mGrid.updateGrid(this,mScreenWidth,mDarkC);
+      mGrid.updateGrid(this,mScreenWidth,mDarkC,mPassedC);
       }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
@@ -434,7 +434,7 @@ public class MainActivity extends BaseActivity implements RubikNetwork.Updatee,
     public void sortObjectsBy(int sortMode)
       {
       mSortMode = sortMode;
-      mGrid.createGrid(this,mScreenWidth,mSortMode,mDarkC);
+      mGrid.createGrid(this,mScreenWidth,mSortMode,mDarkC,mPassedC);
       }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/src/main/java/org/distorted/main/MainObjectPopup.java b/src/main/java/org/distorted/main/MainObjectPopup.java
index a4177abc..d01cb537 100644
--- a/src/main/java/org/distorted/main/MainObjectPopup.java
+++ b/src/main/java/org/distorted/main/MainObjectPopup.java
@@ -44,7 +44,7 @@ public class MainObjectPopup
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
-  MainObjectPopup(MainActivity act, int ordinal, int width, int height)
+  MainObjectPopup(MainActivity act, int ordinal, int width, int height, int darkC, int passedC)
     {
     LayoutInflater layoutInflater = (LayoutInflater)act.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
     final View layout = layoutInflater.inflate(R.layout.object_popup, null);
@@ -176,17 +176,17 @@ public class MainObjectPopup
     TextView levels = layout.findViewById(R.id.objectLevels);
     levels.setTextSize(TypedValue.COMPLEX_UNIT_PX, mMenuTextSize);
 
-    setupLevelButtons(act,object,layout,width,padding,marginH);
+    setupLevelButtons(act,object,layout,width,padding,marginH,darkC,passedC);
     }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
-  private void setupLevelButtons(MainActivity act, RubikObject object, View layout, int width,int padding, int margin)
+  private void setupLevelButtons(MainActivity act, RubikObject object, View layout, int width,int padding, int margin, int darkC, int passedC)
     {
     RubikScores scores = RubikScores.getInstance();
     Resources res = act.getResources();
-    ColorStateList colorG = ColorStateList.valueOf(res.getColor(R.color.normalGreen));
-    ColorStateList colorD = ColorStateList.valueOf(res.getColor(R.color.darkGrey));
+    ColorStateList colorG = ColorStateList.valueOf(res.getColor(passedC));
+    ColorStateList colorD = ColorStateList.valueOf(res.getColor(darkC));
 
     int layoutWidth = (int)(width*MENU_WIDTH);
     int levelHeight = (int)(width*BUTTON_HEIGHT);
diff --git a/src/main/java/org/distorted/main/MainScrollGrid.java b/src/main/java/org/distorted/main/MainScrollGrid.java
index 9ce9bd3b..c3260ce0 100644
--- a/src/main/java/org/distorted/main/MainScrollGrid.java
+++ b/src/main/java/org/distorted/main/MainScrollGrid.java
@@ -31,7 +31,7 @@ public class MainScrollGrid
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
-  void createGrid(final MainActivity act, int windowWidth, int sortMode, int color)
+  void createGrid(final MainActivity act, int windowWidth, int sortMode, int darkC, int passedC)
     {
     if( mCreator==null ) mCreator = new ObjectGridCreator(windowWidth);
 
@@ -41,7 +41,7 @@ public class MainScrollGrid
     ScrollView scrollView = act.findViewById(R.id.objectScroll);
     scrollView.removeAllViews();
 
-    mCreator.createObjectGrid(act,scrollView,sortMode,color);
+    mCreator.createObjectGrid(act,scrollView,sortMode,darkC);
 
     DisplayMetrics displaymetrics = new DisplayMetrics();
     act.getWindowManager().getDefaultDisplay().getRealMetrics(displaymetrics);
@@ -61,7 +61,7 @@ public class MainScrollGrid
           act.setCurrentObject(ordinal);
           int w = displaymetrics.widthPixels;
           int h = displaymetrics.heightPixels;
-          MainObjectPopup popup = new MainObjectPopup(act,ordinal,w,h);
+          MainObjectPopup popup = new MainObjectPopup(act,ordinal,w,h,darkC,passedC);
           popup.show(v);
           }
         });
@@ -70,7 +70,7 @@ public class MainScrollGrid
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
-  void updateGrid(final MainActivity act, int scrW, int color)
+  void updateGrid(final MainActivity act, int scrW, int darkC, int passedC)
     {
     act.runOnUiThread(new Runnable()
       {
@@ -78,7 +78,7 @@ public class MainScrollGrid
       public void run()
         {
         if( mSortMode<0 ) mSortMode = MainSettingsPopup.SORT_DEFAULT;
-        createGrid(act,scrW,mSortMode,color);
+        createGrid(act,scrW,mSortMode,darkC,passedC);
         }
       });
     }
diff --git a/src/main/java/org/distorted/patternui/PatternRenderer.java b/src/main/java/org/distorted/patternui/PatternRenderer.java
index 1685fef0..64902ef4 100644
--- a/src/main/java/org/distorted/patternui/PatternRenderer.java
+++ b/src/main/java/org/distorted/patternui/PatternRenderer.java
@@ -35,8 +35,6 @@ import javax.microedition.khronos.opengles.GL10;
 
 public class PatternRenderer implements GLSurfaceView.Renderer, DistortedLibrary.LibraryUser
 {
-   public static final float BRIGHTNESS = 0.30f;
-
    private final PatternSurfaceView mView;
    private final Resources mResources;
    private final DistortedScreen mScreen;
@@ -53,7 +51,10 @@ public class PatternRenderer implements GLSurfaceView.Renderer, DistortedLibrary
      mErrorShown = false;
      mControl = v.getObjectControl();
      mScreen = new DistortedScreen();
-     mScreen.glClearColor(BRIGHTNESS, BRIGHTNESS, BRIGHTNESS, 1.0f);
+
+     PatternActivity act = (PatternActivity)v.getContext();
+     act.setUpBackgroundColor(mScreen);
+
      mScreen.enableDepthStencil(InternalOutputSurface.DEPTH_NO_STENCIL);
      }
 
diff --git a/src/main/java/org/distorted/playui/PlayRenderer.java b/src/main/java/org/distorted/playui/PlayRenderer.java
index ed1064f5..5cbedd5a 100644
--- a/src/main/java/org/distorted/playui/PlayRenderer.java
+++ b/src/main/java/org/distorted/playui/PlayRenderer.java
@@ -38,12 +38,12 @@ public class PlayRenderer implements GLSurfaceView.Renderer, DistortedLibrary.Li
 
    PlayRenderer(PlayView v)
      {
-     final float BRIGHTNESS = 0.333f;
-
      mView = v;
      mResources = v.getResources();
      mScreen = new DistortedScreen();
-     mScreen.glClearColor(BRIGHTNESS, BRIGHTNESS, BRIGHTNESS, 1.0f);
+
+     PlayActivity act = (PlayActivity)v.getContext();
+     act.setUpBackgroundColor(mScreen);
      }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/src/main/java/org/distorted/solverui/SolverRenderer.java b/src/main/java/org/distorted/solverui/SolverRenderer.java
index 8183bf7d..82606acd 100644
--- a/src/main/java/org/distorted/solverui/SolverRenderer.java
+++ b/src/main/java/org/distorted/solverui/SolverRenderer.java
@@ -35,8 +35,6 @@ import javax.microedition.khronos.opengles.GL10;
 
 public class SolverRenderer implements GLSurfaceView.Renderer, DistortedLibrary.LibraryUser
 {
-   public static final float BRIGHTNESS = 0.30f;
-
    private final SolverSurfaceView mView;
    private final Resources mResources;
    private final DistortedScreen mScreen;
@@ -53,7 +51,10 @@ public class SolverRenderer implements GLSurfaceView.Renderer, DistortedLibrary.
      mErrorShown = false;
      mControl = v.getObjectControl();
      mScreen = new DistortedScreen();
-     mScreen.glClearColor(BRIGHTNESS, BRIGHTNESS, BRIGHTNESS, 1.0f);
+
+     SolverActivity act = (SolverActivity)v.getContext();
+     act.setUpBackgroundColor(mScreen);
+
      mScreen.enableDepthStencil(InternalOutputSurface.DEPTH_NO_STENCIL);
      }
 
diff --git a/src/main/java/org/distorted/tutorials/TutorialRenderer.java b/src/main/java/org/distorted/tutorials/TutorialRenderer.java
index 1facc8aa..96de585e 100644
--- a/src/main/java/org/distorted/tutorials/TutorialRenderer.java
+++ b/src/main/java/org/distorted/tutorials/TutorialRenderer.java
@@ -12,9 +12,6 @@ package org.distorted.tutorials;
 import javax.microedition.khronos.egl.EGLConfig;
 import javax.microedition.khronos.opengles.GL10;
 
-import android.app.ActivityManager;
-import android.content.Context;
-import android.content.pm.ConfigurationInfo;
 import android.content.res.Resources;
 import android.opengl.GLSurfaceView;
 
@@ -42,12 +39,12 @@ public class TutorialRenderer implements GLSurfaceView.Renderer, DistortedLibrar
 
    TutorialRenderer(TutorialSurfaceView v)
      {
-     final float BRIGHTNESS = 0.30f;
-
      mView = v;
      mResources = v.getResources();
      mScreen = new DistortedScreen();
-     mScreen.glClearColor(BRIGHTNESS, BRIGHTNESS, BRIGHTNESS, 1.0f);
+
+     TutorialActivity act = (TutorialActivity)v.getContext();
+     act.setUpBackgroundColor(mScreen);
      }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/src/main/res/drawable/black_progress.xml b/src/main/res/drawable/black_progress.xml
deleted file mode 100644
index 764217ce..00000000
--- a/src/main/res/drawable/black_progress.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
-    <item android:id="@android:id/background">
-        <shape>
-            <solid android:color="@android:color/white" />
-        </shape>
-    </item>
-
-    <item android:id="@android:id/progress">
-        <clip>
-            <shape>
-                <solid android:color="@android:color/black" />
-            </shape>
-        </clip>
-    </item>
-
-</layer-list>
-
diff --git a/src/main/res/drawable/progress_bar.xml b/src/main/res/drawable/progress_bar.xml
new file mode 100644
index 00000000..278e805f
--- /dev/null
+++ b/src/main/res/drawable/progress_bar.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="utf-8"?>
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
+    <item android:id="@android:id/background">
+        <shape>
+            <solid android:color="@color/white" />
+        </shape>
+    </item>
+
+    <item android:id="@android:id/progress">
+        <clip>
+            <shape>
+                <solid android:color="?veryDarkC" />
+            </shape>
+        </clip>
+    </item>
+
+</layer-list>
+
diff --git a/src/main/res/layout/bandaged.xml b/src/main/res/layout/bandaged.xml
index de4b5405..515166d3 100644
--- a/src/main/res/layout/bandaged.xml
+++ b/src/main/res/layout/bandaged.xml
@@ -16,13 +16,13 @@
             android:id="@+id/bandagedCreatorScrollView"
             android:layout_width="match_parent"
             android:layout_height="match_parent"
-            android:background="@color/black">
+            android:background="?veryDarkC">
 
             <LinearLayout
                android:id="@+id/bandagedCreatorView"
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
-               android:background="@color/black"
+               android:background="?veryDarkC"
                android:orientation="horizontal"/>
         </HorizontalScrollView>
     </LinearLayout>
diff --git a/src/main/res/layout/dialog_creators_pane.xml b/src/main/res/layout/dialog_creators_pane.xml
index e5638189..d4f73b07 100644
--- a/src/main/res/layout/dialog_creators_pane.xml
+++ b/src/main/res/layout/dialog_creators_pane.xml
@@ -43,7 +43,7 @@
              android:layout_height="wrap_content"
              android:layout_gravity="bottom"
              android:gravity="center"
-             android:backgroundTint="@color/black"
+             android:backgroundTint="?veryDarkC"
              android:insetTop="0dp"
              android:insetBottom="0dp"
              android:text="@string/use_solver"/>
diff --git a/src/main/res/layout/dialog_pattern_single.xml b/src/main/res/layout/dialog_pattern_single.xml
index 2d812f71..a00f5810 100644
--- a/src/main/res/layout/dialog_pattern_single.xml
+++ b/src/main/res/layout/dialog_pattern_single.xml
@@ -5,7 +5,7 @@
     android:layout_height="fill_parent"
     android:gravity="center"
     android:orientation="horizontal"
-    android:background="@android:color/transparent">
+    android:background="?mediumC">
 
     <ExpandableListView
         android:id="@+id/patternListView"
diff --git a/src/main/res/layout/dialog_scores_scramble_row.xml b/src/main/res/layout/dialog_scores_scramble_row.xml
index 456ad2c8..17fa8466 100644
--- a/src/main/res/layout/dialog_scores_scramble_row.xml
+++ b/src/main/res/layout/dialog_scores_scramble_row.xml
@@ -15,7 +15,7 @@
         android:paddingTop="3dp"
         android:layout_weight="0.17"
         android:gravity="start"
-        android:background="@color/black"/>
+        android:background="?veryDarkC"/>
 
     <TextView
         android:id="@+id/scoresScrambleRowName"
@@ -25,7 +25,7 @@
         android:textSize="20sp"
         android:maxLines="1"
         android:gravity="start|center_vertical"
-        android:background="@color/black"
+        android:background="?veryDarkC"
         android:paddingStart="5dp"
         />
 
@@ -37,7 +37,7 @@
         android:textSize="20sp"
         android:maxLines="1"
         android:gravity="end|center_vertical"
-        android:background="@color/black"
+        android:background="?veryDarkC"
         android:paddingEnd="5dp"
         />
 </LinearLayout>
diff --git a/src/main/res/layout/dialog_scrollable_panes.xml b/src/main/res/layout/dialog_scrollable_panes.xml
index 060e07d6..bec5f042 100644
--- a/src/main/res/layout/dialog_scrollable_panes.xml
+++ b/src/main/res/layout/dialog_scrollable_panes.xml
@@ -11,7 +11,7 @@
         android:id="@+id/dialog_scrollable_main_layout"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
-        android:background="@color/black"
+        android:background="?veryDarkC"
         android:orientation="vertical">
 
         <TextView
diff --git a/src/main/res/layout/dialog_set_name.xml b/src/main/res/layout/dialog_set_name.xml
index cff5b613..d1ac3b5f 100644
--- a/src/main/res/layout/dialog_set_name.xml
+++ b/src/main/res/layout/dialog_set_name.xml
@@ -37,7 +37,7 @@
             android:layout_marginRight="50dp"
             android:layout_marginBottom="10dp"
             android:textSize="24sp"
-            android:textColor="@color/black"
+            android:textColor="?veryDarkC"
             android:background="@color/white"/>
 
     </LinearLayout>
diff --git a/src/main/res/layout/dialog_solver_error.xml b/src/main/res/layout/dialog_solver_error.xml
index f95b1c61..cc81e00b 100644
--- a/src/main/res/layout/dialog_solver_error.xml
+++ b/src/main/res/layout/dialog_solver_error.xml
@@ -3,6 +3,7 @@
     android:layout_width="match_parent"
     android:layout_height="match_parent"
     android:gravity="center_horizontal"
+    android:background="?normalC"
     android:orientation="vertical">
 
     <LinearLayout
diff --git a/src/main/res/layout/dialog_solvers_pane.xml b/src/main/res/layout/dialog_solvers_pane.xml
index 12ba1041..5492ca1a 100644
--- a/src/main/res/layout/dialog_solvers_pane.xml
+++ b/src/main/res/layout/dialog_solvers_pane.xml
@@ -43,7 +43,7 @@
              android:layout_height="wrap_content"
              android:layout_gravity="bottom"
              android:gravity="center"
-             android:backgroundTint="@color/black"
+             android:backgroundTint="?veryDarkC"
              android:insetTop="0dp"
              android:insetBottom="0dp"
              android:text="@string/use_solver"/>
diff --git a/src/main/res/layout/dialog_updates_pane.xml b/src/main/res/layout/dialog_updates_pane.xml
index ce3891a4..6e90502e 100644
--- a/src/main/res/layout/dialog_updates_pane.xml
+++ b/src/main/res/layout/dialog_updates_pane.xml
@@ -47,7 +47,7 @@
              android:id="@+id/updates_pane_button"
              android:layout_width="match_parent"
              android:layout_height="wrap_content"
-             android:backgroundTint="@color/black"
+             android:backgroundTint="?veryDarkC"
              android:minHeight="0dp"
              android:minWidth="0dp"
              android:insetTop="0dp"
@@ -59,7 +59,7 @@
              android:layout_width="match_parent"
              android:layout_height="wrap_content"
              style="@android:style/Widget.ProgressBar.Horizontal"
-             android:progressDrawable="@drawable/black_progress"
+             android:progressDrawable="@drawable/progress_bar"
              android:max="100"/>
 
  	</LinearLayout>
diff --git a/src/main/res/values/attr.xml b/src/main/res/values/attr.xml
index 340d8b66..174e5e9d 100644
--- a/src/main/res/values/attr.xml
+++ b/src/main/res/values/attr.xml
@@ -1,9 +1,11 @@
 <?xml version="1.0" encoding="utf-8"?>
 <resources>
 
+<attr name="veryDarkC" format="reference|color" />
 <attr name="darkC" format="reference|color" />
 <attr name="normalC" format="reference|color" />
 <attr name="mediumC" format="reference|color" />
 <attr name="lightC" format="reference|color" />
+<attr name="passedC" format="reference|color" />
 
 </resources>
diff --git a/src/main/res/values/colors.xml b/src/main/res/values/colors.xml
index 0c3d9ef3..878a1bdb 100644
--- a/src/main/res/values/colors.xml
+++ b/src/main/res/values/colors.xml
@@ -2,21 +2,26 @@
 <resources>
 
     <color name="red">#ffff0000</color>
-    <color name="black">#ff010101</color>
     <color name="white">#ffffffff</color>
 
-    <color name="darkGreen">#ff008800</color>
-    <color name="normalGreen">#ff00a000</color>
-    <color name="mediumGreen">#ff00b800</color>
+    <color name="veryDarkGreen">#ff004400</color>
+    <color name="darkGreen">#ff007700</color>
+    <color name="normalGreen">#ff009000</color>
+    <color name="mediumGreen">#ff00aa00</color>
     <color name="lightGreen">#ff00cc00</color>
+    <color name="passedGreen">#ff333333</color>
 
+    <color name="veryDarkGrey">#ff111111</color>
     <color name="darkGrey">#ff222222</color>
     <color name="normalGrey">#ff333333</color>
     <color name="mediumGrey">#ff444444</color>
     <color name="lightGrey">#ff555555</color>
+    <color name="passedGrey">#ff00a000</color>
 
+    <color name="veryDarkWhite">#ff080808</color>
     <color name="darkWhite">#ffa0a0a0</color>
     <color name="normalWhite">#ffc0c0c0</color>
     <color name="mediumWhite">#ffe0e0e0</color>
     <color name="lightWhite">#ffffffff</color>
+    <color name="passedWhite">#ff00a000</color>
 </resources>
diff --git a/src/main/res/values/styles.xml b/src/main/res/values/styles.xml
index 6c38c794..30745d22 100644
--- a/src/main/res/values/styles.xml
+++ b/src/main/res/values/styles.xml
@@ -13,24 +13,30 @@
    </style>
 
    <style name="GreyTheme" parent="@style/BaseMaterialThemeNoActionBar">
+        <item name="veryDarkC">@color/veryDarkGrey</item>
         <item name="darkC">@color/darkGrey</item>
         <item name="normalC">@color/normalGrey</item>
         <item name="mediumC">@color/mediumGrey</item>
         <item name="lightC">@color/lightGrey</item>
+        <item name="passedC">@color/passedGrey</item>
    </style>
 
    <style name="WhiteTheme" parent="@style/BaseMaterialThemeNoActionBar">
+        <item name="veryDarkC">@color/veryDarkWhite</item>
         <item name="darkC">@color/darkWhite</item>
         <item name="normalC">@color/normalWhite</item>
         <item name="mediumC">@color/mediumWhite</item>
         <item name="lightC">@color/lightWhite</item>
+        <item name="passedC">@color/passedWhite</item>
    </style>
 
    <style name="GreenTheme" parent="@style/BaseMaterialThemeNoActionBar">
+        <item name="veryDarkC">@color/veryDarkGreen</item>
         <item name="darkC">@color/darkGreen</item>
         <item name="normalC">@color/normalGreen</item>
         <item name="mediumC">@color/mediumGreen</item>
         <item name="lightC">@color/lightGreen</item>
+        <item name="passedC">@color/passedGreen</item>
    </style>
 
    <style name="NegativeButtonStyle" parent="Widget.MaterialComponents.Button.TextButton.Dialog">
