commit b45b986a338176708d25ab5b15dc18f996b2dea1
Author: leszek <leszek@koltunski.pl>
Date:   Fri Nov 3 23:18:57 2023 +0100

    Major progress with version 2.0.0.

diff --git a/src/main/java/org/distorted/config/ConfigRenderer.java b/src/main/java/org/distorted/config/ConfigRenderer.java
index e395a830..75bb7d83 100644
--- a/src/main/java/org/distorted/config/ConfigRenderer.java
+++ b/src/main/java/org/distorted/config/ConfigRenderer.java
@@ -9,9 +9,6 @@
 
 package org.distorted.config;
 
-import android.app.ActivityManager;
-import android.content.Context;
-import android.content.pm.ConfigurationInfo;
 import android.content.res.Resources;
 import android.opengl.GLSurfaceView;
 
diff --git a/src/main/java/org/distorted/config/ConfigScreenPane.java b/src/main/java/org/distorted/config/ConfigScreenPane.java
index 31d534bb..8a39ee43 100644
--- a/src/main/java/org/distorted/config/ConfigScreenPane.java
+++ b/src/main/java/org/distorted/config/ConfigScreenPane.java
@@ -15,8 +15,6 @@ import android.graphics.PorterDuff;
 import android.util.TypedValue;
 import android.widget.ImageView;
 import android.widget.LinearLayout;
-import android.widget.RadioButton;
-import android.widget.RadioGroup;
 import android.widget.TextView;
 
 import org.distorted.main.R;
@@ -24,9 +22,6 @@ import org.distorted.objectlib.json.JsonReader;
 import org.distorted.objects.RubikObject;
 import org.distorted.objects.RubikObjectList;
 
-import static org.distorted.objectlib.main.TwistyObject.MESH_NICE;
-import static org.distorted.objectlib.main.TwistyObject.MESH_FAST;
-
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
 public class ConfigScreenPane
@@ -52,19 +47,6 @@ public class ConfigScreenPane
   private static final int NUM_IDS         = IDS.length;
   private static final float PADDING_RATIO = 0.016f;
   private static final float TEXT_RATIO    = 0.025f;
-  private static final float RADIO_RATIO   = 0.900f;
-
-  private int mObjectOrdinal;
-  private boolean mProgramatic;
-
-///////////////////////////////////////////////////////////////////////////////////////////////////
-
-  private void switchMeshState(ConfigActivity act, int meshState)
-    {
-    RubikObjectList.setMeshState(mObjectOrdinal,meshState);
-    RubikObject object = RubikObjectList.getObject(mObjectOrdinal);
-    act.changeMeshState(object,mObjectOrdinal);
-    }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
@@ -76,7 +58,6 @@ public class ConfigScreenPane
       {
       InputStream stream = object.getObjectStream(act);
 
-      mObjectOrdinal = objectOrdinal;
       JsonReader reader = new JsonReader();
       String name,author;
       int year, difficulty;
@@ -97,13 +78,13 @@ public class ConfigScreenPane
         difficulty = 0;
         }
 
-      String both = year>0 ? author+" "+year : author;
-
       LinearLayout layout = act.findViewById(R.id.configLayout);
       TextView view = layout.findViewById(R.id.configDetailsName2);
       view.setText(name);
       view = layout.findViewById(R.id.configDetailsAuthor2);
-      view.setText(both);
+      view.setText(author);
+      view = layout.findViewById(R.id.configDetailsYear2);
+      view.setText( year>0 ? String.valueOf(year) : "?" );
 
       if( difficulty<0        ) difficulty=0;
       if( difficulty>=NUM_IDS ) difficulty=NUM_IDS-1;
@@ -114,14 +95,6 @@ public class ConfigScreenPane
         image.setImageResource(IMAGES[i]);
         image.setColorFilter( difficulty==i ? 0xffff0000 : 0xffffffff, PorterDuff.Mode.MULTIPLY );
         }
-
-      int meshState = object.getMeshState();
-      int id = meshState==MESH_NICE ? R.id.meshNice : R.id.meshSimple;
-      RadioButton button = act.findViewById(id);
-
-      mProgramatic = true;
-      button.setChecked(true);
-      mProgramatic = false;
       }
     }
 
@@ -135,14 +108,14 @@ public class ConfigScreenPane
 
     LinearLayout configLayout    = act.findViewById(R.id.configLayout);
     LinearLayout nameLayout      = configLayout.findViewById(R.id.configLayoutName);
