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

Commit c0a4fec1 authored by Shaowei Shen's avatar Shaowei Shen Committed by Android (Google) Code Review
Browse files

Merge "[PhysicalKeyboard] Update Setting Feature Provider for follow up usage" into main

parents bade0e09 dba15f82
Loading
Loading
Loading
Loading
+8 −7
Original line number Original line Diff line number Diff line
@@ -35,20 +35,21 @@ public interface KeyboardSettingsFeatureProvider {
    boolean supportsFirmwareUpdate();
    boolean supportsFirmwareUpdate();


    /**
    /**
     * Add firmware update preference category .
     * Register firmware information preferences update on preference screen.
     *
     *
     * @param context The context to initialize the application with.
     * @param screen The {@link PreferenceScreen} to add the firmware information preferences.
     * @param screen  The {@link PreferenceScreen} to add the firmware update preference category.
     *
     * @return true if the category is added successfully.
     */
     */
    boolean addFirmwareUpdateCategory(Context context, PreferenceScreen screen);
    void registerKeyboardInformationCategory(@Nullable PreferenceScreen screen);

    /**
     * Unregister firmware information preferences update on preference screen.
     */
    void unregisterKeyboardInformationCategory();


    /**
    /**
     * Get custom action key icon.
     * Get custom action key icon.
     *
     *
     * @param context Context for accessing resources.
     * @param context Context for accessing resources.
     *
     * @return Returns the image of the icon, or null if there is no any custom icon.
     * @return Returns the image of the icon, or null if there is no any custom icon.
     */
     */
    @Nullable
    @Nullable
+6 −4
Original line number Original line Diff line number Diff line
@@ -19,6 +19,7 @@ package com.android.settings.inputmethod;
import android.content.Context;
import android.content.Context;
import android.graphics.drawable.Drawable;
import android.graphics.drawable.Drawable;


import androidx.annotation.Nullable;
import androidx.preference.PreferenceScreen;
import androidx.preference.PreferenceScreen;


/**
/**
@@ -32,12 +33,13 @@ public class KeyboardSettingsFeatureProviderImpl implements KeyboardSettingsFeat
    }
    }


    @Override
    @Override
    public boolean addFirmwareUpdateCategory(Context context, PreferenceScreen screen) {
    public void registerKeyboardInformationCategory(@Nullable PreferenceScreen screen) {}
        return false;

    }
    @Override
    public void unregisterKeyboardInformationCategory() {}


    @Override
    @Override
    public Drawable getActionKeyIcon(Context context) {
    public Drawable getActionKeyIcon(Context context) {
        return null;
        return null;
    };
    }
}
}
+5 −2
Original line number Original line Diff line number Diff line
@@ -164,7 +164,7 @@ public final class PhysicalKeyboardFragment extends DashboardFragment
        mFeatureProvider = featureFactory.getKeyboardSettingsFeatureProvider();
        mFeatureProvider = featureFactory.getKeyboardSettingsFeatureProvider();
        mSupportsFirmwareUpdate = mFeatureProvider.supportsFirmwareUpdate();
        mSupportsFirmwareUpdate = mFeatureProvider.supportsFirmwareUpdate();
        if (mSupportsFirmwareUpdate) {
        if (mSupportsFirmwareUpdate) {
            mFeatureProvider.addFirmwareUpdateCategory(getContext(), getPreferenceScreen());
            mFeatureProvider.registerKeyboardInformationCategory(getPreferenceScreen());
        }
        }
        boolean isModifierKeySettingsEnabled = FeatureFlagUtils
        boolean isModifierKeySettingsEnabled = FeatureFlagUtils
                .isEnabled(getContext(), FeatureFlagUtils.SETTINGS_NEW_KEYBOARD_MODIFIER_KEY);
                .isEnabled(getContext(), FeatureFlagUtils.SETTINGS_NEW_KEYBOARD_MODIFIER_KEY);
@@ -344,7 +344,7 @@ public final class PhysicalKeyboardFragment extends DashboardFragment
        mKeyboardAssistanceCategory.setOrder(1);
        mKeyboardAssistanceCategory.setOrder(1);
        preferenceScreen.addPreference(mKeyboardAssistanceCategory);
        preferenceScreen.addPreference(mKeyboardAssistanceCategory);
        if (mSupportsFirmwareUpdate) {
        if (mSupportsFirmwareUpdate) {
            mFeatureProvider.addFirmwareUpdateCategory(getPrefContext(), preferenceScreen);
            mFeatureProvider.registerKeyboardInformationCategory(preferenceScreen);
        }
        }


        if (InputSettings.isAccessibilityBounceKeysFeatureEnabled()
        if (InputSettings.isAccessibilityBounceKeysFeatureEnabled()
@@ -423,6 +423,9 @@ public final class PhysicalKeyboardFragment extends DashboardFragment


    private void unregisterSettingsObserver() {
    private void unregisterSettingsObserver() {
        getActivity().getContentResolver().unregisterContentObserver(mContentObserver);
        getActivity().getContentResolver().unregisterContentObserver(mContentObserver);
        if (mSupportsFirmwareUpdate) {
            mFeatureProvider.unregisterKeyboardInformationCategory();
        }
    }
    }


    private void updateAccessibilityBounceKeysSwitch(@NonNull Context context) {
    private void updateAccessibilityBounceKeysSwitch(@NonNull Context context) {
+0 −14
Original line number Original line Diff line number Diff line
@@ -19,10 +19,7 @@ package com.android.settings.inputmethod;
import static com.google.common.truth.Truth.assertThat;
import static com.google.common.truth.Truth.assertThat;


import android.content.Context;
import android.content.Context;
import android.os.Looper;


import androidx.preference.PreferenceManager;
import androidx.preference.PreferenceScreen;
import androidx.test.core.app.ApplicationProvider;
import androidx.test.core.app.ApplicationProvider;
import androidx.test.ext.junit.runners.AndroidJUnit4;
import androidx.test.ext.junit.runners.AndroidJUnit4;


@@ -47,17 +44,6 @@ public class KeyboardSettingsFeatureProviderImplTest {
        assertThat(mFeatureProvider.supportsFirmwareUpdate()).isFalse();
        assertThat(mFeatureProvider.supportsFirmwareUpdate()).isFalse();
    }
    }


    @Test
    public void addFirmwareUpdateCategory_defaultValue_returnsFalse() {
        if (Looper.myLooper() == null) {
            Looper.prepare();
        }
        PreferenceManager preferenceManager = new PreferenceManager(mContext);
        PreferenceScreen screen = preferenceManager.createPreferenceScreen(mContext);

        assertThat(mFeatureProvider.addFirmwareUpdateCategory(mContext, screen)).isFalse();
    }

    @Test
    @Test
    public void getActionKeyIcon_defaultValue_returnsNull() {
    public void getActionKeyIcon_defaultValue_returnsNull() {
        assertThat(mFeatureProvider.getActionKeyIcon(mContext)).isNull();
        assertThat(mFeatureProvider.getActionKeyIcon(mContext)).isNull();