commit 35161021f9243da707e08c11d2f6a265c0f82c51
Author: Leszek Koltunski <leszek@koltunski.pl>
Date:   Fri Jan 28 22:53:34 2022 +0100

    Beginnings of support for saving the downloaded JSONs in local data storage.

diff --git a/src/main/java/org/distorted/dialogs/RubikDialogUpdateView.java b/src/main/java/org/distorted/dialogs/RubikDialogUpdateView.java
index 7202a0ad..703750dc 100644
--- a/src/main/java/org/distorted/dialogs/RubikDialogUpdateView.java
+++ b/src/main/java/org/distorted/dialogs/RubikDialogUpdateView.java
@@ -30,6 +30,7 @@ import android.widget.LinearLayout;
 import android.widget.ProgressBar;
 import android.widget.TextView;
 
+import org.distorted.external.RubikFiles;
 import org.distorted.main.R;
 import org.distorted.external.RubikNetwork;
 import org.distorted.external.RubikUpdates;
@@ -131,6 +132,32 @@ public class RubikDialogUpdateView implements RubikNetwork.Downloadee
       {
       mBar.setProgress(50);
       mDescription.setText(R.string.installing);
+
+      RubikFiles files = RubikFiles.getInstance();
+      boolean oSuccess=true, eSuccess=true;
+
+      if( mInfo.mObjectStream!=null )
+        {
+        String name = mInfo.mObjectShortName + "_object.json";
+        oSuccess = files.saveFile(mInfo.mObjectStream, name);
+        }
+
+      if( mInfo.mExtrasStream!=null )
+        {
+        String name = mInfo.mObjectShortName + "_extras.json";
+        eSuccess = files.saveFile(mInfo.mExtrasStream, name);
+        }
+
+      if( oSuccess )
+        {
+        mBar.setProgress(75);
+        mDescription.setText(R.string.configuring);
+        }
+      else
+        {
+        mDescription.setTextColor(Color.parseColor("#ff0000"));
+        mDescription.setText(R.string.saveError);
+        }
       }
     }
   }
diff --git a/src/main/java/org/distorted/external/RubikFiles.java b/src/main/java/org/distorted/external/RubikFiles.java
new file mode 100644
index 00000000..d321b14c
--- /dev/null
+++ b/src/main/java/org/distorted/external/RubikFiles.java
@@ -0,0 +1,51 @@
+///////////////////////////////////////////////////////////////////////////////////////////////////
+// Copyright 2022 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.external;
+
+import java.io.InputStream;
+
+public class RubikFiles
+  {
+  private static RubikFiles mThis;
+
+///////////////////////////////////////////////////////////////////////////////////////////////////
+
+  private RubikFiles()
+    {
+
+    }
+
+///////////////////////////////////////////////////////////////////////////////////////////////////
+// PUBLIC API
+///////////////////////////////////////////////////////////////////////////////////////////////////
+
+  public static RubikFiles getInstance()
+    {
+    if( mThis==null ) mThis = new RubikFiles();
+    return mThis;
+    }
+
+///////////////////////////////////////////////////////////////////////////////////////////////////
+
+  public boolean saveFile(InputStream stream, String name)
+    {
+    return false;
+    }
+  }
diff --git a/src/main/java/org/distorted/external/RubikNetwork.java b/src/main/java/org/distorted/external/RubikNetwork.java
index 5a097eb9..362e0d75 100644
--- a/src/main/java/org/distorted/external/RubikNetwork.java
+++ b/src/main/java/org/distorted/external/RubikNetwork.java
@@ -795,11 +795,7 @@ public class RubikNetwork
 
   public static RubikNetwork getInstance()
     {
-    if( mThis==null )
-      {
-      mThis = new RubikNetwork();
-      }
-
+    if( mThis==null ) mThis = new RubikNetwork();
     return mThis;
     }
 
diff --git a/src/main/res/values-de/strings.xml b/src/main/res/values-de/strings.xml
index a15c40ef..e04cc6cd 100755
--- a/src/main/res/values-de/strings.xml
+++ b/src/main/res/values-de/strings.xml
@@ -31,6 +31,8 @@
     <string name="downloading">Wird heruntergeladen…</string>
     <string name="submitting">Einreichen…</string>
     <string name="installing">Installieren…</string>
+    <string name="configuring">Konfigurieren…</string>
+    <string name="saveError">Fehler beim Speichern der Datei</string>
     <string name="networkError">Netzwerkfehler</string>
     <string name="view">Sehen</string>
     <string name="level_full">Volles Scramble</string>
diff --git a/src/main/res/values-es/strings.xml b/src/main/res/values-es/strings.xml
index 2a3a27ba..058f5cbf 100755
--- a/src/main/res/values-es/strings.xml
+++ b/src/main/res/values-es/strings.xml
@@ -31,6 +31,8 @@
     <string name="downloading">Descargando…</string>
     <string name="submitting">Enviando…</string>
     <string name="installing">Instalando…</string>
+    <string name="configuring">Configurando…</string>
+    <string name="saveError">Error al guardar el archivo</string>
     <string name="networkError">Error de red</string>
     <string name="view">Ver</string>
     <string name="level_full">Revuelto Completo</string>
