commit 9513f21328c61ff048c6a87b96b6f5504de7c216
Author: Leszek Koltunski <leszek@koltunski.pl>
Date:   Sun Jun 21 13:27:20 2020 +0100

    Improve setting text size in Spinners.

diff --git a/src/main/java/org/distorted/dialogs/RubikDialogEffects.java b/src/main/java/org/distorted/dialogs/RubikDialogEffects.java
index cadcb500..4fd7933a 100644
--- a/src/main/java/org/distorted/dialogs/RubikDialogEffects.java
+++ b/src/main/java/org/distorted/dialogs/RubikDialogEffects.java
@@ -32,6 +32,7 @@ import android.util.TypedValue;
 import android.view.Gravity;
 import android.view.LayoutInflater;
 import android.view.View;
+import android.view.ViewGroup;
 import android.view.Window;
 import android.view.WindowManager;
 import android.widget.AdapterView;
@@ -184,7 +185,18 @@ public class RubikDialogEffects extends AppCompatDialogFragment implements SeekB
     spinner.setOnItemSelectedListener(this);
     String[] appear = BaseEffect.Type.getType(index).getNames();
 
-    ArrayAdapter<String> adapterType = new ArrayAdapter<>(act,android.R.layout.simple_spinner_item, appear);
+    ArrayAdapter<String> adapterType = new ArrayAdapter<String>(act, android.R.layout.simple_spinner_item, appear)
+      {
+      @NonNull
+      public View getView(int position, View convertView, @NonNull ViewGroup parent)
+        {
+        View v = super.getView(position, convertView, parent);
+        TextView tv = ((TextView) v);
+        tv.setTextSize(TypedValue.COMPLEX_UNIT_PX, mTextSize);
+        return v;
+        }
+      };
+
     adapterType.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
     spinner.setAdapter(adapterType);
     spinner.setSelection(beType.getCurrentType());
@@ -276,8 +288,6 @@ public class RubikDialogEffects extends AppCompatDialogFragment implements SeekB
 
   public void onItemSelected(AdapterView<?> parent, View view, int pos, long id)
     {
-    ((TextView) parent.getChildAt(0)).setTextSize(TypedValue.COMPLEX_UNIT_PX, mTextSize);
-
     int parentID = parent.getId();
     int len = BaseEffect.Type.LENGTH;
 
diff --git a/src/main/java/org/distorted/states/RubikStatePlay.java b/src/main/java/org/distorted/states/RubikStatePlay.java
index dcdd77dd..96d1b656 100644
--- a/src/main/java/org/distorted/states/RubikStatePlay.java
+++ b/src/main/java/org/distorted/states/RubikStatePlay.java
@@ -28,6 +28,7 @@ import android.util.TypedValue;
 import android.view.Gravity;
 import android.view.LayoutInflater;
 import android.view.View;
+import android.view.ViewGroup;
 import android.widget.AdapterView;
 import android.widget.ArrayAdapter;
 import android.widget.Button;
@@ -36,6 +37,7 @@ import android.widget.LinearLayout;
 import android.widget.PopupWindow;
 import android.widget.TextView;
 
+import androidx.annotation.NonNull;
 import androidx.appcompat.widget.AppCompatSpinner;
 
 import org.distorted.dialogs.RubikDialogEffects;
@@ -178,7 +180,18 @@ public class RubikStatePlay extends RubikStateAbstract implements AdapterView.On
 
     if( mLevelValue>maxLevel ) mLevelValue=1;
 
-    mSpinnerAdapter = new ArrayAdapter<>(act,android.R.layout.simple_spinner_item, levels);
+    mSpinnerAdapter = new ArrayAdapter<String>(act, android.R.layout.simple_spinner_item, levels)
+      {
+      @NonNull
+      public View getView(int position, View convertView, @NonNull ViewGroup parent)
+        {
+        View v = super.getView(position, convertView, parent);
+        TextView tv = ((TextView) v);
+        tv.setTextSize(TypedValue.COMPLEX_UNIT_PX, mButtonSize);
+        return v;
+        }
+      };
+
     mSpinnerAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
     mLevelSpinner.setAdapter(mSpinnerAdapter);
     mLevelSpinner.setSelection(mLevelValue-1);
@@ -428,7 +441,6 @@ public class RubikStatePlay extends RubikStateAbstract implements AdapterView.On
 
   public void onItemSelected(AdapterView<?> parent, View view, int pos, long id)
     {
-    ((TextView) parent.getChildAt(0)).setTextSize(TypedValue.COMPLEX_UNIT_PX, mButtonSize);
     mLevelValue = pos+1;
     }
 
