From 742bb13ffcbacf1529e8ae1bb64f3dad55ff97e2 Mon Sep 17 00:00:00 2001
From: EndrII <EndrIIMail@gmail.com>
Date: Thu, 6 May 2021 17:15:22 +0300
Subject: [PATCH 01/29] initCommit

---
 .gitmodules                                    | 3 +++
 CMakeLists.txt                                 | 6 ++++++
 HanoiTowers/client/CMakeLists.txt              | 2 ++
 HanoiTowers/client/android/AndroidManifest.xml | 6 ++++++
 HanoiTowers/client/android/build.gradle        | 2 ++
 HanoiTowers/client/android/gradle.properties   | 4 ++++
 submodules/QtAndroidTools                      | 1 +
 7 files changed, 24 insertions(+)
 create mode 160000 submodules/QtAndroidTools

diff --git a/.gitmodules b/.gitmodules
index d0b4f7f..883d016 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -16,3 +16,6 @@
 [submodule "HanoiTowers/client/Credits"]
 	path = submodules/Credits
 	url = https://github.com/QuasarApp/Credits
+[submodule "submodules/QtAndroidTools"]
+	path = submodules/QtAndroidTools
+	url = https://github.com/QuasarApp/QtAndroidTools.git
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 59e9e03..d91a987 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -97,7 +97,13 @@ if (HANOI_CLIENT)
     add_subdirectory(submodules/SimpleQmlNotify)
     add_subdirectory(submodules/ViewSolutions)
     add_subdirectory(submodules/Credits)
+
+    if (ANDROID)
+        add_subdirectory(submodules/QtAndroidTools)
+    endif()
+
     add_subdirectory(HanoiTowers/client)
+
 endif()
 
 if (HANOI_SERVER)
diff --git a/HanoiTowers/client/CMakeLists.txt b/HanoiTowers/client/CMakeLists.txt
index 2145bf5..9490a00 100644
--- a/HanoiTowers/client/CMakeLists.txt
+++ b/HanoiTowers/client/CMakeLists.txt
@@ -50,6 +50,8 @@ if (ANDROID)
                          QmlNotyfyService)
 
     addDeployAPK(${CURRENT_PROJECT} "${CMAKE_CURRENT_LIST_DIR}/android" "digitalface" "${SIGN_PATH}/DigitalFaceMobily.keystore" "${SIGN_STORE_PASSWORD}" "${TARGET_DIR}" "${HANOI_EXTRA_LIBS}")
+    target_link_libraries(${CURRENT_PROJECT} PRIVATE QtAndroidTools)
+
 else()
     # Desctop deploying
     addDeployFromCustomFile("Client" "${CMAKE_SOURCE_DIR}/Deploy/Client.json")
diff --git a/HanoiTowers/client/android/AndroidManifest.xml b/HanoiTowers/client/android/AndroidManifest.xml
index f1556fc..7dd9b9b 100644
--- a/HanoiTowers/client/android/AndroidManifest.xml
+++ b/HanoiTowers/client/android/AndroidManifest.xml
@@ -10,6 +10,12 @@
 
     <supports-screens android:largeScreens="true" android:normalScreens="true" android:anyDensity="true" android:smallScreens="true"/>
     <application android:hardwareAccelerated="true" android:name="org.qtproject.qt5.android.bindings.QtApplication" android:label="-- %%INSERT_APP_NAME%% --" android:extractNativeLibs="true" android:icon="@drawable/icon">
+
+        <!-- Sample AdMob app ID: ca-app-pub-5799112356811682~1226170116 -->
+        <meta-data
+            android:name="com.google.android.gms.ads.APPLICATION_ID"
+            android:value="ca-app-pub-5799112356811682~1226170116"/>
+
         <activity android:configChanges="orientation|uiMode|screenLayout|screenSize|smallestScreenSize|layoutDirection|locale|fontScale|keyboard|keyboardHidden|navigation|mcc|mnc|density" android:name="org.qtproject.qt5.android.bindings.QtActivity" android:label="-- %%INSERT_APP_NAME%% --" android:screenOrientation="landscape" android:launchMode="singleTop">
             <intent-filter>
                 <action android:name="android.intent.action.MAIN"/>
