From 8a660348a06311725feab4b5cfa99a7a55313189 Mon Sep 17 00:00:00 2001 From: Janne Koschinski <janne@kuschku.de> Date: Mon, 2 Apr 2018 17:36:45 +0200 Subject: [PATCH] Bugfixes and cleanup --- .../ui/chat/info/InfoPropertyAdapter.kt | 2 +- .../chat/messages/RipplePassthroughTextView.kt | 9 +++++++-- .../util/service/ServiceBoundActivity.kt | 5 ++++- .../quasseldroid/util/ui/SeekBarPreference.kt | 3 ++- app/src/main/res/layout/settings_item.xml | 2 +- .../libquassel/quassel/syncables/IrcChannel.kt | 14 ++++++++++++-- .../libquassel/quassel/syncables/IrcUser.kt | 18 ++++++++++++++---- .../libquassel/quassel/syncables/Network.kt | 17 +++++++++++++---- .../quasseldroid/viewmodel/data/BufferData.kt | 3 +-- 9 files changed, 55 insertions(+), 18 deletions(-) diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/info/InfoPropertyAdapter.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/info/InfoPropertyAdapter.kt index a7ffa4f1a..601e6cfe7 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/info/InfoPropertyAdapter.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/info/InfoPropertyAdapter.kt @@ -69,4 +69,4 @@ class InfoPropertyAdapter : iconFrame.visibleIf(item.icon != null) } } -} \ No newline at end of file +} diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/messages/RipplePassthroughTextView.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/messages/RipplePassthroughTextView.kt index ad20d238d..02ebfaae3 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/messages/RipplePassthroughTextView.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/messages/RipplePassthroughTextView.kt @@ -12,8 +12,13 @@ class RipplePassthroughTextView : TextView { constructor(context: Context?, attrs: AttributeSet?, defStyleAttr: Int) : super(context, attrs, defStyleAttr) - override fun onTouchEvent(event: MotionEvent?): Boolean { + // The goal is to provide all normal interaction to the parent view, unless a link is touched + // But additionally, we want to provide all normal textview interactions as well + override fun onTouchEvent(event: MotionEvent): Boolean { + val movementMethod = this.movementMethod + this.movementMethod = null super.onTouchEvent(event) + this.movementMethod = movementMethod return movementMethod?.onTouchEvent(this, text as? Spannable, event) == true } -} \ No newline at end of file +} diff --git a/app/src/main/java/de/kuschku/quasseldroid/util/service/ServiceBoundActivity.kt b/app/src/main/java/de/kuschku/quasseldroid/util/service/ServiceBoundActivity.kt index bccc403ae..a98089d88 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/util/service/ServiceBoundActivity.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/util/service/ServiceBoundActivity.kt @@ -19,7 +19,10 @@ import de.kuschku.libquassel.session.Backend import de.kuschku.libquassel.util.Optional import de.kuschku.quasseldroid.Keys import de.kuschku.quasseldroid.R -import de.kuschku.quasseldroid.settings.* +import de.kuschku.quasseldroid.settings.AppearanceSettings +import de.kuschku.quasseldroid.settings.AutoCompleteSettings +import de.kuschku.quasseldroid.settings.ConnectionSettings +import de.kuschku.quasseldroid.settings.Settings import de.kuschku.quasseldroid.ui.setup.accounts.selection.AccountSelectionActivity import de.kuschku.quasseldroid.util.helper.sharedPreferences import de.kuschku.quasseldroid.util.helper.updateRecentsHeaderIfExisting diff --git a/app/src/main/java/de/kuschku/quasseldroid/util/ui/SeekBarPreference.kt b/app/src/main/java/de/kuschku/quasseldroid/util/ui/SeekBarPreference.kt index d5635f39d..003cf1c4b 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/util/ui/SeekBarPreference.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/util/ui/SeekBarPreference.kt @@ -131,6 +131,7 @@ class SeekBarPreference : Preference, SeekBar.OnSeekBarChangeListener { override fun onStopTrackingTouch(seekBar: SeekBar) = notifyChanged() override fun onGetDefaultValue(ta: TypedArray, index: Int) = ta.getInt(index, DEFAULT_VALUE) + override fun onSetInitialValue(restoreValue: Boolean, defaultValue: Any?) { if (restoreValue) { currentValue = getPersistedInt(currentValue) @@ -165,4 +166,4 @@ class SeekBarPreference : Preference, SeekBar.OnSeekBarChangeListener { private const val NAMESPACE_ROBOBUNNY = "http://robobunny.com" private const val DEFAULT_VALUE = 50 } -} \ No newline at end of file +} diff --git a/app/src/main/res/layout/settings_item.xml b/app/src/main/res/layout/settings_item.xml index 8d3b0db1f..5b4f851ad 100644 --- a/app/src/main/res/layout/settings_item.xml +++ b/app/src/main/res/layout/settings_item.xml @@ -26,8 +26,8 @@ android:layout_height="wrap_content" android:ellipsize="marquee" android:singleLine="true" - android:textColor="?colorTextPrimary" android:textAppearance="?android:textAppearanceMedium" + android:textColor="?colorTextPrimary" android:textSize="16sp" tools:text="IRC Config" /> diff --git a/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/IrcChannel.kt b/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/IrcChannel.kt index d0ad84789..d9ac6984b 100644 --- a/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/IrcChannel.kt +++ b/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/IrcChannel.kt @@ -174,12 +174,22 @@ class IrcChannel( fun codecForEncoding() = _codecForEncoding fun codecForDecoding() = _codecForDecoding - fun setCodecForEncoding(codecName: String) = setCodecForEncoding(Charset.forName(codecName)) + fun setCodecForEncoding(codecName: String) { + val charset = Charset.availableCharsets()[codecName] + if (charset != null) { + setCodecForEncoding(charset) + } + } fun setCodecForEncoding(codec: Charset) { _codecForEncoding = codec } - fun setCodecForDecoding(codecName: String) = setCodecForDecoding(Charset.forName(codecName)) + fun setCodecForDecoding(codecName: String) { + val charset = Charset.availableCharsets()[codecName] + if (charset != null) { + setCodecForDecoding(charset) + } + } fun setCodecForDecoding(codec: Charset) { _codecForDecoding = codec } diff --git a/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/IrcUser.kt b/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/IrcUser.kt index ebda98119..9de86de95 100644 --- a/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/IrcUser.kt +++ b/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/IrcUser.kt @@ -11,7 +11,6 @@ import io.reactivex.Observable import io.reactivex.subjects.BehaviorSubject import org.threeten.bp.Instant import java.nio.charset.Charset - class IrcUser( hostmask: String, network: Network, @@ -96,12 +95,22 @@ class IrcUser( fun channels() = _channels.map(IrcChannel::name) fun codecForEncoding() = _codecForEncoding fun codecForDecoding() = _codecForDecoding - fun setCodecForEncoding(codecName: String) = setCodecForEncoding(Charset.forName(codecName)) + fun setCodecForEncoding(codecName: String) { + val charset = Charset.availableCharsets()[codecName] + if (charset != null) { + setCodecForEncoding(charset) + } + } fun setCodecForEncoding(codec: Charset) { _codecForEncoding = codec } - fun setCodecForDecoding(codecName: String) = setCodecForDecoding(Charset.forName(codecName)) + fun setCodecForDecoding(codecName: String) { + val charset = Charset.availableCharsets()[codecName] + if (charset != null) { + setCodecForDecoding(charset) + } + } fun setCodecForDecoding(codec: Charset) { _codecForDecoding = codec } @@ -374,4 +383,5 @@ class IrcUser( companion object { val NULL = IrcUser("", Network.NULL, SignalProxy.NULL) } -} \ No newline at end of file +} + diff --git a/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/Network.kt b/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/Network.kt index adbf785f6..b51e0e863 100644 --- a/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/Network.kt +++ b/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/Network.kt @@ -625,15 +625,24 @@ class Network constructor( } fun setCodecForDecoding(codecName: String) { - setCodecForDecoding(Charset.forName(codecName)) + val charset = Charset.availableCharsets()[codecName] + if (charset != null) { + setCodecForDecoding(charset) + } } fun setCodecForEncoding(codecName: String) { - setCodecForDecoding(Charset.forName(codecName)) + val charset = Charset.availableCharsets()[codecName] + if (charset != null) { + setCodecForEncoding(charset) + } } fun setCodecForServer(codecName: String) { - setCodecForDecoding(Charset.forName(codecName)) + val charset = Charset.availableCharsets()[codecName] + if (charset != null) { + setCodecForServer(charset) + } } override fun addSupport(param: String, value: String?) { @@ -1045,4 +1054,4 @@ class Network constructor( companion object { val NULL = Network(-1, SignalProxy.NULL) } -} \ No newline at end of file +} diff --git a/viewmodel/src/main/java/de/kuschku/quasseldroid/viewmodel/data/BufferData.kt b/viewmodel/src/main/java/de/kuschku/quasseldroid/viewmodel/data/BufferData.kt index d088b89fd..2a946f9fc 100644 --- a/viewmodel/src/main/java/de/kuschku/quasseldroid/viewmodel/data/BufferData.kt +++ b/viewmodel/src/main/java/de/kuschku/quasseldroid/viewmodel/data/BufferData.kt @@ -2,10 +2,9 @@ package de.kuschku.quasseldroid.viewmodel.data import de.kuschku.libquassel.quassel.BufferInfo import de.kuschku.libquassel.quassel.syncables.Network -import de.kuschku.libquassel.quassel.syncables.interfaces.INetwork data class BufferData( val info: BufferInfo? = null, val network: Network? = null, val description: String? = null -) \ No newline at end of file +) -- GitLab