commit 1780dcb0486d173688a3dc7d90192642de1e326e
Author: Leszek Koltunski <leszek@koltunski.pl>
Date:   Thu Apr 30 17:13:38 2020 +0100

    Fix clicking on the 'Distorted.org' link; get app version from build.gradle (and not from strings.xml)

diff --git a/src/main/java/org/distorted/dialogs/RubikDialogAbout.java b/src/main/java/org/distorted/dialogs/RubikDialogAbout.java
index 9b51141f..41f8e00b 100644
--- a/src/main/java/org/distorted/dialogs/RubikDialogAbout.java
+++ b/src/main/java/org/distorted/dialogs/RubikDialogAbout.java
@@ -21,6 +21,8 @@ package org.distorted.dialogs;
 
 import android.app.Dialog;
 import android.content.DialogInterface;
+import android.content.pm.PackageInfo;
+import android.content.pm.PackageManager;
 import android.os.Bundle;
 import androidx.annotation.NonNull;
 import androidx.fragment.app.FragmentActivity;
@@ -28,6 +30,7 @@ import androidx.appcompat.app.AlertDialog;
 import androidx.appcompat.app.AppCompatDialogFragment;
 
 import android.text.method.LinkMovementMethod;
+import android.text.method.MovementMethod;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.Window;
@@ -65,20 +68,32 @@ public class RubikDialogAbout extends AppCompatDialogFragment
     final View view = inflater.inflate(R.layout.dialog_about, null);
     TextView text = view.findViewById(R.id.about_version);
     String appName = getString(R.string.app_name);
-    String appVers = getString(R.string.app_version);
+    String appVers;
+
+    try
+      {
+      PackageInfo pInfo = act.getPackageManager().getPackageInfo( act.getPackageName(), 0);
+      appVers = pInfo.versionName;
+      }
+    catch (PackageManager.NameNotFoundException e)
+      {
+      appVers = "1.1.1";
+      }
+
     text.setText(getString(R.string.ap_placeholder,appName, appVers));
 
+    MovementMethod mm = LinkMovementMethod.getInstance();
     TextView text1 = view.findViewById(R.id.about_section1);
-    text1.setMovementMethod(LinkMovementMethod.getInstance());
+    text1.setMovementMethod(mm);
     TextView text2 = view.findViewById(R.id.about_section2);
-    text2.setMovementMethod(LinkMovementMethod.getInstance());
+    text2.setMovementMethod(mm);
+    TextView text3 = view.findViewById(R.id.about_section3);
+    text3.setMovementMethod(mm);
 
     builder.setView(view);
 
     Dialog dialog = builder.create();
-
     dialog.setCanceledOnTouchOutside(false);
-
     Window window = dialog.getWindow();
 
     if( window!=null )
diff --git a/src/main/java/org/distorted/scores/RubikScoresDownloader.java b/src/main/java/org/distorted/scores/RubikScoresDownloader.java
index a9110188..91037d28 100644
--- a/src/main/java/org/distorted/scores/RubikScoresDownloader.java
+++ b/src/main/java/org/distorted/scores/RubikScoresDownloader.java
@@ -19,9 +19,11 @@
 
 package org.distorted.scores;
 
+import android.content.pm.PackageInfo;
+import android.content.pm.PackageManager;
+
 import androidx.fragment.app.FragmentActivity;
 
-import org.distorted.main.R;
 import org.distorted.objects.RubikObjectList;
 
 import java.io.InputStream;
@@ -465,11 +467,20 @@ public class RubikScoresDownloader implements Runnable
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
-  public void download(Receiver receiver, FragmentActivity act)
+  private void start(Receiver receiver, FragmentActivity act, int mode)
     {
     mReceiver = receiver;
-    mMode     = DOWNLOAD;
-    mVersion  = act.getString(R.string.app_version);
+    mMode     = mode;
+
+    try
+      {
+      PackageInfo pInfo = act.getPackageManager().getPackageInfo( act.getPackageName(), 0);
+      mVersion = pInfo.versionName;
+      }
+    catch (PackageManager.NameNotFoundException e)
+      {
+      mVersion = "1.1.1";
+      }
 
     Thread networkThrd = new Thread(this);
     networkThrd.start();
@@ -477,13 +488,15 @@ public class RubikScoresDownloader implements Runnable
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
-  public void submit(Receiver receiver, FragmentActivity act)
+  public void download(Receiver receiver, FragmentActivity act)
     {
-    mReceiver = receiver;
-    mMode     = SUBMIT;
-    mVersion  = act.getString(R.string.app_version);
+    start(receiver, act, DOWNLOAD);
+    }
 
-    Thread networkThrd = new Thread(this);
-    networkThrd.start();
+///////////////////////////////////////////////////////////////////////////////////////////////////
+
+  public void submit(Receiver receiver, FragmentActivity act)
+    {
+    start(receiver, act, SUBMIT);
     }
 }
\ No newline at end of file
diff --git a/src/main/res/values/strings.xml b/src/main/res/values/strings.xml
index 657dbe9f..660e8393 100644
--- a/src/main/res/values/strings.xml
+++ b/src/main/res/values/strings.xml
@@ -1,6 +1,5 @@
 <resources>
     <string name="app_name">Magic Cube</string>
-    <string name="app_version">1.1.1</string>
     <string name="distorted">DISTORTED</string>
     <string name="scramble">Scramble</string>
     <string name="solve">Solve</string>
