From 8e083ee8a6fc1f50074953562ae6c0cb48d02c21 Mon Sep 17 00:00:00 2001
From: Georg Veichtlbauer <georg@vware.at>
Date: Sat, 5 Aug 2023 10:07:58 +0200
Subject: [PATCH] LatinIME: Give the spacebar a special treatment

* Add a fresh space bar icon
* Restyle it to be closer to other keyboards
* Disable long-press when in number pad mode
* Hide the active language text when not in long-press mode

Includes I27c02a35ed161c928c9062be5486b84f1d1f6ae5.

Change-Id: I49c1ac0affa617536f416f502683a97cad7287a9
---
 .../drawable/btn_keyboard_spacebar_normal_you.xml   |  9 +++++++++
 .../drawable/btn_keyboard_spacebar_pressed_you.xml  |  9 +++++++++
 java/res/drawable/btn_keyboard_spacebar_you.xml     | 10 ++++++++++
 java/res/drawable/sym_keyboard_space_you.xml        | 13 +++++++++++++
 java/res/values/keyboard-icons-you.xml              |  2 +-
 java/res/values/themes-you.xml                      |  4 ++--
 java/res/xml/key_styles_number.xml                  |  4 +---
 .../inputmethod/keyboard/MainKeyboardView.java      |  2 +-
 8 files changed, 46 insertions(+), 7 deletions(-)
 create mode 100644 java/res/drawable/btn_keyboard_spacebar_normal_you.xml
 create mode 100644 java/res/drawable/btn_keyboard_spacebar_pressed_you.xml
 create mode 100644 java/res/drawable/btn_keyboard_spacebar_you.xml
 create mode 100644 java/res/drawable/sym_keyboard_space_you.xml

diff --git a/java/res/drawable/btn_keyboard_spacebar_normal_you.xml b/java/res/drawable/btn_keyboard_spacebar_normal_you.xml
new file mode 100644
index 0000000000..91e450037d
--- /dev/null
+++ b/java/res/drawable/btn_keyboard_spacebar_normal_you.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     SPDX-FileCopyrightText: 2023 The LineageOS Project
+     SPDX-License-Identifier: Apache-2.0
+-->
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+    <solid android:color="@color/keyboard_key_normal_color_you"/>
+    <corners android:radius="@dimen/keyboard_key_corner_radius_you" />
+</shape>
diff --git a/java/res/drawable/btn_keyboard_spacebar_pressed_you.xml b/java/res/drawable/btn_keyboard_spacebar_pressed_you.xml
new file mode 100644
index 0000000000..ab7e6d6cce
--- /dev/null
+++ b/java/res/drawable/btn_keyboard_spacebar_pressed_you.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     SPDX-FileCopyrightText: 2023 The LineageOS Project
+     SPDX-License-Identifier: Apache-2.0
+-->
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+    <solid android:color="@color/keyboard_key_functional_pressed_color_you"/>
+    <corners android:radius="@dimen/keyboard_key_corner_radius_you" />
+</shape>
diff --git a/java/res/drawable/btn_keyboard_spacebar_you.xml b/java/res/drawable/btn_keyboard_spacebar_you.xml
new file mode 100644
index 0000000000..ad6941c298
--- /dev/null
+++ b/java/res/drawable/btn_keyboard_spacebar_you.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     SPDX-FileCopyrightText: 2023 The LineageOS Project
+     SPDX-License-Identifier: Apache-2.0
+-->
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+    <item android:state_pressed="true"
+          android:drawable="@drawable/btn_keyboard_spacebar_pressed_you" />
+    <item android:drawable="@drawable/btn_keyboard_spacebar_normal_you" />
+</selector>
diff --git a/java/res/drawable/sym_keyboard_space_you.xml b/java/res/drawable/sym_keyboard_space_you.xml
new file mode 100644
index 0000000000..e8929b38f1
--- /dev/null
+++ b/java/res/drawable/sym_keyboard_space_you.xml
@@ -0,0 +1,13 @@
+<!--
+    SPDX-FileCopyrightText: Material Design Authors / Google LLC
+    SPDX-License-Identifier: Apache-2.0
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:viewportWidth="960"
+    android:viewportHeight="960">
+    <path
+        android:fillColor="@color/icon_color_you"
+        android:pathData="M160,600L160,360L220,360L220,540L740,540L740,360L800,360L800,600L160,600Z"/>
+</vector>
diff --git a/java/res/values/keyboard-icons-you.xml b/java/res/values/keyboard-icons-you.xml
index 7eee05fb4f..4351c6f3df 100644
--- a/java/res/values/keyboard-icons-you.xml
+++ b/java/res/values/keyboard-icons-you.xml
@@ -34,7 +34,7 @@
         <item name="iconPreviousKey">@drawable/sym_keyboard_previous_you</item>
         <item name="iconTabKey">@drawable/sym_keyboard_tab_you</item>
         <item name="iconShortcutKey">@drawable/sym_keyboard_voice_you</item>
