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

Commit 19a5e212 authored by danielwbhuang's avatar danielwbhuang
Browse files

Use custom action key icon

1. get icon from getKeyboardSettingsFeatureProvider
2. set color for it

Bug: 269214138
Test: manual, atest KeyboardSettingsFeatureProviderImplTest
Change-Id: I3a2d47e8230aec1404300b000e8b1fcf221e2a65
parent 097cd124
Loading
Loading
Loading
Loading
+36 −3
Original line number Diff line number Diff line
@@ -19,8 +19,7 @@
    android:layout_marginTop="8dip"
    android:layout_marginBottom="8dip"
    android:minHeight="?android:attr/listPreferredItemHeight"
    android:paddingEnd="?android:attr/scrollbarSize"
    android:layout_weight="1">
    android:paddingEnd="?android:attr/scrollbarSize">

    <ImageView
        android:id="@+id/modifier_key_check_icon"
@@ -36,7 +35,7 @@

    <TextView
        android:id="@+id/modifier_key_text"
        android:layout_width="match_parent"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerVertical="true"
        android:textDirection="locale"
@@ -46,4 +45,38 @@
        android:ellipsize="marquee"
        android:fadingEdge="horizontal" />

    <TextView
        android:id="@+id/modifier_key_left_bracket"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerVertical="true"
        android:textDirection="locale"
        android:padding="1dp"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:layout_toEndOf="@+id/modifier_key_text"
        android:fadingEdge="horizontal" />

    <ImageView
        android:id="@+id/modifier_key_action_key_icon"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerVertical="true"
        android:layout_toEndOf="@+id/modifier_key_left_bracket"
        android:fadingEdge="horizontal"
        android:tint="?android:attr/textColorPrimary"/>

    <TextView
        android:id="@+id/modifier_key_right_bracket"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerVertical="true"
        android:textDirection="locale"
        android:padding="1dp"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:layout_toEndOf="@+id/modifier_key_action_key_icon"
        android:fadingEdge="horizontal" />

    <View android:layout_width="wrap_content"
          android:layout_height="match_parent" />

</RelativeLayout>
+107 −0
Original line number Diff line number Diff line
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2023 The Android Open Source Project
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
     You may obtain a copy of the License at
          http://www.apache.org/licenses/LICENSE-2.0
     Unless required by applicable law or agreed to in writing, software
     distributed under the License is distributed on an "AS IS" BASIS,
     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     See the License for the specific language governing permissions and
     limitations under the License.
-->

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:minHeight="?android:attr/listPreferredItemHeight"
    android:gravity="center_vertical"
    android:paddingStart="?android:attr/listPreferredItemPaddingStart"
    android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"
    android:background="?android:attr/selectableItemBackground">

    <FrameLayout
        android:id="@+id/icon_frame"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">
        <androidx.preference.internal.PreferenceImageView
            android:id="@android:id/icon"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            app:maxWidth="48dp"
            app:maxHeight="48dp" />
    </FrameLayout>

    <RelativeLayout
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:paddingTop="16dp"
        android:paddingBottom="16dp"
        android:layout_weight="1">

        <TextView android:id="@+id/title"
                  android:layout_width="wrap_content"
                  android:layout_height="wrap_content"
                  android:singleLine="true"
                  android:textAppearance="?android:attr/textAppearanceLarge"
                  android:textColor="?android:attr/textColorPrimary"
                  android:fadingEdge="horizontal" />

        <TextView android:id="@+id/summary"
                  android:layout_width="wrap_content"
                  android:layout_height="wrap_content"
                  android:layout_below="@+id/title"
                  android:layout_alignStart="@+id/title"
                  android:layout_alignLeft="@+id/title"
                  android:textAppearance="?android:attr/textAppearanceSmall"
                  android:textColor="?android:attr/textColorSecondary"
                  android:maxLines="4" />

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:paddingStart="15dp"
            android:layout_toEndOf="@+id/title"
            android:gravity="center_vertical"
            android:orientation="horizontal">

            <TextView
                android:id="@+id/modifier_key_left_bracket"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textDirection="locale"
                android:paddingStart="1dp"
                android:paddingEnd="1dp"
                android:textAppearance="?android:attr/textAppearanceLarge"
                android:textColor="?android:attr/textColorPrimary"
                android:fadingEdge="horizontal" />

            <ImageView
                android:id="@+id/modifier_key_action_key_icon"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:fadingEdge="horizontal"
                android:tint="?android:attr/textColorPrimary"/>

            <TextView
                android:id="@+id/modifier_key_right_bracket"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textDirection="locale"
                android:paddingStart="1dp"
                android:paddingEnd="1dp"
                android:textAppearance="?android:attr/textAppearanceLarge"
                android:textColor="?android:attr/textColorPrimary"
                android:fadingEdge="horizontal" />
        </LinearLayout>
    </RelativeLayout>

    <!-- Preference should place its actual preference widget here. -->
    <LinearLayout android:id="@android:id/widget_frame"
                  android:layout_width="wrap_content"
                  android:layout_height="match_parent"
                  android:gravity="center_vertical"
                  android:orientation="vertical" />