diff --git a/src/main/res/values-fr/strings.xml b/src/main/res/values-fr/strings.xml
index 582591c5..66585783 100755
--- a/src/main/res/values-fr/strings.xml
+++ b/src/main/res/values-fr/strings.xml
@@ -31,6 +31,8 @@
     <string name="downloading">Téléchargement…</string>
     <string name="submitting">Soumission…</string>
     <string name="installing">Installation…</string>
+    <string name="configuring">Configuration…</string>
+    <string name="saveError">Échec de l\'enregistrement du fichier</string>
     <string name="networkError">Erreur réseau</string>
     <string name="view">Regarder</string>
     <string name="level_full">Brouillage Complet</string>
diff --git a/src/main/res/values-ja/strings.xml b/src/main/res/values-ja/strings.xml
index d79f4f40..94533d4d 100755
--- a/src/main/res/values-ja/strings.xml
+++ b/src/main/res/values-ja/strings.xml
@@ -31,6 +31,8 @@
     <string name="downloading">ダウンロードしています…</string>
     <string name="submitting">送信しています…</string>
     <string name="installing">インストール…</string>
+    <string name="configuring">構成…</string>
+    <string name="saveError">ファイルの保存に失敗しました</string>
     <string name="networkError">ネットワークエラー</string>
     <string name="view">見る</string>
     <string name="level_full">フルスクランブル</string>
diff --git a/src/main/res/values-ko/strings.xml b/src/main/res/values-ko/strings.xml
index b6664635..acbbf8d6 100755
--- a/src/main/res/values-ko/strings.xml
+++ b/src/main/res/values-ko/strings.xml
@@ -31,6 +31,8 @@
     <string name="downloading">다운로드 중…</string>
     <string name="submitting">제출 중…</string>
     <string name="installing">설치 중…</string>
+    <string name="configuring">구성…</string>
+    <string name="saveError">파일 저장 실패</string>
     <string name="networkError">네트워크 오류</string>
     <string name="view">보다</string>
     <string name="level_full">풀 스크램블</string>
diff --git a/src/main/res/values-pl/strings.xml b/src/main/res/values-pl/strings.xml
index d62ddd8c..b70653fc 100644
--- a/src/main/res/values-pl/strings.xml
+++ b/src/main/res/values-pl/strings.xml
@@ -31,6 +31,8 @@
     <string name="downloading">Ściąganie…</string>
     <string name="submitting">Przesyłanie…</string>
     <string name="installing">Instalowanie…</string>
+    <string name="configuring">Konfigurowanie…</string>
+    <string name="saveError">Błąd zapisu pliku</string>
     <string name="networkError">Błąd sieci</string>
     <string name="view">Zobacz</string>
     <string name="level_full">Pełne Pomieszanie</string>
diff --git a/src/main/res/values-ru/strings.xml b/src/main/res/values-ru/strings.xml
index 7c3c62d8..874e9056 100755
--- a/src/main/res/values-ru/strings.xml
+++ b/src/main/res/values-ru/strings.xml
@@ -31,6 +31,8 @@
     <string name="downloading">Загрузка…</string>
     <string name="submitting">Добавляю…</string>
     <string name="installing">Установка…</string>
+    <string name="configuring">Настройка…</string>
+    <string name="saveError">Не удалось сохранить файл</string>
     <string name="networkError">Ошибка сети</string>
     <string name="view">Смотри</string>
     <string name="level_full">Полная Схватка</string>
diff --git a/src/main/res/values-zh-rCN/strings.xml b/src/main/res/values-zh-rCN/strings.xml
index 6de73b20..96f19b85 100644
--- a/src/main/res/values-zh-rCN/strings.xml
+++ b/src/main/res/values-zh-rCN/strings.xml
@@ -31,6 +31,8 @@
     <string name="downloading">正在下载……</string>
     <string name="submitting">正在提交……</string>
     <string name="installing">安装…</string>
+    <string name="configuring">配置…</string>
+    <string name="saveError">保存文件失败</string>
     <string name="networkError">網絡錯誤</string>
     <string name="view">看</string>
     <string name="level_full">级满</string>
diff --git a/src/main/res/values-zh-rTW/strings.xml b/src/main/res/values-zh-rTW/strings.xml
index 675c8aad..249b3c16 100644
--- a/src/main/res/values-zh-rTW/strings.xml
+++ b/src/main/res/values-zh-rTW/strings.xml
@@ -31,6 +31,8 @@
     <string name="downloading">正在下載……</string>
     <string name="submitting">正在傳送……</string>
     <string name="installing">安裝…</string>
+    <string name="configuring">配置…</string>
+    <string name="saveError">保存文件失敗</string>
     <string name="networkError">網絡錯誤</string>
     <string name="view">看</string>
     <string name="level_full">級滿</string>
diff --git a/src/main/res/values/strings.xml b/src/main/res/values/strings.xml
index 36f884b7..4f5cc4d9 100644
--- a/src/main/res/values/strings.xml
+++ b/src/main/res/values/strings.xml
@@ -32,6 +32,8 @@
     <string name="downloading">Downloading…</string>
     <string name="submitting">Submitting…</string>
     <string name="installing">Installing…</string>
+    <string name="configuring">Configuring…</string>
+    <string name="saveError">Failed to save file</string>
     <string name="networkError">Network Error</string>
     <string name="view">View</string>
     <string name="level_full">Full Scramble</string>
