From ad29ed1633d5a225d44b33e886f7767d1af39b1a Mon Sep 17 00:00:00 2001 From: Janne Koschinski <janne@kuschku.de> Date: Thu, 22 Feb 2018 16:07:10 +0100 Subject: [PATCH] Implement monospace settings, fix tablet UI --- .../quasseldroid_ng/ui/chat/ChatActivity.kt | 4 +++- .../quasseldroid_ng/ui/chat/EditorFragment.kt | 2 +- .../ui/chat/NickListFragment.kt | 2 +- .../ui/chat/ToolbarFragment.kt | 2 +- .../chat/buffers/BufferViewConfigFragment.kt | 2 +- .../ui/chat/messages/MessageListFragment.kt | 5 +++-- .../chat/messages/QuasselMessageRenderer.kt | 3 +++ .../ui/settings/SettingsFragment.kt | 1 + .../ui/settings/data/AppearanceSettings.kt | 1 + .../ui/settings/{ => data}/Settings.kt | 21 +++++++++++++------ .../util/service/ServiceBoundActivity.kt | 2 +- .../res/layout-sw720dp-land/activity_main.xml | 5 +++++ .../main/res/values/strings_preferences.xml | 3 +++ app/src/main/res/xml/preferences.xml | 5 +++++ 14 files changed, 44 insertions(+), 14 deletions(-) rename app/src/main/java/de/kuschku/quasseldroid_ng/ui/settings/{ => data}/Settings.kt (75%) diff --git a/app/src/main/java/de/kuschku/quasseldroid_ng/ui/chat/ChatActivity.kt b/app/src/main/java/de/kuschku/quasseldroid_ng/ui/chat/ChatActivity.kt index e23a561d1..476a772b9 100644 --- a/app/src/main/java/de/kuschku/quasseldroid_ng/ui/chat/ChatActivity.kt +++ b/app/src/main/java/de/kuschku/quasseldroid_ng/ui/chat/ChatActivity.kt @@ -28,6 +28,7 @@ import de.kuschku.quasseldroid_ng.persistence.AccountDatabase import de.kuschku.quasseldroid_ng.persistence.QuasselDatabase import de.kuschku.quasseldroid_ng.ui.settings.SettingsActivity import de.kuschku.quasseldroid_ng.ui.settings.data.BacklogSettings +import de.kuschku.quasseldroid_ng.ui.settings.data.Settings import de.kuschku.quasseldroid_ng.ui.viewmodel.QuasselViewModel import de.kuschku.quasseldroid_ng.util.AndroidHandlerThread import de.kuschku.quasseldroid_ng.util.helper.* @@ -54,7 +55,7 @@ class ChatActivity : ServiceBoundActivity() { private lateinit var database: QuasselDatabase - private var backlogSettings = BacklogSettings() + private lateinit var backlogSettings: BacklogSettings override fun onCreate(savedInstanceState: Bundle?) { handler.onCreate() @@ -64,6 +65,7 @@ class ChatActivity : ServiceBoundActivity() { viewModel = ViewModelProviders.of(this)[QuasselViewModel::class.java] viewModel.setBackend(this.backend) + backlogSettings = Settings.backlog(this) database = QuasselDatabase.Creator.init(application) diff --git a/app/src/main/java/de/kuschku/quasseldroid_ng/ui/chat/EditorFragment.kt b/app/src/main/java/de/kuschku/quasseldroid_ng/ui/chat/EditorFragment.kt index 75cade9ac..bbabc6a96 100644 --- a/app/src/main/java/de/kuschku/quasseldroid_ng/ui/chat/EditorFragment.kt +++ b/app/src/main/java/de/kuschku/quasseldroid_ng/ui/chat/EditorFragment.kt @@ -11,8 +11,8 @@ import android.widget.ImageButton import butterknife.BindView import butterknife.ButterKnife import de.kuschku.quasseldroid_ng.R -import de.kuschku.quasseldroid_ng.ui.settings.Settings import de.kuschku.quasseldroid_ng.ui.settings.data.AppearanceSettings +import de.kuschku.quasseldroid_ng.ui.settings.data.Settings import de.kuschku.quasseldroid_ng.ui.viewmodel.QuasselViewModel import de.kuschku.quasseldroid_ng.util.helper.invoke import de.kuschku.quasseldroid_ng.util.helper.let diff --git a/app/src/main/java/de/kuschku/quasseldroid_ng/ui/chat/NickListFragment.kt b/app/src/main/java/de/kuschku/quasseldroid_ng/ui/chat/NickListFragment.kt index 9f1691318..0d1c34236 100644 --- a/app/src/main/java/de/kuschku/quasseldroid_ng/ui/chat/NickListFragment.kt +++ b/app/src/main/java/de/kuschku/quasseldroid_ng/ui/chat/NickListFragment.kt @@ -11,8 +11,8 @@ import android.view.ViewGroup import butterknife.BindView import butterknife.ButterKnife import de.kuschku.quasseldroid_ng.R -import de.kuschku.quasseldroid_ng.ui.settings.Settings import de.kuschku.quasseldroid_ng.ui.settings.data.AppearanceSettings +import de.kuschku.quasseldroid_ng.ui.settings.data.Settings import de.kuschku.quasseldroid_ng.ui.viewmodel.QuasselViewModel import de.kuschku.quasseldroid_ng.util.AndroidHandlerThread import de.kuschku.quasseldroid_ng.util.helper.map diff --git a/app/src/main/java/de/kuschku/quasseldroid_ng/ui/chat/ToolbarFragment.kt b/app/src/main/java/de/kuschku/quasseldroid_ng/ui/chat/ToolbarFragment.kt index 28725d2a3..57d9802b2 100644 --- a/app/src/main/java/de/kuschku/quasseldroid_ng/ui/chat/ToolbarFragment.kt +++ b/app/src/main/java/de/kuschku/quasseldroid_ng/ui/chat/ToolbarFragment.kt @@ -14,8 +14,8 @@ import de.kuschku.libquassel.quassel.BufferInfo import de.kuschku.libquassel.quassel.syncables.interfaces.INetwork import de.kuschku.libquassel.util.hasFlag import de.kuschku.quasseldroid_ng.R -import de.kuschku.quasseldroid_ng.ui.settings.Settings import de.kuschku.quasseldroid_ng.ui.settings.data.AppearanceSettings +import de.kuschku.quasseldroid_ng.ui.settings.data.Settings import de.kuschku.quasseldroid_ng.ui.viewmodel.QuasselViewModel import de.kuschku.quasseldroid_ng.util.helper.visibleIf import de.kuschku.quasseldroid_ng.util.helper.zip diff --git a/app/src/main/java/de/kuschku/quasseldroid_ng/ui/chat/buffers/BufferViewConfigFragment.kt b/app/src/main/java/de/kuschku/quasseldroid_ng/ui/chat/buffers/BufferViewConfigFragment.kt index 1c60b03d9..a1f722520 100644 --- a/app/src/main/java/de/kuschku/quasseldroid_ng/ui/chat/buffers/BufferViewConfigFragment.kt +++ b/app/src/main/java/de/kuschku/quasseldroid_ng/ui/chat/buffers/BufferViewConfigFragment.kt @@ -17,8 +17,8 @@ import de.kuschku.libquassel.util.hasFlag import de.kuschku.libquassel.util.minus import de.kuschku.quasseldroid_ng.R import de.kuschku.quasseldroid_ng.persistence.QuasselDatabase -import de.kuschku.quasseldroid_ng.ui.settings.Settings import de.kuschku.quasseldroid_ng.ui.settings.data.AppearanceSettings +import de.kuschku.quasseldroid_ng.ui.settings.data.Settings import de.kuschku.quasseldroid_ng.ui.viewmodel.QuasselViewModel import de.kuschku.quasseldroid_ng.util.AndroidHandlerThread import de.kuschku.quasseldroid_ng.util.helper.map diff --git a/app/src/main/java/de/kuschku/quasseldroid_ng/ui/chat/messages/MessageListFragment.kt b/app/src/main/java/de/kuschku/quasseldroid_ng/ui/chat/messages/MessageListFragment.kt index 7784cb0a9..309c5d24f 100644 --- a/app/src/main/java/de/kuschku/quasseldroid_ng/ui/chat/messages/MessageListFragment.kt +++ b/app/src/main/java/de/kuschku/quasseldroid_ng/ui/chat/messages/MessageListFragment.kt @@ -18,9 +18,9 @@ import de.kuschku.libquassel.protocol.MsgId import de.kuschku.libquassel.quassel.syncables.BufferSyncer import de.kuschku.quasseldroid_ng.R import de.kuschku.quasseldroid_ng.persistence.QuasselDatabase -import de.kuschku.quasseldroid_ng.ui.settings.Settings import de.kuschku.quasseldroid_ng.ui.settings.data.AppearanceSettings import de.kuschku.quasseldroid_ng.ui.settings.data.BacklogSettings +import de.kuschku.quasseldroid_ng.ui.settings.data.Settings import de.kuschku.quasseldroid_ng.ui.viewmodel.QuasselViewModel import de.kuschku.quasseldroid_ng.util.AndroidHandlerThread import de.kuschku.quasseldroid_ng.util.helper.* @@ -45,13 +45,14 @@ class MessageListFragment : ServiceBoundFragment() { private var lastBuffer: BufferId? = null - private var backlogSettings = BacklogSettings() + private lateinit var backlogSettings: BacklogSettings override fun onCreate(savedInstanceState: Bundle?) { handler.onCreate() super.onCreate(savedInstanceState) viewModel = ViewModelProviders.of(activity!!)[QuasselViewModel::class.java] appearanceSettings = Settings.appearance(activity!!) + backlogSettings = Settings.backlog(activity!!) } private val boundaryCallback = object : diff --git a/app/src/main/java/de/kuschku/quasseldroid_ng/ui/chat/messages/QuasselMessageRenderer.kt b/app/src/main/java/de/kuschku/quasseldroid_ng/ui/chat/messages/QuasselMessageRenderer.kt index e734ca501..8ee5dda43 100644 --- a/app/src/main/java/de/kuschku/quasseldroid_ng/ui/chat/messages/QuasselMessageRenderer.kt +++ b/app/src/main/java/de/kuschku/quasseldroid_ng/ui/chat/messages/QuasselMessageRenderer.kt @@ -86,6 +86,9 @@ class QuasselMessageRenderer( viewHolder.itemView.setBackgroundColor(getColor(1, 0)) } } + if (appearanceSettings.useMonospace) { + viewHolder.content.typeface = Typeface.MONOSPACE + } } override fun bind(holder: QuasselMessageViewHolder, message: FormattedMessage) { diff --git a/app/src/main/java/de/kuschku/quasseldroid_ng/ui/settings/SettingsFragment.kt b/app/src/main/java/de/kuschku/quasseldroid_ng/ui/settings/SettingsFragment.kt index 7c6442061..6762bd534 100644 --- a/app/src/main/java/de/kuschku/quasseldroid_ng/ui/settings/SettingsFragment.kt +++ b/app/src/main/java/de/kuschku/quasseldroid_ng/ui/settings/SettingsFragment.kt @@ -8,6 +8,7 @@ import android.support.v7.preference.PreferenceFragmentCompat import android.support.v7.preference.PreferenceGroup import de.kuschku.quasseldroid_ng.R import de.kuschku.quasseldroid_ng.ui.settings.data.AppearanceSettings +import de.kuschku.quasseldroid_ng.ui.settings.data.Settings class SettingsFragment : PreferenceFragmentCompat(), SharedPreferences.OnSharedPreferenceChangeListener { diff --git a/app/src/main/java/de/kuschku/quasseldroid_ng/ui/settings/data/AppearanceSettings.kt b/app/src/main/java/de/kuschku/quasseldroid_ng/ui/settings/data/AppearanceSettings.kt index fa9d8f49a..3a9d42f20 100644 --- a/app/src/main/java/de/kuschku/quasseldroid_ng/ui/settings/data/AppearanceSettings.kt +++ b/app/src/main/java/de/kuschku/quasseldroid_ng/ui/settings/data/AppearanceSettings.kt @@ -7,6 +7,7 @@ data class AppearanceSettings( val showPrefix: ShowPrefixMode = ShowPrefixMode.HIGHEST, val colorizeNicknames: ColorizeNicknamesMode = ColorizeNicknamesMode.ALL_BUT_MINE, val colorizeMirc: Boolean = true, + val useMonospace: Boolean = false, val showSeconds: Boolean = false, val use24hClock: Boolean = true, val showLag: Boolean = true, diff --git a/app/src/main/java/de/kuschku/quasseldroid_ng/ui/settings/Settings.kt b/app/src/main/java/de/kuschku/quasseldroid_ng/ui/settings/data/Settings.kt similarity index 75% rename from app/src/main/java/de/kuschku/quasseldroid_ng/ui/settings/Settings.kt rename to app/src/main/java/de/kuschku/quasseldroid_ng/ui/settings/data/Settings.kt index 402daaf10..ea9f3ce1c 100644 --- a/app/src/main/java/de/kuschku/quasseldroid_ng/ui/settings/Settings.kt +++ b/app/src/main/java/de/kuschku/quasseldroid_ng/ui/settings/data/Settings.kt @@ -1,12 +1,10 @@ -package de.kuschku.quasseldroid_ng.ui.settings +package de.kuschku.quasseldroid_ng.ui.settings.data import android.content.Context import android.content.SharedPreferences import android.preference.PreferenceManager import de.kuschku.quasseldroid_ng.R -import de.kuschku.quasseldroid_ng.ui.settings.data.AppearanceSettings import de.kuschku.quasseldroid_ng.ui.settings.data.AppearanceSettings.* -import de.kuschku.quasseldroid_ng.ui.settings.data.BacklogSettings object Settings { private fun <T> settings(context: Context, @@ -14,7 +12,9 @@ object Settings { context ).f() - fun appearance(context: Context) = settings(context) { + fun appearance(context: Context) = settings( + context + ) { AppearanceSettings( theme = Theme.valueOf( getString( @@ -38,6 +38,10 @@ object Settings { context.getString(R.string.preference_colorize_mirc_key), AppearanceSettings.DEFAULT.colorizeMirc ), + useMonospace = getBoolean( + context.getString(R.string.preference_monospace_key), + AppearanceSettings.DEFAULT.useMonospace + ), showSeconds = getBoolean( context.getString(R.string.preference_show_seconds_key), AppearanceSettings.DEFAULT.showSeconds @@ -53,9 +57,14 @@ object Settings { ) } - fun backlog(context: Context) = settings(context) { + fun backlog(context: Context) = settings( + context + ) { BacklogSettings( - + dynamicAmount = getString( + context.getString(R.string.preference_dynamic_fetch_key), + BacklogSettings.DEFAULT.dynamicAmount.toString() + ).toIntOrNull() ?: BacklogSettings.DEFAULT.dynamicAmount ) } } \ No newline at end of file diff --git a/app/src/main/java/de/kuschku/quasseldroid_ng/util/service/ServiceBoundActivity.kt b/app/src/main/java/de/kuschku/quasseldroid_ng/util/service/ServiceBoundActivity.kt index ad471ecfc..7058ffaaf 100644 --- a/app/src/main/java/de/kuschku/quasseldroid_ng/util/service/ServiceBoundActivity.kt +++ b/app/src/main/java/de/kuschku/quasseldroid_ng/util/service/ServiceBoundActivity.kt @@ -9,8 +9,8 @@ import android.support.v7.app.AppCompatActivity import de.kuschku.libquassel.session.Backend import de.kuschku.quasseldroid_ng.Keys import de.kuschku.quasseldroid_ng.R -import de.kuschku.quasseldroid_ng.ui.settings.Settings import de.kuschku.quasseldroid_ng.ui.settings.data.AppearanceSettings +import de.kuschku.quasseldroid_ng.ui.settings.data.Settings import de.kuschku.quasseldroid_ng.util.helper.updateRecentsHeaderIfExisting abstract class ServiceBoundActivity : AppCompatActivity() { diff --git a/app/src/main/res/layout-sw720dp-land/activity_main.xml b/app/src/main/res/layout-sw720dp-land/activity_main.xml index 0944bbbef..edf148a84 100644 --- a/app/src/main/res/layout-sw720dp-land/activity_main.xml +++ b/app/src/main/res/layout-sw720dp-land/activity_main.xml @@ -17,6 +17,11 @@ android:layout_height="match_parent" tools:layout="@layout/fragment_chat_list" /> + <View + android:layout_width="1dp" + android:layout_height="match_parent" + android:background="?colorDivider" /> + <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" diff --git a/app/src/main/res/values/strings_preferences.xml b/app/src/main/res/values/strings_preferences.xml index 2ec76c925..45d290771 100644 --- a/app/src/main/res/values/strings_preferences.xml +++ b/app/src/main/res/values/strings_preferences.xml @@ -61,6 +61,9 @@ <item>NONE</item> </string-array> + <string name="preference_monospace_key" translatable="false">monospace</string> + <string name="preference_monospace_title">Use Monospace Font</string> + <string name="preference_show_seconds_key" translatable="false">show_seconds</string> <string name="preference_show_seconds_title">Show Seconds</string> diff --git a/app/src/main/res/xml/preferences.xml b/app/src/main/res/xml/preferences.xml index d6438d601..03a1afc77 100644 --- a/app/src/main/res/xml/preferences.xml +++ b/app/src/main/res/xml/preferences.xml @@ -29,6 +29,11 @@ android:key="@string/preference_show_prefix_key" android:title="@string/preference_show_prefix_title" /> + <SwitchPreference + android:defaultValue="false" + android:key="@string/preference_monospace_key" + android:title="@string/preference_monospace_title" /> + <SwitchPreference android:defaultValue="false" android:key="@string/preference_show_seconds_key" -- GitLab