From 928519392f6ea5ca7df0ac79e3c40c326a610e8c Mon Sep 17 00:00:00 2001 From: Trevor Terris Date: Tue, 4 May 2021 11:22:16 -0400 Subject: [PATCH] Update classes to use device encrypted context for preferences --- .../dslul/openboard/inputmethod/keyboard/KeyboardTheme.java | 4 ++-- .../openboard/inputmethod/keyboard/MainKeyboardView.java | 4 ++-- .../inputmethod/keyboard/emoji/EmojiPalettesView.java | 4 ++-- .../org/dslul/openboard/inputmethod/latin/LatinIME.java | 6 ++---- .../openboard/inputmethod/latin/RichInputMethodManager.java | 4 ++-- .../inputmethod/latin/SystemBroadcastReceiver.java | 4 ++-- .../latin/settings/AdvancedSettingsFragment.java | 2 +- .../latin/settings/CustomInputStyleSettingsFragment.java | 1 + .../openboard/inputmethod/latin/settings/Settings.java | 4 ++-- .../inputmethod/latin/settings/SubScreenFragment.java | 1 + .../latin/spellcheck/AndroidSpellCheckerService.java | 4 ++-- .../latin/userdictionary/UserDictionaryList.java | 1 + 12 files changed, 20 insertions(+), 19 deletions(-) diff --git a/app/src/main/java/org/dslul/openboard/inputmethod/keyboard/KeyboardTheme.java b/app/src/main/java/org/dslul/openboard/inputmethod/keyboard/KeyboardTheme.java index 2dd892b74..dd60095e0 100644 --- a/app/src/main/java/org/dslul/openboard/inputmethod/keyboard/KeyboardTheme.java +++ b/app/src/main/java/org/dslul/openboard/inputmethod/keyboard/KeyboardTheme.java @@ -20,10 +20,10 @@ import android.content.Context; import android.content.SharedPreferences; import android.os.Build; import android.os.Build.VERSION_CODES; -import android.preference.PreferenceManager; import android.util.Log; import org.dslul.openboard.inputmethod.latin.R; +import org.dslul.openboard.inputmethod.latin.utils.DeviceProtectedUtils; import java.util.ArrayList; import java.util.Arrays; @@ -190,7 +190,7 @@ public final class KeyboardTheme implements Comparable { } public static KeyboardTheme getKeyboardTheme(final Context context) { - final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); + final SharedPreferences prefs = DeviceProtectedUtils.getSharedPreferences(context); final KeyboardTheme[] availableThemeArray = getAvailableThemeArray(context); return getKeyboardTheme(prefs, Build.VERSION.SDK_INT, availableThemeArray); } diff --git a/app/src/main/java/org/dslul/openboard/inputmethod/keyboard/MainKeyboardView.java b/app/src/main/java/org/dslul/openboard/inputmethod/keyboard/MainKeyboardView.java index 69c9ebafb..b11f7fcdc 100644 --- a/app/src/main/java/org/dslul/openboard/inputmethod/keyboard/MainKeyboardView.java +++ b/app/src/main/java/org/dslul/openboard/inputmethod/keyboard/MainKeyboardView.java @@ -27,7 +27,6 @@ import android.graphics.Color; import android.graphics.Paint; import android.graphics.Paint.Align; import android.graphics.Typeface; -import android.preference.PreferenceManager; import android.util.AttributeSet; import android.util.Log; import android.view.LayoutInflater; @@ -56,6 +55,7 @@ import org.dslul.openboard.inputmethod.latin.SuggestedWords; import org.dslul.openboard.inputmethod.latin.common.Constants; import org.dslul.openboard.inputmethod.latin.common.CoordinateUtils; import org.dslul.openboard.inputmethod.latin.settings.DebugSettings; +import org.dslul.openboard.inputmethod.latin.utils.DeviceProtectedUtils; import org.dslul.openboard.inputmethod.latin.utils.LanguageOnSpacebarUtils; import org.dslul.openboard.inputmethod.latin.utils.TypefaceUtils; @@ -197,7 +197,7 @@ public final class MainKeyboardView extends KeyboardView implements DrawingProxy PointerTracker.init(mainKeyboardViewAttr, mTimerHandler, this /* DrawingProxy */); - final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); + final SharedPreferences prefs = DeviceProtectedUtils.getSharedPreferences(context); final boolean forceNonDistinctMultitouch = prefs.getBoolean( DebugSettings.PREF_FORCE_NON_DISTINCT_MULTITOUCH, false); final boolean hasDistinctMultitouch = context.getPackageManager() diff --git a/app/src/main/java/org/dslul/openboard/inputmethod/keyboard/emoji/EmojiPalettesView.java b/app/src/main/java/org/dslul/openboard/inputmethod/keyboard/emoji/EmojiPalettesView.java index 5e9e039e3..b2d95ba1e 100644 --- a/app/src/main/java/org/dslul/openboard/inputmethod/keyboard/emoji/EmojiPalettesView.java +++ b/app/src/main/java/org/dslul/openboard/inputmethod/keyboard/emoji/EmojiPalettesView.java @@ -20,7 +20,6 @@ import android.content.Context; import android.content.res.Resources; import android.content.res.TypedArray; import android.graphics.Color; -import android.preference.PreferenceManager; import android.util.AttributeSet; import android.util.Pair; import android.util.TypedValue; @@ -47,6 +46,7 @@ import org.dslul.openboard.inputmethod.latin.AudioAndHapticFeedbackManager; import org.dslul.openboard.inputmethod.latin.R; import org.dslul.openboard.inputmethod.latin.RichInputMethodSubtype; import org.dslul.openboard.inputmethod.latin.common.Constants; +import org.dslul.openboard.inputmethod.latin.utils.DeviceProtectedUtils; import org.dslul.openboard.inputmethod.latin.utils.ResourceUtils; import androidx.viewpager2.widget.ViewPager2; @@ -118,7 +118,7 @@ public final class EmojiPalettesView extends LinearLayout final KeyboardLayoutSet layoutSet = builder.build(); final TypedArray emojiPalettesViewAttr = context.obtainStyledAttributes(attrs, R.styleable.EmojiPalettesView, defStyle, R.style.EmojiPalettesView); - mEmojiCategory = new EmojiCategory(PreferenceManager.getDefaultSharedPreferences(context), + mEmojiCategory = new EmojiCategory(DeviceProtectedUtils.getSharedPreferences(context), res, layoutSet, emojiPalettesViewAttr); mCategoryIndicatorEnabled = emojiPalettesViewAttr.getBoolean( R.styleable.EmojiPalettesView_categoryIndicatorEnabled, false); diff --git a/app/src/main/java/org/dslul/openboard/inputmethod/latin/LatinIME.java b/app/src/main/java/org/dslul/openboard/inputmethod/latin/LatinIME.java index df8a284f1..bb168e0df 100644 --- a/app/src/main/java/org/dslul/openboard/inputmethod/latin/LatinIME.java +++ b/app/src/main/java/org/dslul/openboard/inputmethod/latin/LatinIME.java @@ -16,8 +16,6 @@ package org.dslul.openboard.inputmethod.latin; -import android.Manifest.permission; -import android.app.ActivityOptions; import android.app.AlertDialog; import android.content.BroadcastReceiver; import android.content.Context; @@ -34,7 +32,6 @@ import android.os.Build; import android.os.Debug; import android.os.IBinder; import android.os.Message; -import android.preference.PreferenceManager; import android.text.InputType; import android.util.Log; import android.util.PrintWriterPrinter; @@ -82,6 +79,7 @@ import org.dslul.openboard.inputmethod.latin.suggestions.SuggestionStripView; import org.dslul.openboard.inputmethod.latin.suggestions.SuggestionStripViewAccessor; import org.dslul.openboard.inputmethod.latin.touchinputconsumer.GestureConsumer; import org.dslul.openboard.inputmethod.latin.utils.ApplicationUtils; +import org.dslul.openboard.inputmethod.latin.utils.DeviceProtectedUtils; import org.dslul.openboard.inputmethod.latin.utils.DialogUtils; import org.dslul.openboard.inputmethod.latin.utils.IntentUtils; import org.dslul.openboard.inputmethod.latin.utils.JniUtils; @@ -586,7 +584,7 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen @Override public void onCreate() { Settings.init(this); - DebugFlags.init(PreferenceManager.getDefaultSharedPreferences(this)); + DebugFlags.init(DeviceProtectedUtils.getSharedPreferences(this)); RichInputMethodManager.init(this); mRichImm = RichInputMethodManager.getInstance(); KeyboardSwitcher.init(this); diff --git a/app/src/main/java/org/dslul/openboard/inputmethod/latin/RichInputMethodManager.java b/app/src/main/java/org/dslul/openboard/inputmethod/latin/RichInputMethodManager.java index ac22ab896..605322d89 100644 --- a/app/src/main/java/org/dslul/openboard/inputmethod/latin/RichInputMethodManager.java +++ b/app/src/main/java/org/dslul/openboard/inputmethod/latin/RichInputMethodManager.java @@ -22,7 +22,6 @@ import android.inputmethodservice.InputMethodService; import android.os.AsyncTask; import android.os.Build; import android.os.IBinder; -import android.preference.PreferenceManager; import android.util.Log; import android.view.inputmethod.InputMethodInfo; import android.view.inputmethod.InputMethodManager; @@ -33,6 +32,7 @@ import org.dslul.openboard.inputmethod.compat.InputMethodManagerCompatWrapper; import org.dslul.openboard.inputmethod.compat.InputMethodSubtypeCompatUtils; import org.dslul.openboard.inputmethod.latin.settings.Settings; import org.dslul.openboard.inputmethod.latin.utils.AdditionalSubtypeUtils; +import org.dslul.openboard.inputmethod.latin.utils.DeviceProtectedUtils; import org.dslul.openboard.inputmethod.latin.utils.LanguageOnSpacebarUtils; import org.dslul.openboard.inputmethod.latin.utils.SubtypeLocaleUtils; @@ -111,7 +111,7 @@ public class RichInputMethodManager { } public InputMethodSubtype[] getAdditionalSubtypes() { - final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(mContext); + final SharedPreferences prefs = DeviceProtectedUtils.getSharedPreferences(mContext); final String prefAdditionalSubtypes = Settings.readPrefAdditionalSubtypes( prefs, mContext.getResources()); return AdditionalSubtypeUtils.createAdditionalSubtypesArray(prefAdditionalSubtypes); diff --git a/app/src/main/java/org/dslul/openboard/inputmethod/latin/SystemBroadcastReceiver.java b/app/src/main/java/org/dslul/openboard/inputmethod/latin/SystemBroadcastReceiver.java index 74eb28c40..9ce7c26bc 100644 --- a/app/src/main/java/org/dslul/openboard/inputmethod/latin/SystemBroadcastReceiver.java +++ b/app/src/main/java/org/dslul/openboard/inputmethod/latin/SystemBroadcastReceiver.java @@ -24,7 +24,6 @@ import android.content.SharedPreferences; import android.content.pm.ApplicationInfo; import android.content.pm.PackageManager; import android.os.Process; -import android.preference.PreferenceManager; import android.util.Log; import android.view.inputmethod.InputMethodManager; import android.view.inputmethod.InputMethodSubtype; @@ -32,6 +31,7 @@ import android.view.inputmethod.InputMethodSubtype; import org.dslul.openboard.inputmethod.keyboard.KeyboardLayoutSet; import org.dslul.openboard.inputmethod.latin.settings.Settings; import org.dslul.openboard.inputmethod.latin.setup.SetupActivity; +import org.dslul.openboard.inputmethod.latin.utils.DeviceProtectedUtils; import org.dslul.openboard.inputmethod.latin.utils.UncachedInputMethodManagerUtils; /** @@ -106,7 +106,7 @@ public final class SystemBroadcastReceiver extends BroadcastReceiver { if (Log.isLoggable(TAG, Log.INFO)) { Log.i(TAG, "toggleAppIcon() : FLAG_SYSTEM = " + isSystemApp); } - final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); + final SharedPreferences prefs = DeviceProtectedUtils.getSharedPreferences(context); context.getPackageManager().setComponentEnabledSetting( new ComponentName(context, SetupActivity.class), Settings.readShowSetupWizardIcon(prefs, context) diff --git a/app/src/main/java/org/dslul/openboard/inputmethod/latin/settings/AdvancedSettingsFragment.java b/app/src/main/java/org/dslul/openboard/inputmethod/latin/settings/AdvancedSettingsFragment.java index 8decda762..2e033eb12 100644 --- a/app/src/main/java/org/dslul/openboard/inputmethod/latin/settings/AdvancedSettingsFragment.java +++ b/app/src/main/java/org/dslul/openboard/inputmethod/latin/settings/AdvancedSettingsFragment.java @@ -52,7 +52,7 @@ public final class AdvancedSettingsFragment extends SubScreenFragment { // initialization method of these classes here. See {@link LatinIME#onCreate()}. AudioAndHapticFeedbackManager.init(context); - final SharedPreferences prefs = getPreferenceManager().getSharedPreferences(); + final SharedPreferences prefs = getSharedPreferences(); if (!Settings.isInternal(prefs)) { removePreference(Settings.SCREEN_DEBUG); diff --git a/app/src/main/java/org/dslul/openboard/inputmethod/latin/settings/CustomInputStyleSettingsFragment.java b/app/src/main/java/org/dslul/openboard/inputmethod/latin/settings/CustomInputStyleSettingsFragment.java index 6c5961c25..fde4c4d6d 100644 --- a/app/src/main/java/org/dslul/openboard/inputmethod/latin/settings/CustomInputStyleSettingsFragment.java +++ b/app/src/main/java/org/dslul/openboard/inputmethod/latin/settings/CustomInputStyleSettingsFragment.java @@ -95,6 +95,7 @@ public final class CustomInputStyleSettingsFragment extends PreferenceFragment @Override public void onCreate(final Bundle savedInstanceState) { super.onCreate(savedInstanceState); + getPreferenceManager().setStorageDeviceProtected(); mPrefs = getPreferenceManager().getSharedPreferences(); RichInputMethodManager.init(getActivity()); diff --git a/app/src/main/java/org/dslul/openboard/inputmethod/latin/settings/Settings.java b/app/src/main/java/org/dslul/openboard/inputmethod/latin/settings/Settings.java index 0dbae0bda..3b1d47b06 100644 --- a/app/src/main/java/org/dslul/openboard/inputmethod/latin/settings/Settings.java +++ b/app/src/main/java/org/dslul/openboard/inputmethod/latin/settings/Settings.java @@ -22,7 +22,6 @@ import android.content.pm.ApplicationInfo; import android.content.res.Configuration; import android.content.res.Resources; import android.os.Build; -import android.preference.PreferenceManager; import android.util.Log; import org.dslul.openboard.inputmethod.latin.AudioAndHapticFeedbackManager; @@ -30,6 +29,7 @@ import org.dslul.openboard.inputmethod.latin.InputAttributes; import org.dslul.openboard.inputmethod.latin.R; import org.dslul.openboard.inputmethod.latin.common.StringUtils; import org.dslul.openboard.inputmethod.latin.utils.AdditionalSubtypeUtils; +import org.dslul.openboard.inputmethod.latin.utils.DeviceProtectedUtils; import org.dslul.openboard.inputmethod.latin.utils.JniUtils; import org.dslul.openboard.inputmethod.latin.utils.ResourceUtils; import org.dslul.openboard.inputmethod.latin.utils.RunInLocale; @@ -152,7 +152,7 @@ public final class Settings implements SharedPreferences.OnSharedPreferenceChang private void onCreate(final Context context) { mContext = context; mRes = context.getResources(); - mPrefs = PreferenceManager.getDefaultSharedPreferences(context); + mPrefs = DeviceProtectedUtils.getSharedPreferences(context); mPrefs.registerOnSharedPreferenceChangeListener(this); upgradeAutocorrectionSettings(mPrefs, mRes); } diff --git a/app/src/main/java/org/dslul/openboard/inputmethod/latin/settings/SubScreenFragment.java b/app/src/main/java/org/dslul/openboard/inputmethod/latin/settings/SubScreenFragment.java index 186d6162e..4a316d485 100644 --- a/app/src/main/java/org/dslul/openboard/inputmethod/latin/settings/SubScreenFragment.java +++ b/app/src/main/java/org/dslul/openboard/inputmethod/latin/settings/SubScreenFragment.java @@ -100,6 +100,7 @@ public abstract class SubScreenFragment extends PreferenceFragment @Override public void onCreate(final Bundle savedInstanceState) { super.onCreate(savedInstanceState); + getPreferenceManager().setStorageDeviceProtected(); mSharedPreferenceChangeListener = new OnSharedPreferenceChangeListener() { @Override public void onSharedPreferenceChanged(final SharedPreferences prefs, final String key) { diff --git a/app/src/main/java/org/dslul/openboard/inputmethod/latin/spellcheck/AndroidSpellCheckerService.java b/app/src/main/java/org/dslul/openboard/inputmethod/latin/spellcheck/AndroidSpellCheckerService.java index 883a5f6c0..da5c84a67 100644 --- a/app/src/main/java/org/dslul/openboard/inputmethod/latin/spellcheck/AndroidSpellCheckerService.java +++ b/app/src/main/java/org/dslul/openboard/inputmethod/latin/spellcheck/AndroidSpellCheckerService.java @@ -18,7 +18,6 @@ package org.dslul.openboard.inputmethod.latin.spellcheck; import android.content.Intent; import android.content.SharedPreferences; -import android.preference.PreferenceManager; import android.service.textservice.SpellCheckerService; import android.text.InputType; import android.view.inputmethod.EditorInfo; @@ -37,6 +36,7 @@ import org.dslul.openboard.inputmethod.latin.SuggestedWords; import org.dslul.openboard.inputmethod.latin.common.ComposedData; import org.dslul.openboard.inputmethod.latin.settings.SettingsValuesForSuggestion; import org.dslul.openboard.inputmethod.latin.utils.AdditionalSubtypeUtils; +import org.dslul.openboard.inputmethod.latin.utils.DeviceProtectedUtils; import org.dslul.openboard.inputmethod.latin.utils.ScriptUtils; import org.dslul.openboard.inputmethod.latin.utils.SuggestionResults; @@ -95,7 +95,7 @@ public final class AndroidSpellCheckerService extends SpellCheckerService super.onCreate(); mRecommendedThreshold = Float.parseFloat( getString(R.string.spellchecker_recommended_threshold_value)); - final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this); + final SharedPreferences prefs = DeviceProtectedUtils.getSharedPreferences(this); prefs.registerOnSharedPreferenceChangeListener(this); onSharedPreferenceChanged(prefs, PREF_USE_CONTACTS_KEY); } diff --git a/app/src/main/java/org/dslul/openboard/inputmethod/latin/userdictionary/UserDictionaryList.java b/app/src/main/java/org/dslul/openboard/inputmethod/latin/userdictionary/UserDictionaryList.java index ad4416890..323c92801 100644 --- a/app/src/main/java/org/dslul/openboard/inputmethod/latin/userdictionary/UserDictionaryList.java +++ b/app/src/main/java/org/dslul/openboard/inputmethod/latin/userdictionary/UserDictionaryList.java @@ -51,6 +51,7 @@ public class UserDictionaryList extends PreferenceFragment { @Override public void onCreate(final Bundle icicle) { super.onCreate(icicle); + getPreferenceManager().setStorageDeviceProtected(); setPreferenceScreen(getPreferenceManager().createPreferenceScreen(getActivity())); }