diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 4501ee583..a5c02cd24 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -40,7 +40,6 @@ android:protectionLevel="signature" /> getDictionaryStats(final Context context); diff --git a/app/src/main/java/org/dslul/openboard/inputmethod/latin/DictionaryFacilitatorImpl.java b/app/src/main/java/org/dslul/openboard/inputmethod/latin/DictionaryFacilitatorImpl.java index 317f3f120..320641f39 100644 --- a/app/src/main/java/org/dslul/openboard/inputmethod/latin/DictionaryFacilitatorImpl.java +++ b/app/src/main/java/org/dslul/openboard/inputmethod/latin/DictionaryFacilitatorImpl.java @@ -1080,6 +1080,18 @@ public class DictionaryFacilitatorImpl implements DictionaryFacilitator { return clearSubDictionary(Dictionary.TYPE_USER_HISTORY); } + @Override + public String localesAndConfidences() { + if (mDictionaryGroups.size() < 2) return null; + final StringBuilder sb = new StringBuilder(); + for (final DictionaryGroup dictGroup : mDictionaryGroups) { + if (sb.length() > 0) + sb.append(", "); + sb.append(dictGroup.mLocale).append(" ").append(dictGroup.mConfidence); + } + return sb.toString(); + } + @Override public void dumpDictionaryForDebug(final String dictName) { final ExpandableBinaryDictionary dictToDump = mDictionaryGroups.get(0).getSubDict(dictName); 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 2feb01f18..ce710734e 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 @@ -596,13 +596,13 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen @Override public void onCreate() { Settings.init(this); - DebugFlags.init(DeviceProtectedUtils.getSharedPreferences(this)); + DebugFlags.init(this); SubtypeSettingsKt.init(this); RichInputMethodManager.init(this); mRichImm = RichInputMethodManager.getInstance(); AudioAndHapticFeedbackManager.init(this); AccessibilityUtils.init(this); - mStatsUtilsManager.onCreate(this /* context */, mDictionaryFacilitator); + mStatsUtilsManager.onCreate(this, mDictionaryFacilitator); mDisplayContext = getDisplayContext(); KeyboardSwitcher.init(this); super.onCreate(); @@ -740,6 +740,11 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen this /* DictionaryInitializationListener */); } + // used for debug + public String getLocaleAndConfidenceInfo() { + return mDictionaryFacilitator.localesAndConfidences(); + } + @Override public void onDestroy() { mClipboardHistoryManager.onDestroy(); diff --git a/app/src/main/java/org/dslul/openboard/inputmethod/latin/Suggest.java b/app/src/main/java/org/dslul/openboard/inputmethod/latin/Suggest.java index 640a0c570..a63f0182c 100644 --- a/app/src/main/java/org/dslul/openboard/inputmethod/latin/Suggest.java +++ b/app/src/main/java/org/dslul/openboard/inputmethod/latin/Suggest.java @@ -49,7 +49,6 @@ public final class Suggest { // Close to -2**31 private static final int SUPPRESS_SUGGEST_THRESHOLD = -2000000000; - private static final boolean DBG = DebugFlags.DEBUG_ENABLED; private final DictionaryFacilitator mDictionaryFacilitator; private static final int MAXIMUM_AUTO_CORRECT_LENGTH_FOR_GERMAN = 12; @@ -212,7 +211,7 @@ public final class Suggest { } final ArrayList suggestionsList; - if (DBG && !suggestionsContainer.isEmpty()) { + if (DebugFlags.DEBUG_ENABLED && !suggestionsContainer.isEmpty()) { suggestionsList = getSuggestionsInfoListWithDebugInfo(typedWordString, suggestionsContainer); } else { diff --git a/app/src/main/java/org/dslul/openboard/inputmethod/latin/WordComposer.java b/app/src/main/java/org/dslul/openboard/inputmethod/latin/WordComposer.java index cc99e8732..1ce06a834 100644 --- a/app/src/main/java/org/dslul/openboard/inputmethod/latin/WordComposer.java +++ b/app/src/main/java/org/dslul/openboard/inputmethod/latin/WordComposer.java @@ -30,7 +30,6 @@ import java.util.Collections; */ public final class WordComposer { private static final int MAX_WORD_LENGTH = DecoderSpecificConstants.DICTIONARY_MAX_WORD_LENGTH; - private static final boolean DBG = DebugFlags.DEBUG_ENABLED; public static final int CAPS_MODE_OFF = 0; // 1 is shift bit, 2 is caps bit, 4 is auto bit but this is just a convention as these bits @@ -221,7 +220,7 @@ public final class WordComposer { } public boolean isCursorFrontOrMiddleOfComposingWord() { - if (DBG && mCursorPositionWithinWord > mCodePointSize) { + if (DebugFlags.DEBUG_ENABLED && mCursorPositionWithinWord > mCodePointSize) { throw new RuntimeException("Wrong cursor position : " + mCursorPositionWithinWord + "in a word of size " + mCodePointSize); } diff --git a/app/src/main/java/org/dslul/openboard/inputmethod/latin/define/DebugFlags.kt b/app/src/main/java/org/dslul/openboard/inputmethod/latin/define/DebugFlags.kt index b5d04a875..be0efc5f5 100644 --- a/app/src/main/java/org/dslul/openboard/inputmethod/latin/define/DebugFlags.kt +++ b/app/src/main/java/org/dslul/openboard/inputmethod/latin/define/DebugFlags.kt @@ -6,16 +6,64 @@ package org.dslul.openboard.inputmethod.latin.define -import android.content.SharedPreferences +import android.content.Context +import android.os.Build import org.dslul.openboard.inputmethod.latin.BuildConfig import org.dslul.openboard.inputmethod.latin.settings.DebugSettings +import org.dslul.openboard.inputmethod.latin.utils.DeviceProtectedUtils +import java.io.File +import java.io.IOException +import java.io.PrintWriter +import java.io.StringWriter +import java.util.Locale object DebugFlags { @JvmField var DEBUG_ENABLED = false @JvmStatic - fun init(prefs: SharedPreferences) { - DEBUG_ENABLED = BuildConfig.DEBUG && prefs.getBoolean(DebugSettings.PREF_DEBUG_MODE, false) + fun init(context: Context) { + val prefs = DeviceProtectedUtils.getSharedPreferences(context) + DEBUG_ENABLED = prefs.getBoolean(DebugSettings.PREF_DEBUG_MODE, false) + if (DEBUG_ENABLED || BuildConfig.DEBUG) + CrashReportExceptionHandler(context.applicationContext).install() + } +} + +// basically copied from StreetComplete +private class CrashReportExceptionHandler(val appContext: Context) : Thread.UncaughtExceptionHandler { + private var defaultUncaughtExceptionHandler: Thread.UncaughtExceptionHandler? = null + + fun install(): Boolean { + val ueh = Thread.getDefaultUncaughtExceptionHandler() + if (ueh is CrashReportExceptionHandler) + return false + defaultUncaughtExceptionHandler = ueh + Thread.setDefaultUncaughtExceptionHandler(this) + return true + } + + override fun uncaughtException(t: Thread, e: Throwable) { + val stackTrace = StringWriter() + + e.printStackTrace(PrintWriter(stackTrace)) + writeCrashReportToFile(""" +Thread: ${t.name} +App version: ${BuildConfig.VERSION_NAME} +Device: ${Build.BRAND} ${Build.DEVICE}, Android ${Build.VERSION.RELEASE} +Locale: ${Locale.getDefault()} +Stack trace: +$stackTrace +""") + defaultUncaughtExceptionHandler!!.uncaughtException(t, e) + } + + private fun writeCrashReportToFile(text: String) { + try { + val dir = appContext.getExternalFilesDir(null) ?: return + val crashReportFile = File(dir, "crash_report_${System.currentTimeMillis()}.txt") + crashReportFile.writeText(text) + } catch (ignored: IOException) { + } } } diff --git a/app/src/main/java/org/dslul/openboard/inputmethod/latin/settings/AboutFragment.java b/app/src/main/java/org/dslul/openboard/inputmethod/latin/settings/AboutFragment.java index 0a0a8e319..f5df0ba30 100644 --- a/app/src/main/java/org/dslul/openboard/inputmethod/latin/settings/AboutFragment.java +++ b/app/src/main/java/org/dslul/openboard/inputmethod/latin/settings/AboutFragment.java @@ -13,6 +13,7 @@ import android.os.Bundle; import android.text.Spanned; import android.text.method.LinkMovementMethod; import android.widget.TextView; +import android.widget.Toast; import androidx.appcompat.app.AlertDialog; import androidx.core.graphics.drawable.DrawableCompat; @@ -41,24 +42,42 @@ public final class AboutFragment extends SubScreenFragment { } } - Preference versionPreference = findPreference("pref_key_version"); - versionPreference.setSummary(BuildConfig.VERSION_NAME); + setupHiddenFeatures(); + setupVersionPref(); + } + private void setupHiddenFeatures() { Preference hiddenFeaturesPreference = findPreference("hidden_features"); hiddenFeaturesPreference.setOnPreferenceClickListener(preference -> { final String link = "" + getString(R.string.hidden_features_text) + ""; - final String message = getContext().getString(R.string.hidden_features_message, link); + final String message = requireContext().getString(R.string.hidden_features_message, link); final Spanned dialogMessage = SpannableStringUtils.fromHtml(message); - final AlertDialog builder = new AlertDialog.Builder(getContext()) + final AlertDialog builder = new AlertDialog.Builder(requireContext()) .setIcon(R.drawable.ic_settings_about_hidden_features) .setTitle(R.string.hidden_features_title) .setMessage(dialogMessage) .setPositiveButton(R.string.dialog_close, null) .create(); builder.show(); - ((TextView)builder.findViewById(android.R.id.message)).setMovementMethod(LinkMovementMethod.getInstance()); + ((TextView) builder.findViewById(android.R.id.message)).setMovementMethod(LinkMovementMethod.getInstance()); + return true; + }); + } + + private void setupVersionPref() { + Preference versionPreference = findPreference("pref_key_version"); + versionPreference.setSummary(BuildConfig.VERSION_NAME); + if (BuildConfig.DEBUG) return; + int[] count = new int[] {0}; + versionPreference.setOnPreferenceClickListener((pref) -> { + if (getSharedPreferences().getBoolean(DebugSettings.PREF_SHOW_DEBUG_SETTINGS, false)) + return true; + count[0]++; + if (count[0] < 5) return true; + getSharedPreferences().edit().putBoolean(DebugSettings.PREF_SHOW_DEBUG_SETTINGS, true).apply(); + Toast.makeText(requireContext(), R.string.prefs_debug_settings_enabled, Toast.LENGTH_LONG).show(); return true; }); } diff --git a/app/src/main/java/org/dslul/openboard/inputmethod/latin/settings/AdvancedSettingsFragment.kt b/app/src/main/java/org/dslul/openboard/inputmethod/latin/settings/AdvancedSettingsFragment.kt index 69db98e9d..9795bf87a 100644 --- a/app/src/main/java/org/dslul/openboard/inputmethod/latin/settings/AdvancedSettingsFragment.kt +++ b/app/src/main/java/org/dslul/openboard/inputmethod/latin/settings/AdvancedSettingsFragment.kt @@ -25,6 +25,7 @@ import org.dslul.openboard.inputmethod.latin.BuildConfig import org.dslul.openboard.inputmethod.latin.R import org.dslul.openboard.inputmethod.latin.SystemBroadcastReceiver import org.dslul.openboard.inputmethod.latin.common.FileUtils +import org.dslul.openboard.inputmethod.latin.define.DebugFlags import org.dslul.openboard.inputmethod.latin.define.JniLibName import org.dslul.openboard.inputmethod.latin.settings.SeekBarDialogPreference.ValueProxy import java.io.File @@ -85,9 +86,6 @@ class AdvancedSettingsFragment : SubScreenFragment() { // singleton and utility classes may not have been initialized. We have to call // initialization method of these classes here. See {@link LatinIME#onCreate()}. AudioAndHapticFeedbackManager.init(context) - if (!BuildConfig.DEBUG) { - removePreference(Settings.SCREEN_DEBUG) - } if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) { removePreference(Settings.PREF_SHOW_SETUP_WIZARD_ICON) } @@ -96,6 +94,13 @@ class AdvancedSettingsFragment : SubScreenFragment() { findPreference("pref_backup_restore")?.setOnPreferenceClickListener { showBackupRestoreDialog() } } + override fun onStart() { + super.onStart() + if (!BuildConfig.DEBUG && !sharedPreferences.getBoolean(DebugSettings.PREF_SHOW_DEBUG_SETTINGS, false)) { + removePreference(Settings.SCREEN_DEBUG) + } + } + private fun onClickLoadLibrary(): Boolean { // get architecture for telling user which file to use val abi = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { diff --git a/app/src/main/java/org/dslul/openboard/inputmethod/latin/settings/DebugSettings.java b/app/src/main/java/org/dslul/openboard/inputmethod/latin/settings/DebugSettings.java index 1ddb77d76..8ddf80734 100644 --- a/app/src/main/java/org/dslul/openboard/inputmethod/latin/settings/DebugSettings.java +++ b/app/src/main/java/org/dslul/openboard/inputmethod/latin/settings/DebugSettings.java @@ -17,9 +17,9 @@ package org.dslul.openboard.inputmethod.latin.settings; public final class DebugSettings { public static final String PREF_DEBUG_MODE = "debug_mode"; public static final String PREF_FORCE_NON_DISTINCT_MULTITOUCH = "force_non_distinct_multitouch"; - public static final String PREF_SHOULD_SHOW_LXX_SUGGESTION_UI = - "pref_should_show_lxx_suggestion_ui"; + public static final String PREF_SHOULD_SHOW_LXX_SUGGESTION_UI = "pref_should_show_lxx_suggestion_ui"; public static final String PREF_SLIDING_KEY_INPUT_PREVIEW = "pref_sliding_key_input_preview"; + public static final String PREF_SHOW_DEBUG_SETTINGS = "pref_show_debug_settings"; private DebugSettings() { // This class is not publicly instantiable. diff --git a/app/src/main/java/org/dslul/openboard/inputmethod/latin/settings/DebugSettingsFragment.java b/app/src/main/java/org/dslul/openboard/inputmethod/latin/settings/DebugSettingsFragment.java index 181749383..c1ee0f3e0 100644 --- a/app/src/main/java/org/dslul/openboard/inputmethod/latin/settings/DebugSettingsFragment.java +++ b/app/src/main/java/org/dslul/openboard/inputmethod/latin/settings/DebugSettingsFragment.java @@ -16,6 +16,7 @@ import androidx.preference.Preference; import androidx.preference.PreferenceGroup; import androidx.preference.TwoStatePreference; +import org.dslul.openboard.inputmethod.latin.BuildConfig; import org.dslul.openboard.inputmethod.latin.DictionaryDumpBroadcastReceiver; import org.dslul.openboard.inputmethod.latin.DictionaryFacilitatorImpl; import org.dslul.openboard.inputmethod.latin.R; @@ -49,6 +50,8 @@ public final class DebugSettingsFragment extends SubScreenFragment pref.setOnPreferenceClickListener(this); dictDumpPreferenceGroup.addPreference(pref); } + if (BuildConfig.DEBUG) + removePreference(DebugSettings.PREF_SHOW_DEBUG_SETTINGS); mServiceNeedsRestart = false; mDebugMode = findPreference(DebugSettings.PREF_DEBUG_MODE); @@ -92,7 +95,6 @@ public final class DebugSettingsFragment extends SubScreenFragment public void onSharedPreferenceChanged(final SharedPreferences prefs, final String key) { if (key.equals(DebugSettings.PREF_DEBUG_MODE) && mDebugMode != null) { mDebugMode.setChecked(prefs.getBoolean(DebugSettings.PREF_DEBUG_MODE, false)); - updateDebugMode(); mServiceNeedsRestart = true; } else if (key.equals(DebugSettings.PREF_FORCE_NON_DISTINCT_MULTITOUCH)) { mServiceNeedsRestart = true; @@ -100,16 +102,8 @@ public final class DebugSettingsFragment extends SubScreenFragment } private void updateDebugMode() { - boolean isDebugMode = mDebugMode.isChecked(); - final String version = getString( - R.string.version_text, ApplicationUtils.getVersionName(getActivity())); - if (!isDebugMode) { - mDebugMode.setTitle(version); - mDebugMode.setSummary(null); - } else { - mDebugMode.setTitle(getString(R.string.prefs_debug_mode)); - mDebugMode.setSummary(version); - } + final String version = getString(R.string.version_text, ApplicationUtils.getVersionName(getActivity())); + mDebugMode.setSummary(version); } } diff --git a/app/src/main/java/org/dslul/openboard/inputmethod/latin/settings/SettingsFragment.java b/app/src/main/java/org/dslul/openboard/inputmethod/latin/settings/SettingsFragment.java index cc67c7d82..ed83222eb 100644 --- a/app/src/main/java/org/dslul/openboard/inputmethod/latin/settings/SettingsFragment.java +++ b/app/src/main/java/org/dslul/openboard/inputmethod/latin/settings/SettingsFragment.java @@ -31,6 +31,7 @@ import androidx.preference.PreferenceScreen; import org.dslul.openboard.inputmethod.latin.BuildConfig; import org.dslul.openboard.inputmethod.latin.R; import org.dslul.openboard.inputmethod.latin.common.FileUtils; +import org.dslul.openboard.inputmethod.latin.define.DebugFlags; import org.dslul.openboard.inputmethod.latin.utils.ApplicationUtils; import org.dslul.openboard.inputmethod.latin.utils.DeviceProtectedUtils; import org.dslul.openboard.inputmethod.latin.utils.DictionaryUtilsKt; @@ -95,7 +96,7 @@ public final class SettingsFragment extends PreferenceFragmentCompat { SubtypeSettingsKt.init(getActivity()); findPreference("screen_languages").setSummary(getEnabledSubtypesLabel()); - if (BuildConfig.DEBUG) + if (BuildConfig.DEBUG || DebugFlags.DEBUG_ENABLED) askAboutCrashReports(); } diff --git a/app/src/main/java/org/dslul/openboard/inputmethod/latin/settings/SubtypeSettings.kt b/app/src/main/java/org/dslul/openboard/inputmethod/latin/settings/SubtypeSettings.kt index b81086bed..374445109 100644 --- a/app/src/main/java/org/dslul/openboard/inputmethod/latin/settings/SubtypeSettings.kt +++ b/app/src/main/java/org/dslul/openboard/inputmethod/latin/settings/SubtypeSettings.kt @@ -14,6 +14,7 @@ import org.dslul.openboard.inputmethod.keyboard.KeyboardSwitcher import org.dslul.openboard.inputmethod.latin.BuildConfig import org.dslul.openboard.inputmethod.latin.R import org.dslul.openboard.inputmethod.latin.RichInputMethodManager +import org.dslul.openboard.inputmethod.latin.define.DebugFlags import org.dslul.openboard.inputmethod.latin.utils.AdditionalSubtypeUtils import org.dslul.openboard.inputmethod.latin.utils.DeviceProtectedUtils import org.dslul.openboard.inputmethod.latin.utils.SubtypeLocaleUtils @@ -235,7 +236,7 @@ private fun loadEnabledSubtypes(context: Context) { for (localeAndLayout in subtypeStrings) { require(localeAndLayout.size == 2) val subtypesForLocale = resourceSubtypesByLocale[localeAndLayout.first()] - if (BuildConfig.DEBUG) // should not happen, but should not crash for normal user + if (DebugFlags.DEBUG_ENABLED) // should not happen, but should not crash for normal user require(subtypesForLocale != null) else if (subtypesForLocale == null) continue @@ -243,7 +244,7 @@ private fun loadEnabledSubtypes(context: Context) { val subtype = subtypesForLocale.firstOrNull { SubtypeLocaleUtils.getKeyboardLayoutSetName(it) == localeAndLayout.last() } ?: additionalSubtypes.firstOrNull { it.locale() == localeAndLayout.first() && SubtypeLocaleUtils.getKeyboardLayoutSetName(it) == localeAndLayout.last() } if (subtype == null) { - if (BuildConfig.DEBUG) + if (DebugFlags.DEBUG_ENABLED) Toast.makeText(context, "subtype $localeAndLayout could not be loaded", Toast.LENGTH_LONG).show() continue } diff --git a/app/src/main/java/org/dslul/openboard/inputmethod/latin/suggestions/SuggestionStripLayoutHelper.java b/app/src/main/java/org/dslul/openboard/inputmethod/latin/suggestions/SuggestionStripLayoutHelper.java index cb92967f5..b0cd29d8c 100644 --- a/app/src/main/java/org/dslul/openboard/inputmethod/latin/suggestions/SuggestionStripLayoutHelper.java +++ b/app/src/main/java/org/dslul/openboard/inputmethod/latin/suggestions/SuggestionStripLayoutHelper.java @@ -364,7 +364,7 @@ final class SuggestionStripLayoutHelper { layoutWord(context, mCenterPositionInStrip, stripWidth - mPadding); stripView.addView(centerWordView); setLayoutWeight(centerWordView, 1.0f, ViewGroup.LayoutParams.MATCH_PARENT); - if (SuggestionStripView.DBG) { + if (SuggestionStripView.DEBUG) { layoutDebugInfo(mCenterPositionInStrip, placerView, stripWidth); } final Integer lastIndex = (Integer)centerWordView.getTag(); @@ -390,7 +390,7 @@ final class SuggestionStripLayoutHelper { ViewGroup.LayoutParams.MATCH_PARENT); x += wordView.getMeasuredWidth(); - if (SuggestionStripView.DBG) { + if (SuggestionStripView.DEBUG) { layoutDebugInfo(positionInStrip, placerView, x); } } @@ -484,7 +484,7 @@ final class SuggestionStripLayoutHelper { wordView.setText(null); wordView.setTag(null); // Make this inactive for touches in {@link #layoutWord(int,int)}. - if (SuggestionStripView.DBG) { + if (SuggestionStripView.DEBUG) { mDebugInfoViews.get(positionInStrip).setText(null); } } @@ -503,7 +503,7 @@ final class SuggestionStripLayoutHelper { wordView.setTag(indexInSuggestedWords); wordView.setText(getStyledSuggestedWord(suggestedWords, indexInSuggestedWords)); wordView.setTextColor(getSuggestionTextColor(suggestedWords, indexInSuggestedWords)); - if (SuggestionStripView.DBG) { + if (SuggestionStripView.DEBUG) { mDebugInfoViews.get(positionInStrip).setText( suggestedWords.getDebugString(indexInSuggestedWords)); } diff --git a/app/src/main/java/org/dslul/openboard/inputmethod/latin/suggestions/SuggestionStripView.java b/app/src/main/java/org/dslul/openboard/inputmethod/latin/suggestions/SuggestionStripView.java index 9aa441353..bd962c7b7 100644 --- a/app/src/main/java/org/dslul/openboard/inputmethod/latin/suggestions/SuggestionStripView.java +++ b/app/src/main/java/org/dslul/openboard/inputmethod/latin/suggestions/SuggestionStripView.java @@ -70,7 +70,7 @@ public final class SuggestionStripView extends RelativeLayout implements OnClick CharSequence getSelection(); } - static final boolean DBG = DebugFlags.DEBUG_ENABLED; + static final boolean DEBUG = DebugFlags.DEBUG_ENABLED; private static final float DEBUG_INFO_TEXT_SIZE_IN_DIP = 6.0f; private static final String VOICE_KEY_TAG = "voice_key"; private static final String CLIPBOARD_KEY_TAG = "clipboard_key"; @@ -405,7 +405,7 @@ public final class SuggestionStripView extends RelativeLayout implements OnClick } return false; }); - if (BuildConfig.DEBUG && (isShowingMoreSuggestionPanel() || !showMoreSuggestions())) { + if (DEBUG && (isShowingMoreSuggestionPanel() || !showMoreSuggestions())) { showSourceDict(wordView); return true; } else return showMoreSuggestions(); diff --git a/app/src/main/java/org/dslul/openboard/inputmethod/latin/utils/AutoCorrectionUtils.java b/app/src/main/java/org/dslul/openboard/inputmethod/latin/utils/AutoCorrectionUtils.java index ffa43c298..89085733d 100644 --- a/app/src/main/java/org/dslul/openboard/inputmethod/latin/utils/AutoCorrectionUtils.java +++ b/app/src/main/java/org/dslul/openboard/inputmethod/latin/utils/AutoCorrectionUtils.java @@ -14,7 +14,6 @@ import org.dslul.openboard.inputmethod.latin.SuggestedWords.SuggestedWordInfo; import org.dslul.openboard.inputmethod.latin.define.DebugFlags; public final class AutoCorrectionUtils { - private static final boolean DBG = DebugFlags.DEBUG_ENABLED; private static final String TAG = AutoCorrectionUtils.class.getSimpleName(); private AutoCorrectionUtils() { @@ -37,13 +36,13 @@ public final class AutoCorrectionUtils { // the normalized score of the second suggestion, behave less aggressive. final float normalizedScore = BinaryDictionaryUtils.calcNormalizedScore( consideredWord, suggestion.mWord, autoCorrectionSuggestionScore); - if (DBG) { + if (DebugFlags.DEBUG_ENABLED) { Log.d(TAG, "Normalized " + consideredWord + "," + suggestion + "," + autoCorrectionSuggestionScore + ", " + normalizedScore + "(" + threshold + ")"); } if (normalizedScore >= threshold) { - if (DBG) { + if (DebugFlags.DEBUG_ENABLED) { Log.d(TAG, "Exceeds threshold."); } return true; diff --git a/app/src/main/res/values/donottranslate-debug-settings.xml b/app/src/main/res/values/donottranslate-debug-settings.xml index ff511380c..14e6b2592 100644 --- a/app/src/main/res/values/donottranslate-debug-settings.xml +++ b/app/src/main/res/values/donottranslate-debug-settings.xml @@ -6,7 +6,9 @@ --> - Android Keyboard Debug settings + Debug settings + Enable debug settings + Debug settings enabled. Find them in advanced settings. Debug Mode Force non-distinct multitouch Show LXX suggestion UI diff --git a/app/src/main/res/xml/prefs_screen_advanced.xml b/app/src/main/res/xml/prefs_screen_advanced.xml index 07368a11d..0f0475cd2 100644 --- a/app/src/main/res/xml/prefs_screen_advanced.xml +++ b/app/src/main/res/xml/prefs_screen_advanced.xml @@ -72,7 +72,7 @@ diff --git a/app/src/main/res/xml/prefs_screen_debug.xml b/app/src/main/res/xml/prefs_screen_debug.xml index 6b1061aef..37ae52885 100644 --- a/app/src/main/res/xml/prefs_screen_debug.xml +++ b/app/src/main/res/xml/prefs_screen_debug.xml @@ -6,10 +6,13 @@ --> +