-        <item name="iconSpaceKeyForNumberLayout">@drawable/sym_keyboard_space_lxx_dark</item>
+        <item name="iconSpaceKeyForNumberLayout">@drawable/sym_keyboard_space_you</item>
         <item name="iconShiftKeyShifted">@drawable/sym_keyboard_shift_locked_you</item>
         <item name="iconShortcutKeyDisabled">@drawable/sym_keyboard_voice_off_you</item>
         <item name="iconLanguageSwitchKey">@drawable/sym_keyboard_language_switch_you</item>
diff --git a/java/res/values/themes-you.xml b/java/res/values/themes-you.xml
index bb9d44c122..d88d94b1a4 100644
--- a/java/res/values/themes-you.xml
+++ b/java/res/values/themes-you.xml
@@ -73,7 +73,7 @@
         <item name="android:background">@color/keyboard_background_you</item>
         <item name="keyBackground">@drawable/btn_keyboard_key_you</item>
         <item name="functionalKeyBackground">@drawable/btn_keyboard_key_functional_you</item>
-        <item name="spacebarBackground">@drawable/btn_keyboard_key_you</item>
+        <item name="spacebarBackground">@drawable/btn_keyboard_spacebar_you</item>
         <item name="keyTextColor">@color/keyboard_key_text_color_you</item>
         <item name="keyTextInactivatedColor">@color/keyboard_key_functional_text_color_you</item>
         <item name="functionalTextColor">@color/keyboard_key_functional_text_color_you</item>
@@ -98,7 +98,7 @@
         <item name="gestureFloatingPreviewColor">@color/gesture_floating_preview_color_you</item>
         <item name="gestureTrailColor">@color/gesture_trail_color_you</item>
         <item name="slidingKeyInputPreviewColor">@color/sliding_key_input_preview_color_you</item>
-        <item name="languageOnSpacebarTextColor">@color/key_text_inactive_color_lxx_dark</item>
+        <item name="languageOnSpacebarTextColor">@color/key_hint_letter_color_you</item>
         <!-- A negative value to disable text shadow layer. -->
         <item name="languageOnSpacebarTextShadowRadius">-1.0</item>
     </style>
diff --git a/java/res/xml/key_styles_number.xml b/java/res/xml/key_styles_number.xml
index dbb11fde7a..bb88b976f0 100644
--- a/java/res/xml/key_styles_number.xml
+++ b/java/res/xml/key_styles_number.xml
@@ -103,8 +103,7 @@
     <key-style
         latin:styleName="numSpaceKeyStyle"
         latin:keySpec="!icon/space_key_for_number_layout|!code/key_space"
-        latin:keyLabelFlags="alignIconToBottom"
-        latin:keyActionFlags="enableLongPress"
+        latin:backgroundType="functional"
         latin:parentStyle="numKeyBaseStyle" />
     <!-- TODO: Consolidate these space key styles with numSpaceKeyStyle above by introducing <case>
          predicator that checks device form-factor. -->
@@ -114,7 +113,6 @@
                 latin:styleName="tabletNumSpaceKeyStyle"
                 latin:keySpec="!icon/space_key|!code/key_space"
                 latin:backgroundType="functional"
-                latin:keyActionFlags="enableLongPress"
                 latin:parentStyle="numKeyBaseStyle" />
         </case>
         <case latin:keyboardTheme="LXXLight|LXXDark">
diff --git a/java/src/com/android/inputmethod/keyboard/MainKeyboardView.java b/java/src/com/android/inputmethod/keyboard/MainKeyboardView.java
index 00d4fa236f..64ccd20bcf 100644
--- a/java/src/com/android/inputmethod/keyboard/MainKeyboardView.java
+++ b/java/src/com/android/inputmethod/keyboard/MainKeyboardView.java
@@ -809,7 +809,7 @@ public final class MainKeyboardView extends KeyboardView implements DrawingProxy
         }
         super.onDrawKeyTopVisuals(key, canvas, paint, params);
         final int code = key.getCode();
-        if (code == Constants.CODE_SPACE) {
+        if (code == Constants.CODE_SPACE && key.isLongPressEnabled()) {
             // If input language are explicitly selected.
             if (mLanguageOnSpacebarFormatType != LanguageOnSpacebarUtils.FORMAT_TYPE_NONE) {
                 drawLanguageOnSpacebar(key, canvas, paint);
-- 
GitLab