fix(android/engine): Refactor BaseActivity to KMEA

This commit is contained in:
Darcy Wong 2021-01-18 14:12:11 +07:00
parent ad25f7e127
commit 2f87fef4c3
18 changed files with 25 additions and 13 deletions

View file

@ -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 {

View file

@ -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;

View file

@ -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;

View file

@ -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;

View file

@ -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";

View file

@ -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);

View file

@ -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();
}

View file

@ -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;

View file

@ -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;

View file

@ -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'

View file

@ -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);

View file

@ -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 {

View file

@ -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

View file

@ -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;

View file

@ -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;

View file

@ -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<HashMap<String, String>> infoList = null;
private final String titleKey = "title";

View file

@ -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;

View file

@ -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;