Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 395009c0 authored by Tadashi G. Takaoka's avatar Tadashi G. Takaoka
Browse files

Fix NPE in AppearanceSettingsFragment

Bug: 18147440
Change-Id: I7a7a47b3484e54146d34d11b5bd9c1305421d829
parent d5455fea
Loading
Loading
Loading
Loading
+10 −0
Original line number Diff line number Diff line
@@ -305,6 +305,16 @@ public final class Constants {
    public static final int SCREEN_METRICS_LARGE_TABLET = 2;
    public static final int SCREEN_METRICS_SMALL_TABLET = 3;

    public static boolean isPhone(final int screenMetrics) {
        return screenMetrics == SCREEN_METRICS_SMALL_PHONE
                || screenMetrics == SCREEN_METRICS_LARGE_PHONE;
    }

    public static boolean isTablet(final int screenMetrics) {
        return screenMetrics == SCREEN_METRICS_SMALL_TABLET
                || screenMetrics == SCREEN_METRICS_LARGE_TABLET;
    }

    /**
     * Default capacity of gesture points container.
     * This constant is used by {@link com.android.inputmethod.keyboard.internal.BatchInputArbiter}
+4 −4
Original line number Diff line number Diff line
@@ -19,9 +19,9 @@ package com.android.inputmethod.latin.settings;
import android.os.Bundle;

import com.android.inputmethod.latin.R;
import com.android.inputmethod.latin.common.Constants;
import com.android.inputmethod.latin.define.ProductionFlags;


/**
 * "Appearance" settings sub screen.
 */
@@ -30,8 +30,8 @@ public final class AppearanceSettingsFragment extends SubScreenFragment {
    public void onCreate(final Bundle icicle) {
        super.onCreate(icicle);
        addPreferencesFromResource(R.xml.prefs_screen_appearance);
        if (!ProductionFlags.IS_SPLIT_KEYBOARD_SUPPORTED
                || !Settings.getInstance().getCurrent().isTablet()) {
        if (!ProductionFlags.IS_SPLIT_KEYBOARD_SUPPORTED ||
                Constants.isPhone(Settings.readScreenMetrics(getResources()))) {
            removePreference(Settings.PREF_ENABLE_SPLIT_KEYBOARD);
        }
    }
+4 −0
Original line number Diff line number Diff line
@@ -213,6 +213,10 @@ public final class Settings implements SharedPreferences.OnSharedPreferenceChang
        return mSettingsValues.mBlockPotentiallyOffensive;
    }

    public static int readScreenMetrics(final Resources res) {
        return res.getInteger(R.integer.config_screen_metrics);
    }

    // Accessed from the settings interface, hence public
    public static boolean readKeypressSoundEnabled(final SharedPreferences prefs,
            final Resources res) {
+1 −7
Original line number Diff line number Diff line
@@ -29,7 +29,6 @@ import com.android.inputmethod.latin.InputAttributes;
import com.android.inputmethod.latin.R;
import com.android.inputmethod.latin.RichInputMethodManager;
import com.android.inputmethod.latin.SubtypeSwitcher;
import com.android.inputmethod.latin.common.Constants;
import com.android.inputmethod.latin.utils.AsyncResultHolder;
import com.android.inputmethod.latin.utils.ResourceUtils;
import com.android.inputmethod.latin.utils.TargetPackageInfoGetterTask;
@@ -158,7 +157,7 @@ public class SettingsValues {
        mHasHardwareKeyboard = Settings.readHasHardwareKeyboard(res.getConfiguration());
        mEnableMetricsLogging = prefs.getBoolean(Settings.PREF_ENABLE_METRICS_LOGGING, true);
        mIsSplitKeyboardEnabled = prefs.getBoolean(Settings.PREF_ENABLE_SPLIT_KEYBOARD, false);
        mScreenMetrics = res.getInteger(R.integer.config_screen_metrics);
        mScreenMetrics = Settings.readScreenMetrics(res);

        mShouldShowLxxSuggestionUi = Settings.SHOULD_SHOW_LXX_SUGGESTION_UI
                && prefs.getBoolean(DebugSettings.PREF_SHOULD_SHOW_LXX_SUGGESTION_UI, true);
@@ -224,11 +223,6 @@ public class SettingsValues {
        return mEnableMetricsLogging;
    }

    public boolean isTablet() {
        return mScreenMetrics == Constants.SCREEN_METRICS_SMALL_TABLET
                || mScreenMetrics == Constants.SCREEN_METRICS_LARGE_TABLET;
    }

    public boolean isApplicationSpecifiedCompletionsOn() {
        return mInputAttributes.mApplicationSpecifiedCompletionOn;
    }
+2 −3
Original line number Diff line number Diff line
@@ -87,7 +87,7 @@ public abstract class KeyboardLayoutSetTestsBase extends AndroidTestCase {
        setContext(new ContextThemeWrapper(getContext(), keyboardTheme.mStyleId));
        KeyboardLayoutSet.onKeyboardThemeChanged();

        mScreenMetrics = res.getInteger(R.integer.config_screen_metrics);
        mScreenMetrics = Settings.readScreenMetrics(res);
        RichInputMethodManager.init(context);
        final RichInputMethodManager richImm = RichInputMethodManager.getInstance();

@@ -121,8 +121,7 @@ public abstract class KeyboardLayoutSetTestsBase extends AndroidTestCase {
    }

    protected final boolean isPhone() {
        return mScreenMetrics == Constants.SCREEN_METRICS_SMALL_PHONE
                || mScreenMetrics == Constants.SCREEN_METRICS_LARGE_PHONE;
        return Constants.isPhone(mScreenMetrics);
    }

    protected final InputMethodSubtype getSubtype(final Locale locale,
Loading