From f246f790501cacd66b88b563151bfaa27b12f3ef Mon Sep 17 00:00:00 2001 From: Compot Developer Date: Tue, 13 Oct 2026 15:34:54 +0000 Subject: [PATCH] =?UTF-8?q?fix:=20menu=20=E2=80=94=20on=20is=20an=20orange?= =?UTF-8?q?=20fill,=20focus=20a=20thick=20light=20blue=20frame,=20no=20col?= =?UTF-8?q?oured=20border=20for=20on=20(#143)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude --- .../java/com/openipc/decoder/MenuManager.java | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/android/app/src/main/java/com/openipc/decoder/MenuManager.java b/android/app/src/main/java/com/openipc/decoder/MenuManager.java index 167cde67..44f27426 100644 --- a/android/app/src/main/java/com/openipc/decoder/MenuManager.java +++ b/android/app/src/main/java/com/openipc/decoder/MenuManager.java @@ -403,10 +403,13 @@ private TextView createItem(String title) { return text; } - /** On / active (D on, Q, U, the active slot): orange, unlike the blue focus (#114). */ - private static final int ACTIVE_BORDER = 0xFFFF9800; - private static final int ACTIVE_FILL = 0xFF4A2C00; - private static final int FOCUS_BORDER = Color.BLUE; + /** + * One cue per state (#143): on / active (D on, Q, S, U, the active slot) is the fill, an + * orange button like a pressed key; the focus is the frame only, thick and light blue. A + * coloured border for both read as the same selector on a phone (#114). + */ + private static final int ACTIVE_FILL = 0xFFB85C00; + private static final int FOCUS_BORDER = 0xFF40C4FF; private final Set activeItems = new HashSet<>(); private void highlightItem(TextView item) { @@ -421,15 +424,14 @@ private void resetItem(TextView item) { } /** - * Active items have an orange fill and border, the focused item a thick blue border; an - * item that is both keeps the orange fill under the blue border, so neither state hides. + * Active items are filled orange, the focused item has a thick light blue frame; an item + * that is both keeps the orange fill inside the blue frame, so neither state hides. */ private void paintItem(View item, boolean focused) { boolean active = activeItems.contains(item); GradientDrawable bg = new GradientDrawable(); bg.setColor(active ? ACTIVE_FILL : Color.BLACK); - if (focused) bg.setStroke(dp(2), FOCUS_BORDER); - else if (active) bg.setStroke(dp(2), ACTIVE_BORDER); + if (focused) bg.setStroke(dp(3), FOCUS_BORDER); else bg.setStroke(1, Color.GRAY); item.setBackground(bg); }