diff --git a/HanoiTowers/client/android/build.gradle b/HanoiTowers/client/android/build.gradle
index b6d056b..2833e51 100644
--- a/HanoiTowers/client/android/build.gradle
+++ b/HanoiTowers/client/android/build.gradle
@@ -18,6 +18,7 @@ apply plugin: 'com.android.application'
 
 dependencies {
     implementation fileTree(dir: 'libs', include: ['*.jar', '*.aar'])
+    implementation 'com.google.android.gms:play-services-ads:20.1.0'
 }
 
 android {
@@ -71,6 +72,7 @@ android {
 
     defaultConfig {
         resConfig "en"
+        multiDexEnabled true
         minSdkVersion = 22
         targetSdkVersion = 30
     }
diff --git a/HanoiTowers/client/android/gradle.properties b/HanoiTowers/client/android/gradle.properties
index fded106..e14afc2 100644
--- a/HanoiTowers/client/android/gradle.properties
+++ b/HanoiTowers/client/android/gradle.properties
@@ -9,3 +9,7 @@ org.gradle.jvmargs=-Xmx2048m
 # build with the same inputs. However, over time, the cache size will
 # grow. Uncomment the following line to enable it.
 #org.gradle.caching=true
+
+android.useAndroidX=true
+
+android.enableJetifier=true
diff --git a/submodules/QtAndroidTools b/submodules/QtAndroidTools
new file mode 160000
index 0000000..fb3474d
--- /dev/null
+++ b/submodules/QtAndroidTools
@@ -0,0 +1 @@
+Subproject commit fb3474dd183727790294e600c07531c20af22eb6

From c521809b11c58b6a0ce3e278ebbc45b013d57018 Mon Sep 17 00:00:00 2001
From: EndrII <EndrIIMail@gmail.com>
Date: Thu, 6 May 2021 18:23:47 +0300
Subject: [PATCH 02/29] added library

---
 CMakeLists.txt | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index d91a987..fcb732b 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -99,7 +99,8 @@ if (HANOI_CLIENT)
     add_subdirectory(submodules/Credits)
 
     if (ANDROID)
-        add_subdirectory(submodules/QtAndroidTools)
+        set(ANDROID_PACKAGE_SOURCE_DIR $(CMAKE_CURRENT_SOURCE_DIR)/HanoiTowers/client/android)
+        add_subdirectory(submodules/QtAndroidTools/QtAndroidTools)
     endif()
 
     add_subdirectory(HanoiTowers/client)

From b1ab2bf0af6a879e98413ccfe6991aa30a6832a7 Mon Sep 17 00:00:00 2001
From: EndrII <EndrIIMail@gmail.com>
Date: Fri, 7 May 2021 09:22:47 +0300
Subject: [PATCH 03/29] full screen mode

---
 HanoiTowers/Protockol/src/userpreview.h        | 4 ++--
 HanoiTowers/client/android/AndroidManifest.xml | 8 ++------
 HanoiTowers/client/main.cpp                    | 2 +-
 HanoiTowers/client/menu/GameStateWidget.qml    | 1 -
 HanoiTowers/client/menu/UserView.qml           | 1 -
 submodules/Patronum                            | 2 +-
 6 files changed, 6 insertions(+), 12 deletions(-)

diff --git a/HanoiTowers/Protockol/src/userpreview.h b/HanoiTowers/Protockol/src/userpreview.h
index 07adce9..ca62271 100644
--- a/HanoiTowers/Protockol/src/userpreview.h
+++ b/HanoiTowers/Protockol/src/userpreview.h
@@ -14,8 +14,8 @@
 #include "hanoitowersprotockol_global.h"
 
 struct HANOITOWERSPROTOCOL_EXPORT UserPreview: public QH::StreamBase {
-    explicit UserPreview();
-    explicit UserPreview(const QString& id);
+    UserPreview();
+    UserPreview(const QString& id);
 
     QString id;
     QString userName;
diff --git a/HanoiTowers/client/android/AndroidManifest.xml b/HanoiTowers/client/android/AndroidManifest.xml
index 7dd9b9b..797f31d 100644
--- a/HanoiTowers/client/android/AndroidManifest.xml
+++ b/HanoiTowers/client/android/AndroidManifest.xml
@@ -10,13 +10,9 @@
 
     <supports-screens android:largeScreens="true" android:normalScreens="true" android:anyDensity="true" android:smallScreens="true"/>
     <application android:hardwareAccelerated="true" android:name="org.qtproject.qt5.android.bindings.QtApplication" android:label="-- %%INSERT_APP_NAME%% --" android:extractNativeLibs="true" android:icon="@drawable/icon">
-
         <!-- Sample AdMob app ID: ca-app-pub-5799112356811682~1226170116 -->
-        <meta-data
-            android:name="com.google.android.gms.ads.APPLICATION_ID"
-            android:value="ca-app-pub-5799112356811682~1226170116"/>
-
-        <activity android:configChanges="orientation|uiMode|screenLayout|screenSize|smallestScreenSize|layoutDirection|locale|fontScale|keyboard|keyboardHidden|navigation|mcc|mnc|density" android:name="org.qtproject.qt5.android.bindings.QtActivity" android:label="-- %%INSERT_APP_NAME%% --" android:screenOrientation="landscape" android:launchMode="singleTop">
+        <meta-data android:name="com.google.android.gms.ads.APPLICATION_ID" android:value="ca-app-pub-5799112356811682~1226170116"/>
+        <activity android:theme="@style/AppTheme.Fullscreen" android:configChanges="orientation|uiMode|screenLayout|screenSize|smallestScreenSize|layoutDirection|locale|fontScale|keyboard|keyboardHidden|navigation|mcc|mnc|density" android:name="org.qtproject.qt5.android.bindings.QtActivity" android:label="-- %%INSERT_APP_NAME%% --" android:screenOrientation="landscape" android:launchMode="singleTop">
             <intent-filter>
                 <action android:name="android.intent.action.MAIN"/>
                 <category android:name="android.intent.category.LAUNCHER"/>
diff --git a/HanoiTowers/client/main.cpp b/HanoiTowers/client/main.cpp
index ae5fab7..c57761d 100644
--- a/HanoiTowers/client/main.cpp
+++ b/HanoiTowers/client/main.cpp
@@ -29,7 +29,7 @@ int main(int argc, char *argv[])
     QLocale locale = QLocale::system();
 
     if(argc > 1) {
-        locale = QString::fromLatin1(argv[1]);
+        locale = QLocale(QString::fromLatin1(argv[1]));
     }
 
     if(!QuasarAppUtils::Locales::init(locale, {":/languages/languages/",
diff --git a/HanoiTowers/client/menu/GameStateWidget.qml b/HanoiTowers/client/menu/GameStateWidget.qml
index 19bb0b9..e3c7c88 100644
--- a/HanoiTowers/client/menu/GameStateWidget.qml
+++ b/HanoiTowers/client/menu/GameStateWidget.qml
@@ -1,6 +1,5 @@
 import QtQuick 2.15
 import QtQuick.Controls 2.15
-import QtQuick.Dialogs 1.3
 import QtQuick.Layouts 1.15
 import QtQuick.Window 2.1
 import ".."
diff --git a/HanoiTowers/client/menu/UserView.qml b/HanoiTowers/client/menu/UserView.qml
index 5c4681e..781b314 100644
--- a/HanoiTowers/client/menu/UserView.qml
+++ b/HanoiTowers/client/menu/UserView.qml
@@ -3,7 +3,6 @@ import QtQuick.Controls 2.15
 import QtQuick.Controls.Material 2.15
 import QtQuick.Layouts 1.15
 import QtQuick.Window 2.15
-import QtQuick.Dialogs 1.1
 
 GridLayout {
     id: mainLayout
diff --git a/submodules/Patronum b/submodules/Patronum
index a7b22da..edafe48 160000
--- a/submodules/Patronum
+++ b/submodules/Patronum
@@ -1 +1 @@
-Subproject commit a7b22dac24bd8e2a079d758d4dde9921fef23056
+Subproject commit edafe48668f01058e724d763669e3af865566edc

From 4c1f9943d78ef8b410faec789d629f78c6c06ddb Mon Sep 17 00:00:00 2001
From: EndrII <EndrIIMail@gmail.com>
Date: Fri, 7 May 2021 10:10:32 +0300
Subject: [PATCH 04/29] new acctivity

---
 CMakeLists.txt                                |  2 +-
 HanoiTowers/client/CMakeLists.txt             |  8 +++
 .../client/android/AndroidManifest.xml        |  2 +-
 .../quasarapp/androidtools/MainActivity.java  | 51 +++++++++++++++++++
 HanoiTowers/client/languages/en.ts            | 24 ++++-----
 HanoiTowers/client/languages/ja.ts            | 24 ++++-----
 HanoiTowers/client/languages/ru.ts            | 24 ++++-----
 HanoiTowers/client/languages/tr.ts            | 24 ++++-----
 HanoiTowers/client/languages/uk.ts            | 24 ++++-----
 9 files changed, 121 insertions(+), 62 deletions(-)
 create mode 100644 HanoiTowers/client/android/src/com/quasarapp/androidtools/MainActivity.java

diff --git a/CMakeLists.txt b/CMakeLists.txt
index fcb732b..cc324f1 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -99,7 +99,7 @@ if (HANOI_CLIENT)
     add_subdirectory(submodules/Credits)
 
     if (ANDROID)
-        set(ANDROID_PACKAGE_SOURCE_DIR $(CMAKE_CURRENT_SOURCE_DIR)/HanoiTowers/client/android)
+        set(ANDROID_PACKAGE_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/HanoiTowers/client/android)
         add_subdirectory(submodules/QtAndroidTools/QtAndroidTools)
     endif()
 
diff --git a/HanoiTowers/client/CMakeLists.txt b/HanoiTowers/client/CMakeLists.txt
index 9490a00..ef52785 100644
--- a/HanoiTowers/client/CMakeLists.txt
+++ b/HanoiTowers/client/CMakeLists.txt
@@ -52,6 +52,14 @@ if (ANDROID)
     addDeployAPK(${CURRENT_PROJECT} "${CMAKE_CURRENT_LIST_DIR}/android" "digitalface" "${SIGN_PATH}/DigitalFaceMobily.keystore" "${SIGN_STORE_PASSWORD}" "${TARGET_DIR}" "${HANOI_EXTRA_LIBS}")
     target_link_libraries(${CURRENT_PROJECT} PRIVATE QtAndroidTools)
 
+    file(GLOB java_files
+       "android/src/com/quasarapp/androidtools/*.java"
+    )
+
+    add_custom_target(${name}Android
+        SOURCES ${java_files}
+    )
+
 else()
     # Desctop deploying
     addDeployFromCustomFile("Client" "${CMAKE_SOURCE_DIR}/Deploy/Client.json")
diff --git a/HanoiTowers/client/android/AndroidManifest.xml b/HanoiTowers/client/android/AndroidManifest.xml
index 797f31d..7fc84bc 100644
--- a/HanoiTowers/client/android/AndroidManifest.xml
+++ b/HanoiTowers/client/android/AndroidManifest.xml
@@ -12,7 +12,7 @@
     <application android:hardwareAccelerated="true" android:name="org.qtproject.qt5.android.bindings.QtApplication" android:label="-- %%INSERT_APP_NAME%% --" android:extractNativeLibs="true" android:icon="@drawable/icon">
         <!-- Sample AdMob app ID: ca-app-pub-5799112356811682~1226170116 -->
         <meta-data android:name="com.google.android.gms.ads.APPLICATION_ID" android:value="ca-app-pub-5799112356811682~1226170116"/>
-        <activity android:theme="@style/AppTheme.Fullscreen" android:configChanges="orientation|uiMode|screenLayout|screenSize|smallestScreenSize|layoutDirection|locale|fontScale|keyboard|keyboardHidden|navigation|mcc|mnc|density" android:name="org.qtproject.qt5.android.bindings.QtActivity" android:label="-- %%INSERT_APP_NAME%% --" android:screenOrientation="landscape" android:launchMode="singleTop">
+        <activity android:configChanges="orientation|uiMode|screenLayout|screenSize|smallestScreenSize|layoutDirection|locale|fontScale|keyboard|keyboardHidden|navigation|mcc|mnc|density" android:name="com.quasarapp.androidtools.MainActivity" android:label="-- %%INSERT_APP_NAME%% --" android:screenOrientation="landscape" android:launchMode="singleTask">
             <intent-filter>
                 <action android:name="android.intent.action.MAIN"/>
                 <category android:name="android.intent.category.LAUNCHER"/>
diff --git a/HanoiTowers/client/android/src/com/quasarapp/androidtools/MainActivity.java b/HanoiTowers/client/android/src/com/quasarapp/androidtools/MainActivity.java
new file mode 100644
index 0000000..00cb417
--- /dev/null
+++ b/HanoiTowers/client/android/src/com/quasarapp/androidtools/MainActivity.java
@@ -0,0 +1,51 @@
+/*
+ * Copyright (C) 2021-2021 QuasarApp.
+ * Distributed under the lgplv3 software license, see the accompanying
+ * Everyone is permitted to copy and distribute verbatim copies
+ * of this license document, but changing it is not allowed.
+*/
+
+package com/quasarapp/androidtools;
+
+import org.qtproject.qt5.android.bindings.QtActivity;
+import android.view.View;
+
+public class MainActivity extends QtActivity
+{
+...
+@Override
+public void onWindowFocusChanged(boolean hasFocus) {
+    super.onWindowFocusChanged(hasFocus);
+    if (hasFocus) {
+        hideSystemUI();
+    }
+}
+
+private void hideSystemUI() {
+    // Enables regular immersive mode.
+    // For "lean back" mode, remove SYSTEM_UI_FLAG_IMMERSIVE.
+    // Or for "sticky immersive," replace it with SYSTEM_UI_FLAG_IMMERSIVE_STICKY
+    View decorView = getWindow().getDecorView();
+    decorView.setSystemUiVisibility(
+            View.SYSTEM_UI_FLAG_IMMERSIVE
+            // Set the content to appear under the system bars so that the
+            // content doesn't resize when the system bars hide and show.
+            | View.SYSTEM_UI_FLAG_LAYOUT_STABLE
+            | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
+            | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
+            // Hide the nav bar and status bar
+            | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
+            | View.SYSTEM_UI_FLAG_FULLSCREEN);
+}
+
+// Shows the system bars by removing all the flags
+// except for the ones that make the content appear under the system bars.
+private void showSystemUI() {
+    View decorView = getWindow().getDecorView();
+    decorView.setSystemUiVisibility(
+            View.SYSTEM_UI_FLAG_LAYOUT_STABLE
+            | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
+            | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);
+}
+
+}
diff --git a/HanoiTowers/client/languages/en.ts b/HanoiTowers/client/languages/en.ts
index 2caf94e..b7ecf91 100644
--- a/HanoiTowers/client/languages/en.ts
+++ b/HanoiTowers/client/languages/en.ts
@@ -192,12 +192,12 @@
         <translation type="vanished">Tower height: </translation>
     </message>
     <message>
-        <location filename="../menu/GameStateWidget.qml" line="34"/>
+        <location filename="../menu/GameStateWidget.qml" line="33"/>
         <source>Tower height:    </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../menu/GameStateWidget.qml" line="63"/>
+        <location filename="../menu/GameStateWidget.qml" line="62"/>
         <source>step </source>
         <translation>step </translation>
     </message>
@@ -595,32 +595,32 @@
 <context>
     <name>UserView</name>
     <message>
-        <location filename="../menu/UserView.qml" line="44"/>
+        <location filename="../menu/UserView.qml" line="43"/>
         <source>Please choose a new Avatar</source>
         <translation>Please choose a new Avatar</translation>
     </message>
     <message>
-        <location filename="../menu/UserView.qml" line="61"/>
+        <location filename="../menu/UserView.qml" line="60"/>
         <source>Id</source>
         <translation>Id</translation>
     </message>
     <message>
-        <location filename="../menu/UserView.qml" line="68"/>
+        <location filename="../menu/UserView.qml" line="67"/>
         <source>Name</source>
         <translation>Name</translation>
     </message>
     <message>
-        <location filename="../menu/UserView.qml" line="75"/>
+        <location filename="../menu/UserView.qml" line="74"/>
         <source>Record</source>
         <translation>Record</translation>
     </message>
     <message>
-        <location filename="../menu/UserView.qml" line="82"/>
+        <location filename="../menu/UserView.qml" line="81"/>
         <source>Online profile</source>
         <translation>Online profile</translation>
     </message>
     <message>
-        <location filename="../menu/UserView.qml" line="141"/>
+        <location filename="../menu/UserView.qml" line="140"/>
         <source>Remove</source>
         <translation>Remove</translation>
     </message>
@@ -629,12 +629,12 @@
         <translation type="vanished">Remove This Profile</translation>
     </message>
     <message>
-        <location filename="../menu/UserView.qml" line="152"/>
+        <location filename="../menu/UserView.qml" line="151"/>
         <source>Restore</source>
         <translation>Restore</translation>
     </message>
     <message>
-        <location filename="../menu/UserView.qml" line="159"/>
+        <location filename="../menu/UserView.qml" line="158"/>
         <source>Accept</source>
         <translation>Accept</translation>
     </message>
@@ -647,12 +647,12 @@
         <translation type="vanished">User data will be changed.</translation>
     </message>
     <message>
-        <location filename="../menu/UserView.qml" line="195"/>
+        <location filename="../menu/UserView.qml" line="194"/>
         <source>Remove %0 user</source>
         <translation>Remove %0 user</translation>
     </message>
     <message>
-        <location filename="../menu/UserView.qml" line="196"/>
+        <location filename="../menu/UserView.qml" line="195"/>
         <source>All saved data and records will be delete, Do you want continuee?</source>
         <translation>All saved data and records will be deleted, Do you want continue?</translation>
     </message>
diff --git a/HanoiTowers/client/languages/ja.ts b/HanoiTowers/client/languages/ja.ts
index e754712..c17fba8 100644
--- a/HanoiTowers/client/languages/ja.ts
+++ b/HanoiTowers/client/languages/ja.ts
@@ -210,12 +210,12 @@
         <translation type="vanished">塔の高さ: </translation>
     </message>
     <message>
-        <location filename="../menu/GameStateWidget.qml" line="34"/>
+        <location filename="../menu/GameStateWidget.qml" line="33"/>
         <source>Tower height:    </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../menu/GameStateWidget.qml" line="63"/>
+        <location filename="../menu/GameStateWidget.qml" line="62"/>
         <source>step </source>
         <translation>ステップ </translation>
     </message>
@@ -644,32 +644,32 @@
 <context>
     <name>UserView</name>
     <message>
-        <location filename="../menu/UserView.qml" line="44"/>
+        <location filename="../menu/UserView.qml" line="43"/>
         <source>Please choose a new Avatar</source>
         <translation>新しいアバターを選んでください</translation>
     </message>
     <message>
-        <location filename="../menu/UserView.qml" line="61"/>
+        <location filename="../menu/UserView.qml" line="60"/>
         <source>Id</source>
         <translation>Id</translation>
     </message>
     <message>
-        <location filename="../menu/UserView.qml" line="68"/>
+        <location filename="../menu/UserView.qml" line="67"/>
         <source>Name</source>
         <translation>名称</translation>
     </message>
     <message>
-        <location filename="../menu/UserView.qml" line="75"/>
+        <location filename="../menu/UserView.qml" line="74"/>
         <source>Record</source>
         <translation>レコード</translation>
     </message>
     <message>
-        <location filename="../menu/UserView.qml" line="82"/>
+        <location filename="../menu/UserView.qml" line="81"/>
         <source>Online profile</source>
         <translation>オンラインプロフィール</translation>
     </message>
     <message>
-        <location filename="../menu/UserView.qml" line="141"/>
+        <location filename="../menu/UserView.qml" line="140"/>
         <source>Remove</source>
         <translation>削除する</translation>
     </message>
@@ -678,12 +678,12 @@
         <translation type="vanished">このプロファイルを削除する</translation>
     </message>
     <message>
-        <location filename="../menu/UserView.qml" line="152"/>
+        <location filename="../menu/UserView.qml" line="151"/>
         <source>Restore</source>
         <translation>戻す</translation>
     </message>
     <message>
-        <location filename="../menu/UserView.qml" line="159"/>
+        <location filename="../menu/UserView.qml" line="158"/>
         <source>Accept</source>
         <translation>受け入れる</translation>
     </message>
@@ -696,12 +696,12 @@
         <translation type="vanished">ユーザーデータが変更されます。</translation>
     </message>
     <message>
-        <location filename="../menu/UserView.qml" line="195"/>
+        <location filename="../menu/UserView.qml" line="194"/>
         <source>Remove %0 user</source>
         <translation>%0ユーザーを削除</translation>
     </message>
     <message>
-        <location filename="../menu/UserView.qml" line="196"/>
+        <location filename="../menu/UserView.qml" line="195"/>
         <source>All saved data and records will be delete, Do you want continuee?</source>
         <translation>すべての保存されたデータとレコードが削除されます、あなたが継続したいですか?</translation>
     </message>
diff --git a/HanoiTowers/client/languages/ru.ts b/HanoiTowers/client/languages/ru.ts
index be0f0f3..03114d5 100644
--- a/HanoiTowers/client/languages/ru.ts
+++ b/HanoiTowers/client/languages/ru.ts
@@ -217,12 +217,12 @@
         <translation type="vanished">Высота башни</translation>
     </message>
     <message>
-        <location filename="../menu/GameStateWidget.qml" line="34"/>
+        <location filename="../menu/GameStateWidget.qml" line="33"/>
         <source>Tower height:    </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../menu/GameStateWidget.qml" line="63"/>
+        <location filename="../menu/GameStateWidget.qml" line="62"/>
         <source>step </source>
         <translation>Шаг </translation>
     </message>
@@ -647,32 +647,32 @@
 <context>
     <name>UserView</name>
     <message>
-        <location filename="../menu/UserView.qml" line="44"/>
+        <location filename="../menu/UserView.qml" line="43"/>
         <source>Please choose a new Avatar</source>
         <translation>Пожалуйста выберете новый аватар</translation>
     </message>
     <message>
-        <location filename="../menu/UserView.qml" line="61"/>
+        <location filename="../menu/UserView.qml" line="60"/>
         <source>Id</source>
         <translation>Id</translation>
     </message>
     <message>
-        <location filename="../menu/UserView.qml" line="68"/>
+        <location filename="../menu/UserView.qml" line="67"/>
         <source>Name</source>
         <translation>Имя</translation>
     </message>
     <message>
-        <location filename="../menu/UserView.qml" line="75"/>
+        <location filename="../menu/UserView.qml" line="74"/>
         <source>Record</source>
         <translation>Рекорд</translation>
     </message>
     <message>
-        <location filename="../menu/UserView.qml" line="82"/>
+        <location filename="../menu/UserView.qml" line="81"/>
         <source>Online profile</source>
         <translation>Онлайн профиль</translation>
     </message>
     <message>
-        <location filename="../menu/UserView.qml" line="141"/>
+        <location filename="../menu/UserView.qml" line="140"/>
         <source>Remove</source>
         <translation>Удалить</translation>
     </message>
@@ -681,12 +681,12 @@
         <translation type="vanished">Удалить это профиль</translation>
     </message>
     <message>
-        <location filename="../menu/UserView.qml" line="152"/>
+        <location filename="../menu/UserView.qml" line="151"/>
         <source>Restore</source>
         <translation>Восстановить</translation>
     </message>
     <message>
-        <location filename="../menu/UserView.qml" line="159"/>
+        <location filename="../menu/UserView.qml" line="158"/>
         <source>Accept</source>
         <translation>Принять</translation>
     </message>
@@ -699,12 +699,12 @@
         <translation type="vanished">Данные пользователя изменены</translation>
     </message>
     <message>
-        <location filename="../menu/UserView.qml" line="195"/>
+        <location filename="../menu/UserView.qml" line="194"/>
         <source>Remove %0 user</source>
         <translation>Удалить %0 пользователя</translation>
     </message>
     <message>
-        <location filename="../menu/UserView.qml" line="196"/>
+        <location filename="../menu/UserView.qml" line="195"/>
         <source>All saved data and records will be delete, Do you want continuee?</source>
         <translation>Все сохраненные данные и записи будут удалены. Продолжить?</translation>
     </message>
diff --git a/HanoiTowers/client/languages/tr.ts b/HanoiTowers/client/languages/tr.ts
index 9b581d3..56c811f 100644
--- a/HanoiTowers/client/languages/tr.ts
+++ b/HanoiTowers/client/languages/tr.ts
@@ -218,12 +218,12 @@ Bu seviye için minimum adımlar: %2</translation>
         <translation type="vanished">Kule yüksekliği: </translation>
     </message>
     <message>
-        <location filename="../menu/GameStateWidget.qml" line="34"/>
+        <location filename="../menu/GameStateWidget.qml" line="33"/>
         <source>Tower height:    </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../menu/GameStateWidget.qml" line="63"/>
+        <location filename="../menu/GameStateWidget.qml" line="62"/>
         <source>step </source>
         <translation>adım </translation>
     </message>
@@ -648,32 +648,32 @@ Bu seviye için minimum adımlar: %2</translation>
 <context>
     <name>UserView</name>
     <message>
-        <location filename="../menu/UserView.qml" line="44"/>
+        <location filename="../menu/UserView.qml" line="43"/>
         <source>Please choose a new Avatar</source>
         <translation>Lütfen yeni bir Avatar seçin</translation>
     </message>
     <message>
-        <location filename="../menu/UserView.qml" line="61"/>
+        <location filename="../menu/UserView.qml" line="60"/>
         <source>Id</source>
         <translation>Id</translation>
     </message>
     <message>
-        <location filename="../menu/UserView.qml" line="68"/>
+        <location filename="../menu/UserView.qml" line="67"/>
         <source>Name</source>
         <translation>İsim</translation>
     </message>
     <message>
-        <location filename="../menu/UserView.qml" line="75"/>
+        <location filename="../menu/UserView.qml" line="74"/>
         <source>Record</source>
         <translation>Kayıt</translation>
     </message>
     <message>
-        <location filename="../menu/UserView.qml" line="82"/>
+        <location filename="../menu/UserView.qml" line="81"/>
         <source>Online profile</source>
         <translation>Çevrimiçi profil</translation>
     </message>
     <message>
-        <location filename="../menu/UserView.qml" line="141"/>
+        <location filename="../menu/UserView.qml" line="140"/>
         <source>Remove</source>
         <translation>Kaldırmak</translation>
     </message>
@@ -682,12 +682,12 @@ Bu seviye için minimum adımlar: %2</translation>
         <translation type="vanished">Bu Profili Kaldır</translation>
     </message>
     <message>
-        <location filename="../menu/UserView.qml" line="152"/>
+        <location filename="../menu/UserView.qml" line="151"/>
         <source>Restore</source>
         <translation>Onarmak</translation>
     </message>
     <message>
-        <location filename="../menu/UserView.qml" line="159"/>
+        <location filename="../menu/UserView.qml" line="158"/>
         <source>Accept</source>
         <translation>Kabul etmek</translation>
     </message>
@@ -700,12 +700,12 @@ Bu seviye için minimum adımlar: %2</translation>
         <translation type="vanished">Kullanıcı verileri değiştirilecek.</translation>
     </message>
     <message>
-        <location filename="../menu/UserView.qml" line="195"/>
+        <location filename="../menu/UserView.qml" line="194"/>
         <source>Remove %0 user</source>
         <translation>%0 kullanıcıyı kaldır</translation>
     </message>
     <message>
-        <location filename="../menu/UserView.qml" line="196"/>
+        <location filename="../menu/UserView.qml" line="195"/>
         <source>All saved data and records will be delete, Do you want continuee?</source>
         <translation>Kaydedilen tüm veriler ve kayıtlar silinecek, devam etmek istiyor musunuz?</translation>
     </message>
diff --git a/HanoiTowers/client/languages/uk.ts b/HanoiTowers/client/languages/uk.ts
index e1718d8..3656c4a 100644
--- a/HanoiTowers/client/languages/uk.ts
+++ b/HanoiTowers/client/languages/uk.ts
@@ -220,12 +220,12 @@
         <translation type="vanished">Висота вежі: </translation>
     </message>
     <message>
-        <location filename="../menu/GameStateWidget.qml" line="34"/>
+        <location filename="../menu/GameStateWidget.qml" line="33"/>
         <source>Tower height:    </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../menu/GameStateWidget.qml" line="63"/>
+        <location filename="../menu/GameStateWidget.qml" line="62"/>
         <source>step </source>
         <translation>крок </translation>
     </message>
@@ -650,32 +650,32 @@
 <context>
     <name>UserView</name>
     <message>
-        <location filename="../menu/UserView.qml" line="44"/>
+        <location filename="../menu/UserView.qml" line="43"/>
         <source>Please choose a new Avatar</source>
         <translation>Виберіть новий Аватар</translation>
     </message>
     <message>
-        <location filename="../menu/UserView.qml" line="61"/>
+        <location filename="../menu/UserView.qml" line="60"/>
         <source>Id</source>
         <translation>Id</translation>
     </message>
     <message>
-        <location filename="../menu/UserView.qml" line="68"/>
+        <location filename="../menu/UserView.qml" line="67"/>
         <source>Name</source>
         <translation>Ім&apos;я</translation>
     </message>
     <message>
-        <location filename="../menu/UserView.qml" line="75"/>
+        <location filename="../menu/UserView.qml" line="74"/>
         <source>Record</source>
         <translation>Рекорд</translation>
     </message>
     <message>
-        <location filename="../menu/UserView.qml" line="82"/>
+        <location filename="../menu/UserView.qml" line="81"/>
         <source>Online profile</source>
         <translation>Онлайн-профіль</translation>
     </message>
     <message>
-        <location filename="../menu/UserView.qml" line="141"/>
+        <location filename="../menu/UserView.qml" line="140"/>
         <source>Remove</source>
         <translation>Видалити</translation>
     </message>
@@ -684,12 +684,12 @@
         <translation type="vanished">Видалити цей профіль</translation>
     </message>
     <message>
-        <location filename="../menu/UserView.qml" line="152"/>
+        <location filename="../menu/UserView.qml" line="151"/>
         <source>Restore</source>
         <translation>Відновлювати</translation>
     </message>
     <message>
-        <location filename="../menu/UserView.qml" line="159"/>
+        <location filename="../menu/UserView.qml" line="158"/>
         <source>Accept</source>
         <translation>Прийміть</translation>
     </message>
@@ -702,12 +702,12 @@
         <translation type="vanished">Дані користувача буде змінено.</translation>
     </message>
     <message>
-        <location filename="../menu/UserView.qml" line="195"/>
+        <location filename="../menu/UserView.qml" line="194"/>
         <source>Remove %0 user</source>
         <translation>Видалити користувача %0</translation>
     </message>
     <message>
-        <location filename="../menu/UserView.qml" line="196"/>
+        <location filename="../menu/UserView.qml" line="195"/>
         <source>All saved data and records will be delete, Do you want continuee?</source>
         <translation>Усі збережені дані та записи будуть видалені. Продовжити?</translation>
     </message>

From 63f872a8b8ad9783645aafdf330313b5c46a61be Mon Sep 17 00:00:00 2001
From: EndrII <EndrIIMail@gmail.com>
Date: Fri, 7 May 2021 10:13:53 +0300
Subject: [PATCH 05/29] simple fix activyty class

---
 .../android/src/com/quasarapp/androidtools/MainActivity.java    | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/HanoiTowers/client/android/src/com/quasarapp/androidtools/MainActivity.java b/HanoiTowers/client/android/src/com/quasarapp/androidtools/MainActivity.java
index 00cb417..22920b1 100644
--- a/HanoiTowers/client/android/src/com/quasarapp/androidtools/MainActivity.java
+++ b/HanoiTowers/client/android/src/com/quasarapp/androidtools/MainActivity.java
@@ -5,7 +5,7 @@
  * of this license document, but changing it is not allowed.
 */
 
-package com/quasarapp/androidtools;
+package com.quasarapp.androidtools;
 
 import org.qtproject.qt5.android.bindings.QtActivity;
 import android.view.View;

From 839daa1011d42d639e48c0da45ce089be2d682b7 Mon Sep 17 00:00:00 2001
From: EndrII <EndrIIMail@gmail.com>
Date: Fri, 7 May 2021 10:19:45 +0300
Subject: [PATCH 06/29] fix activyty

---
 .../android/src/com/quasarapp/androidtools/MainActivity.java     | 1 -
 1 file changed, 1 deletion(-)

diff --git a/HanoiTowers/client/android/src/com/quasarapp/androidtools/MainActivity.java b/HanoiTowers/client/android/src/com/quasarapp/androidtools/MainActivity.java
index 22920b1..d9b7bb6 100644
--- a/HanoiTowers/client/android/src/com/quasarapp/androidtools/MainActivity.java
+++ b/HanoiTowers/client/android/src/com/quasarapp/androidtools/MainActivity.java
@@ -12,7 +12,6 @@ import android.view.View;
 
 public class MainActivity extends QtActivity
 {
-...
 @Override
 public void onWindowFocusChanged(boolean hasFocus) {
     super.onWindowFocusChanged(hasFocus);

From 7d9c12315eeb92239425ad9ae8e9a94c8d1198df Mon Sep 17 00:00:00 2001
From: EndrII <EndrIIMail@gmail.com>
Date: Fri, 7 May 2021 10:31:07 +0300
Subject: [PATCH 07/29] disable admod

---
 CMakeLists.txt                    | 8 ++++----
 HanoiTowers/client/CMakeLists.txt | 2 +-
 2 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index cc324f1..a917a40 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -98,10 +98,10 @@ if (HANOI_CLIENT)
     add_subdirectory(submodules/ViewSolutions)
     add_subdirectory(submodules/Credits)
 
-    if (ANDROID)
-        set(ANDROID_PACKAGE_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/HanoiTowers/client/android)
-        add_subdirectory(submodules/QtAndroidTools/QtAndroidTools)
-    endif()
+#    if (ANDROID)
+#        set(ANDROID_PACKAGE_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/HanoiTowers/client/android)
+#        add_subdirectory(submodules/QtAndroidTools/QtAndroidTools)
+#    endif()
 
     add_subdirectory(HanoiTowers/client)
 
diff --git a/HanoiTowers/client/CMakeLists.txt b/HanoiTowers/client/CMakeLists.txt
index ef52785..46c63bb 100644
--- a/HanoiTowers/client/CMakeLists.txt
+++ b/HanoiTowers/client/CMakeLists.txt
@@ -50,7 +50,7 @@ if (ANDROID)
                          QmlNotyfyService)
 
     addDeployAPK(${CURRENT_PROJECT} "${CMAKE_CURRENT_LIST_DIR}/android" "digitalface" "${SIGN_PATH}/DigitalFaceMobily.keystore" "${SIGN_STORE_PASSWORD}" "${TARGET_DIR}" "${HANOI_EXTRA_LIBS}")
-    target_link_libraries(${CURRENT_PROJECT} PRIVATE QtAndroidTools)
+#    target_link_libraries(${CURRENT_PROJECT} PRIVATE QtAndroidTools)
 
     file(GLOB java_files
        "android/src/com/quasarapp/androidtools/*.java"

From dfaeb2c4c890c85468fc0ec48d4bd6f84e7f3cc3 Mon Sep 17 00:00:00 2001
From: EndrII <EndrIIMail@gmail.com>
Date: Fri, 7 May 2021 12:20:46 +0300
Subject: [PATCH 08/29] disable hideSystemElements

---
 .../src/com/quasarapp/androidtools/MainActivity.java        | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/HanoiTowers/client/android/src/com/quasarapp/androidtools/MainActivity.java b/HanoiTowers/client/android/src/com/quasarapp/androidtools/MainActivity.java
index d9b7bb6..fc9a919 100644
--- a/HanoiTowers/client/android/src/com/quasarapp/androidtools/MainActivity.java
+++ b/HanoiTowers/client/android/src/com/quasarapp/androidtools/MainActivity.java
@@ -15,9 +15,9 @@ public class MainActivity extends QtActivity
 @Override
 public void onWindowFocusChanged(boolean hasFocus) {
     super.onWindowFocusChanged(hasFocus);
-    if (hasFocus) {
-        hideSystemUI();
-    }
+//    if (hasFocus) {
+//        hideSystemUI();
+//    }
 }
 
 private void hideSystemUI() {

From ca2abe68c887ee35535a6f9cdcd9475e09b4a571 Mon Sep 17 00:00:00 2001
From: EndrII <EndrIIMail@gmail.com>
Date: Fri, 7 May 2021 12:47:15 +0300
Subject: [PATCH 09/29] test commit

---
 .gitignore                                    |  1 +
 CMakeLists.txt                                |  8 ++--
 HanoiTowers/client/CMakeLists.txt             |  5 +-
 HanoiTowers/client/activityhandler.cpp        | 48 +++++++++++++++++++
 HanoiTowers/client/activityhandler.h          | 36 ++++++++++++++
 .../quasarapp/androidtools/MainActivity.java  |  6 +--
 6 files changed, 96 insertions(+), 8 deletions(-)
 create mode 100644 HanoiTowers/client/activityhandler.cpp
 create mode 100644 HanoiTowers/client/activityhandler.h

diff --git a/.gitignore b/.gitignore
index dcf0c87..f835b36 100644
--- a/.gitignore
+++ b/.gitignore
@@ -53,6 +53,7 @@ installer/packages/HanoiTowers/parts
 installer/packages/HanoiTowers/prime
 installer/packages/HanoiTowers/stage
 installer/packages/HanoiTowers/data/*
+HanoiTowers/client/android/src/com/falsinsoft/
 .snapcraft
 Distro 
 # QtCreator
diff --git a/CMakeLists.txt b/CMakeLists.txt
index a917a40..cc324f1 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -98,10 +98,10 @@ if (HANOI_CLIENT)
     add_subdirectory(submodules/ViewSolutions)
     add_subdirectory(submodules/Credits)
 
-#    if (ANDROID)
-#        set(ANDROID_PACKAGE_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/HanoiTowers/client/android)
-#        add_subdirectory(submodules/QtAndroidTools/QtAndroidTools)
-#    endif()
+    if (ANDROID)
+        set(ANDROID_PACKAGE_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/HanoiTowers/client/android)
+        add_subdirectory(submodules/QtAndroidTools/QtAndroidTools)
+    endif()
 
     add_subdirectory(HanoiTowers/client)
 
diff --git a/HanoiTowers/client/CMakeLists.txt b/HanoiTowers/client/CMakeLists.txt
index 46c63bb..b29fc79 100644
--- a/HanoiTowers/client/CMakeLists.txt
+++ b/HanoiTowers/client/CMakeLists.txt
@@ -49,8 +49,11 @@ if (ANDROID)
                          Credits
                          QmlNotyfyService)
 
+    find_package(QT NAMES Qt6 Qt5 COMPONENTS AndroidExtras REQUIRED)
+    find_package(Qt${QT_VERSION_MAJOR} COMPONENTS AndroidExtras REQUIRED)
+
     addDeployAPK(${CURRENT_PROJECT} "${CMAKE_CURRENT_LIST_DIR}/android" "digitalface" "${SIGN_PATH}/DigitalFaceMobily.keystore" "${SIGN_STORE_PASSWORD}" "${TARGET_DIR}" "${HANOI_EXTRA_LIBS}")
-#    target_link_libraries(${CURRENT_PROJECT} PRIVATE QtAndroidTools)
+    target_link_libraries(${CURRENT_PROJECT} PRIVATE QtAndroidTools AndroidExtras)
 
     file(GLOB java_files
        "android/src/com/quasarapp/androidtools/*.java"
diff --git a/HanoiTowers/client/activityhandler.cpp b/HanoiTowers/client/activityhandler.cpp
new file mode 100644
index 0000000..342291f
--- /dev/null
+++ b/HanoiTowers/client/activityhandler.cpp
@@ -0,0 +1,48 @@
+/*
+ * Copyright (C) 2021-2021 QuasarApp.
+ * Distributed under the lgplv3 software license, see the accompanying
+ * Everyone is permitted to copy and distribute verbatim copies
+ * of this license document, but changing it is not allowed.
+*/
+
+#ifndef Q_OS_ANDROID
+
+#include "activityhandler.h"
+
+#include <QAndroidIntent>
+
+const int REQUEST_CODE = 123;
+const jint RESULT_OK = QAndroidJniObject::getStaticField<jint>("android/app/Activity", "RESULT_OK");
+ActivityHandler *ActivityHandler::m_instance = nullptr;
+
+ActivityHandler::ActivityHandler(QObject *parent) : QObject(parent) {
+    m_instance = this;
+}
+
+void ActivityHandler::showSecondActivity() {
+    QAndroidIntent activityIntent(QtAndroid::androidActivity().object(),
+                                  "org/qtproject/example/activityhandler/CustomActivity");
+
+    QtAndroid::startActivity(
+            activityIntent.handle(), REQUEST_CODE,
+            [this](int requestCode, int resultCode, const QAndroidJniObject &data) {
+                activityReceiver(requestCode, resultCode, data);
+            });
+}
+
+void ActivityHandler::activityReceiver(int requestCode,
+                                       int resultCode,
+                                       const QAndroidJniObject &data) {
+    if (requestCode == REQUEST_CODE) {
+        if (resultCode == RESULT_OK) {
+            const QAndroidJniObject key = QAndroidJniObject::fromString("message");
+            const QAndroidJniObject message = data.callObjectMethod(
+                    "getStringExtra", "(Ljava/lang/String;)Ljava/lang/String;", key.object());
+            if (message.isValid())
+                emit ActivityHandler::instance()->receiveFromActivityResult(message.toString());
+        } else {
+            emit ActivityHandler::instance()->receiveFromActivityResult("Rejected!");
+        }
+    }
+}
+#endif
diff --git a/HanoiTowers/client/activityhandler.h b/HanoiTowers/client/activityhandler.h
new file mode 100644
index 0000000..cf34dc2
--- /dev/null
+++ b/HanoiTowers/client/activityhandler.h
@@ -0,0 +1,36 @@
+/*
+ * Copyright (C) 2021-2021 QuasarApp.
+ * Distributed under the lgplv3 software license, see the accompanying
+ * Everyone is permitted to copy and distribute verbatim copies
+ * of this license document, but changing it is not allowed.
+*/
+
+
+#ifndef ACTIVITYHANDLER_H
+#define ACTIVITYHANDLER_H
+
+#ifndef Q_OS_ANDROID
+#include <QObject>
+#include <QtAndroid>
+
+class ActivityHandler : public QObject
+{
+    Q_OBJECT
+
+public:
+    ActivityHandler(QObject *parent = nullptr);
+    static ActivityHandler *instance() { return m_instance; }
+
+    Q_INVOKABLE void showSecondActivity();
+    void activityReceiver(int requestCode, int resultCode, const QAndroidJniObject &data);
+
+signals:
+    void receiveFromActivityResult(const QString &message);
+
+private:
+    static ActivityHandler *m_instance;
+};
+
+#endif
+
+#endif // ACTIVITYHANDLER_H
diff --git a/HanoiTowers/client/android/src/com/quasarapp/androidtools/MainActivity.java b/HanoiTowers/client/android/src/com/quasarapp/androidtools/MainActivity.java
index fc9a919..d9b7bb6 100644
--- a/HanoiTowers/client/android/src/com/quasarapp/androidtools/MainActivity.java
+++ b/HanoiTowers/client/android/src/com/quasarapp/androidtools/MainActivity.java
@@ -15,9 +15,9 @@ public class MainActivity extends QtActivity
 @Override
 public void onWindowFocusChanged(boolean hasFocus) {
     super.onWindowFocusChanged(hasFocus);
-//    if (hasFocus) {
-//        hideSystemUI();
-//    }
+    if (hasFocus) {
+        hideSystemUI();
+    }
 }
 
 private void hideSystemUI() {

From 8e14b711cd61b1ce8ab8d7bf1f9b3df12f40bd40 Mon Sep 17 00:00:00 2001
From: EndrII <EndrIIMail@gmail.com>
Date: Fri, 7 May 2021 17:38:56 +0300
Subject: [PATCH 10/29] link android extras

---
 HanoiTowers/client/CMakeLists.txt      | 2 +-
 HanoiTowers/client/activityhandler.cpp | 5 +++--
 HanoiTowers/client/activityhandler.h   | 4 ++--
 3 files changed, 6 insertions(+), 5 deletions(-)

diff --git a/HanoiTowers/client/CMakeLists.txt b/HanoiTowers/client/CMakeLists.txt
index b29fc79..9eb9329 100644
--- a/HanoiTowers/client/CMakeLists.txt
+++ b/HanoiTowers/client/CMakeLists.txt
@@ -53,7 +53,7 @@ if (ANDROID)
     find_package(Qt${QT_VERSION_MAJOR} COMPONENTS AndroidExtras REQUIRED)
 
     addDeployAPK(${CURRENT_PROJECT} "${CMAKE_CURRENT_LIST_DIR}/android" "digitalface" "${SIGN_PATH}/DigitalFaceMobily.keystore" "${SIGN_STORE_PASSWORD}" "${TARGET_DIR}" "${HANOI_EXTRA_LIBS}")
-    target_link_libraries(${CURRENT_PROJECT} PRIVATE QtAndroidTools AndroidExtras)
+    target_link_libraries(${CURRENT_PROJECT} PRIVATE QtAndroidTools Qt${QT_VERSION_MAJOR}::AndroidExtras)
 
     file(GLOB java_files
        "android/src/com/quasarapp/androidtools/*.java"
diff --git a/HanoiTowers/client/activityhandler.cpp b/HanoiTowers/client/activityhandler.cpp
index 342291f..27b8043 100644
--- a/HanoiTowers/client/activityhandler.cpp
+++ b/HanoiTowers/client/activityhandler.cpp
@@ -5,14 +5,15 @@
  * of this license document, but changing it is not allowed.
 */
 
-#ifndef Q_OS_ANDROID
-
 #include "activityhandler.h"
 
+#ifdef Q_OS_ANDROID
+
 #include <QAndroidIntent>
 
 const int REQUEST_CODE = 123;
 const jint RESULT_OK = QAndroidJniObject::getStaticField<jint>("android/app/Activity", "RESULT_OK");
+
 ActivityHandler *ActivityHandler::m_instance = nullptr;
 
 ActivityHandler::ActivityHandler(QObject *parent) : QObject(parent) {
diff --git a/HanoiTowers/client/activityhandler.h b/HanoiTowers/client/activityhandler.h
index cf34dc2..34f266d 100644
--- a/HanoiTowers/client/activityhandler.h
+++ b/HanoiTowers/client/activityhandler.h
@@ -8,9 +8,9 @@
 
 #ifndef ACTIVITYHANDLER_H
 #define ACTIVITYHANDLER_H
-
-#ifndef Q_OS_ANDROID
 #include <QObject>
+
+#ifdef Q_OS_ANDROID
 #include <QtAndroid>
 
 class ActivityHandler : public QObject

From e85959099c454f59187bfad94a1f95d19a35c89d Mon Sep 17 00:00:00 2001
From: EndrII <EndrIIMail@gmail.com>
Date: Fri, 7 May 2021 17:53:34 +0300
Subject: [PATCH 11/29] use a new activity handler

---
 HanoiTowers/client/main.cpp | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/HanoiTowers/client/main.cpp b/HanoiTowers/client/main.cpp
index c57761d..1540d7b 100644
--- a/HanoiTowers/client/main.cpp
+++ b/HanoiTowers/client/main.cpp
@@ -12,6 +12,7 @@
 #include <QQmlApplicationEngine>
 #include <QQmlComponent>
 #include <QQmlContext>
+#include "activityhandler.h"
 #include "hanoitowers.h"
 #include <QTranslator>
 #include <qmlnotifyservice.h>
@@ -51,6 +52,12 @@ int main(int argc, char *argv[])
         return 2;
     }
 
+#ifdef Q_OS_ANDROID
+
+    ActivityHandler *activityHandler = new ActivityHandler(&app);
+    engine.rootContext()->setContextProperty(QLatin1String("activityHandler"), activityHandler);
+#endif
+
     root->setContextProperty("backEnd", &back);
     root->setContextProperty("OnlineStatusQml", QVariant::fromValue(OnlineStatusQml{}));
 

From b68ab9327a34e42aae32e1e44364acf51577e9e3 Mon Sep 17 00:00:00 2001
From: EndrII <EndrIIMail@gmail.com>
Date: Fri, 7 May 2021 18:16:15 +0300
Subject: [PATCH 12/29] activity to default

---
 HanoiTowers/client/android/AndroidManifest.xml | 2 +-
 HanoiTowers/client/main.cpp                    | 1 -
 HanoiTowers/client/menu/UserView.qml           | 1 +
 3 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/HanoiTowers/client/android/AndroidManifest.xml b/HanoiTowers/client/android/AndroidManifest.xml
index 7fc84bc..0d45963 100644
--- a/HanoiTowers/client/android/AndroidManifest.xml
+++ b/HanoiTowers/client/android/AndroidManifest.xml
@@ -12,7 +12,7 @@
     <application android:hardwareAccelerated="true" android:name="org.qtproject.qt5.android.bindings.QtApplication" android:label="-- %%INSERT_APP_NAME%% --" android:extractNativeLibs="true" android:icon="@drawable/icon">
         <!-- Sample AdMob app ID: ca-app-pub-5799112356811682~1226170116 -->
         <meta-data android:name="com.google.android.gms.ads.APPLICATION_ID" android:value="ca-app-pub-5799112356811682~1226170116"/>
-        <activity android:configChanges="orientation|uiMode|screenLayout|screenSize|smallestScreenSize|layoutDirection|locale|fontScale|keyboard|keyboardHidden|navigation|mcc|mnc|density" android:name="com.quasarapp.androidtools.MainActivity" android:label="-- %%INSERT_APP_NAME%% --" android:screenOrientation="landscape" android:launchMode="singleTask">
+        <activity android:configChanges="orientation|uiMode|screenLayout|screenSize|smallestScreenSize|layoutDirection|locale|fontScale|keyboard|keyboardHidden|navigation|mcc|mnc|density" android:name="com.quasarapp.androidtools.MainActivity" android:label="-- %%INSERT_APP_NAME%% --" android:screenOrientation="landscape" android:launchMode="singleTop">
             <intent-filter>
                 <action android:name="android.intent.action.MAIN"/>
                 <category android:name="android.intent.category.LAUNCHER"/>
diff --git a/HanoiTowers/client/main.cpp b/HanoiTowers/client/main.cpp
index 1540d7b..b84ec9a 100644
--- a/HanoiTowers/client/main.cpp
+++ b/HanoiTowers/client/main.cpp
@@ -53,7 +53,6 @@ int main(int argc, char *argv[])
     }
 
 #ifdef Q_OS_ANDROID
-
     ActivityHandler *activityHandler = new ActivityHandler(&app);
     engine.rootContext()->setContextProperty(QLatin1String("activityHandler"), activityHandler);
 #endif
diff --git a/HanoiTowers/client/menu/UserView.qml b/HanoiTowers/client/menu/UserView.qml
index 781b314..353f8bb 100644
--- a/HanoiTowers/client/menu/UserView.qml
+++ b/HanoiTowers/client/menu/UserView.qml
@@ -3,6 +3,7 @@ import QtQuick.Controls 2.15
 import QtQuick.Controls.Material 2.15
 import QtQuick.Layouts 1.15
 import QtQuick.Window 2.15
+import QtQuick.Dialogs 1.2
 
 GridLayout {
     id: mainLayout

From 1c6b3390e7ccdaf21d0122ea8ec5d80a6448716e Mon Sep 17 00:00:00 2001
From: EndrII <EndrIIMail@gmail.com>
Date: Fri, 7 May 2021 22:36:47 +0300
Subject: [PATCH 13/29] first dialog

---
 .gitignore                                    |  3 ++
 CMakeLists.txt                                | 23 ++++++++-
 .../client/admod/AdMobInterstitialAndroid.qml | 11 +++++
 HanoiTowers/client/hanoitowers.cpp            |  8 ++++
 HanoiTowers/client/hanoitowers.h              |  2 +
 HanoiTowers/client/languages/en.ts            | 48 +++++++++----------
 HanoiTowers/client/languages/ja.ts            | 48 +++++++++----------
 HanoiTowers/client/languages/ru.ts            | 48 +++++++++----------
 HanoiTowers/client/languages/tr.ts            | 48 +++++++++----------
 HanoiTowers/client/languages/uk.ts            | 48 +++++++++----------
 HanoiTowers/client/main.cpp                   |  4 ++
 HanoiTowers/client/main.qml                   | 17 +++++++
 HanoiTowers/client/qml.qrc                    |  1 +
 submodules/QMLLoginView                       |  2 +-
 submodules/SimpleQmlNotify                    |  2 +-
 submodules/ViewSolutions                      |  2 +-
 16 files changed, 191 insertions(+), 124 deletions(-)
 create mode 100644 HanoiTowers/client/admod/AdMobInterstitialAndroid.qml

diff --git a/.gitignore b/.gitignore
index f835b36..70f48b9 100644
--- a/.gitignore
+++ b/.gitignore
@@ -54,6 +54,9 @@ installer/packages/HanoiTowers/prime
 installer/packages/HanoiTowers/stage
 installer/packages/HanoiTowers/data/*
 HanoiTowers/client/android/src/com/falsinsoft/
+HanoiTowers/client/android/aidl/
+HanoiTowers/client/android/src/com/google/
+
 .snapcraft
 Distro 
 # QtCreator
diff --git a/CMakeLists.txt b/CMakeLists.txt
index cc324f1..d11df5b 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -99,8 +99,29 @@ if (HANOI_CLIENT)
     add_subdirectory(submodules/Credits)
 
     if (ANDROID)
-        set(ANDROID_PACKAGE_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/HanoiTowers/client/android)
+        set(ANDROID_PACKAGE_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/HanoiTowers/client/android")
+        set(QTAT_APP_PERMISSIONS ON)
+        set(QTAT_APK_EXPANSION_FILES ON)
+        set(QTAT_APK_INFO ON)
+        set(QTAT_SCREEN ON)
+        set(QTAT_SYSTEM ON)
+        set(QTAT_BATTERY_STATE ON)
+        set(QTAT_SIGNAL_STRENGTH ON)
+        set(QTAT_IMAGES ON)
+        set(QTAT_NOTIFICATION ON)
+        set(QTAT_ADMOB_BANNER ON)
+        set(QTAT_ADMOB_INTERSTITIAL ON)
+        set(QTAT_ADMOB_REWARDED_VIDEO ON)
+        set(QTAT_PLAY_STORE ON)
+        set(QTAT_GOOGLE_ACCOUNT ON)
+        set(QTAT_GOOGLE_DRIVE ON)
+        set(QTAT_SHARING ON)
+        set(QTAT_USER_MESSAGING_PLATFORM ON)
+        set(QTAT_AUDIO ON)
+
         add_subdirectory(submodules/QtAndroidTools/QtAndroidTools)
+        include_directories(submodules/QtAndroidTools/QtAndroidTools)
+
     endif()
 
     add_subdirectory(HanoiTowers/client)
diff --git a/HanoiTowers/client/admod/AdMobInterstitialAndroid.qml b/HanoiTowers/client/admod/AdMobInterstitialAndroid.qml
new file mode 100644
index 0000000..a4f6457
--- /dev/null
+++ b/HanoiTowers/client/admod/AdMobInterstitialAndroid.qml
@@ -0,0 +1,11 @@
+import QtQuick 2.15
+import QtAndroidTools 1.0
+
+QtAndroidAdMobInterstitial {
+    id: interstitial
+    unitId: "ca-app-pub-5799112356811682/5211864198"
+    nonPersonalizedAds: false
+    onLoading: interstitialState.text = "Loading"
+    onLoaded: interstitialState.text = "Loaded"
+    onLoadError: interstitialState.text = "Error " + errorId
+}
diff --git a/HanoiTowers/client/hanoitowers.cpp b/HanoiTowers/client/hanoitowers.cpp
index c2fa98e..739109c 100644
--- a/HanoiTowers/client/hanoitowers.cpp
+++ b/HanoiTowers/client/hanoitowers.cpp
@@ -220,6 +220,14 @@ QObject *HanoiTowers::selectedUser() {
     return &_selectedUser;
 }
 
+bool HanoiTowers::isAndroid() const{
+#ifdef Q_OS_ANDROID
+    return true;
+#else
+    return false;
+#endif
+}
+
 void HanoiTowers::handleChangeName(const QString &) {
     emit profileChanged();
 }
diff --git a/HanoiTowers/client/hanoitowers.h b/HanoiTowers/client/hanoitowers.h
index da289d3..4913668 100644
--- a/HanoiTowers/client/hanoitowers.h
+++ b/HanoiTowers/client/hanoitowers.h
@@ -108,6 +108,8 @@ public:
     QObject *bestUser();
     QObject *selectedUser();
 
+    Q_INVOKABLE bool isAndroid() const;
+
 
 
 public slots:
diff --git a/HanoiTowers/client/languages/en.ts b/HanoiTowers/client/languages/en.ts
index b7ecf91..23a9101 100644
--- a/HanoiTowers/client/languages/en.ts
+++ b/HanoiTowers/client/languages/en.ts
@@ -266,68 +266,68 @@
         <translation>User data updated successful</translation>
     </message>
     <message>
-        <location filename="../hanoitowers.cpp" line="239"/>
+        <location filename="../hanoitowers.cpp" line="247"/>
         <source>login error</source>
         <translation>Login error</translation>
     </message>
     <message>
-        <location filename="../hanoitowers.cpp" line="240"/>
+        <location filename="../hanoitowers.cpp" line="248"/>
         <source>Failed to login into online account, please check your password and username</source>
         <translation>Failed to login into online account, please check your password and username</translation>
     </message>
     <message>
-        <location filename="../hanoitowers.cpp" line="250"/>
+        <location filename="../hanoitowers.cpp" line="258"/>
         <source>Register online error</source>
         <translation>Register online error</translation>
     </message>
     <message>
-        <location filename="../hanoitowers.cpp" line="251"/>
+        <location filename="../hanoitowers.cpp" line="259"/>
         <source>Failed to register this account, if this account was created by you, try to restore it.</source>
         <translation>Failed to register this account, if this account was created by you, try to restore it.</translation>
     </message>
     <message>
-        <location filename="../hanoitowers.cpp" line="261"/>
-        <location filename="../hanoitowers.cpp" line="283"/>
+        <location filename="../hanoitowers.cpp" line="269"/>
+        <location filename="../hanoitowers.cpp" line="291"/>
         <source>Server error</source>
         <translation>Server error</translation>
     </message>
     <message>
-        <location filename="../hanoitowers.cpp" line="268"/>
+        <location filename="../hanoitowers.cpp" line="276"/>
         <source>User with this id is not registered. If it you then use please the sigup form.</source>
         <translation>User with this id is not registered. If it you then use please the sigup form.</translation>
     </message>
     <message>
-        <location filename="../hanoitowers.cpp" line="276"/>
+        <location filename="../hanoitowers.cpp" line="284"/>
         <source>User with this id already registered. If it you then use please the login form.</source>
         <translation>User with this id already registered. If it you then use please the login form.</translation>
     </message>
     <message>
-        <location filename="../hanoitowers.cpp" line="424"/>
+        <location filename="../hanoitowers.cpp" line="432"/>
         <source>Create user error</source>
         <translation>User create error</translation>
     </message>
     <message>
-        <location filename="../hanoitowers.cpp" line="425"/>
+        <location filename="../hanoitowers.cpp" line="433"/>
         <source>Failed to create a new user, The name %0 alredy used.</source>
         <translation>Failed to create a new user, This name %0 alredy used.</translation>
     </message>
     <message>
-        <location filename="../hanoitowers.cpp" line="456"/>
+        <location filename="../hanoitowers.cpp" line="464"/>
         <source>Remove online error</source>
         <translation>Remove online error</translation>
     </message>
     <message>
-        <location filename="../hanoitowers.cpp" line="456"/>
+        <location filename="../hanoitowers.cpp" line="464"/>
         <source>current profile not online!</source>
         <translation>Current profile is offline!</translation>
     </message>
     <message>
-        <location filename="../hanoitowers.cpp" line="462"/>
+        <location filename="../hanoitowers.cpp" line="470"/>
         <source>Remove Local user</source>
         <translation>Remove Local user</translation>
     </message>
     <message>
-        <location filename="../hanoitowers.cpp" line="462"/>
+        <location filename="../hanoitowers.cpp" line="470"/>
         <source>Failed to remove the local user data</source>
         <translation>Failed to remove the local user data</translation>
     </message>
@@ -595,32 +595,32 @@
 <context>
     <name>UserView</name>
     <message>
-        <location filename="../menu/UserView.qml" line="43"/>
+        <location filename="../menu/UserView.qml" line="44"/>
         <source>Please choose a new Avatar</source>
         <translation>Please choose a new Avatar</translation>
     </message>
     <message>
-        <location filename="../menu/UserView.qml" line="60"/>
+        <location filename="../menu/UserView.qml" line="61"/>
         <source>Id</source>
         <translation>Id</translation>
     </message>
     <message>
-        <location filename="../menu/UserView.qml" line="67"/>
+        <location filename="../menu/UserView.qml" line="68"/>
         <source>Name</source>
         <translation>Name</translation>
     </message>
     <message>
-        <location filename="../menu/UserView.qml" line="74"/>
+        <location filename="../menu/UserView.qml" line="75"/>
         <source>Record</source>
         <translation>Record</translation>
     </message>
     <message>
-        <location filename="../menu/UserView.qml" line="81"/>
+        <location filename="../menu/UserView.qml" line="82"/>
         <source>Online profile</source>
         <translation>Online profile</translation>
     </message>
     <message>
-        <location filename="../menu/UserView.qml" line="140"/>
+        <location filename="../menu/UserView.qml" line="141"/>
         <source>Remove</source>
         <translation>Remove</translation>
     </message>
@@ -629,12 +629,12 @@
         <translation type="vanished">Remove This Profile</translation>
     </message>
     <message>
-        <location filename="../menu/UserView.qml" line="151"/>
+        <location filename="../menu/UserView.qml" line="152"/>
         <source>Restore</source>
         <translation>Restore</translation>
     </message>
     <message>
-        <location filename="../menu/UserView.qml" line="158"/>
+        <location filename="../menu/UserView.qml" line="159"/>
         <source>Accept</source>
         <translation>Accept</translation>
     </message>
@@ -647,12 +647,12 @@
         <translation type="vanished">User data will be changed.</translation>
     </message>
     <message>
-        <location filename="../menu/UserView.qml" line="194"/>
+        <location filename="../menu/UserView.qml" line="195"/>
         <source>Remove %0 user</source>
         <translation>Remove %0 user</translation>
     </message>
     <message>
-        <location filename="../menu/UserView.qml" line="195"/>
+        <location filename="../menu/UserView.qml" line="196"/>
         <source>All saved data and records will be delete, Do you want continuee?</source>
         <translation>All saved data and records will be deleted, Do you want continue?</translation>
     </message>
diff --git a/HanoiTowers/client/languages/ja.ts b/HanoiTowers/client/languages/ja.ts
index c17fba8..67e7035 100644
--- a/HanoiTowers/client/languages/ja.ts
+++ b/HanoiTowers/client/languages/ja.ts
@@ -284,68 +284,68 @@
         <translation>ユーザーデータが正常に更新されました</translation>
     </message>
     <message>
-        <location filename="../hanoitowers.cpp" line="239"/>
+        <location filename="../hanoitowers.cpp" line="247"/>
         <source>login error</source>
         <translation>ログインエラー</translation>
     </message>
     <message>
-        <location filename="../hanoitowers.cpp" line="240"/>
+        <location filename="../hanoitowers.cpp" line="248"/>
         <source>Failed to login into online account, please check your password and username</source>
         <translation>オンラインアカウントにログインできませんでした。パスワードとユーザー名を確認してください</translation>
     </message>
     <message>
-        <location filename="../hanoitowers.cpp" line="250"/>
+        <location filename="../hanoitowers.cpp" line="258"/>
         <source>Register online error</source>
         <translation>登録オンラインエラー</translation>
     </message>
     <message>
-        <location filename="../hanoitowers.cpp" line="251"/>
+        <location filename="../hanoitowers.cpp" line="259"/>
         <source>Failed to register this account, if this account was created by you, try to restore it.</source>
         <translation>このアカウントが登録されなかった場合、このアカウントが作成された場合、それを元に戻してください。</translation>
     </message>
     <message>
-        <location filename="../hanoitowers.cpp" line="261"/>
-        <location filename="../hanoitowers.cpp" line="283"/>
+        <location filename="../hanoitowers.cpp" line="269"/>
+        <location filename="../hanoitowers.cpp" line="291"/>
         <source>Server error</source>
         <translation>サーバエラー</translation>
     </message>
     <message>
-        <location filename="../hanoitowers.cpp" line="268"/>
+        <location filename="../hanoitowers.cpp" line="276"/>
         <source>User with this id is not registered. If it you then use please the sigup form.</source>
         <translation>このIDのユーザーは登録されていません。 それを使用する場合は、サインアップフォームを使用してください。</translation>
     </message>
     <message>
-        <location filename="../hanoitowers.cpp" line="276"/>
+        <location filename="../hanoitowers.cpp" line="284"/>
         <source>User with this id already registered. If it you then use please the login form.</source>
         <translation>このIDのユーザーはすでに登録されています。 それを使用する場合は、ログインフォームを使用してください。</translation>
     </message>
     <message>
-        <location filename="../hanoitowers.cpp" line="424"/>
+        <location filename="../hanoitowers.cpp" line="432"/>
         <source>Create user error</source>
         <translation>ユーザーエラーの作成</translation>
     </message>
     <message>
-        <location filename="../hanoitowers.cpp" line="425"/>
+        <location filename="../hanoitowers.cpp" line="433"/>
         <source>Failed to create a new user, The name %0 alredy used.</source>
         <translation>新しいユーザーの作成に失敗しました。名前 %0 はすでに使用されています。</translation>
     </message>
     <message>
-        <location filename="../hanoitowers.cpp" line="456"/>
+        <location filename="../hanoitowers.cpp" line="464"/>
         <source>Remove online error</source>
         <translation>オンラインユーザーデータの削除中にエラーが発生しました</translation>
     </message>
     <message>
-        <location filename="../hanoitowers.cpp" line="456"/>
+        <location filename="../hanoitowers.cpp" line="464"/>
         <source>current profile not online!</source>
         <translation>現在のプロファイルはオフラインです!</translation>
     </message>
     <message>
-        <location filename="../hanoitowers.cpp" line="462"/>
+        <location filename="../hanoitowers.cpp" line="470"/>
         <source>Remove Local user</source>
         <translation>ローカルユーザーを削除する</translation>
     </message>
     <message>
-        <location filename="../hanoitowers.cpp" line="462"/>
+        <location filename="../hanoitowers.cpp" line="470"/>
         <source>Failed to remove the local user data</source>
         <translation>ローカルユーザーデータの削除に失敗しました</translation>
     </message>
@@ -644,32 +644,32 @@
 <context>
     <name>UserView</name>
     <message>
-        <location filename="../menu/UserView.qml" line="43"/>
+        <location filename="../menu/UserView.qml" line="44"/>
         <source>Please choose a new Avatar</source>
         <translation>新しいアバターを選んでください</translation>
     </message>
     <message>
-        <location filename="../menu/UserView.qml" line="60"/>
+        <location filename="../menu/UserView.qml" line="61"/>
         <source>Id</source>
         <translation>Id</translation>
     </message>
     <message>
-        <location filename="../menu/UserView.qml" line="67"/>
+        <location filename="../menu/UserView.qml" line="68"/>
         <source>Name</source>
         <translation>名称</translation>
     </message>
     <message>
-        <location filename="../menu/UserView.qml" line="74"/>
+        <location filename="../menu/UserView.qml" line="75"/>
         <source>Record</source>
         <translation>レコード</translation>
     </message>
     <message>
-        <location filename="../menu/UserView.qml" line="81"/>
+        <location filename="../menu/UserView.qml" line="82"/>
         <source>Online profile</source>
         <translation>オンラインプロフィール</translation>
     </message>
     <message>
-        <location filename="../menu/UserView.qml" line="140"/>
+        <location filename="../menu/UserView.qml" line="141"/>
         <source>Remove</source>
         <translation>削除する</translation>
     </message>
@@ -678,12 +678,12 @@
         <translation type="vanished">このプロファイルを削除する</translation>
     </message>
     <message>
-        <location filename="../menu/UserView.qml" line="151"/>
+        <location filename="../menu/UserView.qml" line="152"/>
         <source>Restore</source>
         <translation>戻す</translation>
     </message>
     <message>
-        <location filename="../menu/UserView.qml" line="158"/>
+        <location filename="../menu/UserView.qml" line="159"/>
         <source>Accept</source>
         <translation>受け入れる</translation>
     </message>
@@ -696,12 +696,12 @@
         <translation type="vanished">ユーザーデータが変更されます。</translation>
     </message>
     <message>
-        <location filename="../menu/UserView.qml" line="194"/>
+        <location filename="../menu/UserView.qml" line="195"/>
         <source>Remove %0 user</source>
         <translation>%0ユーザーを削除</translation>
     </message>
     <message>
-        <location filename="../menu/UserView.qml" line="195"/>
+        <location filename="../menu/UserView.qml" line="196"/>
         <source>All saved data and records will be delete, Do you want continuee?</source>
         <translation>すべての保存されたデータとレコードが削除されます、あなたが継続したいですか?</translation>
     </message>
diff --git a/HanoiTowers/client/languages/ru.ts b/HanoiTowers/client/languages/ru.ts
index 03114d5..19cfe25 100644
--- a/HanoiTowers/client/languages/ru.ts
+++ b/HanoiTowers/client/languages/ru.ts
@@ -291,68 +291,68 @@
         <translation>Данные пользователя обновлены</translation>
     </message>
     <message>
-        <location filename="../hanoitowers.cpp" line="239"/>
+        <location filename="../hanoitowers.cpp" line="247"/>
         <source>login error</source>
         <translation>Ошибка входа</translation>
     </message>
     <message>
-        <location filename="../hanoitowers.cpp" line="240"/>
+        <location filename="../hanoitowers.cpp" line="248"/>
         <source>Failed to login into online account, please check your password and username</source>
         <translation>Ошибка входа в онлайн аккаунт, пожалуйста проверте свой логин и пароль</translation>
     </message>
     <message>
-        <location filename="../hanoitowers.cpp" line="250"/>
+        <location filename="../hanoitowers.cpp" line="258"/>
         <source>Register online error</source>
         <translation>Ошибка регистрации</translation>
     </message>
     <message>
-        <location filename="../hanoitowers.cpp" line="251"/>
+        <location filename="../hanoitowers.cpp" line="259"/>
         <source>Failed to register this account, if this account was created by you, try to restore it.</source>
         <translation>Не удалось зарегистрировать аккаунт, если этот аккаунт был создан вами попробуйте восстановить его.</translation>
     </message>
     <message>
-        <location filename="../hanoitowers.cpp" line="261"/>
-        <location filename="../hanoitowers.cpp" line="283"/>
+        <location filename="../hanoitowers.cpp" line="269"/>
+        <location filename="../hanoitowers.cpp" line="291"/>
         <source>Server error</source>
         <translation>Ошибка сервера</translation>
     </message>
     <message>
-        <location filename="../hanoitowers.cpp" line="268"/>
+        <location filename="../hanoitowers.cpp" line="276"/>
         <source>User with this id is not registered. If it you then use please the sigup form.</source>
         <translation>Пользователь с этим id не зарегистрирован. Пожалуйста, заполните форму регистрации.</translation>
     </message>
     <message>
-        <location filename="../hanoitowers.cpp" line="276"/>
+        <location filename="../hanoitowers.cpp" line="284"/>
         <source>User with this id already registered. If it you then use please the login form.</source>
         <translation>Пользователь с этим id уже зарегистрирован. Если это вы, пожалуйста используйте форму входа.</translation>
     </message>
     <message>
-        <location filename="../hanoitowers.cpp" line="424"/>
+        <location filename="../hanoitowers.cpp" line="432"/>
         <source>Create user error</source>
         <translation>Ошибка создания пользователя</translation>
     </message>
     <message>
-        <location filename="../hanoitowers.cpp" line="425"/>
+        <location filename="../hanoitowers.cpp" line="433"/>
         <source>Failed to create a new user, The name %0 alredy used.</source>
         <translation>Не удалось создать пользователя. Данное имя %0 уже используется</translation>
     </message>
     <message>
-        <location filename="../hanoitowers.cpp" line="456"/>
+        <location filename="../hanoitowers.cpp" line="464"/>
         <source>Remove online error</source>
         <translation>Ошибка удаления онлайн аккаунта</translation>
     </message>
     <message>
-        <location filename="../hanoitowers.cpp" line="456"/>
+        <location filename="../hanoitowers.cpp" line="464"/>
         <source>current profile not online!</source>
         <translation>Текущий профиль не в сети!</translation>
     </message>
     <message>
-        <location filename="../hanoitowers.cpp" line="462"/>
+        <location filename="../hanoitowers.cpp" line="470"/>
         <source>Remove Local user</source>
         <translation>Удалить локального.пользователя</translation>
     </message>
     <message>
-        <location filename="../hanoitowers.cpp" line="462"/>
+        <location filename="../hanoitowers.cpp" line="470"/>
         <source>Failed to remove the local user data</source>
         <translation>Ошибка удаления локального пользователя</translation>
     </message>
@@ -647,32 +647,32 @@
 <context>
     <name>UserView</name>
     <message>
-        <location filename="../menu/UserView.qml" line="43"/>
+        <location filename="../menu/UserView.qml" line="44"/>
         <source>Please choose a new Avatar</source>
         <translation>Пожалуйста выберете новый аватар</translation>
     </message>
     <message>
-        <location filename="../menu/UserView.qml" line="60"/>
+        <location filename="../menu/UserView.qml" line="61"/>
         <source>Id</source>
         <translation>Id</translation>
     </message>
     <message>
-        <location filename="../menu/UserView.qml" line="67"/>
+        <location filename="../menu/UserView.qml" line="68"/>
         <source>Name</source>
         <translation>Имя</translation>
     </message>
     <message>
-        <location filename="../menu/UserView.qml" line="74"/>
+        <location filename="../menu/UserView.qml" line="75"/>
         <source>Record</source>
         <translation>Рекорд</translation>
     </message>
     <message>
-        <location filename="../menu/UserView.qml" line="81"/>
+        <location filename="../menu/UserView.qml" line="82"/>
         <source>Online profile</source>
         <translation>Онлайн профиль</translation>
     </message>
     <message>
-        <location filename="../menu/UserView.qml" line="140"/>
+        <location filename="../menu/UserView.qml" line="141"/>
         <source>Remove</source>
         <translation>Удалить</translation>
     </message>
@@ -681,12 +681,12 @@
         <translation type="vanished">Удалить это профиль</translation>
     </message>
     <message>
-        <location filename="../menu/UserView.qml" line="151"/>
+        <location filename="../menu/UserView.qml" line="152"/>
         <source>Restore</source>
         <translation>Восстановить</translation>
     </message>
     <message>
-        <location filename="../menu/UserView.qml" line="158"/>
+        <location filename="../menu/UserView.qml" line="159"/>
         <source>Accept</source>
         <translation>Принять</translation>
     </message>
@@ -699,12 +699,12 @@
         <translation type="vanished">Данные пользователя изменены</translation>
     </message>
     <message>
-        <location filename="../menu/UserView.qml" line="194"/>
+        <location filename="../menu/UserView.qml" line="195"/>
         <source>Remove %0 user</source>
         <translation>Удалить %0 пользователя</translation>
     </message>
     <message>
-        <location filename="../menu/UserView.qml" line="195"/>
+        <location filename="../menu/UserView.qml" line="196"/>
         <source>All saved data and records will be delete, Do you want continuee?</source>
         <translation>Все сохраненные данные и записи будут удалены. Продолжить?</translation>
     </message>
diff --git a/HanoiTowers/client/languages/tr.ts b/HanoiTowers/client/languages/tr.ts
index 56c811f..6885b7e 100644
--- a/HanoiTowers/client/languages/tr.ts
+++ b/HanoiTowers/client/languages/tr.ts
@@ -292,68 +292,68 @@ Bu seviye için minimum adımlar: %2</translation>
         <translation>Kullanıcı verileri başarıyla güncellendi</translation>
     </message>
     <message>
-        <location filename="../hanoitowers.cpp" line="239"/>
+        <location filename="../hanoitowers.cpp" line="247"/>
         <source>login error</source>
         <translation>sisteme giriş hatası</translation>
     </message>
     <message>
-        <location filename="../hanoitowers.cpp" line="240"/>
+        <location filename="../hanoitowers.cpp" line="248"/>
         <source>Failed to login into online account, please check your password and username</source>
         <translation>Çevrimiçi hesaba giriş yapılamadı, lütfen şifrenizi ve kullanıcı adınızı kontrol edin</translation>
     </message>
     <message>
-        <location filename="../hanoitowers.cpp" line="250"/>
+        <location filename="../hanoitowers.cpp" line="258"/>
         <source>Register online error</source>
         <translation>Çevrimiçi kayıt hatası</translation>
     </message>
     <message>
-        <location filename="../hanoitowers.cpp" line="251"/>
+        <location filename="../hanoitowers.cpp" line="259"/>
         <source>Failed to register this account, if this account was created by you, try to restore it.</source>
         <translation>Bu hesap kaydedilemedi, bu hesap sizin tarafınızdan oluşturulduysa, geri yüklemeyi deneyin.</translation>
     </message>
     <message>
-        <location filename="../hanoitowers.cpp" line="261"/>
-        <location filename="../hanoitowers.cpp" line="283"/>
+        <location filename="../hanoitowers.cpp" line="269"/>
+        <location filename="../hanoitowers.cpp" line="291"/>
         <source>Server error</source>
         <translation>Server hatası</translation>
     </message>
     <message>
-        <location filename="../hanoitowers.cpp" line="268"/>
+        <location filename="../hanoitowers.cpp" line="276"/>
         <source>User with this id is not registered. If it you then use please the sigup form.</source>
         <translation>Bu kimliğe sahip kullanıcı kayıtlı değil. Daha sonra kullanırsanız, lütfen kayıt formunu kullanın.</translation>
     </message>
     <message>
-        <location filename="../hanoitowers.cpp" line="276"/>
+        <location filename="../hanoitowers.cpp" line="284"/>
         <source>User with this id already registered. If it you then use please the login form.</source>
         <translation>Bu kimliğe sahip kullanıcı zaten kayıtlı. Eğer öyleyse, lütfen giriş formunu kullanın.</translation>
     </message>
     <message>
-        <location filename="../hanoitowers.cpp" line="424"/>
+        <location filename="../hanoitowers.cpp" line="432"/>
         <source>Create user error</source>
         <translation>Kullanıcı hatası oluştur</translation>
     </message>
     <message>
-        <location filename="../hanoitowers.cpp" line="425"/>
+        <location filename="../hanoitowers.cpp" line="433"/>
         <source>Failed to create a new user, The name %0 alredy used.</source>
         <translation>Yeni bir kullanıcı oluşturulamadı, %0 adı kullanıldı.</translation>
     </message>
     <message>
-        <location filename="../hanoitowers.cpp" line="456"/>
+        <location filename="../hanoitowers.cpp" line="464"/>
         <source>Remove online error</source>
         <translation>Çevrimiçi kullanıcı verilerini kaldırma hatası</translation>
     </message>
     <message>
-        <location filename="../hanoitowers.cpp" line="456"/>
+        <location filename="../hanoitowers.cpp" line="464"/>
         <source>current profile not online!</source>
         <translation>Mevcut profil çevrimdışı!</translation>
     </message>
     <message>
-        <location filename="../hanoitowers.cpp" line="462"/>
+        <location filename="../hanoitowers.cpp" line="470"/>
         <source>Remove Local user</source>
         <translation>Yerel kullanıcıyı kaldır</translation>
     </message>
     <message>
-        <location filename="../hanoitowers.cpp" line="462"/>
+        <location filename="../hanoitowers.cpp" line="470"/>
         <source>Failed to remove the local user data</source>
         <translation>Yerel kullanıcı verileri kaldırılamadı</translation>
     </message>
@@ -648,32 +648,32 @@ Bu seviye için minimum adımlar: %2</translation>
 <context>
     <name>UserView</name>
     <message>
-        <location filename="../menu/UserView.qml" line="43"/>
+        <location filename="../menu/UserView.qml" line="44"/>
         <source>Please choose a new Avatar</source>
         <translation>Lütfen yeni bir Avatar seçin</translation>
     </message>
     <message>
-        <location filename="../menu/UserView.qml" line="60"/>
+        <location filename="../menu/UserView.qml" line="61"/>
         <source>Id</source>
         <translation>Id</translation>
     </message>
     <message>
-        <location filename="../menu/UserView.qml" line="67"/>
+        <location filename="../menu/UserView.qml" line="68"/>
         <source>Name</source>
         <translation>İsim</translation>
     </message>
     <message>
-        <location filename="../menu/UserView.qml" line="74"/>
+        <location filename="../menu/UserView.qml" line="75"/>
         <source>Record</source>
         <translation>Kayıt</translation>
     </message>
     <message>
-        <location filename="../menu/UserView.qml" line="81"/>
+        <location filename="../menu/UserView.qml" line="82"/>
         <source>Online profile</source>
         <translation>Çevrimiçi profil</translation>
     </message>
     <message>
-        <location filename="../menu/UserView.qml" line="140"/>
+        <location filename="../menu/UserView.qml" line="141"/>
         <source>Remove</source>
         <translation>Kaldırmak</translation>
     </message>
@@ -682,12 +682,12 @@ Bu seviye için minimum adımlar: %2</translation>
         <translation type="vanished">Bu Profili Kaldır</translation>
     </message>
     <message>
-        <location filename="../menu/UserView.qml" line="151"/>
+        <location filename="../menu/UserView.qml" line="152"/>
         <source>Restore</source>
         <translation>Onarmak</translation>
     </message>
     <message>
-        <location filename="../menu/UserView.qml" line="158"/>
+        <location filename="../menu/UserView.qml" line="159"/>
         <source>Accept</source>
         <translation>Kabul etmek</translation>
     </message>
@@ -700,12 +700,12 @@ Bu seviye için minimum adımlar: %2</translation>
         <translation type="vanished">Kullanıcı verileri değiştirilecek.</translation>
     </message>
     <message>
-        <location filename="../menu/UserView.qml" line="194"/>
+        <location filename="../menu/UserView.qml" line="195"/>
         <source>Remove %0 user</source>
         <translation>%0 kullanıcıyı kaldır</translation>
     </message>
     <message>
-        <location filename="../menu/UserView.qml" line="195"/>
+        <location filename="../menu/UserView.qml" line="196"/>
         <source>All saved data and records will be delete, Do you want continuee?</source>
         <translation>Kaydedilen tüm veriler ve kayıtlar silinecek, devam etmek istiyor musunuz?</translation>
     </message>
diff --git a/HanoiTowers/client/languages/uk.ts b/HanoiTowers/client/languages/uk.ts
index 3656c4a..f6e86da 100644
--- a/HanoiTowers/client/languages/uk.ts
+++ b/HanoiTowers/client/languages/uk.ts
@@ -294,68 +294,68 @@
         <translation>Дані користувачів оновлено успішно</translation>
     </message>
     <message>
-        <location filename="../hanoitowers.cpp" line="239"/>
+        <location filename="../hanoitowers.cpp" line="247"/>
         <source>login error</source>
         <translation>Помилка входу</translation>
     </message>
     <message>
-        <location filename="../hanoitowers.cpp" line="240"/>
+        <location filename="../hanoitowers.cpp" line="248"/>
         <source>Failed to login into online account, please check your password and username</source>
         <translation>Не вдалося увійти в онлайн-акаунт, перевірте свій пароль та ім’я користувача</translation>
     </message>
     <message>
-        <location filename="../hanoitowers.cpp" line="250"/>
+        <location filename="../hanoitowers.cpp" line="258"/>
         <source>Register online error</source>
         <translation>Помилка реєстрації в Інтернеті</translation>
     </message>
     <message>
-        <location filename="../hanoitowers.cpp" line="251"/>
+        <location filename="../hanoitowers.cpp" line="259"/>
         <source>Failed to register this account, if this account was created by you, try to restore it.</source>
         <translation>Не вдалося зареєструвати цей обліковий запис, якщо цей обліковий запис був створений вами, спробуйте відновити його.</translation>
     </message>
     <message>
-        <location filename="../hanoitowers.cpp" line="261"/>
-        <location filename="../hanoitowers.cpp" line="283"/>
+        <location filename="../hanoitowers.cpp" line="269"/>
+        <location filename="../hanoitowers.cpp" line="291"/>
         <source>Server error</source>
         <translation>Помилка серверу</translation>
     </message>
     <message>
-        <location filename="../hanoitowers.cpp" line="268"/>
+        <location filename="../hanoitowers.cpp" line="276"/>
         <source>User with this id is not registered. If it you then use please the sigup form.</source>
         <translation>Користувач з цим id не зареєстрований. Якщо ви це використовуєте, будь ласка, будь ласка, зареєструйтесь.</translation>
     </message>
     <message>
-        <location filename="../hanoitowers.cpp" line="276"/>
+        <location filename="../hanoitowers.cpp" line="284"/>
         <source>User with this id already registered. If it you then use please the login form.</source>
         <translation>Користувач з цим ідентифікатором вже зареєстрований. Якщо ви використовуєте його, будь ласка, увійдіть у форму для входу.</translation>
     </message>
     <message>
-        <location filename="../hanoitowers.cpp" line="424"/>
+        <location filename="../hanoitowers.cpp" line="432"/>
         <source>Create user error</source>
         <translation>Помилка створення користувача</translation>
     </message>
     <message>
-        <location filename="../hanoitowers.cpp" line="425"/>
+        <location filename="../hanoitowers.cpp" line="433"/>
         <source>Failed to create a new user, The name %0 alredy used.</source>
         <translation>Не вдалося створити нового користувача, ім’я %0 вже використовується.</translation>
     </message>
     <message>
-        <location filename="../hanoitowers.cpp" line="456"/>
+        <location filename="../hanoitowers.cpp" line="464"/>
         <source>Remove online error</source>
         <translation>Помилка видалення онлайн даних користувачів</translation>
     </message>
     <message>
-        <location filename="../hanoitowers.cpp" line="456"/>
+        <location filename="../hanoitowers.cpp" line="464"/>
         <source>current profile not online!</source>
         <translation>Поточний профіль офлайн!</translation>
     </message>
     <message>
-        <location filename="../hanoitowers.cpp" line="462"/>
+        <location filename="../hanoitowers.cpp" line="470"/>
         <source>Remove Local user</source>
         <translation>Видалити локального користувача</translation>
     </message>
     <message>
-        <location filename="../hanoitowers.cpp" line="462"/>
+        <location filename="../hanoitowers.cpp" line="470"/>
         <source>Failed to remove the local user data</source>
         <translation>Не вдалося видалити локальні дані користувача</translation>
     </message>
@@ -650,32 +650,32 @@
 <context>
     <name>UserView</name>
     <message>
-        <location filename="../menu/UserView.qml" line="43"/>
+        <location filename="../menu/UserView.qml" line="44"/>
         <source>Please choose a new Avatar</source>
         <translation>Виберіть новий Аватар</translation>
     </message>
     <message>
-        <location filename="../menu/UserView.qml" line="60"/>
+        <location filename="../menu/UserView.qml" line="61"/>
         <source>Id</source>
         <translation>Id</translation>
     </message>
     <message>
-        <location filename="../menu/UserView.qml" line="67"/>
+        <location filename="../menu/UserView.qml" line="68"/>
         <source>Name</source>
         <translation>Ім&apos;я</translation>
     </message>
     <message>
-        <location filename="../menu/UserView.qml" line="74"/>
+        <location filename="../menu/UserView.qml" line="75"/>
         <source>Record</source>
         <translation>Рекорд</translation>
     </message>
     <message>
-        <location filename="../menu/UserView.qml" line="81"/>
+        <location filename="../menu/UserView.qml" line="82"/>
         <source>Online profile</source>
         <translation>Онлайн-профіль</translation>
     </message>
     <message>
-        <location filename="../menu/UserView.qml" line="140"/>
+        <location filename="../menu/UserView.qml" line="141"/>
         <source>Remove</source>
         <translation>Видалити</translation>
     </message>
@@ -684,12 +684,12 @@
         <translation type="vanished">Видалити цей профіль</translation>
     </message>
     <message>
-        <location filename="../menu/UserView.qml" line="151"/>
+        <location filename="../menu/UserView.qml" line="152"/>
         <source>Restore</source>
         <translation>Відновлювати</translation>
     </message>
     <message>
-        <location filename="../menu/UserView.qml" line="158"/>
+        <location filename="../menu/UserView.qml" line="159"/>
         <source>Accept</source>
         <translation>Прийміть</translation>
     </message>
@@ -702,12 +702,12 @@
         <translation type="vanished">Дані користувача буде змінено.</translation>
     </message>
     <message>
-        <location filename="../menu/UserView.qml" line="194"/>
+        <location filename="../menu/UserView.qml" line="195"/>
         <source>Remove %0 user</source>
         <translation>Видалити користувача %0</translation>
     </message>
     <message>
-        <location filename="../menu/UserView.qml" line="195"/>
+        <location filename="../menu/UserView.qml" line="196"/>
         <source>All saved data and records will be delete, Do you want continuee?</source>
         <translation>Усі збережені дані та записи будуть видалені. Продовжити?</translation>
     </message>
diff --git a/HanoiTowers/client/main.cpp b/HanoiTowers/client/main.cpp
index b84ec9a..7d370d3 100644
--- a/HanoiTowers/client/main.cpp
+++ b/HanoiTowers/client/main.cpp
@@ -17,6 +17,7 @@
 #include <QTranslator>
 #include <qmlnotifyservice.h>
 #include <credits.h>
+#include <QtAndroidTools.h>
 
 
 int main(int argc, char *argv[])
@@ -52,6 +53,9 @@ int main(int argc, char *argv[])
         return 2;
     }
 
+    QtAndroidTools::initializeQmlTools();
+
+
 #ifdef Q_OS_ANDROID
     ActivityHandler *activityHandler = new ActivityHandler(&app);
     engine.rootContext()->setContextProperty(QLatin1String("activityHandler"), activityHandler);
diff --git a/HanoiTowers/client/main.qml b/HanoiTowers/client/main.qml
index 7169a3f..ce791de 100644
--- a/HanoiTowers/client/main.qml
+++ b/HanoiTowers/client/main.qml
@@ -21,6 +21,22 @@ ApplicationWindow {
     height: 720
     title: qsTr("Hanoi Towers")
 
+    function createSpriteObjects(url, parent) {
+        if (!backEnd.isAndroid()) {
+            return null;
+        }
+        const component = Qt.createComponent(url);
+        return component.createObject(parent);
+    }
+
+    Component.onCompleted:  {
+
+        const obj = createSpriteObjects(":/admod/AdMobInterstitialAndroid.qml", this);
+        if (obj) {
+
+        }
+    }
+
     header: Menu.ToolBarPage {
         id: toolBar
         state: stackview.state
@@ -142,6 +158,7 @@ ApplicationWindow {
         ]
     }
 
+
     NotificationServiceView {
         anchors.fill: parent;
     }
diff --git a/HanoiTowers/client/qml.qrc b/HanoiTowers/client/qml.qrc
index a9d0a88..e3f5f38 100644
--- a/HanoiTowers/client/qml.qrc
+++ b/HanoiTowers/client/qml.qrc
@@ -22,6 +22,7 @@
         <file>menu/LocalUsersTable.qml</file>
         <file>Background.qml</file>
         <file>HelpPage.qml</file>
+        <file>admod/AdMobInterstitialAndroid.qml</file>
     </qresource>
     <qresource prefix="/textures">
         <file>res/fogBack.png</file>
diff --git a/submodules/QMLLoginView b/submodules/QMLLoginView
index 055445a..ec0d9a9 160000
--- a/submodules/QMLLoginView
+++ b/submodules/QMLLoginView
@@ -1 +1 @@
-Subproject commit 055445ac2b5983125d77bcbe41b4d9a2774287b1
+Subproject commit ec0d9a9904e1b48df90c1583de769dab920a5f14
diff --git a/submodules/SimpleQmlNotify b/submodules/SimpleQmlNotify
index 099a83c..cdeab90 160000
--- a/submodules/SimpleQmlNotify
+++ b/submodules/SimpleQmlNotify
@@ -1 +1 @@
-Subproject commit 099a83ccf6c0a72acfef772884ae08d0594dd489
+Subproject commit cdeab90d82ee95edbe86afa1da5ac6dd16cee7bb
diff --git a/submodules/ViewSolutions b/submodules/ViewSolutions
index 220b9b7..5e765f1 160000
--- a/submodules/ViewSolutions
+++ b/submodules/ViewSolutions
@@ -1 +1 @@
-Subproject commit 220b9b7035bcdc7b1cc79e0f0d8e31f0c10e5359
+Subproject commit 5e765f171ae73e18a6fa6c75139cb9e8274373ad

From 759bffa9a0ffa4a6cef167dcdd473391701fe6e9 Mon Sep 17 00:00:00 2001
From: EndrII <EndrIIMail@gmail.com>
Date: Fri, 7 May 2021 22:43:47 +0300
Subject: [PATCH 14/29] fix linux and windows builds

---
 HanoiTowers/client/main.cpp | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/HanoiTowers/client/main.cpp b/HanoiTowers/client/main.cpp
index 7d370d3..ab13357 100644
--- a/HanoiTowers/client/main.cpp
+++ b/HanoiTowers/client/main.cpp
@@ -17,8 +17,9 @@
 #include <QTranslator>
 #include <qmlnotifyservice.h>
 #include <credits.h>
+#ifdef Q_OS_ANDROID
 #include <QtAndroidTools.h>
-
+#endif
 
 int main(int argc, char *argv[])
 {
@@ -53,10 +54,9 @@ int main(int argc, char *argv[])
         return 2;
     }
 
+#ifdef Q_OS_ANDROID
     QtAndroidTools::initializeQmlTools();
 
-
-#ifdef Q_OS_ANDROID
     ActivityHandler *activityHandler = new ActivityHandler(&app);
     engine.rootContext()->setContextProperty(QLatin1String("activityHandler"), activityHandler);
 #endif

From a5ea89aea1ab97067b5dce3fe9249e6fe39aec47 Mon Sep 17 00:00:00 2001
From: EndrII <EndrIIMail@gmail.com>
Date: Sun, 9 May 2021 10:11:31 +0300
Subject: [PATCH 15/29] init snap

---
 CMakeLists.txt                    |  5 +----
 Deploy/Client.json                |  1 +
 HanoiTowers/client/CMakeLists.txt | 10 +++++-----
 snap/gui/Hanoi-Tower.desktop      |  6 +++---
 snap/snapcraft.yaml               |  6 +++---
 submodules/Credits                |  2 +-
 submodules/Heart                  |  2 +-
 7 files changed, 15 insertions(+), 17 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index d11df5b..6a2dc75 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -66,7 +66,6 @@ SET(PRODUCT_VER_Re 0)
 
 file(MAKE_DIRECTORY ${TARGET_DIR})
 
-initAll()
 addDoc(${PROJECT_NAME} ${CMAKE_CURRENT_SOURCE_DIR}/doxygen.conf)
 
 find_package(QT NAMES Qt6 Qt5 COMPONENTS Core REQUIRED)
@@ -133,6 +132,4 @@ if (HANOI_SERVER)
     add_subdirectory(HanoiTowers/Server)
 endif()
 
-
-
-
+initAll()
diff --git a/Deploy/Client.json b/Deploy/Client.json
index 6b24e38..571ccb2 100755
--- a/Deploy/Client.json
+++ b/Deploy/Client.json
@@ -21,5 +21,6 @@
     "qif": "./../installer",
     "icon": "./../HanoiTowers/client/res/iconInstall.png",
     "deb": true,
+    "zip": true,
     "targetDir": "./../Distro"
 }
diff --git a/HanoiTowers/client/CMakeLists.txt b/HanoiTowers/client/CMakeLists.txt
index 9eb9329..de7101d 100644
--- a/HanoiTowers/client/CMakeLists.txt
+++ b/HanoiTowers/client/CMakeLists.txt
@@ -67,13 +67,13 @@ else()
     # Desctop deploying
     addDeployFromCustomFile("Client" "${CMAKE_SOURCE_DIR}/Deploy/Client.json")
 
-#    if (UNIX)
-#        #addDeployQIF("Client" ${INSTALLER_DIR} ${TARGET_DIR} "${INSTALLER_DIR}/config/configLinux.xml")
-#        #addDeploySnap("Client" ${TARGET_DIR})
+    if (UNIX)
+        #addDeployQIF("Client" ${INSTALLER_DIR} ${TARGET_DIR} "${INSTALLER_DIR}/config/configLinux.xml")
+        addDeploySnap("Client" ${TARGET_DIR})
 
-#        #addReleaseSnap("Client")
+        #addReleaseSnap("Client")
 
-#    endif()
+    endif()
 endif()
 
 #addReleaseQif("Client" ${DATA_DIR} ${TARGET_DIR})
diff --git a/snap/gui/Hanoi-Tower.desktop b/snap/gui/Hanoi-Tower.desktop
index e7661f2..64ac115 100755
--- a/snap/gui/Hanoi-Tower.desktop
+++ b/snap/gui/Hanoi-Tower.desktop
@@ -1,5 +1,5 @@
 [Desktop Entry]
-Version=1.5.2
+Version=1.6.0
 Name=Hanoi Towers
 Comment=Hanoi Towers Game.
 Exec=hanoi-tower
@@ -10,6 +10,6 @@ Categories=Games;Application;
 X-GNOME-Bugzilla-Bugzilla=GNOME
 X-GNOME-Bugzilla-Product=hanoi-tower
 X-GNOME-Bugzilla-Component=General
-X-GNOME-Bugzilla-Version=1.5.2
+X-GNOME-Bugzilla-Version=1.6.0
 StartupNotify=true
-Name[ru_RU]=Hanoi-Tower
+Name[ru_RU]=Ханойские башни
diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml
index 3912adf..6951242 100644
--- a/snap/snapcraft.yaml
+++ b/snap/snapcraft.yaml
@@ -9,8 +9,8 @@ description: |
 
 grade: stable # must be 'stable' to release into candidate/stable channels
 confinement: strict # use 'strict' once you have the right plugs and slots
-base: core18
-icon: installer/packages/HanoiTowers/data/icons/icon.png
+base: core20
+icon: installer/configicon.png
 
 apps:
   hanoi-tower:
@@ -31,7 +31,7 @@ parts:
   
   qtlib:
     plugin: dump
-    source: installer/packages/HanoiTowers/data
+    source: Distro/packages/HanoiTowers/data
       
   libsgl:
     plugin: nil
diff --git a/submodules/Credits b/submodules/Credits
index a765010..afb5e5a 160000
--- a/submodules/Credits
+++ b/submodules/Credits
@@ -1 +1 @@
-Subproject commit a765010efa2b4eafcb6a151e7f56ede04d0a9333
+Subproject commit afb5e5a40501066673c480adeed3314fe2b6b197
diff --git a/submodules/Heart b/submodules/Heart
index 239fc7d..7e34171 160000
--- a/submodules/Heart
+++ b/submodules/Heart
@@ -1 +1 @@
-Subproject commit 239fc7dae74a4e88fc379162428d3ca5217d2a5a
+Subproject commit 7e34171d9d8125a4eac896f112688fdb9d6e9630

From e11796562f976746bd47d34dd91e1592a3188d55 Mon Sep 17 00:00:00 2001
From: EndrII <EndrIIMail@gmail.com>
Date: Sun, 9 May 2021 10:20:39 +0300
Subject: [PATCH 16/29] init targets

---
 CMakeLists.txt | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 6a2dc75..9a897e2 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -11,13 +11,12 @@ project(HanoiTowers)
 set(BUILD_SHARED_LIBS ON)
 
 
-
 include(submodules/Heart/QuasarAppLib/CMake/QuasarApp.cmake)
 include(submodules/Heart/QuasarAppLib/CMake/Version.cmake)
+initAll()
 
 if (DEFINED TARGET_PLATFORM_TOOLCHAIN)
     if (${TARGET_PLATFORM_TOOLCHAIN} STREQUAL "wasm32")
-        initAll()
         return()
     endif()
 endif()
@@ -65,6 +64,7 @@ SET(PRODUCT_VER_Mn 6)
 SET(PRODUCT_VER_Re 0)
 
 file(MAKE_DIRECTORY ${TARGET_DIR})
+initAll()
 
 addDoc(${PROJECT_NAME} ${CMAKE_CURRENT_SOURCE_DIR}/doxygen.conf)
 
@@ -132,4 +132,3 @@ if (HANOI_SERVER)
     add_subdirectory(HanoiTowers/Server)
 endif()
 
-initAll()

From f5fd0a952d91b667139369337e9df3f6f9d0c985 Mon Sep 17 00:00:00 2001
From: EndrII <EndrIIMail@gmail.com>
Date: Sun, 9 May 2021 10:37:52 +0300
Subject: [PATCH 17/29] fix libDir in deploy step

---
 snap/snapcraft.yaml | 2 +-
 submodules/Heart    | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml
index 6951242..e7caec3 100644
--- a/snap/snapcraft.yaml
+++ b/snap/snapcraft.yaml
@@ -10,7 +10,7 @@ description: |
 grade: stable # must be 'stable' to release into candidate/stable channels
 confinement: strict # use 'strict' once you have the right plugs and slots
 base: core20
-icon: installer/configicon.png
+icon: installer/config/icon.png
 
 apps:
   hanoi-tower:
diff --git a/submodules/Heart b/submodules/Heart
index 7e34171..8c2fc6c 160000
--- a/submodules/Heart
+++ b/submodules/Heart
@@ -1 +1 @@
-Subproject commit 7e34171d9d8125a4eac896f112688fdb9d6e9630
+Subproject commit 8c2fc6c0a20fa9ffb99a7e393a57f2a956ac560d

From 397fd4973acdb3f0a9197848ccf615ef8f28cd6e Mon Sep 17 00:00:00 2001
From: EndrII <EndrIIMail@gmail.com>
Date: Sun, 9 May 2021 10:54:32 +0300
Subject: [PATCH 18/29] fix snap

---
 snap/snapcraft.yaml | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml
index e7caec3..d003a56 100644
--- a/snap/snapcraft.yaml
+++ b/snap/snapcraft.yaml
@@ -10,7 +10,7 @@ description: |
 grade: stable # must be 'stable' to release into candidate/stable channels
 confinement: strict # use 'strict' once you have the right plugs and slots
 base: core20
-icon: installer/config/icon.png
+icon: installer/config/logo.png
 
 apps:
   hanoi-tower:
@@ -31,7 +31,7 @@ parts:
   
   qtlib:
     plugin: dump
-    source: Distro/packages/HanoiTowers/data
+    source: Distro/HanoiTowers.zip
       
   libsgl:
     plugin: nil

From 65e3fe0d2df12ac59f7f919fe38d86f991b8cdbc Mon Sep 17 00:00:00 2001
From: EndrII <EndrIIMail@gmail.com>
Date: Sun, 9 May 2021 11:42:13 +0300
Subject: [PATCH 19/29] fix snap

---
 snap/snapcraft.yaml | 9 ++++++---
 submodules/Heart    | 2 +-
 2 files changed, 7 insertions(+), 4 deletions(-)

diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml
index d003a56..e8a6e80 100644
--- a/snap/snapcraft.yaml
+++ b/snap/snapcraft.yaml
@@ -14,9 +14,9 @@ icon: installer/config/logo.png
 
 apps:
   hanoi-tower:
-    command: desktop-launch $SNAP/HanoiTowers.sh
+  command: desktop-launch HanoiTowers.sh
 
-    plugs: [desktop, unity7, home, opengl, x11, wayland, gsettings]
+  plugs: [desktop, unity7, home, opengl, x11, wayland, gsettings]
 
 
 parts:
@@ -27,7 +27,10 @@ parts:
       - libgssapi3-heimdal
       - libldap-2.4-2
     after: [libsgl, qtlib]
-    
+
+    override-stage: |
+      snapcraftctl stage
+      chmod +x -R "$SNAPCRAFT_STAGE"
   
   qtlib:
     plugin: dump
diff --git a/submodules/Heart b/submodules/Heart
index 8c2fc6c..666415b 160000
--- a/submodules/Heart
+++ b/submodules/Heart
@@ -1 +1 @@
-Subproject commit 8c2fc6c0a20fa9ffb99a7e393a57f2a956ac560d
+Subproject commit 666415b5b3885d1ec1b61d3506411cb1f28d0af0

From 8d1ec43d3b52df3375528a3dc1f643a3b3c4053c Mon Sep 17 00:00:00 2001
From: EndrII <EndrIIMail@gmail.com>
Date: Sun, 9 May 2021 20:44:27 +0300
Subject: [PATCH 20/29] fix snap

---
 snap/snapcraft.yaml | 17 ++++++++++-------
 1 file changed, 10 insertions(+), 7 deletions(-)

diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml
index e8a6e80..9322a56 100644
--- a/snap/snapcraft.yaml
+++ b/snap/snapcraft.yaml
@@ -14,10 +14,8 @@ icon: installer/config/logo.png
 
 apps:
   hanoi-tower:
-  command: desktop-launch HanoiTowers.sh
-
-  plugs: [desktop, unity7, home, opengl, x11, wayland, gsettings]
-
+    command: bin/desktop-launch $SNAP/HanoiTowers.sh
+    plugs: [desktop, unity7, home, opengl, x11, wayland, gsettings]
 
 parts:
   hanoi-tower:
@@ -26,16 +24,21 @@ parts:
       - libasn1-8-heimdal
       - libgssapi3-heimdal
       - libldap-2.4-2
-    after: [libsgl, qtlib]
+    after: [libsgl, qtlib, desktop-qt5]
 
     override-stage: |
       snapcraftctl stage
       chmod +x -R "$SNAPCRAFT_STAGE"
-  
+
+  desktop-qt5:
+    source: https://github.com/ubuntu/snapcraft-desktop-helpers.git
+    source-subdir: qt
+    plugin: make
+
   qtlib:
     plugin: dump
     source: Distro/HanoiTowers.zip
-      
+
   libsgl:
     plugin: nil
     stage-packages:

From bdaf0402ab678ab0b6c1bbdf4775ae592e3ac175 Mon Sep 17 00:00:00 2001
From: EndrII <EndrIIMail@gmail.com>
Date: Mon, 10 May 2021 10:43:28 +0300
Subject: [PATCH 21/29] added requariment permisions

---
 HanoiTowers/client/android/AndroidManifest.xml | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/HanoiTowers/client/android/AndroidManifest.xml b/HanoiTowers/client/android/AndroidManifest.xml
index 0d45963..20fb6d5 100644
--- a/HanoiTowers/client/android/AndroidManifest.xml
+++ b/HanoiTowers/client/android/AndroidManifest.xml
@@ -77,4 +77,7 @@
         <!-- For adding service(s) please check: https://wiki.qt.io/AndroidServices -->
     </application>
 
+<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
+    <uses-permission android:name="android.permission.INTERNET"/>
+    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
 </manifest>

From 369ba1bd4d11571fedf88c1f9db841f8b494ed31 Mon Sep 17 00:00:00 2001
From: EndrII <EndrIIMail@gmail.com>
Date: Mon, 10 May 2021 12:19:31 +0300
Subject: [PATCH 22/29] disable no needed functions

---
 CMakeLists.txt | 34 +++++++++++++++++-----------------
 1 file changed, 17 insertions(+), 17 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 9a897e2..65f306f 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -99,24 +99,24 @@ if (HANOI_CLIENT)
 
     if (ANDROID)
         set(ANDROID_PACKAGE_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/HanoiTowers/client/android")
-        set(QTAT_APP_PERMISSIONS ON)
-        set(QTAT_APK_EXPANSION_FILES ON)
-        set(QTAT_APK_INFO ON)
-        set(QTAT_SCREEN ON)
-        set(QTAT_SYSTEM ON)
-        set(QTAT_BATTERY_STATE ON)
-        set(QTAT_SIGNAL_STRENGTH ON)
-        set(QTAT_IMAGES ON)
-        set(QTAT_NOTIFICATION ON)
-        set(QTAT_ADMOB_BANNER ON)
+        set(QTAT_APP_PERMISSIONS OFF)
+        set(QTAT_APK_EXPANSION_FILES OFF)
+        set(QTAT_APK_INFO OFF)
+        set(QTAT_SCREEN OFF)
+        set(QTAT_SYSTEM OFF)
+        set(QTAT_BATTERY_STATE OFF)
+        set(QTAT_SIGNAL_STRENGTH OFF)
+        set(QTAT_IMAGES OFF)
+        set(QTAT_NOTIFICATION OFF)
+        set(QTAT_ADMOB_BANNER OFF)
         set(QTAT_ADMOB_INTERSTITIAL ON)
-        set(QTAT_ADMOB_REWARDED_VIDEO ON)
-        set(QTAT_PLAY_STORE ON)
-        set(QTAT_GOOGLE_ACCOUNT ON)
-        set(QTAT_GOOGLE_DRIVE ON)
-        set(QTAT_SHARING ON)
-        set(QTAT_USER_MESSAGING_PLATFORM ON)
-        set(QTAT_AUDIO ON)
+        set(QTAT_ADMOB_REWARDED_VIDEO OFF)
+        set(QTAT_PLAY_STORE OFF)
+        set(QTAT_GOOGLE_ACCOUNT OFF)
+        set(QTAT_GOOGLE_DRIVE OFF)
+        set(QTAT_SHARING OFF)
+        set(QTAT_USER_MESSAGING_PLATFORM OFF)
+        set(QTAT_AUDIO OFF)
 
         add_subdirectory(submodules/QtAndroidTools/QtAndroidTools)
         include_directories(submodules/QtAndroidTools/QtAndroidTools)

From 3537ad5237d8c88e058fa20ddd0040b7c76cf136 Mon Sep 17 00:00:00 2001
From: EndrII <EndrIIMail@gmail.com>
Date: Mon, 10 May 2021 12:35:24 +0300
Subject: [PATCH 23/29] dependencies fix

---
 HanoiTowers/client/android/build.gradle | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/HanoiTowers/client/android/build.gradle b/HanoiTowers/client/android/build.gradle
index 2833e51..35866b3 100644
--- a/HanoiTowers/client/android/build.gradle
+++ b/HanoiTowers/client/android/build.gradle
@@ -18,7 +18,7 @@ apply plugin: 'com.android.application'
 
 dependencies {
     implementation fileTree(dir: 'libs', include: ['*.jar', '*.aar'])
-    implementation 'com.google.android.gms:play-services-ads:20.1.0'
+    implementation 'com.google.android.gms:play-services-ads:16.+'
 }
 
 android {

From cde4e7c108c0ee83226da9d9718ec3761b17940e Mon Sep 17 00:00:00 2001
From: EndrII <EndrIIMail@gmail.com>
Date: Mon, 10 May 2021 12:59:04 +0300
Subject: [PATCH 24/29] update java depends

---
 HanoiTowers/client/android/build.gradle | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/HanoiTowers/client/android/build.gradle b/HanoiTowers/client/android/build.gradle
index 35866b3..d68dcc1 100644
--- a/HanoiTowers/client/android/build.gradle
+++ b/HanoiTowers/client/android/build.gradle
@@ -18,7 +18,7 @@ apply plugin: 'com.android.application'
 
 dependencies {
     implementation fileTree(dir: 'libs', include: ['*.jar', '*.aar'])
-    implementation 'com.google.android.gms:play-services-ads:16.+'
+    implementation 'com.google.android.gms:play-services-ads:19.+'
 }
 
 android {

From 8dcadaf5b01656790b1e4d158570a41edc1e82bc Mon Sep 17 00:00:00 2001
From: EndrII <EndrIIMail@gmail.com>
Date: Mon, 10 May 2021 13:27:32 +0300
Subject: [PATCH 25/29] show banner

---
 HanoiTowers/client/main.qml | 9 ++++++++-
 submodules/QtAndroidTools   | 2 +-
 2 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/HanoiTowers/client/main.qml b/HanoiTowers/client/main.qml
index ce791de..85fad3d 100644
--- a/HanoiTowers/client/main.qml
+++ b/HanoiTowers/client/main.qml
@@ -20,6 +20,7 @@ ApplicationWindow {
     width: 1240
     height: 720
     title: qsTr("Hanoi Towers")
+    property var admodbanner: null
 
     function createSpriteObjects(url, parent) {
         if (!backEnd.isAndroid()) {
@@ -33,7 +34,8 @@ ApplicationWindow {
 
         const obj = createSpriteObjects(":/admod/AdMobInterstitialAndroid.qml", this);
         if (obj) {
-
+            admodbanner = obj;
+            admodbanner.show();
         }
     }
 
@@ -63,6 +65,11 @@ ApplicationWindow {
         anchors.fill: parent
         interactive: false
 
+        onCurrentIndexChanged: {
+            if (admodbanner)
+                admodbanner.show();
+        }
+
         background: Item {}
 
         Menu.MainMenu {
diff --git a/submodules/QtAndroidTools b/submodules/QtAndroidTools
index fb3474d..d3f1c40 160000
--- a/submodules/QtAndroidTools
+++ b/submodules/QtAndroidTools
@@ -1 +1 @@
-Subproject commit fb3474dd183727790294e600c07531c20af22eb6
+Subproject commit d3f1c400719858fc22eefa0cbfe9485b8e9666af

From 0372f49cf7563344c21f93d13c9f0c1965bdd413 Mon Sep 17 00:00:00 2001
From: EndrII <EndrIIMail@gmail.com>
Date: Mon, 10 May 2021 13:28:48 +0300
Subject: [PATCH 26/29] added load invoke

---
 HanoiTowers/client/main.qml | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/HanoiTowers/client/main.qml b/HanoiTowers/client/main.qml
index 85fad3d..14ccfa6 100644
--- a/HanoiTowers/client/main.qml
+++ b/HanoiTowers/client/main.qml
@@ -35,6 +35,7 @@ ApplicationWindow {
         const obj = createSpriteObjects(":/admod/AdMobInterstitialAndroid.qml", this);
         if (obj) {
             admodbanner = obj;
+            admodbanner.load()
             admodbanner.show();
         }
     }
@@ -66,8 +67,11 @@ ApplicationWindow {
         interactive: false
 
         onCurrentIndexChanged: {
-            if (admodbanner)
+            if (admodbanner) {
+                admodbanner.load()
                 admodbanner.show();
+
+            }
         }
 
         background: Item {}

From d1309099ce24f8a0790747ce1152053175443736 Mon Sep 17 00:00:00 2001
From: EndrII <EndrIIMail@gmail.com>
Date: Mon, 10 May 2021 18:58:00 +0300
Subject: [PATCH 27/29] disable ssl

---
 CMakeLists.txt   | 4 +++-
 submodules/Heart | 2 +-
 2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 65f306f..26c47be 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -27,6 +27,8 @@ endif()
 
 if(ONLINE_FUNCTIONS)
     add_definitions(-DONLINE_FUNCTIONS)
+else()
+#    set(HEART_SSL OFF)
 endif()
 
 if (NOT DEFINED HANOI_TESTS)
@@ -44,7 +46,7 @@ if (NOT DEFINED HANOI_SERVER)
         set(HANOI_SERVER OFF)
     endif()
 
-    if (ONLINE_FUNCTIONS)
+    if ( NOT ONLINE_FUNCTIONS)
         set(HANOI_SERVER OFF)
     endif()
 
diff --git a/submodules/Heart b/submodules/Heart
index 666415b..755f956 160000
--- a/submodules/Heart
+++ b/submodules/Heart
@@ -1 +1 @@
-Subproject commit 666415b5b3885d1ec1b61d3506411cb1f28d0af0
+Subproject commit 755f9565dc1696ced7c40dc2dec998b808b9d942

From da9fab2ce03e32e1608520f83d5d70fe05a42ddc Mon Sep 17 00:00:00 2001
From: EndrII <EndrIIMail@gmail.com>
Date: Mon, 10 May 2021 19:27:27 +0300
Subject: [PATCH 28/29] try fix admod banners

---
 CMakeLists.txt              | 2 +-
 HanoiTowers/client/main.qml | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 26c47be..0c042e1 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -28,7 +28,7 @@ endif()
 if(ONLINE_FUNCTIONS)
     add_definitions(-DONLINE_FUNCTIONS)
 else()
-#    set(HEART_SSL OFF)
+    set(HEART_SSL OFF)
 endif()
 
 if (NOT DEFINED HANOI_TESTS)
diff --git a/HanoiTowers/client/main.qml b/HanoiTowers/client/main.qml
index 14ccfa6..e378423 100644
--- a/HanoiTowers/client/main.qml
+++ b/HanoiTowers/client/main.qml
@@ -32,7 +32,7 @@ ApplicationWindow {
 
     Component.onCompleted:  {
 
-        const obj = createSpriteObjects(":/admod/AdMobInterstitialAndroid.qml", this);
+        const obj = createSpriteObjects("qrc:/admod/AdMobInterstitialAndroid.qml", this);
         if (obj) {
             admodbanner = obj;
             admodbanner.load()

From c0d80e93f5c91ae78d09266001fe8d97052e0059 Mon Sep 17 00:00:00 2001
From: EndrII <EndrIIMail@gmail.com>
Date: Mon, 10 May 2021 19:40:22 +0300
Subject: [PATCH 29/29] show banner only on the main menu

---
 HanoiTowers/client/main.qml | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/HanoiTowers/client/main.qml b/HanoiTowers/client/main.qml
index e378423..9a6df4e 100644
--- a/HanoiTowers/client/main.qml
+++ b/HanoiTowers/client/main.qml
@@ -67,6 +67,9 @@ ApplicationWindow {
         interactive: false
 
         onCurrentIndexChanged: {
+            if (currentIndex)
+                return;
+
             if (admodbanner) {
                 admodbanner.load()
                 admodbanner.show();