-    LinearLayout authorLayout    = configLayout.findViewById(R.id.configLayoutAuthor);
     LinearLayout difficultyLayout= configLayout.findViewById(R.id.configLayoutDifficulty);
-    LinearLayout meshLayout      = configLayout.findViewById(R.id.configLayoutMesh);
+    LinearLayout authorLayout    = configLayout.findViewById(R.id.configLayoutAuthor);
+    LinearLayout yearLayout      = configLayout.findViewById(R.id.configLayoutYear);
 
     nameLayout.setPadding(padding,padding,padding,padding/2);
-    authorLayout.setPadding(padding,padding/2,padding,padding/2);
     difficultyLayout.setPadding(padding,padding/2,padding,padding/2);
-    meshLayout.setPadding(padding,padding/2,padding,padding);
+    authorLayout.setPadding(padding,padding/2,padding,padding/2);
+    yearLayout.setPadding(padding,padding/2,padding,padding);
 
     LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, 0, 1.00f);
     params.bottomMargin = 0;
@@ -151,9 +124,9 @@ public class ConfigScreenPane
     params.rightMargin  = padding;
 
     nameLayout.setLayoutParams(params);
-    authorLayout.setLayoutParams(params);
     difficultyLayout.setLayoutParams(params);
-    meshLayout.setLayoutParams(params);
+    authorLayout.setLayoutParams(params);
+    yearLayout.setLayoutParams(params);
 
     TextView text;
     text = nameLayout.findViewById(R.id.configDetailsName1);
@@ -166,32 +139,14 @@ public class ConfigScreenPane
     text.setTextSize(TypedValue.COMPLEX_UNIT_PX, textSize);
     text = difficultyLayout.findViewById(R.id.configDifficultyTitle);
     text.setTextSize(TypedValue.COMPLEX_UNIT_PX, textSize);
-    text = meshLayout.findViewById(R.id.configMeshTitle);
+    text = yearLayout.findViewById(R.id.configDetailsYear1);
+    text.setTextSize(TypedValue.COMPLEX_UNIT_PX, textSize);
+    text = yearLayout.findViewById(R.id.configDetailsYear2);
     text.setTextSize(TypedValue.COMPLEX_UNIT_PX, textSize);
-
-    RadioButton butt1 = meshLayout.findViewById(R.id.meshNice);
-    butt1.setTextSize(TypedValue.COMPLEX_UNIT_PX, RADIO_RATIO*textSize);
-    RadioButton butt2 = meshLayout.findViewById(R.id.meshSimple);
-    butt2.setTextSize(TypedValue.COMPLEX_UNIT_PX, RADIO_RATIO*textSize);
 
     LinearLayout layoutDiff = difficultyLayout.findViewById(R.id.configDifficultyLayout);
     layoutDiff.setPadding(padding,padding,padding,padding);
 
-    RadioGroup radioGroup = meshLayout.findViewById(R.id.meshRadioGroup);
-
-    radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener()
-      {
-      @Override
-      public void onCheckedChanged(RadioGroup group, int checkedId)
-        {
-        if( !mProgramatic )
-          {
-          int meshState = checkedId == R.id.meshNice ? MESH_NICE : MESH_FAST;
-          switchMeshState( act, meshState );
-          }
-        }
-      });
-
     updatePane(act,objectOrdinal);
     }
 }
diff --git a/src/main/java/org/distorted/config/ConfigSurfaceView.java b/src/main/java/org/distorted/config/ConfigSurfaceView.java
index cfb43b6e..0c7abece 100644
--- a/src/main/java/org/distorted/config/ConfigSurfaceView.java
+++ b/src/main/java/org/distorted/config/ConfigSurfaceView.java
@@ -50,13 +50,6 @@ public class ConfigSurfaceView extends GLSurfaceView
         }
       }
 
-///////////////////////////////////////////////////////////////////////////////////////////////////
-
-    boolean isVertical()
-      {
-      return mScreenHeight>mScreenWidth;
-      }
-
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
     ObjectControl getObjectControl()
