From d46ab2f54944bc7f0178b3601bf646af474232af Mon Sep 17 00:00:00 2001
From: Janne Koschinski <janne@kuschku.de>
Date: Mon, 4 Feb 2019 14:41:23 +0100
Subject: [PATCH] Fixed link coloring

---
 .../quasseldroid/util/irc/format/ContentFormatter.kt |  1 -
 .../quasseldroid/util/irc/format/model/IrcFormat.kt  |  2 --
 .../util/irc/format/{ => spans}/ChannelLinkSpan.kt   |  2 +-
 .../util/irc/format/spans/IrcForegroundColorSpan.kt  | 12 ++++++++++--
 .../util/irc/format/{ => spans}/QuasselURLSpan.kt    |  2 +-
 5 files changed, 12 insertions(+), 7 deletions(-)
 rename app/src/main/java/de/kuschku/quasseldroid/util/irc/format/{ => spans}/ChannelLinkSpan.kt (96%)
 rename app/src/main/java/de/kuschku/quasseldroid/util/irc/format/{ => spans}/QuasselURLSpan.kt (95%)

diff --git a/app/src/main/java/de/kuschku/quasseldroid/util/irc/format/ContentFormatter.kt b/app/src/main/java/de/kuschku/quasseldroid/util/irc/format/ContentFormatter.kt
index 7c0ae3c14..2ba3631dc 100644
--- a/app/src/main/java/de/kuschku/quasseldroid/util/irc/format/ContentFormatter.kt
+++ b/app/src/main/java/de/kuschku/quasseldroid/util/irc/format/ContentFormatter.kt
@@ -127,7 +127,6 @@ class ContentFormatter @Inject constructor(
       }
     }
 
-    spans.reverse()
     for (span in spans) {
       span.apply(formattedText)
     }
diff --git a/app/src/main/java/de/kuschku/quasseldroid/util/irc/format/model/IrcFormat.kt b/app/src/main/java/de/kuschku/quasseldroid/util/irc/format/model/IrcFormat.kt
index 9a5c5e35a..9ec3c428d 100644
--- a/app/src/main/java/de/kuschku/quasseldroid/util/irc/format/model/IrcFormat.kt
+++ b/app/src/main/java/de/kuschku/quasseldroid/util/irc/format/model/IrcFormat.kt
@@ -22,8 +22,6 @@ package de.kuschku.quasseldroid.util.irc.format.model
 import android.text.Spannable
 import android.text.Spanned
 import de.kuschku.libquassel.protocol.NetworkId
-import de.kuschku.quasseldroid.util.irc.format.ChannelLinkSpan
-import de.kuschku.quasseldroid.util.irc.format.QuasselURLSpan
 import de.kuschku.quasseldroid.util.irc.format.spans.*
 
 sealed class IrcFormat {
diff --git a/app/src/main/java/de/kuschku/quasseldroid/util/irc/format/ChannelLinkSpan.kt b/app/src/main/java/de/kuschku/quasseldroid/util/irc/format/spans/ChannelLinkSpan.kt
similarity index 96%
rename from app/src/main/java/de/kuschku/quasseldroid/util/irc/format/ChannelLinkSpan.kt
rename to app/src/main/java/de/kuschku/quasseldroid/util/irc/format/spans/ChannelLinkSpan.kt
index 7e9be6eb1..1f0744a41 100644
--- a/app/src/main/java/de/kuschku/quasseldroid/util/irc/format/ChannelLinkSpan.kt
+++ b/app/src/main/java/de/kuschku/quasseldroid/util/irc/format/spans/ChannelLinkSpan.kt
@@ -17,7 +17,7 @@
  * with this program. If not, see <http://www.gnu.org/licenses/>.
  */
 
-package de.kuschku.quasseldroid.util.irc.format
+package de.kuschku.quasseldroid.util.irc.format.spans
 
 import android.text.TextPaint
 import android.text.style.ClickableSpan
diff --git a/app/src/main/java/de/kuschku/quasseldroid/util/irc/format/spans/IrcForegroundColorSpan.kt b/app/src/main/java/de/kuschku/quasseldroid/util/irc/format/spans/IrcForegroundColorSpan.kt
index c5d440802..daa3f0779 100644
--- a/app/src/main/java/de/kuschku/quasseldroid/util/irc/format/spans/IrcForegroundColorSpan.kt
+++ b/app/src/main/java/de/kuschku/quasseldroid/util/irc/format/spans/IrcForegroundColorSpan.kt
@@ -19,18 +19,26 @@
 
 package de.kuschku.quasseldroid.util.irc.format.spans
 
+import android.text.TextPaint
 import android.text.style.ForegroundColorSpan
 import androidx.annotation.ColorInt
 
 sealed class IrcForegroundColorSpan<T : IrcForegroundColorSpan<T>>(@ColorInt color: Int) :
   ForegroundColorSpan(color), Copyable<T> {
 
+  override fun updateDrawState(ds: TextPaint?) {
+    if (ds != null) {
+      ds.color = foregroundColor
+      ds.linkColor = foregroundColor
+    }
+  }
 
   class MIRC(private val mircColor: Int, @ColorInt color: Int) :
     IrcForegroundColorSpan<MIRC>(color), Copyable<MIRC> {
     override fun copy() = MIRC(mircColor, foregroundColor)
     override fun toString(): String {
-      return "IrcForegroundColorSpan.MIRC(mircColor=$mircColor, color=${foregroundColor.toString(16)})"
+      return "IrcForegroundColorSpan.MIRC(mircColor=$mircColor, color=${foregroundColor.toUInt().toString(
+        16)})"
     }
 
     override fun equals(other: Any?) = when (other) {
@@ -43,7 +51,7 @@ sealed class IrcForegroundColorSpan<T : IrcForegroundColorSpan<T>>(@ColorInt col
     IrcForegroundColorSpan<HEX>(color), Copyable<HEX> {
     override fun copy() = HEX(foregroundColor)
     override fun toString(): String {
-      return "IrcBackgroundColorSpan.HEX(color=${foregroundColor.toString(16)})"
+      return "IrcBackgroundColorSpan.HEX(color=${foregroundColor.toUInt().toString(16)})"
     }
 
     override fun equals(other: Any?) = when (other) {
diff --git a/app/src/main/java/de/kuschku/quasseldroid/util/irc/format/QuasselURLSpan.kt b/app/src/main/java/de/kuschku/quasseldroid/util/irc/format/spans/QuasselURLSpan.kt
similarity index 95%
rename from app/src/main/java/de/kuschku/quasseldroid/util/irc/format/QuasselURLSpan.kt
rename to app/src/main/java/de/kuschku/quasseldroid/util/irc/format/spans/QuasselURLSpan.kt
index 14921b3c7..ce670ced4 100644
--- a/app/src/main/java/de/kuschku/quasseldroid/util/irc/format/QuasselURLSpan.kt
+++ b/app/src/main/java/de/kuschku/quasseldroid/util/irc/format/spans/QuasselURLSpan.kt
@@ -17,7 +17,7 @@
  * with this program. If not, see <http://www.gnu.org/licenses/>.
  */
 
-package de.kuschku.quasseldroid.util.irc.format
+package de.kuschku.quasseldroid.util.irc.format.spans
 
 import android.text.TextPaint
 import android.text.style.URLSpan
-- 
GitLab