From 3c20bb8e0fcd490b05d012645d5f1bf85d16c8b4 Mon Sep 17 00:00:00 2001
From: Janne Koschinski <janne@kuschku.de>
Date: Fri, 30 Mar 2018 15:05:29 +0200
Subject: [PATCH] Improve color selection dialog

---
 .../java/de/kuschku/quasseldroid/ui/chat/input/Editor.kt    | 6 +++++-
 .../de/kuschku/quasseldroid/util/ui/ColorChooserDialog.java | 2 ++
 2 files changed, 7 insertions(+), 1 deletion(-)

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 0c4beb466..9c7fa8b34 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
@@ -289,7 +289,7 @@ class Editor(
   private fun showColorChooser(
     activity: FragmentActivity, @StringRes title: Int, @ColorInt preselect: Int, f: (Int?) -> Unit
   ) {
-    var selectedColor: Int? = null
+    var selectedColor: Int? = preselect
     ColorChooserDialog.Builder(chatline.context, title)
       .customColors(intArrayOf(
         formatHandler.mircColors[0],
@@ -318,6 +318,10 @@ class Editor(
       .dynamicButtonColor(false)
       .allowUserColorInputAlpha(false)
       .callback(object : ColorChooserDialog.ColorCallback {
+        override fun onColorReset(dialog: ColorChooserDialog) {
+          selectedColor = null
+        }
+
         override fun onColorSelection(dialog: ColorChooserDialog, color: Int) {
           selectedColor = color
         }
diff --git a/app/src/main/java/de/kuschku/quasseldroid/util/ui/ColorChooserDialog.java b/app/src/main/java/de/kuschku/quasseldroid/util/ui/ColorChooserDialog.java
index 811ff4d82..ffe1a7f3e 100644
--- a/app/src/main/java/de/kuschku/quasseldroid/util/ui/ColorChooserDialog.java
+++ b/app/src/main/java/de/kuschku/quasseldroid/util/ui/ColorChooserDialog.java
@@ -341,6 +341,7 @@ public class ColorChooserDialog extends DialogFragment
                 subIndex(-1); // Do this to avoid ArrayIndexOutOfBoundsException
                 invalidate();
               } else {
+                builder.callback.onColorReset(ColorChooserDialog.this);
                 dialog.cancel();
               }
             }
@@ -574,6 +575,7 @@ public class ColorChooserDialog extends DialogFragment
   }
 
   public interface ColorCallback {
+    void onColorReset(@NonNull ColorChooserDialog dialog);
 
     void onColorSelection(@NonNull ColorChooserDialog dialog, @ColorInt int selectedColor);
 
-- 
GitLab