diff --git a/src/main/java/org/distorted/main/MainObjectPopup.java b/src/main/java/org/distorted/main/MainObjectPopup.java
index 5272e3af..c1b593b7 100644
--- a/src/main/java/org/distorted/main/MainObjectPopup.java
+++ b/src/main/java/org/distorted/main/MainObjectPopup.java
@@ -41,7 +41,7 @@ public class MainObjectPopup
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
-  MainObjectPopup(Activity act, int ordinal, int width, int height)
+  MainObjectPopup(MainActivity act, int ordinal, int width, int height)
     {
     LayoutInflater layoutInflater = (LayoutInflater)act.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
     final View layout = layoutInflater.inflate(R.layout.object_popup, null);
@@ -126,7 +126,8 @@ public class MainObjectPopup
       @Override
       public void onClick(View v)
         {
-
+        mPopup.dismiss();
+        act.switchToConfig(ordinal);
         }
       });
 
diff --git a/src/main/java/org/distorted/main/MainScrollGrid.java b/src/main/java/org/distorted/main/MainScrollGrid.java
index f56efe9d..0b6337b8 100644
--- a/src/main/java/org/distorted/main/MainScrollGrid.java
+++ b/src/main/java/org/distorted/main/MainScrollGrid.java
@@ -9,7 +9,6 @@
 
 package org.distorted.main;
 
-import android.app.Activity;
 import android.util.DisplayMetrics;
 import android.view.View;
 import android.widget.GridLayout;
