Loading res/layout/modifier_key_item.xml +36 −3 Original line number Diff line number Diff line Loading @@ -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" Loading @@ -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" Loading @@ -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> res/layout/modifier_keys_custom_key.xml 0 → 100644 +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> res/xml/modifier_keys_settings.xml +9 −12 Original line number Diff line number Diff line Loading @@ -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" Loading src/com/android/settings/inputmethod/KeyboardSettingsFeatureProvider.java +12 −0 Original line number Diff line number Diff line Loading @@ -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; /** Loading @@ -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); } src/com/android/settings/inputmethod/KeyboardSettingsFeatureProviderImpl.java +6 −0 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ package com.android.settings.inputmethod; import android.content.Context; import android.graphics.drawable.Drawable; import androidx.preference.PreferenceScreen; Loading @@ -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
res/layout/modifier_key_item.xml +36 −3 Original line number Diff line number Diff line Loading @@ -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" Loading @@ -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" Loading @@ -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>
res/layout/modifier_keys_custom_key.xml 0 → 100644 +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>
res/xml/modifier_keys_settings.xml +9 −12 Original line number Diff line number Diff line Loading @@ -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" Loading
src/com/android/settings/inputmethod/KeyboardSettingsFeatureProvider.java +12 −0 Original line number Diff line number Diff line Loading @@ -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; /** Loading @@ -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); }
src/com/android/settings/inputmethod/KeyboardSettingsFeatureProviderImpl.java +6 −0 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ package com.android.settings.inputmethod; import android.content.Context; import android.graphics.drawable.Drawable; import androidx.preference.PreferenceScreen; Loading @@ -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; }; }