</LinearLayout>
+9 −12
Original line number Diff line number Diff line
@@ -21,25 +21,22 @@
    android:title="@string/modifier_keys_settings"
    android:key="modifier_keys_all"
    settings:controller="com.android.settings.inputmethod.ModifierKeysPreferenceController">
    <Preference

    <com.android.settingslib.widget.LayoutPreference
        android:key="modifier_keys_caps_lock"
        android:title="@string/modifier_keys_caps_lock"
        android:summary="@string/modifier_keys_default_summary"/>
        android:layout="@layout/modifier_keys_custom_key" />

    <Preference
    <com.android.settingslib.widget.LayoutPreference
        android:key="modifier_keys_ctrl"
        android:title="@string/modifier_keys_ctrl"
        android:summary="@string/modifier_keys_default_summary"/>
        android:layout="@layout/modifier_keys_custom_key" />

    <Preference
    <com.android.settingslib.widget.LayoutPreference
        android:key="modifier_keys_meta"
        android:title="@string/modifier_keys_meta"
        android:summary="@string/modifier_keys_default_summary"/>
        android:layout="@layout/modifier_keys_custom_key" />

    <Preference
    <com.android.settingslib.widget.LayoutPreference
        android:key="modifier_keys_alt"
        android:title="@string/modifier_keys_alt"
        android:summary="@string/modifier_keys_default_summary"/>
        android:layout="@layout/modifier_keys_custom_key" />

    <Preference
        android:key="modifier_keys_restore"
+12 −0
Original line number Diff line number Diff line
@@ -17,7 +17,9 @@
package com.android.settings.inputmethod;

import android.content.Context;
import android.graphics.drawable.Drawable;

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

/**
@@ -41,4 +43,14 @@ public interface KeyboardSettingsFeatureProvider {
     * @return true if the category is added successfully.
     */
    boolean addFirmwareUpdateCategory(Context context, PreferenceScreen screen);

    /**
     * Get custom action key icon.
     *
     * @param context Context for accessing resources.
     *
     * @return Returns the image of the icon, or null if there is no any custom icon.
     */
    @Nullable
    Drawable getActionKeyIcon(Context context);
}
+6 −0
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@
package com.android.settings.inputmethod;

import android.content.Context;
import android.graphics.drawable.Drawable;

import androidx.preference.PreferenceScreen;

@@ -34,4 +35,9 @@ public class KeyboardSettingsFeatureProviderImpl implements KeyboardSettingsFeat
    public boolean addFirmwareUpdateCategory(Context context, PreferenceScreen screen) {
        return false;
    }

    @Override
    public Drawable getActionKeyIcon(Context context) {
        return null;
    };
}
Loading