@@ -29,7 +28,7 @@ public class MainScrollGrid
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
-  void createGrid(final Activity act, int windowWidth)
+  void createGrid(final MainActivity act, int windowWidth)
     {
     int numObjects = RubikObjectList.getNumObjects();
     int rowCount   = (numObjects + NUM_COLUMNS-1) / NUM_COLUMNS;
@@ -70,7 +69,7 @@ public class MainScrollGrid
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
-  void updateGrid(final Activity act, int scrW)
+  void updateGrid(final MainActivity act, int scrW)
     {
     act.runOnUiThread(new Runnable()
       {
diff --git a/src/main/res/layout-ldrtl/config.xml b/src/main/res/layout-ldrtl/config.xml
index e13e541b..fcbb429f 100644
--- a/src/main/res/layout-ldrtl/config.xml
+++ b/src/main/res/layout-ldrtl/config.xml
@@ -54,41 +54,6 @@
 
         </LinearLayout>
 
-        <LinearLayout
-            android:id="@+id/configLayoutAuthor"
-            android:layout_width="fill_parent"
-            android:layout_height="0dp"
-            android:layout_weight="1"
-            android:paddingLeft="5dp"
-            android:paddingRight="5dp"
-            android:background="@color/grey"
-            android:orientation="horizontal">
-
-            <TextView
-                android:id="@+id/configDetailsAuthor1"
-                android:layout_width="0dp"
-                android:layout_height="match_parent"
-                android:layout_weight="1.0"
-                android:gravity="center_vertical|right"
-                android:paddingStart="5dp"
-                android:textSize="26sp"
-                android:singleLine="true"
-                android:maxLines="1"
-                android:text="@string/config_author"/>
-
-            <TextView
-                android:id="@+id/configDetailsAuthor2"
-                android:layout_width="0dp"
-                android:layout_height="match_parent"
-                android:layout_weight="2.1"
-                android:gravity="center_vertical|right"
-                android:paddingStart="5dp"
-                android:textSize="26sp"
-                android:singleLine="true"
-                android:maxLines="1"/>
-
-        </LinearLayout>
-
         <LinearLayout
             android:id="@+id/configLayoutDifficulty"
             android:layout_width="fill_parent"
@@ -155,8 +120,8 @@
 
         </LinearLayout>
 
-         <LinearLayout
-            android:id="@+id/configLayoutMesh"
+        <LinearLayout
+            android:id="@+id/configLayoutAuthor"
             android:layout_width="fill_parent"
             android:layout_height="0dp"
             android:layout_weight="1"
@@ -166,7 +131,7 @@
             android:orientation="horizontal">
 
             <TextView
-                android:id="@+id/configMeshTitle"
+                android:id="@+id/configDetailsAuthor1"
                 android:layout_width="0dp"
                 android:layout_height="match_parent"
                 android:layout_weight="1.0"
@@ -175,36 +140,53 @@
                 android:textSize="26sp"
                 android:singleLine="true"
                 android:maxLines="1"
-                android:text="@string/config_mesh"/>
+                android:text="@string/config_author"/>
 
-            <RadioGroup
-                android:id="@+id/meshRadioGroup"
+            <TextView
+                android:id="@+id/configDetailsAuthor2"
                 android:layout_width="0dp"
                 android:layout_height="match_parent"
                 android:layout_weight="2.1"
-                android:orientation="horizontal"
-                android:checkedButton="@+id/meshNice"
-                android:background="@color/grey">
+                android:gravity="center_vertical|right"
+                android:paddingStart="5dp"
+                android:textSize="26sp"
+                android:singleLine="true"
+                android:maxLines="1"/>
 
-                <RadioButton
-                    android:id="@+id/meshSimple"
-                    android:layout_width="0dp"
-                    android:layout_height="match_parent"
-                    android:layout_weight="1"
-                    android:gravity="center_vertical|right"
-                    android:buttonTint="@color/white"
-                    android:text="@string/config_mesh_fast"/>
+        </LinearLayout>
 
-                <RadioButton
-                    android:id="@+id/meshNice"
-                    android:layout_width="0dp"
-                    android:layout_height="match_parent"
-                    android:layout_weight="1"
-                    android:gravity="center_vertical|right"
-                    android:buttonTint="@color/white"
-                    android:text="@string/config_mesh_nice"/>
+        <LinearLayout
+            android:id="@+id/configLayoutYear"
+            android:layout_width="fill_parent"
+            android:layout_height="0dp"
+            android:layout_weight="1"
+            android:paddingLeft="5dp"
+            android:paddingRight="5dp"
+            android:background="@color/grey"
+            android:orientation="horizontal">
 
-            </RadioGroup>
+            <TextView
+                android:id="@+id/configDetailsYear1"
+                android:layout_width="0dp"
+                android:layout_height="match_parent"
+                android:layout_weight="1.0"
+                android:gravity="center_vertical|right"
+                android:paddingStart="5dp"
+                android:textSize="26sp"
+                android:singleLine="true"
+                android:maxLines="1"
+                android:text="@string/config_author"/>
+
+            <TextView
+                android:id="@+id/configDetailsYear2"
+                android:layout_width="0dp"
+                android:layout_height="match_parent"
+                android:layout_weight="2.1"
+                android:gravity="center_vertical|right"
+                android:paddingStart="5dp"
+                android:textSize="26sp"
+                android:singleLine="true"
+                android:maxLines="1"/>
 
         </LinearLayout>
 
diff --git a/src/main/res/layout/config.xml b/src/main/res/layout/config.xml
index 62a4acd6..571453c4 100644
--- a/src/main/res/layout/config.xml
+++ b/src/main/res/layout/config.xml
@@ -54,41 +54,6 @@
 
         </LinearLayout>
 
-        <LinearLayout
-            android:id="@+id/configLayoutAuthor"
-            android:layout_width="fill_parent"
-            android:layout_height="0dp"
-            android:layout_weight="1"
-            android:paddingLeft="5dp"
-            android:paddingRight="5dp"
-            android:background="@color/grey"
-            android:orientation="horizontal">
-
-            <TextView
-                android:id="@+id/configDetailsAuthor1"
-                android:layout_width="0dp"
-                android:layout_height="match_parent"
-                android:layout_weight="1.0"
-                android:gravity="center_vertical|start"
-                android:paddingStart="5dp"
-                android:textSize="26sp"
-                android:singleLine="true"
-                android:maxLines="1"
-                android:text="@string/config_author"/>
-
-            <TextView
-                android:id="@+id/configDetailsAuthor2"
-                android:layout_width="0dp"
-                android:layout_height="match_parent"
-                android:layout_weight="2.1"
-                android:gravity="center_vertical|start"
-                android:paddingStart="5dp"
-                android:textSize="26sp"
-                android:singleLine="true"
-                android:maxLines="1"/>
-
-        </LinearLayout>
-
         <LinearLayout
             android:id="@+id/configLayoutDifficulty"
             android:layout_width="fill_parent"
@@ -155,8 +120,8 @@
 
         </LinearLayout>
 
-         <LinearLayout
-            android:id="@+id/configLayoutMesh"
+        <LinearLayout
+            android:id="@+id/configLayoutAuthor"
             android:layout_width="fill_parent"
             android:layout_height="0dp"
             android:layout_weight="1"
@@ -166,7 +131,7 @@
             android:orientation="horizontal">
 
             <TextView
-                android:id="@+id/configMeshTitle"
+                android:id="@+id/configDetailsAuthor1"
                 android:layout_width="0dp"
                 android:layout_height="match_parent"
                 android:layout_weight="1.0"
@@ -175,34 +140,53 @@
                 android:textSize="26sp"
                 android:singleLine="true"
                 android:maxLines="1"
-                android:text="@string/config_mesh"/>
+                android:text="@string/config_author"/>
 
-            <RadioGroup
-                android:id="@+id/meshRadioGroup"
+            <TextView
+                android:id="@+id/configDetailsAuthor2"
                 android:layout_width="0dp"
                 android:layout_height="match_parent"
                 android:layout_weight="2.1"
-                android:orientation="horizontal"
-                android:checkedButton="@+id/meshNice"
-                android:background="@color/grey">
+                android:gravity="center_vertical|start"
+                android:paddingStart="5dp"
+                android:textSize="26sp"
+                android:singleLine="true"
+                android:maxLines="1"/>
 
-                <RadioButton
-                    android:id="@+id/meshSimple"
-                    android:layout_width="0dp"
-                    android:layout_height="match_parent"
-                    android:layout_weight="1"
-                    android:buttonTint="@color/white"
-                    android:text="@string/config_mesh_fast"/>
+        </LinearLayout>
 
-                <RadioButton
-                    android:id="@+id/meshNice"
-                    android:layout_width="0dp"
-                    android:layout_height="match_parent"
-                    android:layout_weight="1"
-                    android:buttonTint="@color/white"
-                    android:text="@string/config_mesh_nice"/>
+        <LinearLayout
+            android:id="@+id/configLayoutYear"
+            android:layout_width="fill_parent"
+            android:layout_height="0dp"
+            android:layout_weight="1"
+            android:paddingLeft="5dp"
+            android:paddingRight="5dp"
+            android:background="@color/grey"
+            android:orientation="horizontal">
 
-            </RadioGroup>
+            <TextView
+                android:id="@+id/configDetailsYear1"
+                android:layout_width="0dp"
+                android:layout_height="match_parent"
+                android:layout_weight="1.0"
+                android:gravity="center_vertical|start"
+                android:paddingStart="5dp"
+                android:textSize="26sp"
+                android:singleLine="true"
+                android:maxLines="1"
+                android:text="@string/config_year"/>
+
+            <TextView
+                android:id="@+id/configDetailsYear2"
+                android:layout_width="0dp"
+                android:layout_height="match_parent"
+                android:layout_weight="2.1"
+                android:gravity="center_vertical|start"
+                android:paddingStart="5dp"
+                android:textSize="26sp"
+                android:singleLine="true"
+                android:maxLines="1"/>
 
         </LinearLayout>
 
diff --git a/src/main/res/values-de/strings.xml b/src/main/res/values-de/strings.xml
index 14ad248c..1cf31b50 100755
--- a/src/main/res/values-de/strings.xml
+++ b/src/main/res/values-de/strings.xml
@@ -77,6 +77,7 @@
     <string name="config_details">Einzelheiten</string>
     <string name="config_name">Name</string>
     <string name="config_author">Autor</string>
+    <string name="config_year">Jahr</string>
     <string name="config_difficulty">Schwierigkeit</string>
     <string name="config_mesh">3D Netz</string>
     <string name="config_mesh_fast">Schelles</string>
diff --git a/src/main/res/values-es/strings.xml b/src/main/res/values-es/strings.xml
index 190eb6cc..f01947d5 100755
--- a/src/main/res/values-es/strings.xml
+++ b/src/main/res/values-es/strings.xml
@@ -77,6 +77,7 @@
     <string name="config_details">Detalles</string>
     <string name="config_name">Nombre</string>
     <string name="config_author">Autor</string>
+    <string name="config_year">Año</string>
     <string name="config_difficulty">Dificultad</string>
     <string name="config_mesh">Malla 3D</string>
     <string name="config_mesh_fast">Rápida</string>
diff --git a/src/main/res/values-fr/strings.xml b/src/main/res/values-fr/strings.xml
index 92c41e85..71f3956d 100755
--- a/src/main/res/values-fr/strings.xml
+++ b/src/main/res/values-fr/strings.xml
@@ -77,6 +77,7 @@
     <string name="config_details">Détails</string>
     <string name="config_name">Nom</string>
     <string name="config_author">Auteur</string>
+    <string name="config_year">Année</string>
     <string name="config_difficulty">Difficulté</string>
     <string name="config_mesh">Maillage 3D</string>
     <string name="config_mesh_fast">Rapide</string>
diff --git a/src/main/res/values-ja/strings.xml b/src/main/res/values-ja/strings.xml
index 8a536de3..f7466e94 100755
--- a/src/main/res/values-ja/strings.xml
+++ b/src/main/res/values-ja/strings.xml
@@ -77,6 +77,7 @@
     <string name="config_details">詳細</string>
     <string name="config_name">名前</string>
     <string name="config_author">著者</string>
+    <string name="config_year">年</string>
     <string name="config_difficulty">困難</string>
     <string name="config_mesh">メッシュ3D</string>
     <string name="config_mesh_fast">速い</string>
diff --git a/src/main/res/values-ko/strings.xml b/src/main/res/values-ko/strings.xml
index acb9dcbc..8068499a 100755
--- a/src/main/res/values-ko/strings.xml
+++ b/src/main/res/values-ko/strings.xml
@@ -77,6 +77,7 @@
     <string name="config_details">세부</string>
     <string name="config_name">이름</string>
     <string name="config_author">작가</string>
+    <string name="config_year">년도</string>
     <string name="config_difficulty">어려움</string>
     <string name="config_mesh">메쉬3D</string>
     <string name="config_mesh_fast">빠른</string>
diff --git a/src/main/res/values-pl/strings.xml b/src/main/res/values-pl/strings.xml
index f218f0a1..9e1a2a32 100644
--- a/src/main/res/values-pl/strings.xml
+++ b/src/main/res/values-pl/strings.xml
@@ -77,6 +77,7 @@
     <string name="config_details">O kostce</string>
     <string name="config_name">Nazwa</string>
     <string name="config_author">Autor</string>
+    <string name="config_year">Rok</string>
     <string name="config_difficulty">Trudność</string>
     <string name="config_mesh">Siatka 3D</string>
     <string name="config_mesh_fast">Szybka</string>
diff --git a/src/main/res/values-ru/strings.xml b/src/main/res/values-ru/strings.xml
index 8625bb50..a17264c3 100755
--- a/src/main/res/values-ru/strings.xml
+++ b/src/main/res/values-ru/strings.xml
@@ -77,6 +77,7 @@
     <string name="config_details">Детали</string>
     <string name="config_name">Имя</string>
     <string name="config_author">Автор</string>
+    <string name="config_year">Год</string>
     <string name="config_difficulty">Сложность</string>
     <string name="config_mesh">3D Cетка</string>
     <string name="config_mesh_fast">Быстрая</string>
diff --git a/src/main/res/values-zh-rCN/strings.xml b/src/main/res/values-zh-rCN/strings.xml
index c4b875da..ef73e65e 100644
--- a/src/main/res/values-zh-rCN/strings.xml
+++ b/src/main/res/values-zh-rCN/strings.xml
@@ -77,6 +77,7 @@
     <string name="config_details">细节</string>
     <string name="config_name">姓名</string>
     <string name="config_author">作者</string>
+    <string name="config_year">年</string>
     <string name="config_difficulty">困难</string>
     <string name="config_mesh">3D网格</string>
     <string name="config_mesh_fast">快</string>
diff --git a/src/main/res/values-zh-rTW/strings.xml b/src/main/res/values-zh-rTW/strings.xml
index 2873c6c9..9618c351 100644
--- a/src/main/res/values-zh-rTW/strings.xml
+++ b/src/main/res/values-zh-rTW/strings.xml
@@ -77,6 +77,7 @@
     <string name="config_details">細節</string>
     <string name="config_name">姓名</string>
     <string name="config_author">作者</string>
+    <string name="config_year">年</string>
     <string name="config_difficulty">困難</string>
     <string name="config_mesh">3D網格</string>
     <string name="config_mesh_fast">快</string>
diff --git a/src/main/res/values/strings.xml b/src/main/res/values/strings.xml
index fde21d7f..ecf571c3 100644
--- a/src/main/res/values/strings.xml
+++ b/src/main/res/values/strings.xml
@@ -101,6 +101,7 @@
     <string name="config_details">Details</string>
     <string name="config_name">Name</string>
     <string name="config_author">Author</string>
+    <string name="config_year">Year</string>
     <string name="config_difficulty">Difficulty</string>
     <string name="config_mesh">3D Mesh</string>
     <string name="config_mesh_fast">Fast</string>
