diff --git a/android/KMAPro/kMAPro/src/main/java/com/tavultesoft/kmapro/BookmarksActivity.java b/android/KMAPro/kMAPro/src/main/java/com/tavultesoft/kmapro/BookmarksActivity.java index c3f8d0fdec..6cf3f468b4 100644 --- a/android/KMAPro/kMAPro/src/main/java/com/tavultesoft/kmapro/BookmarksActivity.java +++ b/android/KMAPro/kMAPro/src/main/java/com/tavultesoft/kmapro/BookmarksActivity.java @@ -37,6 +37,7 @@ import android.content.Context; import android.content.DialogInterface; import android.content.Intent; +import com.tavultesoft.kmea.BaseActivity; import com.tavultesoft.kmea.util.KMLog; public class BookmarksActivity extends BaseActivity { diff --git a/android/KMAPro/kMAPro/src/main/java/com/tavultesoft/kmapro/GetStartedActivity.java b/android/KMAPro/kMAPro/src/main/java/com/tavultesoft/kmapro/GetStartedActivity.java index abead5017a..d159e1a197 100644 --- a/android/KMAPro/kMAPro/src/main/java/com/tavultesoft/kmapro/GetStartedActivity.java +++ b/android/KMAPro/kMAPro/src/main/java/com/tavultesoft/kmapro/GetStartedActivity.java @@ -8,6 +8,7 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.List; +import com.tavultesoft.kmea.BaseActivity; import com.tavultesoft.kmea.KMManager; import com.tavultesoft.kmea.data.Keyboard; diff --git a/android/KMAPro/kMAPro/src/main/java/com/tavultesoft/kmapro/InfoActivity.java b/android/KMAPro/kMAPro/src/main/java/com/tavultesoft/kmapro/InfoActivity.java index 91547f6b6e..7802f239ca 100644 --- a/android/KMAPro/kMAPro/src/main/java/com/tavultesoft/kmapro/InfoActivity.java +++ b/android/KMAPro/kMAPro/src/main/java/com/tavultesoft/kmapro/InfoActivity.java @@ -4,6 +4,7 @@ package com.tavultesoft.kmapro; +import com.tavultesoft.kmea.BaseActivity; import com.tavultesoft.kmea.BuildConfig; import com.tavultesoft.kmea.KMManager; import com.tavultesoft.kmea.KMManager.FormFactor; diff --git a/android/KMAPro/kMAPro/src/main/java/com/tavultesoft/kmapro/KMPBrowserActivity.java b/android/KMAPro/kMAPro/src/main/java/com/tavultesoft/kmapro/KMPBrowserActivity.java index b0bf400cdc..f25af7371a 100644 --- a/android/KMAPro/kMAPro/src/main/java/com/tavultesoft/kmapro/KMPBrowserActivity.java +++ b/android/KMAPro/kMAPro/src/main/java/com/tavultesoft/kmapro/KMPBrowserActivity.java @@ -19,6 +19,7 @@ import android.webkit.WebView; import android.webkit.WebViewClient; import androidx.appcompat.app.AppCompatActivity; +import com.tavultesoft.kmea.BaseActivity; import com.tavultesoft.kmea.KMManager; import com.tavultesoft.kmea.util.KMPLink; diff --git a/android/KMAPro/kMAPro/src/main/java/com/tavultesoft/kmapro/KeymanSettingsActivity.java b/android/KMAPro/kMAPro/src/main/java/com/tavultesoft/kmapro/KeymanSettingsActivity.java index 84b9c92cdf..10bd0f9c2c 100644 --- a/android/KMAPro/kMAPro/src/main/java/com/tavultesoft/kmapro/KeymanSettingsActivity.java +++ b/android/KMAPro/kMAPro/src/main/java/com/tavultesoft/kmapro/KeymanSettingsActivity.java @@ -2,13 +2,14 @@ package com.tavultesoft.kmapro; import android.os.Bundle; +import com.tavultesoft.kmea.BaseActivity; + import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.widget.Toolbar; public class KeymanSettingsActivity extends BaseActivity { protected static final String installedLanguagesKey = "InstalledLanguages"; protected static final String installKeyboardOrDictionaryKey = "InstallKeyboardOrDictionary"; - protected static final String displayLanguageKey = "DisplayLanguage"; protected static final String showBannerKey = "ShowBanner"; protected static final String sendCrashReport = "SendCrashReport"; diff --git a/android/KMAPro/kMAPro/src/main/java/com/tavultesoft/kmapro/KeymanSettingsFragment.java b/android/KMAPro/kMAPro/src/main/java/com/tavultesoft/kmapro/KeymanSettingsFragment.java index 8d18470c9d..468367f879 100644 --- a/android/KMAPro/kMAPro/src/main/java/com/tavultesoft/kmapro/KeymanSettingsFragment.java +++ b/android/KMAPro/kMAPro/src/main/java/com/tavultesoft/kmapro/KeymanSettingsFragment.java @@ -16,6 +16,7 @@ import androidx.preference.PreferenceFragmentCompat; import androidx.preference.PreferenceScreen; import androidx.preference.SwitchPreference; +import com.tavultesoft.kmea.DisplayLanguages; import com.tavultesoft.kmea.KMManager; import com.tavultesoft.kmea.data.Dataset; @@ -51,7 +52,7 @@ public class KeymanSettingsFragment extends PreferenceFragmentCompat { installKeyboardOrDictionary.setIntent(installIntent); displayLanguagePreference = new Preference(context); - displayLanguagePreference.setKey(KeymanSettingsActivity.displayLanguageKey); + displayLanguagePreference.setKey(DisplayLanguages.displayLanguageKey); displayLanguagePreference.setTitle(getString(R.string.change_display_language)); displayLanguagePreference.setWidgetLayoutResource(R.layout.preference_translate_icon_layout); Intent displayLanguageIntent = new Intent(context, KeymanSettingsLocalizeActivity.class); diff --git a/android/KMAPro/kMAPro/src/main/java/com/tavultesoft/kmapro/KeymanSettingsLocalizeActivity.java b/android/KMAPro/kMAPro/src/main/java/com/tavultesoft/kmapro/KeymanSettingsLocalizeActivity.java index b9d4474989..5f00883788 100644 --- a/android/KMAPro/kMAPro/src/main/java/com/tavultesoft/kmapro/KeymanSettingsLocalizeActivity.java +++ b/android/KMAPro/kMAPro/src/main/java/com/tavultesoft/kmapro/KeymanSettingsLocalizeActivity.java @@ -22,6 +22,7 @@ import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.widget.Toolbar; import androidx.preference.PreferenceManager; +import com.tavultesoft.kmea.DisplayLanguages; import com.tavultesoft.kmea.KMManager; import com.tavultesoft.kmea.data.KeyboardController; import com.tavultesoft.kmea.util.MapCompat; @@ -112,7 +113,7 @@ public class KeymanSettingsLocalizeActivity extends AppCompatActivity { SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); SharedPreferences.Editor editor = prefs.edit(); - editor.putString(KeymanSettingsActivity.displayLanguageKey, languageTag); + editor.putString(DisplayLanguages.displayLanguageKey, languageTag); editor.commit(); finish(); } diff --git a/android/KMAPro/kMAPro/src/main/java/com/tavultesoft/kmapro/MainActivity.java b/android/KMAPro/kMAPro/src/main/java/com/tavultesoft/kmapro/MainActivity.java index 0a16e6e1ca..9afa43ce2d 100644 --- a/android/KMAPro/kMAPro/src/main/java/com/tavultesoft/kmapro/MainActivity.java +++ b/android/KMAPro/kMAPro/src/main/java/com/tavultesoft/kmapro/MainActivity.java @@ -15,9 +15,9 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; import java.util.List; -import java.util.Locale; import java.util.Map; +import com.tavultesoft.kmea.BaseActivity; import com.tavultesoft.kmea.KMKeyboardDownloaderActivity; import com.tavultesoft.kmea.KMManager; import com.tavultesoft.kmea.KMManager.KeyboardType; diff --git a/android/KMAPro/kMAPro/src/main/java/com/tavultesoft/kmapro/WebBrowserActivity.java b/android/KMAPro/kMAPro/src/main/java/com/tavultesoft/kmapro/WebBrowserActivity.java index 8229d38231..229b24fdb4 100644 --- a/android/KMAPro/kMAPro/src/main/java/com/tavultesoft/kmapro/WebBrowserActivity.java +++ b/android/KMAPro/kMAPro/src/main/java/com/tavultesoft/kmapro/WebBrowserActivity.java @@ -10,6 +10,7 @@ import java.net.URL; import java.net.URLEncoder; import java.nio.charset.StandardCharsets; +import com.tavultesoft.kmea.BaseActivity; import com.tavultesoft.kmea.KMManager; import com.tavultesoft.kmea.util.KMPLink; diff --git a/android/KMEA/app/build.gradle b/android/KMEA/app/build.gradle index 20c23e8aa0..d5b7348f28 100644 --- a/android/KMEA/app/build.gradle +++ b/android/KMEA/app/build.gradle @@ -66,6 +66,7 @@ dependencies { implementation 'com.google.android.material:material:1.2.1' implementation 'commons-io:commons-io:2.6' implementation 'io.sentry:sentry-android:3.1.0' + implementation 'androidx.preference:preference:1.1.1' // Robolectric testImplementation 'androidx.test:core:1.2.0' diff --git a/android/KMAPro/kMAPro/src/main/java/com/tavultesoft/kmapro/BaseActivity.java b/android/KMEA/app/src/main/java/com/tavultesoft/kmea/BaseActivity.java similarity index 84% rename from android/KMAPro/kMAPro/src/main/java/com/tavultesoft/kmapro/BaseActivity.java rename to android/KMEA/app/src/main/java/com/tavultesoft/kmea/BaseActivity.java index fa9de04f78..860aae9ed6 100644 --- a/android/KMAPro/kMAPro/src/main/java/com/tavultesoft/kmapro/BaseActivity.java +++ b/android/KMEA/app/src/main/java/com/tavultesoft/kmea/BaseActivity.java @@ -2,7 +2,7 @@ * Copyright (C) 2021 SIL International. All rights reserved. */ -package com.tavultesoft.kmapro; +package com.tavultesoft.kmea; import android.content.Context; import android.content.ContextWrapper; @@ -11,6 +11,8 @@ import android.content.SharedPreferences; import androidx.appcompat.app.AppCompatActivity; import androidx.preference.PreferenceManager; +import com.tavultesoft.kmea.util.ContextUtils; + import java.util.Locale; public class BaseActivity extends AppCompatActivity { @@ -20,7 +22,7 @@ public class BaseActivity extends AppCompatActivity { // Override the app locale using the BCP 47 tag from shared preferences // Using PreferenceManager because this is before onCreate() SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(newBase); - String languageTag = prefs.getString(KeymanSettingsActivity.displayLanguageKey, DisplayLanguages.unspecifiedLocale); + String languageTag = prefs.getString(DisplayLanguages.displayLanguageKey, DisplayLanguages.unspecifiedLocale); if (languageTag == null || languageTag.equals(DisplayLanguages.unspecifiedLocale)) { // Use the default locale super.attachBaseContext(newBase); diff --git a/android/KMAPro/kMAPro/src/main/java/com/tavultesoft/kmapro/DisplayLanguages.java b/android/KMEA/app/src/main/java/com/tavultesoft/kmea/DisplayLanguages.java similarity index 91% rename from android/KMAPro/kMAPro/src/main/java/com/tavultesoft/kmapro/DisplayLanguages.java rename to android/KMEA/app/src/main/java/com/tavultesoft/kmea/DisplayLanguages.java index 3b53650c82..093ca93a09 100644 --- a/android/KMAPro/kMAPro/src/main/java/com/tavultesoft/kmapro/DisplayLanguages.java +++ b/android/KMEA/app/src/main/java/com/tavultesoft/kmea/DisplayLanguages.java @@ -2,10 +2,11 @@ * Copyright (C) 2021 SIL International. All rights reserved. */ -package com.tavultesoft.kmapro; +package com.tavultesoft.kmea; public class DisplayLanguages { private static final String TAG = "DisplayLanguages"; + public static final String displayLanguageKey = "DisplayLanguage"; public static final String unspecifiedLocale = ""; // empty string for app to use device's default locale public static class DisplayLanguageType { diff --git a/android/KMEA/app/src/main/java/com/tavultesoft/kmea/KMKeyboardDownloaderActivity.java b/android/KMEA/app/src/main/java/com/tavultesoft/kmea/KMKeyboardDownloaderActivity.java index cd56cf6bc7..c55138ad35 100644 --- a/android/KMEA/app/src/main/java/com/tavultesoft/kmea/KMKeyboardDownloaderActivity.java +++ b/android/KMEA/app/src/main/java/com/tavultesoft/kmea/KMKeyboardDownloaderActivity.java @@ -22,7 +22,7 @@ import java.util.List; import static com.tavultesoft.kmea.ConfirmDialogFragment.DialogType.DIALOG_TYPE_DOWNLOAD_KEYBOARD; import static com.tavultesoft.kmea.ConfirmDialogFragment.DialogType.DIALOG_TYPE_DOWNLOAD_MODEL; -public class KMKeyboardDownloaderActivity extends AppCompatActivity { +public class KMKeyboardDownloaderActivity extends BaseActivity { // Bundle Keys // Cloud diff --git a/android/KMEA/app/src/main/java/com/tavultesoft/kmea/KeyboardInfoActivity.java b/android/KMEA/app/src/main/java/com/tavultesoft/kmea/KeyboardInfoActivity.java index 63f95182ab..4c2a316e96 100644 --- a/android/KMEA/app/src/main/java/com/tavultesoft/kmea/KeyboardInfoActivity.java +++ b/android/KMEA/app/src/main/java/com/tavultesoft/kmea/KeyboardInfoActivity.java @@ -36,7 +36,7 @@ import com.tavultesoft.kmea.util.MapCompat; import com.tavultesoft.kmea.util.QRCodeUtil; // Public access is necessary to avoid IllegalAccessException -public final class KeyboardInfoActivity extends AppCompatActivity { +public final class KeyboardInfoActivity extends BaseActivity { private static final String TAG = "KeyboardInfoActivity"; private static Toolbar toolbar = null; diff --git a/android/KMEA/app/src/main/java/com/tavultesoft/kmea/KeyboardPickerActivity.java b/android/KMEA/app/src/main/java/com/tavultesoft/kmea/KeyboardPickerActivity.java index 5da07ec094..960e29a08f 100644 --- a/android/KMEA/app/src/main/java/com/tavultesoft/kmea/KeyboardPickerActivity.java +++ b/android/KMEA/app/src/main/java/com/tavultesoft/kmea/KeyboardPickerActivity.java @@ -45,7 +45,7 @@ import android.widget.Toast; import androidx.appcompat.widget.Toolbar; -public final class KeyboardPickerActivity extends AppCompatActivity { +public final class KeyboardPickerActivity extends BaseActivity { //TODO: view instances should not be static private static Toolbar toolbar = null; diff --git a/android/KMEA/app/src/main/java/com/tavultesoft/kmea/ModelInfoActivity.java b/android/KMEA/app/src/main/java/com/tavultesoft/kmea/ModelInfoActivity.java index 7213a2cd68..80f45ed553 100644 --- a/android/KMEA/app/src/main/java/com/tavultesoft/kmea/ModelInfoActivity.java +++ b/android/KMEA/app/src/main/java/com/tavultesoft/kmea/ModelInfoActivity.java @@ -38,7 +38,7 @@ import com.tavultesoft.kmea.util.MapCompat; import static com.tavultesoft.kmea.ConfirmDialogFragment.DialogType.DIALOG_TYPE_DELETE_MODEL; // Public access is necessary to avoid IllegalAccessException -public final class ModelInfoActivity extends AppCompatActivity { +public final class ModelInfoActivity extends BaseActivity { private static ArrayList> infoList = null; private final String titleKey = "title"; diff --git a/android/KMEA/app/src/main/java/com/tavultesoft/kmea/ModelPickerActivity.java b/android/KMEA/app/src/main/java/com/tavultesoft/kmea/ModelPickerActivity.java index 741a1eb8d3..a4d03ef3ad 100644 --- a/android/KMEA/app/src/main/java/com/tavultesoft/kmea/ModelPickerActivity.java +++ b/android/KMEA/app/src/main/java/com/tavultesoft/kmea/ModelPickerActivity.java @@ -40,7 +40,7 @@ import java.util.Map; * Gets the list of installable lexical models from Keyman cloud and allows user to download a model. * Displays a list of available models for a language ID. */ -public final class ModelPickerActivity extends AppCompatActivity { +public final class ModelPickerActivity extends BaseActivity { private Context context; private static Toolbar toolbar = null; diff --git a/android/KMAPro/kMAPro/src/main/java/com/tavultesoft/kmapro/ContextUtils.java b/android/KMEA/app/src/main/java/com/tavultesoft/kmea/util/ContextUtils.java similarity index 97% rename from android/KMAPro/kMAPro/src/main/java/com/tavultesoft/kmapro/ContextUtils.java rename to android/KMEA/app/src/main/java/com/tavultesoft/kmea/util/ContextUtils.java index 95b8b8fb3b..bfc982d311 100644 --- a/android/KMAPro/kMAPro/src/main/java/com/tavultesoft/kmapro/ContextUtils.java +++ b/android/KMEA/app/src/main/java/com/tavultesoft/kmea/util/ContextUtils.java @@ -1,7 +1,7 @@ /** * Copyright (C) 2021 SIL International. All rights reserved. */ -package com.tavultesoft.kmapro; +package com.tavultesoft.kmea.util; import android.content.Context; import android.content.ContextWrapper;