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 e23a561d1651894aec95678d39beb1a2b54bf446..476a772b9b97d3144d9b123ead4e313d19781027 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 75cade9ace28ccb0d61bf652cd0d5a5f56ccdab7..bbabc6a964a42615a7dd159755343bc610411776 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 9f169131840c4d45388c15e1f27ee9b83ad8d9aa..0d1c342368a91afe3c64fc5b0f9a2856c21be8b8 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 28725d2a3bf19d207fc0e3799683d0c959f741a6..57d9802b2ffd09d06ced95fcee358343172ebce2 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 1c60b03d9dd6cc5904218cecb6fc7147986d8501..a1f72252016598ccc5c99ed320a7c0248500146d 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 7784cb0a975610c339b7862b072d980a6d6ca466..309c5d24fb858b3016816584053579b75e0cfc30 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 e734ca5018db5406593128b586a849dbba16d212..8ee5dda43bc008ceec8b27a49d1bd7d715c412dc 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 7c6442061668417a3f0156120429b224983f8167..6762bd534b0e0276524d4109ba9a35ab041e2f81 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 fa9d8f49a594d5ebb027fe5a3bb8d57f21a045a6..3a9d42f20e2823d1be9b13570b1a222592500447 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 402daaf10441bb60695037988afd03ee7595cc4d..ea9f3ce1c3e6f465eb623d144e7da5c346c262d3 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 ad471ecfc04ccc8554b83199eedde5d6bb97ecec..7058ffaaf1612dd2b739f96c4a93f3922e902bf6 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 0944bbbef73ebc095c6183eadbaa628c3f11eab2..edf148a84aef77c3f8e4046b59e5ea634edfe284 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 2ec76c925c6200e4531dda88bce15931fc19f789..45d29077190b8458878e0d920b888049c0a430b3 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 d6438d601958ca62e03ac9ff15379eee5a04a059..03a1afc7772638d92f2a24d377cbe0b388974872 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"