From 23fae02c6be7e614dfc9cd7bfb6c6d7af0664e8f Mon Sep 17 00:00:00 2001 From: Janne Koschinski <janne@kuschku.de> Date: Fri, 30 Mar 2018 02:12:24 +0200 Subject: [PATCH] Improve rendering of formatting buttons --- .../quasseldroid/ui/chat/input/Editor.kt | 21 ++++++++++++ .../drawable-v21/bg_menuitem_rounded_dark.xml | 19 +++++++++++ .../bg_menuitem_rounded_light.xml | 19 +++++++++++ .../res/drawable/bg_menuitem_rounded_dark.xml | 15 +++++++++ .../drawable/bg_menuitem_rounded_light.xml | 15 +++++++++ app/src/main/res/layout/layout_editor.xml | 1 - app/src/main/res/layout/widget_formatting.xml | 32 ++++++++++++------- app/src/main/res/values/attrs.xml | 1 + app/src/main/res/values/dimens.xml | 2 ++ app/src/main/res/values/styles_widgets.xml | 2 +- app/src/main/res/values/themes_base.xml | 6 ++++ 11 files changed, 119 insertions(+), 14 deletions(-) create mode 100644 app/src/main/res/drawable-v21/bg_menuitem_rounded_dark.xml create mode 100644 app/src/main/res/drawable-v21/bg_menuitem_rounded_light.xml create mode 100644 app/src/main/res/drawable/bg_menuitem_rounded_dark.xml create mode 100644 app/src/main/res/drawable/bg_menuitem_rounded_light.xml diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/input/Editor.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/input/Editor.kt index b02c6fb18..4ecee7ba8 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/input/Editor.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/input/Editor.kt @@ -198,26 +198,47 @@ class Editor( formatHandler.toggleBold(chatline.selection) updateButtons(chatline.selection) } + TooltipCompat.setTooltipText(boldButton, boldButton.contentDescription) + italicButton.setOnClickListener { formatHandler.toggleItalic(chatline.selection) updateButtons(chatline.selection) } + TooltipCompat.setTooltipText(italicButton, italicButton.contentDescription) + underlineButton.setOnClickListener { formatHandler.toggleUnderline(chatline.selection) updateButtons(chatline.selection) } + TooltipCompat.setTooltipText(underlineButton, underlineButton.contentDescription) + strikethroughButton.setOnClickListener { formatHandler.toggleStrikethrough(chatline.selection) updateButtons(chatline.selection) } + TooltipCompat.setTooltipText(strikethroughButton, strikethroughButton.contentDescription) + monospaceButton.setOnClickListener { formatHandler.toggleMonospace(chatline.selection) updateButtons(chatline.selection) } + TooltipCompat.setTooltipText(monospaceButton, monospaceButton.contentDescription) + + foregroundButton.setOnClickListener { + + } + TooltipCompat.setTooltipText(foregroundButton, foregroundButton.contentDescription) + + backgroundButton.setOnClickListener { + + } + TooltipCompat.setTooltipText(backgroundButton, backgroundButton.contentDescription) + clearButton.setOnClickListener { formatHandler.clearFormatting(chatline.selection) updateButtons(chatline.selection) } + TooltipCompat.setTooltipText(clearButton, clearButton.contentDescription) chatline.setOnKeyListener { _, keyCode, event -> if (event.isCtrlPressed && !event.isAltPressed) when (keyCode) { diff --git a/app/src/main/res/drawable-v21/bg_menuitem_rounded_dark.xml b/app/src/main/res/drawable-v21/bg_menuitem_rounded_dark.xml new file mode 100644 index 000000000..64a9f0c01 --- /dev/null +++ b/app/src/main/res/drawable-v21/bg_menuitem_rounded_dark.xml @@ -0,0 +1,19 @@ +<?xml version="1.0" encoding="utf-8"?> +<selector xmlns:android="http://schemas.android.com/apk/res/android"> + <item android:state_selected="true"> + <shape android:shape="rectangle"> + <solid android:color="@color/ripple_dark" /> + <corners android:radius="@dimen/button_corner_radius" /> + </shape> + </item> + <item> + <ripple android:color="@color/ripple_dark"> + <item android:id="@android:id/mask"> + <shape> + <solid android:color="#fff" /> + <corners android:radius="@dimen/button_corner_radius" /> + </shape> + </item> + </ripple> + </item> +</selector> \ No newline at end of file diff --git a/app/src/main/res/drawable-v21/bg_menuitem_rounded_light.xml b/app/src/main/res/drawable-v21/bg_menuitem_rounded_light.xml new file mode 100644 index 000000000..2eb9a90e5 --- /dev/null +++ b/app/src/main/res/drawable-v21/bg_menuitem_rounded_light.xml @@ -0,0 +1,19 @@ +<?xml version="1.0" encoding="utf-8"?> +<selector xmlns:android="http://schemas.android.com/apk/res/android"> + <item android:state_selected="true"> + <shape> + <solid android:color="@color/ripple_light" /> + <corners android:radius="@dimen/button_corner_radius" /> + </shape> + </item> + <item> + <ripple android:color="@color/ripple_light"> + <item android:id="@android:id/mask"> + <shape> + <solid android:color="#fff" /> + <corners android:radius="@dimen/button_corner_radius" /> + </shape> + </item> + </ripple> + </item> +</selector> \ No newline at end of file diff --git a/app/src/main/res/drawable/bg_menuitem_rounded_dark.xml b/app/src/main/res/drawable/bg_menuitem_rounded_dark.xml new file mode 100644 index 000000000..fade83ea8 --- /dev/null +++ b/app/src/main/res/drawable/bg_menuitem_rounded_dark.xml @@ -0,0 +1,15 @@ +<?xml version="1.0" encoding="utf-8"?> +<selector xmlns:android="http://schemas.android.com/apk/res/android"> + <item android:state_selected="true"> + <shape android:shape="rectangle"> + <solid android:color="@color/ripple_dark" /> + <corners android:radius="@dimen/button_corner_radius" /> + </shape> + </item> + <item android:state_pressed="true"> + <shape android:shape="rectangle"> + <solid android:color="@color/ripple_dark" /> + <corners android:radius="@dimen/button_corner_radius" /> + </shape> + </item> +</selector> \ No newline at end of file diff --git a/app/src/main/res/drawable/bg_menuitem_rounded_light.xml b/app/src/main/res/drawable/bg_menuitem_rounded_light.xml new file mode 100644 index 000000000..19c7b13a9 --- /dev/null +++ b/app/src/main/res/drawable/bg_menuitem_rounded_light.xml @@ -0,0 +1,15 @@ +<?xml version="1.0" encoding="utf-8"?> +<selector xmlns:android="http://schemas.android.com/apk/res/android"> + <item android:state_selected="true"> + <shape android:shape="rectangle"> + <solid android:color="@color/ripple_light" /> + <corners android:radius="@dimen/button_corner_radius" /> + </shape> + </item> + <item android:state_pressed="true"> + <shape android:shape="rectangle"> + <solid android:color="@color/ripple_light" /> + <corners android:radius="@dimen/button_corner_radius" /> + </shape> + </item> +</selector> \ No newline at end of file diff --git a/app/src/main/res/layout/layout_editor.xml b/app/src/main/res/layout/layout_editor.xml index b74c91337..87b97cf1f 100644 --- a/app/src/main/res/layout/layout_editor.xml +++ b/app/src/main/res/layout/layout_editor.xml @@ -69,7 +69,6 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:background="?attr/colorBackgroundCard" - android:theme="?attr/formatBarTheme" app:layout_constraintBottom_toBottomOf="parent"> <android.support.v7.widget.Toolbar diff --git a/app/src/main/res/layout/widget_formatting.xml b/app/src/main/res/layout/widget_formatting.xml index 00c1af122..e619482d9 100644 --- a/app/src/main/res/layout/widget_formatting.xml +++ b/app/src/main/res/layout/widget_formatting.xml @@ -8,8 +8,9 @@ <android.support.v7.widget.AppCompatImageButton android:id="@+id/action_format_bold" style="@style/Widget.Button.Format" + android:contentDescription="@string/label_bold" app:srcCompat="@drawable/ic_format_bold" - app:tint="?colorTextPrimary" /> + app:tint="?colorControlNormal" /> <Space android:layout_width="2dp" @@ -18,8 +19,9 @@ <android.support.v7.widget.AppCompatImageButton android:id="@+id/action_format_italic" style="@style/Widget.Button.Format" + android:contentDescription="@string/label_italic" app:srcCompat="@drawable/ic_format_italic" - app:tint="?colorTextPrimary" /> + app:tint="?colorControlNormal" /> <Space android:layout_width="2dp" @@ -28,8 +30,9 @@ <android.support.v7.widget.AppCompatImageButton android:id="@+id/action_format_underline" style="@style/Widget.Button.Format" + android:contentDescription="@string/label_underline" app:srcCompat="@drawable/ic_format_underline" - app:tint="?colorTextPrimary" /> + app:tint="?colorControlNormal" /> <Space android:layout_width="2dp" @@ -38,8 +41,9 @@ <android.support.v7.widget.AppCompatImageButton android:id="@+id/action_format_strikethrough" style="@style/Widget.Button.Format" + android:contentDescription="@string/label_strikethrough" app:srcCompat="@drawable/ic_format_strikethrough" - app:tint="?colorTextPrimary" /> + app:tint="?colorControlNormal" /> <Space android:layout_width="2dp" @@ -48,8 +52,9 @@ <android.support.v7.widget.AppCompatImageButton android:id="@+id/action_format_monospace" style="@style/Widget.Button.Format" + android:contentDescription="@string/label_bold" app:srcCompat="@drawable/ic_format_monospace" - app:tint="?colorTextPrimary" /> + app:tint="?colorControlNormal" /> <Space android:layout_width="2dp" @@ -62,12 +67,13 @@ <android.support.v7.widget.AppCompatImageButton android:id="@+id/action_format_foreground" + style="@style/Widget.Button.Format" + android:contentDescription="@string/label_foreground" android:layout_width="match_parent" android:layout_height="match_parent" - android:background="?backgroundMenuItem" android:paddingBottom="4dp" app:srcCompat="@drawable/ic_format_foreground" - app:tint="?colorTextPrimary" /> + app:tint="?colorControlNormal" /> <View android:id="@+id/ic_format_foreground_preview" @@ -75,7 +81,7 @@ android:layout_height="4dp" android:layout_gravity="center_horizontal|bottom" android:layout_margin="8dp" - android:background="?colorTextPrimary" /> + android:background="?colorForeground" /> </FrameLayout> @@ -90,12 +96,13 @@ <android.support.v7.widget.AppCompatImageButton android:id="@+id/action_format_background" + style="@style/Widget.Button.Format" + android:contentDescription="@string/label_background" android:layout_width="match_parent" android:layout_height="match_parent" - android:background="?backgroundMenuItem" android:paddingBottom="4dp" app:srcCompat="@drawable/ic_format_background" - app:tint="?colorTextPrimary" /> + app:tint="?colorControlNormal" /> <View android:id="@+id/ic_format_background_preview" @@ -103,7 +110,7 @@ android:layout_height="4dp" android:layout_gravity="center_horizontal|bottom" android:layout_margin="8dp" - android:background="?colorTextPrimary" /> + android:background="?colorBackground" /> </FrameLayout> @@ -114,6 +121,7 @@ <android.support.v7.widget.AppCompatImageButton android:id="@+id/action_format_clear" style="@style/Widget.Button.Format" + android:contentDescription="@string/label_clear_formatting" app:srcCompat="@drawable/ic_format_clear" - app:tint="?colorTextPrimary" /> + app:tint="?colorControlNormal" /> </LinearLayout> \ No newline at end of file diff --git a/app/src/main/res/values/attrs.xml b/app/src/main/res/values/attrs.xml index 123ee8f5d..b178dcda0 100644 --- a/app/src/main/res/values/attrs.xml +++ b/app/src/main/res/values/attrs.xml @@ -158,6 +158,7 @@ <!-- Menu Items --> <attr name="backgroundMenuItem" format="reference" /> + <attr name="backgroundMenuItemRounded" format="reference" /> <!-- InsetLayouts --> <attr name="insetBackground" format="color|reference" /> diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml index 0f762c4fb..685b30aea 100644 --- a/app/src/main/res/values/dimens.xml +++ b/app/src/main/res/values/dimens.xml @@ -7,4 +7,6 @@ <dimen name="autocomplete_max_height">96dp</dimen> <dimen name="max_content_width">480dp</dimen> + + <dimen name="button_corner_radius">2dp</dimen> </resources> diff --git a/app/src/main/res/values/styles_widgets.xml b/app/src/main/res/values/styles_widgets.xml index 3d7def74e..ab9c1fb30 100644 --- a/app/src/main/res/values/styles_widgets.xml +++ b/app/src/main/res/values/styles_widgets.xml @@ -67,7 +67,7 @@ <item name="android:layout_width">48dp</item> <item name="android:layout_height">48dp</item> <item name="android:layout_gravity">center</item> - <item name="android:background">?backgroundMenuItem</item> + <item name="android:background">?backgroundMenuItemRounded</item> </style> <!-- NavigationDrawerLayout --> diff --git a/app/src/main/res/values/themes_base.xml b/app/src/main/res/values/themes_base.xml index a05ed7a54..8d37a28cd 100644 --- a/app/src/main/res/values/themes_base.xml +++ b/app/src/main/res/values/themes_base.xml @@ -6,6 +6,7 @@ <item name="colorAccent">@color/colorAccent</item> <item name="backgroundMenuItem">@drawable/bg_menuitem_dark</item> + <item name="backgroundMenuItemRounded">@drawable/bg_menuitem_rounded_dark</item> </style> <style name="Theme.AppTheme.Light" parent="Theme.AppCompat.Light.DarkActionBar"> @@ -14,6 +15,7 @@ <item name="colorAccent">@color/colorAccent</item> <item name="backgroundMenuItem">@drawable/bg_menuitem_light</item> + <item name="backgroundMenuItemRounded">@drawable/bg_menuitem_rounded_light</item> </style> <style name="Theme.AppTheme.NoActionBar" parent="Theme.AppTheme"> @@ -21,6 +23,7 @@ <item name="windowNoTitle">true</item> <item name="backgroundMenuItem">@drawable/bg_menuitem_dark</item> + <item name="backgroundMenuItemRounded">@drawable/bg_menuitem_rounded_dark</item> </style> <style name="Theme.AppTheme.Light.NoActionBar" parent="Theme.AppTheme.Light"> @@ -28,6 +31,7 @@ <item name="windowNoTitle">true</item> <item name="backgroundMenuItem">@drawable/bg_menuitem_light</item> + <item name="backgroundMenuItemRounded">@drawable/bg_menuitem_rounded_light</item> </style> <style name="Theme.Base.ChatTheme" parent="Theme.AppTheme.NoActionBar" /> @@ -47,6 +51,7 @@ <item name="actionBarPopupTheme">@style/Widget.PopupOverlay</item> <item name="backgroundMenuItem">@drawable/bg_menuitem_dark</item> + <item name="backgroundMenuItemRounded">@drawable/bg_menuitem_rounded_dark</item> <item name="windowActionModeOverlay">true</item> @@ -180,6 +185,7 @@ <item name="actionBarPopupTheme">@style/Widget.PopupOverlay.Light</item> <item name="backgroundMenuItem">@drawable/bg_menuitem_light</item> + <item name="backgroundMenuItemRounded">@drawable/bg_menuitem_rounded_light</item> <item name="windowActionModeOverlay">true</item> -- GitLab