diff --git a/app/src/main/java/io/github/sspanak/tt9/hacks/DeviceInfo.java b/app/src/main/java/io/github/sspanak/tt9/hacks/DeviceInfo.java
index e50de7e0..831a5c4b 100644
--- a/app/src/main/java/io/github/sspanak/tt9/hacks/DeviceInfo.java
+++ b/app/src/main/java/io/github/sspanak/tt9/hacks/DeviceInfo.java
@@ -9,10 +9,6 @@ import android.view.KeyEvent;
import androidx.annotation.NonNull;
-import java.util.regex.Pattern;
-
-import io.github.sspanak.tt9.db.exporter.LogcatExporter;
-
public class DeviceInfo {
private static Boolean isRobo = null;
@@ -39,17 +35,6 @@ public class DeviceInfo {
return Build.MANUFACTURER.equals("DuoQin") && Build.MODEL.contains("F21");
}
-
-
- public static boolean isRobo() {
- if (isRobo == null) {
- Pattern roboLog = Pattern.compile("\\d+\\s+\\d+\\s+\\|\\s+Robo\\W");
- isRobo = roboLog.matcher(LogcatExporter.getLogs(false)).find();
- }
-
- return isRobo;
- }
-
public static boolean isSonim() {
return Build.MANUFACTURER.equals("Sonimtech");
}
diff --git a/app/src/main/java/io/github/sspanak/tt9/ime/TraditionalT9.java b/app/src/main/java/io/github/sspanak/tt9/ime/TraditionalT9.java
index 86182ad8..663c0ae7 100644
--- a/app/src/main/java/io/github/sspanak/tt9/ime/TraditionalT9.java
+++ b/app/src/main/java/io/github/sspanak/tt9/ime/TraditionalT9.java
@@ -107,6 +107,7 @@ public class TraditionalT9 extends MainViewHandler {
@Override
protected void onInit() {
+ settings.setDemoMode(false);
Logger.setLevel(settings.getLogLevel());
WordStoreAsync.init(this);
super.onInit();
diff --git a/app/src/main/java/io/github/sspanak/tt9/preferences/PreferencesActivity.java b/app/src/main/java/io/github/sspanak/tt9/preferences/PreferencesActivity.java
index 1355889b..0cc1433e 100644
--- a/app/src/main/java/io/github/sspanak/tt9/preferences/PreferencesActivity.java
+++ b/app/src/main/java/io/github/sspanak/tt9/preferences/PreferencesActivity.java
@@ -19,7 +19,6 @@ import io.github.sspanak.tt9.db.WordStoreAsync;
import io.github.sspanak.tt9.ime.helpers.InputModeValidator;
import io.github.sspanak.tt9.preferences.helpers.Hotkeys;
import io.github.sspanak.tt9.preferences.screens.BaseScreenFragment;
-import io.github.sspanak.tt9.preferences.screens.MainSettingsScreen;
import io.github.sspanak.tt9.preferences.screens.UsageStatsScreen;
import io.github.sspanak.tt9.preferences.screens.appearance.AppearanceScreen;
import io.github.sspanak.tt9.preferences.screens.debug.DebugScreen;
@@ -27,6 +26,7 @@ import io.github.sspanak.tt9.preferences.screens.deleteWords.DeleteWordsScreen;
import io.github.sspanak.tt9.preferences.screens.hotkeys.HotkeysScreen;
import io.github.sspanak.tt9.preferences.screens.keypad.KeyPadScreen;
import io.github.sspanak.tt9.preferences.screens.languages.LanguagesScreen;
+import io.github.sspanak.tt9.preferences.screens.main.MainSettingsScreen;
import io.github.sspanak.tt9.preferences.screens.setup.SetupScreen;
import io.github.sspanak.tt9.ui.ActivityWithNavigation;
import io.github.sspanak.tt9.util.Logger;
@@ -171,6 +171,11 @@ public class PreferencesActivity extends ActivityWithNavigation implements Prefe
}
+ public void displayScreen(@NonNull String screenName) {
+ displayScreen(getScreen(screenName), true);
+ }
+
+
private void buildLayout() {
ActionBar actionBar = getSupportActionBar();
if (actionBar != null) {
diff --git a/app/src/main/java/io/github/sspanak/tt9/preferences/screens/debug/DebugScreen.java b/app/src/main/java/io/github/sspanak/tt9/preferences/screens/debug/DebugScreen.java
index b0888f24..4ae7addb 100644
--- a/app/src/main/java/io/github/sspanak/tt9/preferences/screens/debug/DebugScreen.java
+++ b/app/src/main/java/io/github/sspanak/tt9/preferences/screens/debug/DebugScreen.java
@@ -31,6 +31,7 @@ public class DebugScreen extends BaseScreenFragment {
(new ItemInputHandlingMode(findPreference(ItemInputHandlingMode.NAME), activity.getSettings())).populate().preview().enableClickHandler();
(new ItemText(activity, findPreference(DEVICE_INFO_CONTAINER))).populate(new DeviceInfo().toString()).enableClickHandler();
(new ItemExportLogcat(findPreference(ItemExportLogcat.NAME), activity)).enableClickHandler();
+ (new ItemDemoMode(findPreference(ItemDemoMode.NAME), activity)).populate().enableClickHandler();
initSystemLogsSwitch();
SwitchPreferenceCompat systemLogs = findPreference(SYSTEM_LOGS_SWITCH);
diff --git a/app/src/main/java/io/github/sspanak/tt9/preferences/screens/debug/ItemDemoMode.java b/app/src/main/java/io/github/sspanak/tt9/preferences/screens/debug/ItemDemoMode.java
new file mode 100644
index 00000000..fb86588b
--- /dev/null
+++ b/app/src/main/java/io/github/sspanak/tt9/preferences/screens/debug/ItemDemoMode.java
@@ -0,0 +1,33 @@
+package io.github.sspanak.tt9.preferences.screens.debug;
+
+import androidx.preference.Preference;
+import androidx.preference.SwitchPreferenceCompat;
+
+import io.github.sspanak.tt9.preferences.PreferencesActivity;
+import io.github.sspanak.tt9.preferences.items.ItemClickable;
+
+class ItemDemoMode extends ItemClickable {
+ public static final String NAME = "pref_demo_mode";
+
+ private final PreferencesActivity activity;
+
+ ItemDemoMode(Preference item, PreferencesActivity activity) {
+ super(item);
+ this.activity = activity;
+ }
+
+ @Override
+ protected boolean onClick(Preference p) {
+ activity.getSettings().setDemoMode(((SwitchPreferenceCompat) p).isChecked());
+ activity.onBackPressed();
+ return true;
+ }
+
+ ItemDemoMode populate() {
+ if (item != null) {
+ ((SwitchPreferenceCompat) item).setChecked(activity.getSettings().getDemoMode());
+ }
+
+ return this;
+ }
+}
diff --git a/app/src/main/java/io/github/sspanak/tt9/preferences/screens/main/ItemVersionInfo.java b/app/src/main/java/io/github/sspanak/tt9/preferences/screens/main/ItemVersionInfo.java
new file mode 100644
index 00000000..82c870bb
--- /dev/null
+++ b/app/src/main/java/io/github/sspanak/tt9/preferences/screens/main/ItemVersionInfo.java
@@ -0,0 +1,35 @@
+package io.github.sspanak.tt9.preferences.screens.main;
+
+import androidx.preference.Preference;
+
+import io.github.sspanak.tt9.BuildConfig;
+import io.github.sspanak.tt9.preferences.PreferencesActivity;
+import io.github.sspanak.tt9.preferences.items.ItemClickable;
+import io.github.sspanak.tt9.preferences.screens.debug.DebugScreen;
+
+class ItemVersionInfo extends ItemClickable {
+ static final String NAME = "version_info";
+
+ private final PreferencesActivity activity;
+
+ ItemVersionInfo(Preference item, PreferencesActivity activity) {
+ super(item);
+ this.activity = activity;
+ }
+
+ @Override
+ protected boolean onClick(Preference p) {
+ if (!activity.getSettings().getDemoMode()) {
+ activity.displayScreen(DebugScreen.NAME);
+ }
+
+ return true;
+ }
+
+ ItemVersionInfo populate() {
+ if (item != null) {
+ item.setSummary(BuildConfig.VERSION_FULL);
+ }
+ return this;
+ }
+}
diff --git a/app/src/main/java/io/github/sspanak/tt9/preferences/screens/MainSettingsScreen.java b/app/src/main/java/io/github/sspanak/tt9/preferences/screens/main/MainSettingsScreen.java
similarity index 89%
rename from app/src/main/java/io/github/sspanak/tt9/preferences/screens/MainSettingsScreen.java
rename to app/src/main/java/io/github/sspanak/tt9/preferences/screens/main/MainSettingsScreen.java
index 36db5257..ae3c8018 100644
--- a/app/src/main/java/io/github/sspanak/tt9/preferences/screens/MainSettingsScreen.java
+++ b/app/src/main/java/io/github/sspanak/tt9/preferences/screens/main/MainSettingsScreen.java
@@ -1,4 +1,4 @@
-package io.github.sspanak.tt9.preferences.screens;
+package io.github.sspanak.tt9.preferences.screens.main;
import android.content.Intent;
import android.net.Uri;
@@ -11,8 +11,8 @@ import java.util.regex.Pattern;
import io.github.sspanak.tt9.BuildConfig;
import io.github.sspanak.tt9.R;
-import io.github.sspanak.tt9.hacks.DeviceInfo;
import io.github.sspanak.tt9.preferences.PreferencesActivity;
+import io.github.sspanak.tt9.preferences.screens.BaseScreenFragment;
import io.github.sspanak.tt9.util.Logger;
import io.github.sspanak.tt9.util.SystemSettings;
@@ -71,17 +71,15 @@ public class MainSettingsScreen extends BaseScreenFragment {
private void createAboutSection() {
- Preference vi = findPreference("version_info");
- if (vi != null) {
- vi.setSummary(BuildConfig.VERSION_FULL);
- }
-
Preference donate = findPreference("donate_link");
if (donate != null) {
String appName = getString(R.string.app_name_short);
String url = getString(R.string.donate_url_short);
donate.setSummary(getString(R.string.donate_summary, appName, url));
}
+
+ ItemVersionInfo debugOptions = new ItemVersionInfo(findPreference(ItemVersionInfo.NAME), activity);
+ debugOptions.populate().enableClickHandler();
}
@@ -101,7 +99,7 @@ public class MainSettingsScreen extends BaseScreenFragment {
for (Preference goToScreen : screens) {
if (goToScreen != null) {
- goToScreen.setEnabled(isTT9On || DeviceInfo.isRobo());
+ goToScreen.setEnabled(isTT9On || activity.getSettings().getDemoMode());
}
}
}
diff --git a/app/src/main/java/io/github/sspanak/tt9/preferences/screens/setup/SetupScreen.java b/app/src/main/java/io/github/sspanak/tt9/preferences/screens/setup/SetupScreen.java
index f1ed02e9..5f589e1e 100644
--- a/app/src/main/java/io/github/sspanak/tt9/preferences/screens/setup/SetupScreen.java
+++ b/app/src/main/java/io/github/sspanak/tt9/preferences/screens/setup/SetupScreen.java
@@ -3,7 +3,6 @@ package io.github.sspanak.tt9.preferences.screens.setup;
import androidx.preference.Preference;
import io.github.sspanak.tt9.R;
-import io.github.sspanak.tt9.hacks.DeviceInfo;
import io.github.sspanak.tt9.preferences.PreferencesActivity;
import io.github.sspanak.tt9.preferences.screens.BaseScreenFragment;
import io.github.sspanak.tt9.util.SystemSettings;
@@ -21,7 +20,7 @@ public class SetupScreen extends BaseScreenFragment {
public void onCreate() {
boolean isTT9On = SystemSettings.isTT9Enabled(activity);
createKeyboardSection(isTT9On);
- createHacksSection(isTT9On | DeviceInfo.isRobo());
+ createHacksSection(isTT9On | activity.getSettings().getDemoMode());
resetFontSize(false);
}
diff --git a/app/src/main/java/io/github/sspanak/tt9/preferences/settings/SettingsHacks.java b/app/src/main/java/io/github/sspanak/tt9/preferences/settings/SettingsHacks.java
index 7914f8f0..e31556c0 100644
--- a/app/src/main/java/io/github/sspanak/tt9/preferences/settings/SettingsHacks.java
+++ b/app/src/main/java/io/github/sspanak/tt9/preferences/settings/SettingsHacks.java
@@ -8,10 +8,20 @@ import io.github.sspanak.tt9.preferences.screens.debug.ItemInputHandlingMode;
import io.github.sspanak.tt9.util.Logger;
class SettingsHacks extends BaseSettings {
+ private boolean demoMode = false;
+
SettingsHacks(Context context) { super(context); }
/************* debugging settings *************/
+ public boolean getDemoMode() {
+ return demoMode;
+ }
+
+ public void setDemoMode(boolean demoMode) {
+ this.demoMode = demoMode;
+ }
+
public int getLogLevel() {
return getStringifiedInt("pref_log_level", Logger.LEVEL);
}
diff --git a/app/src/main/res/layout/preferences_container.xml b/app/src/main/res/layout/preferences_container.xml
index 9c0570e7..c10b678a 100644
--- a/app/src/main/res/layout/preferences_container.xml
+++ b/app/src/main/res/layout/preferences_container.xml
@@ -5,6 +5,6 @@
android:id="@+id/preferences_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- tools:context=".preferences.screens.MainSettingsScreen"
+ tools:context=".preferences.screens.main.MainSettingsScreen"
android:orientation="vertical">
diff --git a/app/src/main/res/xml/prefs.xml b/app/src/main/res/xml/prefs.xml
index 49a740b1..7f631351 100644
--- a/app/src/main/res/xml/prefs.xml
+++ b/app/src/main/res/xml/prefs.xml
@@ -46,7 +46,6 @@
diff --git a/app/src/main/res/xml/prefs_screen_debug.xml b/app/src/main/res/xml/prefs_screen_debug.xml
index 151d131c..60f2874c 100644
--- a/app/src/main/res/xml/prefs_screen_debug.xml
+++ b/app/src/main/res/xml/prefs_screen_debug.xml
@@ -9,6 +9,10 @@
app:key="pref_input_handling_mode"
app:title="Keypad Handling Mode" />
+
+