diff --git a/app/src/main/java/io/github/sspanak/tt9/db/customWords/AbstractExporter.java b/app/src/main/java/io/github/sspanak/tt9/db/customWords/AbstractExporter.java index d80d17ce..4bf0d9c8 100644 --- a/app/src/main/java/io/github/sspanak/tt9/db/customWords/AbstractExporter.java +++ b/app/src/main/java/io/github/sspanak/tt9/db/customWords/AbstractExporter.java @@ -15,8 +15,8 @@ import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; -import io.github.sspanak.tt9.hacks.DeviceInfo; -import io.github.sspanak.tt9.util.Permissions; +import io.github.sspanak.tt9.util.sys.DeviceInfo; +import io.github.sspanak.tt9.util.sys.Permissions; public abstract class AbstractExporter extends AbstractFileProcessor { protected static String FILE_EXTENSION = ".csv"; diff --git a/app/src/main/java/io/github/sspanak/tt9/hacks/InputType.java b/app/src/main/java/io/github/sspanak/tt9/hacks/InputType.java index ffd54adb..da620583 100644 --- a/app/src/main/java/io/github/sspanak/tt9/hacks/InputType.java +++ b/app/src/main/java/io/github/sspanak/tt9/hacks/InputType.java @@ -5,6 +5,7 @@ import android.view.inputmethod.EditorInfo; import android.view.inputmethod.InputConnection; import io.github.sspanak.tt9.ime.helpers.StandardInputType; +import io.github.sspanak.tt9.util.sys.DeviceInfo; public class InputType extends StandardInputType { private final boolean isUs; diff --git a/app/src/main/java/io/github/sspanak/tt9/ime/CommandHandler.java b/app/src/main/java/io/github/sspanak/tt9/ime/CommandHandler.java index 3d5a139f..6d915c0b 100644 --- a/app/src/main/java/io/github/sspanak/tt9/ime/CommandHandler.java +++ b/app/src/main/java/io/github/sspanak/tt9/ime/CommandHandler.java @@ -3,16 +3,16 @@ package io.github.sspanak.tt9.ime; import io.github.sspanak.tt9.R; import io.github.sspanak.tt9.db.DataStore; import io.github.sspanak.tt9.db.words.DictionaryLoader; -import io.github.sspanak.tt9.hacks.DeviceInfo; import io.github.sspanak.tt9.ime.modes.InputMode; import io.github.sspanak.tt9.ime.modes.InputModeKind; import io.github.sspanak.tt9.languages.LanguageCollection; import io.github.sspanak.tt9.ui.UI; import io.github.sspanak.tt9.ui.dialogs.AddWordDialog; -import io.github.sspanak.tt9.util.Clipboard; import io.github.sspanak.tt9.util.Logger; -import io.github.sspanak.tt9.util.SystemSettings; import io.github.sspanak.tt9.util.Ternary; +import io.github.sspanak.tt9.util.sys.Clipboard; +import io.github.sspanak.tt9.util.sys.DeviceInfo; +import io.github.sspanak.tt9.util.sys.SystemSettings; abstract public class CommandHandler extends TextEditingHandler { @Override diff --git a/app/src/main/java/io/github/sspanak/tt9/ime/KeyPadHandler.java b/app/src/main/java/io/github/sspanak/tt9/ime/KeyPadHandler.java index 34cb8614..414e3229 100644 --- a/app/src/main/java/io/github/sspanak/tt9/ime/KeyPadHandler.java +++ b/app/src/main/java/io/github/sspanak/tt9/ime/KeyPadHandler.java @@ -5,8 +5,8 @@ import android.view.KeyEvent; import io.github.sspanak.tt9.ime.helpers.Key; import io.github.sspanak.tt9.preferences.screens.debug.ItemInputHandlingMode; import io.github.sspanak.tt9.preferences.settings.SettingsStore; -import io.github.sspanak.tt9.util.SystemSettings; import io.github.sspanak.tt9.util.Timer; +import io.github.sspanak.tt9.util.sys.SystemSettings; abstract class KeyPadHandler extends UiHandler { diff --git a/app/src/main/java/io/github/sspanak/tt9/ime/TextEditingHandler.java b/app/src/main/java/io/github/sspanak/tt9/ime/TextEditingHandler.java index f2c44a15..be09e8af 100644 --- a/app/src/main/java/io/github/sspanak/tt9/ime/TextEditingHandler.java +++ b/app/src/main/java/io/github/sspanak/tt9/ime/TextEditingHandler.java @@ -3,8 +3,8 @@ package io.github.sspanak.tt9.ime; import io.github.sspanak.tt9.ime.modes.InputModeKind; import io.github.sspanak.tt9.languages.LanguageCollection; import io.github.sspanak.tt9.languages.LanguageKind; -import io.github.sspanak.tt9.util.Clipboard; import io.github.sspanak.tt9.util.Ternary; +import io.github.sspanak.tt9.util.sys.Clipboard; abstract public class TextEditingHandler extends VoiceHandler { protected boolean isLanguageRTL; 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 d12595a7..131a13ee 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 @@ -18,7 +18,7 @@ import io.github.sspanak.tt9.preferences.settings.SettingsStore; import io.github.sspanak.tt9.ui.UI; import io.github.sspanak.tt9.ui.dialogs.PopupDialog; import io.github.sspanak.tt9.util.Logger; -import io.github.sspanak.tt9.util.SystemSettings; +import io.github.sspanak.tt9.util.sys.SystemSettings; public class TraditionalT9 extends MainViewHandler { private static final String LOG_TAG = "MAIN"; diff --git a/app/src/main/java/io/github/sspanak/tt9/ime/UiHandler.java b/app/src/main/java/io/github/sspanak/tt9/ime/UiHandler.java index 09cb9787..f3426719 100644 --- a/app/src/main/java/io/github/sspanak/tt9/ime/UiHandler.java +++ b/app/src/main/java/io/github/sspanak/tt9/ime/UiHandler.java @@ -3,13 +3,13 @@ package io.github.sspanak.tt9.ime; import android.view.inputmethod.InputMethodManager; import io.github.sspanak.tt9.R; -import io.github.sspanak.tt9.hacks.DeviceInfo; import io.github.sspanak.tt9.ime.modes.InputMode; import io.github.sspanak.tt9.ime.modes.InputModeKind; import io.github.sspanak.tt9.preferences.settings.SettingsStore; import io.github.sspanak.tt9.ui.main.ResizableMainView; import io.github.sspanak.tt9.ui.tray.StatusBar; -import io.github.sspanak.tt9.util.SystemSettings; +import io.github.sspanak.tt9.util.sys.DeviceInfo; +import io.github.sspanak.tt9.util.sys.SystemSettings; abstract class UiHandler extends AbstractHandler { protected SettingsStore settings; diff --git a/app/src/main/java/io/github/sspanak/tt9/ime/helpers/InputField.java b/app/src/main/java/io/github/sspanak/tt9/ime/helpers/InputField.java index 197e62a6..393fc357 100644 --- a/app/src/main/java/io/github/sspanak/tt9/ime/helpers/InputField.java +++ b/app/src/main/java/io/github/sspanak/tt9/ime/helpers/InputField.java @@ -7,9 +7,9 @@ import androidx.annotation.Nullable; import java.util.ArrayList; -import io.github.sspanak.tt9.hacks.DeviceInfo; import io.github.sspanak.tt9.languages.Language; import io.github.sspanak.tt9.languages.LanguageCollection; +import io.github.sspanak.tt9.util.sys.DeviceInfo; public class InputField { public static final int IME_ACTION_ENTER = EditorInfo.IME_MASK_ACTION + 1; diff --git a/app/src/main/java/io/github/sspanak/tt9/ime/helpers/TextSelection.java b/app/src/main/java/io/github/sspanak/tt9/ime/helpers/TextSelection.java index a7c4b59a..56506876 100644 --- a/app/src/main/java/io/github/sspanak/tt9/ime/helpers/TextSelection.java +++ b/app/src/main/java/io/github/sspanak/tt9/ime/helpers/TextSelection.java @@ -8,7 +8,7 @@ import android.view.inputmethod.InputConnection; import androidx.annotation.NonNull; import androidx.annotation.Nullable; -import io.github.sspanak.tt9.util.Clipboard; +import io.github.sspanak.tt9.util.sys.Clipboard; public class TextSelection { @Nullable private final InputConnection connection; diff --git a/app/src/main/java/io/github/sspanak/tt9/ime/voice/SpeechRecognizerSupportLegacy.java b/app/src/main/java/io/github/sspanak/tt9/ime/voice/SpeechRecognizerSupportLegacy.java index 21a73dd0..772f30ac 100644 --- a/app/src/main/java/io/github/sspanak/tt9/ime/voice/SpeechRecognizerSupportLegacy.java +++ b/app/src/main/java/io/github/sspanak/tt9/ime/voice/SpeechRecognizerSupportLegacy.java @@ -6,8 +6,8 @@ import android.speech.SpeechRecognizer; import androidx.annotation.NonNull; import androidx.annotation.Nullable; -import io.github.sspanak.tt9.hacks.DeviceInfo; import io.github.sspanak.tt9.languages.Language; +import io.github.sspanak.tt9.util.sys.DeviceInfo; public class SpeechRecognizerSupportLegacy { final boolean isOnDeviceRecognitionAvailable; diff --git a/app/src/main/java/io/github/sspanak/tt9/ime/voice/SpeechRecognizerSupportModern.java b/app/src/main/java/io/github/sspanak/tt9/ime/voice/SpeechRecognizerSupportModern.java index c2d2b4b0..9c409b6e 100644 --- a/app/src/main/java/io/github/sspanak/tt9/ime/voice/SpeechRecognizerSupportModern.java +++ b/app/src/main/java/io/github/sspanak/tt9/ime/voice/SpeechRecognizerSupportModern.java @@ -14,8 +14,8 @@ import java.util.HashSet; import java.util.List; import java.util.concurrent.Executors; -import io.github.sspanak.tt9.hacks.DeviceInfo; import io.github.sspanak.tt9.languages.Language; +import io.github.sspanak.tt9.util.sys.DeviceInfo; @RequiresApi(api = Build.VERSION_CODES.TIRAMISU) class SpeechRecognizerSupportModern extends SpeechRecognizerSupportLegacy implements RecognitionSupportCallback { diff --git a/app/src/main/java/io/github/sspanak/tt9/ime/voice/VoiceInputError.java b/app/src/main/java/io/github/sspanak/tt9/ime/voice/VoiceInputError.java index 2c862df2..e3c00e67 100644 --- a/app/src/main/java/io/github/sspanak/tt9/ime/voice/VoiceInputError.java +++ b/app/src/main/java/io/github/sspanak/tt9/ime/voice/VoiceInputError.java @@ -6,7 +6,7 @@ import android.speech.SpeechRecognizer; import androidx.annotation.NonNull; import io.github.sspanak.tt9.R; -import io.github.sspanak.tt9.hacks.DeviceInfo; +import io.github.sspanak.tt9.util.sys.DeviceInfo; public class VoiceInputError { public final static int ERROR_NOT_AVAILABLE = 101; diff --git a/app/src/main/java/io/github/sspanak/tt9/ime/voice/VoiceInputOps.java b/app/src/main/java/io/github/sspanak/tt9/ime/voice/VoiceInputOps.java index 03d0c56c..ad124206 100644 --- a/app/src/main/java/io/github/sspanak/tt9/ime/voice/VoiceInputOps.java +++ b/app/src/main/java/io/github/sspanak/tt9/ime/voice/VoiceInputOps.java @@ -13,10 +13,10 @@ import androidx.annotation.Nullable; import java.util.ArrayList; import io.github.sspanak.tt9.R; -import io.github.sspanak.tt9.hacks.DeviceInfo; import io.github.sspanak.tt9.languages.Language; import io.github.sspanak.tt9.util.ConsumerCompat; import io.github.sspanak.tt9.util.Logger; +import io.github.sspanak.tt9.util.sys.DeviceInfo; public class VoiceInputOps { private final static String LOG_TAG = VoiceInputOps.class.getSimpleName(); diff --git a/app/src/main/java/io/github/sspanak/tt9/languages/LanguageCollection.java b/app/src/main/java/io/github/sspanak/tt9/languages/LanguageCollection.java index 1b77a836..631749cd 100644 --- a/app/src/main/java/io/github/sspanak/tt9/languages/LanguageCollection.java +++ b/app/src/main/java/io/github/sspanak/tt9/languages/LanguageCollection.java @@ -11,7 +11,7 @@ import java.util.HashMap; import java.util.Locale; import io.github.sspanak.tt9.util.Logger; -import io.github.sspanak.tt9.util.SystemSettings; +import io.github.sspanak.tt9.util.sys.SystemSettings; public class LanguageCollection { private static LanguageCollection self; diff --git a/app/src/main/java/io/github/sspanak/tt9/preferences/HelpActivity.java b/app/src/main/java/io/github/sspanak/tt9/preferences/HelpActivity.java index 1c597ada..5d6deb76 100644 --- a/app/src/main/java/io/github/sspanak/tt9/preferences/HelpActivity.java +++ b/app/src/main/java/io/github/sspanak/tt9/preferences/HelpActivity.java @@ -1,14 +1,13 @@ package io.github.sspanak.tt9.preferences; -import android.util.TypedValue; -import android.widget.TextView; - import java.io.BufferedReader; import java.io.IOException; import io.github.sspanak.tt9.ui.WebViewActivity; import io.github.sspanak.tt9.util.Logger; -import io.github.sspanak.tt9.util.SystemSettings; +import io.github.sspanak.tt9.util.colors.AccentSystemColor; +import io.github.sspanak.tt9.util.colors.TextSystemColor; +import io.github.sspanak.tt9.util.sys.SystemSettings; public class HelpActivity extends WebViewActivity { public HelpActivity() { @@ -30,8 +29,8 @@ public class HelpActivity extends WebViewActivity { builder.append(line); } return builder.toString() - .replaceFirst("color: default", getTextColor()) - .replaceFirst("color: accent", getLinkColor()); + .replaceFirst("color: default;", (new TextSystemColor(this)).toCssColor()) + .replaceFirst("color: accent;", (new AccentSystemColor(this)).toCssColor()); } catch (Exception e) { Logger.e(getClass().getSimpleName(), "Failed opening the help HTML document."); return ""; @@ -44,20 +43,4 @@ public class HelpActivity extends WebViewActivity { file = file.exists() ? file : new HelpFile(this); return file.getReader(); } - - private String getTextColor() { - return colorToHex(new TextView(this).getTextColors().getDefaultColor()); - } - - private String getLinkColor() { - final TypedValue value = new TypedValue(); - getTheme().resolveAttribute(android.R.attr.colorAccent, value, true); - return colorToHex(value.data); - } - - private String colorToHex(int color) { - String textColor = String.format("%06x", color); - textColor = textColor.length() == 8 ? textColor.substring(2) : textColor; - return "color: #" + textColor; - } } 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 1392c8bc..3effb81a 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 @@ -35,7 +35,7 @@ import io.github.sspanak.tt9.preferences.screens.punctuation.PunctuationScreen; import io.github.sspanak.tt9.preferences.screens.setup.SetupScreen; import io.github.sspanak.tt9.ui.ActivityWithNavigation; import io.github.sspanak.tt9.util.Logger; -import io.github.sspanak.tt9.util.SystemSettings; +import io.github.sspanak.tt9.util.sys.SystemSettings; public class PreferencesActivity extends ActivityWithNavigation implements PreferenceFragmentCompat.OnPreferenceStartFragmentCallback { /** diff --git a/app/src/main/java/io/github/sspanak/tt9/preferences/items/ItemSearch.java b/app/src/main/java/io/github/sspanak/tt9/preferences/items/ItemSearch.java index 35c2194a..5f625dad 100644 --- a/app/src/main/java/io/github/sspanak/tt9/preferences/items/ItemSearch.java +++ b/app/src/main/java/io/github/sspanak/tt9/preferences/items/ItemSearch.java @@ -10,9 +10,9 @@ import androidx.appcompat.content.res.AppCompatResources; import androidx.preference.PreferenceViewHolder; import io.github.sspanak.tt9.R; -import io.github.sspanak.tt9.hacks.DeviceInfo; import io.github.sspanak.tt9.languages.LanguageCollection; import io.github.sspanak.tt9.languages.LanguageKind; +import io.github.sspanak.tt9.util.sys.DeviceInfo; abstract public class ItemSearch extends ItemTextInput { public ItemSearch(@NonNull Context context, @Nullable AttributeSet attrs, int defStyleAttr, int defStyleRes) { diff --git a/app/src/main/java/io/github/sspanak/tt9/preferences/items/ItemText.java b/app/src/main/java/io/github/sspanak/tt9/preferences/items/ItemText.java index d40ed974..574631ce 100644 --- a/app/src/main/java/io/github/sspanak/tt9/preferences/items/ItemText.java +++ b/app/src/main/java/io/github/sspanak/tt9/preferences/items/ItemText.java @@ -3,10 +3,10 @@ package io.github.sspanak.tt9.preferences.items; 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.ui.UI; -import io.github.sspanak.tt9.util.Clipboard; +import io.github.sspanak.tt9.util.sys.Clipboard; +import io.github.sspanak.tt9.util.sys.DeviceInfo; public class ItemText extends ItemClickable { private final PreferencesActivity activity; diff --git a/app/src/main/java/io/github/sspanak/tt9/preferences/screens/BaseScreenFragment.java b/app/src/main/java/io/github/sspanak/tt9/preferences/screens/BaseScreenFragment.java index e7f13ff2..3416f583 100644 --- a/app/src/main/java/io/github/sspanak/tt9/preferences/screens/BaseScreenFragment.java +++ b/app/src/main/java/io/github/sspanak/tt9/preferences/screens/BaseScreenFragment.java @@ -6,11 +6,11 @@ import android.view.MenuItem; import androidx.annotation.NonNull; import androidx.preference.PreferenceFragmentCompat; -import io.github.sspanak.tt9.hacks.DeviceInfo; import io.github.sspanak.tt9.preferences.PreferencesActivity; import io.github.sspanak.tt9.preferences.custom.ScreenPreferencesList; import io.github.sspanak.tt9.preferences.settings.SettingsUI; import io.github.sspanak.tt9.util.Logger; +import io.github.sspanak.tt9.util.sys.DeviceInfo; abstract public class BaseScreenFragment extends PreferenceFragmentCompat { protected PreferencesActivity activity; diff --git a/app/src/main/java/io/github/sspanak/tt9/preferences/screens/appearance/ItemDragResize.java b/app/src/main/java/io/github/sspanak/tt9/preferences/screens/appearance/ItemDragResize.java index 8918abe1..a0ed344b 100644 --- a/app/src/main/java/io/github/sspanak/tt9/preferences/screens/appearance/ItemDragResize.java +++ b/app/src/main/java/io/github/sspanak/tt9/preferences/screens/appearance/ItemDragResize.java @@ -4,8 +4,8 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.preference.SwitchPreferenceCompat; -import io.github.sspanak.tt9.hacks.DeviceInfo; import io.github.sspanak.tt9.preferences.settings.SettingsStore; +import io.github.sspanak.tt9.util.sys.DeviceInfo; public class ItemDragResize { public final static String NAME = "pref_drag_resize"; diff --git a/app/src/main/java/io/github/sspanak/tt9/preferences/screens/appearance/ItemSelectSettingsFontSize.java b/app/src/main/java/io/github/sspanak/tt9/preferences/screens/appearance/ItemSelectSettingsFontSize.java index fb7f0e92..7c952d9f 100644 --- a/app/src/main/java/io/github/sspanak/tt9/preferences/screens/appearance/ItemSelectSettingsFontSize.java +++ b/app/src/main/java/io/github/sspanak/tt9/preferences/screens/appearance/ItemSelectSettingsFontSize.java @@ -6,9 +6,9 @@ import androidx.preference.Preference; import java.util.LinkedHashMap; import io.github.sspanak.tt9.R; -import io.github.sspanak.tt9.hacks.DeviceInfo; import io.github.sspanak.tt9.preferences.items.ItemDropDown; import io.github.sspanak.tt9.preferences.settings.SettingsStore; +import io.github.sspanak.tt9.util.sys.DeviceInfo; public class ItemSelectSettingsFontSize extends ItemDropDown { public static final String NAME = "pref_font_size"; 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 243d68e7..8392ed65 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 @@ -1,10 +1,10 @@ package io.github.sspanak.tt9.preferences.screens.debug; 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.items.ItemText; import io.github.sspanak.tt9.preferences.screens.BaseScreenFragment; +import io.github.sspanak.tt9.util.sys.DeviceInfo; public class DebugScreen extends BaseScreenFragment { public static final String NAME = "Debug"; diff --git a/app/src/main/java/io/github/sspanak/tt9/preferences/screens/debug/ItemPrecalculateNavbarHeight.java b/app/src/main/java/io/github/sspanak/tt9/preferences/screens/debug/ItemPrecalculateNavbarHeight.java index 65e8c0e8..d74de308 100644 --- a/app/src/main/java/io/github/sspanak/tt9/preferences/screens/debug/ItemPrecalculateNavbarHeight.java +++ b/app/src/main/java/io/github/sspanak/tt9/preferences/screens/debug/ItemPrecalculateNavbarHeight.java @@ -4,9 +4,9 @@ import androidx.annotation.NonNull; import androidx.preference.Preference; import androidx.preference.SwitchPreferenceCompat; -import io.github.sspanak.tt9.hacks.DeviceInfo; import io.github.sspanak.tt9.preferences.items.ItemClickable; import io.github.sspanak.tt9.preferences.settings.SettingsStore; +import io.github.sspanak.tt9.util.sys.DeviceInfo; public class ItemPrecalculateNavbarHeight extends ItemClickable { public static final String NAME = "hack_precalculate_navbar_height_v3"; diff --git a/app/src/main/java/io/github/sspanak/tt9/preferences/screens/hotkeys/PreferenceHotkey.java b/app/src/main/java/io/github/sspanak/tt9/preferences/screens/hotkeys/PreferenceHotkey.java index 175ac3e8..05852024 100644 --- a/app/src/main/java/io/github/sspanak/tt9/preferences/screens/hotkeys/PreferenceHotkey.java +++ b/app/src/main/java/io/github/sspanak/tt9/preferences/screens/hotkeys/PreferenceHotkey.java @@ -9,11 +9,11 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import io.github.sspanak.tt9.R; -import io.github.sspanak.tt9.hacks.DeviceInfo; import io.github.sspanak.tt9.ime.helpers.Key; import io.github.sspanak.tt9.preferences.custom.ScreenPreference; import io.github.sspanak.tt9.preferences.settings.SettingsStore; import io.github.sspanak.tt9.ui.UI; +import io.github.sspanak.tt9.util.sys.DeviceInfo; public class PreferenceHotkey extends ScreenPreference implements DialogInterface.OnKeyListener{ private static final int CANCEL_KEY = 0; diff --git a/app/src/main/java/io/github/sspanak/tt9/preferences/screens/languages/ItemDictionaryNotifications.java b/app/src/main/java/io/github/sspanak/tt9/preferences/screens/languages/ItemDictionaryNotifications.java index 9bc1929a..41cce7e9 100644 --- a/app/src/main/java/io/github/sspanak/tt9/preferences/screens/languages/ItemDictionaryNotifications.java +++ b/app/src/main/java/io/github/sspanak/tt9/preferences/screens/languages/ItemDictionaryNotifications.java @@ -5,7 +5,7 @@ import androidx.preference.SwitchPreferenceCompat; import io.github.sspanak.tt9.preferences.PreferencesActivity; import io.github.sspanak.tt9.preferences.items.ItemSwitch; -import io.github.sspanak.tt9.util.Permissions; +import io.github.sspanak.tt9.util.sys.Permissions; public class ItemDictionaryNotifications extends ItemSwitch { public static final String NAME = "dictionary_notifications"; diff --git a/app/src/main/java/io/github/sspanak/tt9/preferences/screens/main/MainSettingsScreen.java b/app/src/main/java/io/github/sspanak/tt9/preferences/screens/main/MainSettingsScreen.java index 26823e80..71ae9984 100644 --- a/app/src/main/java/io/github/sspanak/tt9/preferences/screens/main/MainSettingsScreen.java +++ b/app/src/main/java/io/github/sspanak/tt9/preferences/screens/main/MainSettingsScreen.java @@ -9,7 +9,7 @@ import io.github.sspanak.tt9.R; import io.github.sspanak.tt9.preferences.HelpFile; import io.github.sspanak.tt9.preferences.PreferencesActivity; import io.github.sspanak.tt9.preferences.screens.BaseScreenFragment; -import io.github.sspanak.tt9.util.SystemSettings; +import io.github.sspanak.tt9.util.sys.SystemSettings; public class MainSettingsScreen extends BaseScreenFragment { final public static String NAME = "Main"; diff --git a/app/src/main/java/io/github/sspanak/tt9/preferences/screens/setup/ItemSpellCheck.java b/app/src/main/java/io/github/sspanak/tt9/preferences/screens/setup/ItemSpellCheck.java index 091a9c7f..6ba9e714 100644 --- a/app/src/main/java/io/github/sspanak/tt9/preferences/screens/setup/ItemSpellCheck.java +++ b/app/src/main/java/io/github/sspanak/tt9/preferences/screens/setup/ItemSpellCheck.java @@ -9,10 +9,10 @@ import android.view.textservice.TextServicesManager; 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.items.ItemClickable; import io.github.sspanak.tt9.ui.UI; +import io.github.sspanak.tt9.util.sys.DeviceInfo; public class ItemSpellCheck extends ItemClickable { public ItemSpellCheck(PreferencesActivity activity, Preference item) { 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 b501e120..37585755 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 @@ -5,7 +5,7 @@ import androidx.preference.Preference; import io.github.sspanak.tt9.R; import io.github.sspanak.tt9.preferences.PreferencesActivity; import io.github.sspanak.tt9.preferences.screens.BaseScreenFragment; -import io.github.sspanak.tt9.util.SystemSettings; +import io.github.sspanak.tt9.util.sys.SystemSettings; public class SetupScreen extends BaseScreenFragment { final public static String NAME = "Setup"; 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 7f0d9127..c48f6631 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 @@ -2,9 +2,9 @@ package io.github.sspanak.tt9.preferences.settings; import android.content.Context; -import io.github.sspanak.tt9.hacks.DeviceInfo; import io.github.sspanak.tt9.preferences.screens.debug.ItemInputHandlingMode; import io.github.sspanak.tt9.util.Logger; +import io.github.sspanak.tt9.util.sys.DeviceInfo; class SettingsHacks extends BaseSettings { private boolean demoMode = false; diff --git a/app/src/main/java/io/github/sspanak/tt9/preferences/settings/SettingsUI.java b/app/src/main/java/io/github/sspanak/tt9/preferences/settings/SettingsUI.java index 5341771e..df01d3fc 100644 --- a/app/src/main/java/io/github/sspanak/tt9/preferences/settings/SettingsUI.java +++ b/app/src/main/java/io/github/sspanak/tt9/preferences/settings/SettingsUI.java @@ -8,8 +8,8 @@ import android.view.Gravity; import androidx.appcompat.app.AppCompatDelegate; import io.github.sspanak.tt9.R; -import io.github.sspanak.tt9.hacks.DeviceInfo; import io.github.sspanak.tt9.util.Logger; +import io.github.sspanak.tt9.util.sys.DeviceInfo; public class SettingsUI extends SettingsTyping { public final static int FONT_SIZE_DEFAULT = 0; diff --git a/app/src/main/java/io/github/sspanak/tt9/ui/EdgeToEdgeActivity.java b/app/src/main/java/io/github/sspanak/tt9/ui/EdgeToEdgeActivity.java index 220e6b14..09643dc8 100644 --- a/app/src/main/java/io/github/sspanak/tt9/ui/EdgeToEdgeActivity.java +++ b/app/src/main/java/io/github/sspanak/tt9/ui/EdgeToEdgeActivity.java @@ -5,7 +5,7 @@ import android.view.WindowInsets; import androidx.appcompat.app.AppCompatActivity; -import io.github.sspanak.tt9.hacks.DeviceInfo; +import io.github.sspanak.tt9.util.sys.DeviceInfo; public class EdgeToEdgeActivity extends AppCompatActivity { diff --git a/app/src/main/java/io/github/sspanak/tt9/ui/UI.java b/app/src/main/java/io/github/sspanak/tt9/ui/UI.java index 4459ebf3..cac796ca 100644 --- a/app/src/main/java/io/github/sspanak/tt9/ui/UI.java +++ b/app/src/main/java/io/github/sspanak/tt9/ui/UI.java @@ -17,8 +17,8 @@ import com.google.android.material.dialog.MaterialAlertDialogBuilder; import java.util.HashMap; -import io.github.sspanak.tt9.hacks.DeviceInfo; import io.github.sspanak.tt9.preferences.PreferencesActivity; +import io.github.sspanak.tt9.util.sys.DeviceInfo; public class UI { private static final HashMap singleToasts = new HashMap<>(); diff --git a/app/src/main/java/io/github/sspanak/tt9/ui/Vibration.java b/app/src/main/java/io/github/sspanak/tt9/ui/Vibration.java index c8f9b7ac..ed7817cb 100644 --- a/app/src/main/java/io/github/sspanak/tt9/ui/Vibration.java +++ b/app/src/main/java/io/github/sspanak/tt9/ui/Vibration.java @@ -5,10 +5,10 @@ import android.view.View; import androidx.annotation.NonNull; -import io.github.sspanak.tt9.hacks.DeviceInfo; import io.github.sspanak.tt9.preferences.settings.SettingsStore; import io.github.sspanak.tt9.ui.main.keys.BaseClickableKey; import io.github.sspanak.tt9.ui.main.keys.SoftKeyNumber; +import io.github.sspanak.tt9.util.sys.DeviceInfo; public class Vibration { @NonNull private final SettingsStore settings; diff --git a/app/src/main/java/io/github/sspanak/tt9/ui/WebViewSafeClient.java b/app/src/main/java/io/github/sspanak/tt9/ui/WebViewSafeClient.java index 626b8f43..66bdd169 100644 --- a/app/src/main/java/io/github/sspanak/tt9/ui/WebViewSafeClient.java +++ b/app/src/main/java/io/github/sspanak/tt9/ui/WebViewSafeClient.java @@ -8,9 +8,9 @@ import android.webkit.WebViewClient; import androidx.annotation.NonNull; import io.github.sspanak.tt9.R; -import io.github.sspanak.tt9.hacks.DeviceInfo; -import io.github.sspanak.tt9.util.Clipboard; import io.github.sspanak.tt9.util.Logger; +import io.github.sspanak.tt9.util.sys.Clipboard; +import io.github.sspanak.tt9.util.sys.DeviceInfo; public class WebViewSafeClient extends WebViewClient { private final Activity activity; diff --git a/app/src/main/java/io/github/sspanak/tt9/ui/dialogs/AddWordDialog.java b/app/src/main/java/io/github/sspanak/tt9/ui/dialogs/AddWordDialog.java index 03aeaa81..7fca3287 100644 --- a/app/src/main/java/io/github/sspanak/tt9/ui/dialogs/AddWordDialog.java +++ b/app/src/main/java/io/github/sspanak/tt9/ui/dialogs/AddWordDialog.java @@ -9,12 +9,12 @@ import androidx.annotation.NonNull; import io.github.sspanak.tt9.R; import io.github.sspanak.tt9.db.DataStore; import io.github.sspanak.tt9.db.entities.AddWordResult; -import io.github.sspanak.tt9.hacks.DeviceInfo; import io.github.sspanak.tt9.languages.Language; import io.github.sspanak.tt9.languages.LanguageCollection; import io.github.sspanak.tt9.preferences.settings.SettingsStore; import io.github.sspanak.tt9.util.ConsumerCompat; import io.github.sspanak.tt9.util.ThemedContextBuilder; +import io.github.sspanak.tt9.util.sys.DeviceInfo; public class AddWordDialog extends PopupDialog { public static final String TYPE = "tt9.popup_dialog.add_word"; diff --git a/app/src/main/java/io/github/sspanak/tt9/ui/dialogs/RequestPermissionDialog.java b/app/src/main/java/io/github/sspanak/tt9/ui/dialogs/RequestPermissionDialog.java index 8e4469f1..f60aba82 100644 --- a/app/src/main/java/io/github/sspanak/tt9/ui/dialogs/RequestPermissionDialog.java +++ b/app/src/main/java/io/github/sspanak/tt9/ui/dialogs/RequestPermissionDialog.java @@ -12,7 +12,7 @@ import androidx.appcompat.app.AppCompatActivity; import io.github.sspanak.tt9.R; import io.github.sspanak.tt9.ime.TraditionalT9; import io.github.sspanak.tt9.ui.UI; -import io.github.sspanak.tt9.util.Permissions; +import io.github.sspanak.tt9.util.sys.Permissions; public class RequestPermissionDialog extends AppCompatActivity { private final Permissions permissions; diff --git a/app/src/main/java/io/github/sspanak/tt9/ui/main/BaseMainLayout.java b/app/src/main/java/io/github/sspanak/tt9/ui/main/BaseMainLayout.java index 99281744..7c96f118 100644 --- a/app/src/main/java/io/github/sspanak/tt9/ui/main/BaseMainLayout.java +++ b/app/src/main/java/io/github/sspanak/tt9/ui/main/BaseMainLayout.java @@ -17,10 +17,10 @@ import androidx.core.view.WindowInsetsCompat; import java.util.ArrayList; import io.github.sspanak.tt9.R; -import io.github.sspanak.tt9.hacks.DeviceInfo; import io.github.sspanak.tt9.ime.TraditionalT9; import io.github.sspanak.tt9.ui.main.keys.SoftKey; import io.github.sspanak.tt9.util.ThemedContextBuilder; +import io.github.sspanak.tt9.util.sys.DeviceInfo; abstract class BaseMainLayout { protected int e2ePaddingBottomLandscape = -1; diff --git a/app/src/main/java/io/github/sspanak/tt9/ui/main/MainLayoutNumpad.java b/app/src/main/java/io/github/sspanak/tt9/ui/main/MainLayoutNumpad.java index 186af347..b4f8bf77 100644 --- a/app/src/main/java/io/github/sspanak/tt9/ui/main/MainLayoutNumpad.java +++ b/app/src/main/java/io/github/sspanak/tt9/ui/main/MainLayoutNumpad.java @@ -9,12 +9,12 @@ import androidx.annotation.NonNull; import java.util.ArrayList; import io.github.sspanak.tt9.R; -import io.github.sspanak.tt9.hacks.DeviceInfo; import io.github.sspanak.tt9.ime.TraditionalT9; import io.github.sspanak.tt9.languages.LanguageKind; import io.github.sspanak.tt9.preferences.settings.SettingsStore; import io.github.sspanak.tt9.ui.main.keys.SoftKey; import io.github.sspanak.tt9.ui.main.keys.SoftKeySettings; +import io.github.sspanak.tt9.util.sys.DeviceInfo; class MainLayoutNumpad extends BaseMainLayout { private boolean isTextEditingShown = false; diff --git a/app/src/main/java/io/github/sspanak/tt9/ui/main/ResizableMainView.java b/app/src/main/java/io/github/sspanak/tt9/ui/main/ResizableMainView.java index 883c0c00..8fd18823 100644 --- a/app/src/main/java/io/github/sspanak/tt9/ui/main/ResizableMainView.java +++ b/app/src/main/java/io/github/sspanak/tt9/ui/main/ResizableMainView.java @@ -5,10 +5,10 @@ import android.view.View; import androidx.annotation.NonNull; -import io.github.sspanak.tt9.hacks.DeviceInfo; import io.github.sspanak.tt9.ime.TraditionalT9; import io.github.sspanak.tt9.preferences.settings.SettingsStore; import io.github.sspanak.tt9.ui.Vibration; +import io.github.sspanak.tt9.util.sys.DeviceInfo; public class ResizableMainView extends MainView implements View.OnAttachStateChangeListener { private Vibration vibration; diff --git a/app/src/main/java/io/github/sspanak/tt9/ui/main/keys/SoftKey.java b/app/src/main/java/io/github/sspanak/tt9/ui/main/keys/SoftKey.java index c6789a4f..5a2e0f08 100644 --- a/app/src/main/java/io/github/sspanak/tt9/ui/main/keys/SoftKey.java +++ b/app/src/main/java/io/github/sspanak/tt9/ui/main/keys/SoftKey.java @@ -13,10 +13,10 @@ import android.widget.TextView; import androidx.annotation.Nullable; -import io.github.sspanak.tt9.hacks.DeviceInfo; import io.github.sspanak.tt9.preferences.settings.SettingsStore; import io.github.sspanak.tt9.util.Text; import io.github.sspanak.tt9.util.chars.Characters; +import io.github.sspanak.tt9.util.sys.DeviceInfo; public class SoftKey extends BaseClickableKey { protected RelativeLayout overlay = null; diff --git a/app/src/main/java/io/github/sspanak/tt9/ui/notifications/DictionaryNotification.java b/app/src/main/java/io/github/sspanak/tt9/ui/notifications/DictionaryNotification.java index 5700a756..bab0e367 100644 --- a/app/src/main/java/io/github/sspanak/tt9/ui/notifications/DictionaryNotification.java +++ b/app/src/main/java/io/github/sspanak/tt9/ui/notifications/DictionaryNotification.java @@ -10,9 +10,9 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.core.app.NotificationCompat; -import io.github.sspanak.tt9.hacks.DeviceInfo; import io.github.sspanak.tt9.languages.Language; import io.github.sspanak.tt9.util.Logger; +import io.github.sspanak.tt9.util.sys.DeviceInfo; public abstract class DictionaryNotification { private static final int NOTIFICATION_ID = 1; diff --git a/app/src/main/java/io/github/sspanak/tt9/util/chars/Emoji.java b/app/src/main/java/io/github/sspanak/tt9/util/chars/Emoji.java index 692890ed..98283ebb 100644 --- a/app/src/main/java/io/github/sspanak/tt9/util/chars/Emoji.java +++ b/app/src/main/java/io/github/sspanak/tt9/util/chars/Emoji.java @@ -5,7 +5,7 @@ import android.graphics.Paint; import java.util.ArrayList; import java.util.Arrays; -import io.github.sspanak.tt9.hacks.DeviceInfo; +import io.github.sspanak.tt9.util.sys.DeviceInfo; class Emoji extends Punctuation { final public static boolean NO_EMOJI_SUPPORT = !DeviceInfo.AT_LEAST_ANDROID_6; diff --git a/app/src/main/java/io/github/sspanak/tt9/util/chars/Punctuation.java b/app/src/main/java/io/github/sspanak/tt9/util/chars/Punctuation.java index 410abfca..cd895e8a 100644 --- a/app/src/main/java/io/github/sspanak/tt9/util/chars/Punctuation.java +++ b/app/src/main/java/io/github/sspanak/tt9/util/chars/Punctuation.java @@ -5,9 +5,9 @@ import android.graphics.Paint; import java.util.ArrayList; import java.util.Arrays; -import io.github.sspanak.tt9.hacks.DeviceInfo; import io.github.sspanak.tt9.languages.Language; import io.github.sspanak.tt9.languages.LanguageKind; +import io.github.sspanak.tt9.util.sys.DeviceInfo; class Punctuation { public static final String AR_QUESTION_MARK = "؟"; diff --git a/app/src/main/java/io/github/sspanak/tt9/util/colors/AccentSystemColor.java b/app/src/main/java/io/github/sspanak/tt9/util/colors/AccentSystemColor.java new file mode 100644 index 00000000..92380f8f --- /dev/null +++ b/app/src/main/java/io/github/sspanak/tt9/util/colors/AccentSystemColor.java @@ -0,0 +1,14 @@ +package io.github.sspanak.tt9.util.colors; + +import android.content.Context; +import android.util.TypedValue; + +import androidx.annotation.NonNull; + +public class AccentSystemColor extends SystemColor{ + public AccentSystemColor(@NonNull Context context) { + final TypedValue value = new TypedValue(); + context.getTheme().resolveAttribute(android.R.attr.colorAccent, value, true); + color = value.data; + } +} diff --git a/app/src/main/java/io/github/sspanak/tt9/util/colors/SystemColor.java b/app/src/main/java/io/github/sspanak/tt9/util/colors/SystemColor.java new file mode 100644 index 00000000..52ec897d --- /dev/null +++ b/app/src/main/java/io/github/sspanak/tt9/util/colors/SystemColor.java @@ -0,0 +1,31 @@ +package io.github.sspanak.tt9.util.colors; + +public class SystemColor { + protected int color; + + protected SystemColor(int color) { + this.color = color; + } + + public SystemColor() { + color = 0; + } + + final public int get() { + return color; + } + + final public SystemColor toComplementary() { + return new SystemColor(0xFFFFFF - color); + } + + final public String toCssColor() { + return "color:" + toHex() + ";"; + } + + final public String toHex() { + String hexColor = String.format("%06x", color); + hexColor = hexColor.length() == 8 ? hexColor.substring(2) : hexColor; + return "#" + hexColor; + } +} diff --git a/app/src/main/java/io/github/sspanak/tt9/util/colors/TextSystemColor.java b/app/src/main/java/io/github/sspanak/tt9/util/colors/TextSystemColor.java new file mode 100644 index 00000000..0144e9fa --- /dev/null +++ b/app/src/main/java/io/github/sspanak/tt9/util/colors/TextSystemColor.java @@ -0,0 +1,12 @@ +package io.github.sspanak.tt9.util.colors; + +import android.content.Context; +import android.widget.TextView; + +import androidx.annotation.NonNull; + +public class TextSystemColor extends SystemColor{ + public TextSystemColor(@NonNull Context context) { + color = new TextView(context).getTextColors().getDefaultColor(); + } +} diff --git a/app/src/main/java/io/github/sspanak/tt9/util/Clipboard.java b/app/src/main/java/io/github/sspanak/tt9/util/sys/Clipboard.java similarity index 98% rename from app/src/main/java/io/github/sspanak/tt9/util/Clipboard.java rename to app/src/main/java/io/github/sspanak/tt9/util/sys/Clipboard.java index ead5ee26..bd865fcb 100644 --- a/app/src/main/java/io/github/sspanak/tt9/util/Clipboard.java +++ b/app/src/main/java/io/github/sspanak/tt9/util/sys/Clipboard.java @@ -1,4 +1,4 @@ -package io.github.sspanak.tt9.util; +package io.github.sspanak.tt9.util.sys; import android.content.ClipData; import android.content.ClipboardManager; diff --git a/app/src/main/java/io/github/sspanak/tt9/hacks/DeviceInfo.java b/app/src/main/java/io/github/sspanak/tt9/util/sys/DeviceInfo.java similarity index 98% rename from app/src/main/java/io/github/sspanak/tt9/hacks/DeviceInfo.java rename to app/src/main/java/io/github/sspanak/tt9/util/sys/DeviceInfo.java index cbf40056..2858598a 100644 --- a/app/src/main/java/io/github/sspanak/tt9/hacks/DeviceInfo.java +++ b/app/src/main/java/io/github/sspanak/tt9/util/sys/DeviceInfo.java @@ -1,4 +1,4 @@ -package io.github.sspanak.tt9.hacks; +package io.github.sspanak.tt9.util.sys; import android.content.Context; import android.content.res.Configuration; diff --git a/app/src/main/java/io/github/sspanak/tt9/hacks/HardwareInfo.java b/app/src/main/java/io/github/sspanak/tt9/util/sys/HardwareInfo.java similarity index 98% rename from app/src/main/java/io/github/sspanak/tt9/hacks/HardwareInfo.java rename to app/src/main/java/io/github/sspanak/tt9/util/sys/HardwareInfo.java index dd25047f..7feda9c3 100644 --- a/app/src/main/java/io/github/sspanak/tt9/hacks/HardwareInfo.java +++ b/app/src/main/java/io/github/sspanak/tt9/util/sys/HardwareInfo.java @@ -1,4 +1,4 @@ -package io.github.sspanak.tt9.hacks; +package io.github.sspanak.tt9.util.sys; import android.content.Context; import android.content.pm.PackageManager; diff --git a/app/src/main/java/io/github/sspanak/tt9/util/Permissions.java b/app/src/main/java/io/github/sspanak/tt9/util/sys/Permissions.java similarity index 95% rename from app/src/main/java/io/github/sspanak/tt9/util/Permissions.java rename to app/src/main/java/io/github/sspanak/tt9/util/sys/Permissions.java index 3e460c52..aa0acaf3 100644 --- a/app/src/main/java/io/github/sspanak/tt9/util/Permissions.java +++ b/app/src/main/java/io/github/sspanak/tt9/util/sys/Permissions.java @@ -1,4 +1,4 @@ -package io.github.sspanak.tt9.util; +package io.github.sspanak.tt9.util.sys; import android.Manifest; @@ -9,8 +9,6 @@ import androidx.annotation.NonNull; import java.util.HashMap; -import io.github.sspanak.tt9.hacks.DeviceInfo; - public class Permissions { private static final HashMap firstTimeAsking = new HashMap<>(); @NonNull private final Activity activity; diff --git a/app/src/main/java/io/github/sspanak/tt9/util/SystemSettings.java b/app/src/main/java/io/github/sspanak/tt9/util/sys/SystemSettings.java similarity index 97% rename from app/src/main/java/io/github/sspanak/tt9/util/SystemSettings.java rename to app/src/main/java/io/github/sspanak/tt9/util/sys/SystemSettings.java index c50e06e9..829c1b84 100644 --- a/app/src/main/java/io/github/sspanak/tt9/util/SystemSettings.java +++ b/app/src/main/java/io/github/sspanak/tt9/util/sys/SystemSettings.java @@ -1,4 +1,4 @@ -package io.github.sspanak.tt9.util; +package io.github.sspanak.tt9.util.sys; import android.content.Context; import android.os.LocaleList; @@ -13,8 +13,6 @@ import androidx.annotation.Nullable; import java.util.Locale; -import io.github.sspanak.tt9.hacks.DeviceInfo; - public class SystemSettings { private static InputMethodManager inputManager;