From 5798533e65cd92fda4a6ccbcfe7074114d1ac79d Mon Sep 17 00:00:00 2001 From: Janne Koschinski <janne@kuschku.de> Date: Mon, 6 May 2019 17:00:26 +0200 Subject: [PATCH] Further preparations for chat archive screen --- .../quasseldroid/dagger/ActivityModule.kt | 6 ++++++ .../ui/chat/archive/ArchiveFragment.kt | 18 +++++++++++++++++- .../chat/buffers/BufferViewConfigFragment.kt | 5 +++++ app/src/main/res/layout/chat_archive.xml | 2 ++ app/src/main/res/menu/context_bufferlist.xml | 3 +++ 5 files changed, 33 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/de/kuschku/quasseldroid/dagger/ActivityModule.kt b/app/src/main/java/de/kuschku/quasseldroid/dagger/ActivityModule.kt index 769b951bf..9dc6f910c 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/dagger/ActivityModule.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/dagger/ActivityModule.kt @@ -32,6 +32,8 @@ import de.kuschku.quasseldroid.ui.chat.add.join.ChannelJoinActivity import de.kuschku.quasseldroid.ui.chat.add.join.ChannelJoinFragmentProvider import de.kuschku.quasseldroid.ui.chat.add.query.QueryCreateActivity import de.kuschku.quasseldroid.ui.chat.add.query.QueryCreateFragmentProvider +import de.kuschku.quasseldroid.ui.chat.archive.ArchiveActivity +import de.kuschku.quasseldroid.ui.chat.archive.ArchiveFragmentProvider import de.kuschku.quasseldroid.ui.chat.topic.TopicActivity import de.kuschku.quasseldroid.ui.chat.topic.TopicFragmentProvider import de.kuschku.quasseldroid.ui.clientsettings.about.AboutActivity @@ -105,6 +107,10 @@ abstract class ActivityModule { @ContributesAndroidInjector(modules = [ChatActivityModule::class, ChatFragmentProvider::class, SettingsModule::class, DatabaseModule::class, ActivityBaseModule::class]) abstract fun bindChatActivity(): ChatActivity + @ActivityScope + @ContributesAndroidInjector(modules = [ArchiveFragmentProvider::class, SettingsModule::class, DatabaseModule::class, ActivityBaseModule::class]) + abstract fun bindArchiveActivity(): ArchiveActivity + // Info @ActivityScope diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/archive/ArchiveFragment.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/archive/ArchiveFragment.kt index e4cdb4fc6..c5e7066b3 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/archive/ArchiveFragment.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/archive/ArchiveFragment.kt @@ -23,21 +23,37 @@ import android.os.Bundle import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import androidx.lifecycle.Observer +import androidx.recyclerview.widget.RecyclerView +import butterknife.BindView import butterknife.ButterKnife import de.kuschku.quasseldroid.R +import de.kuschku.quasseldroid.util.helper.toLiveData import de.kuschku.quasseldroid.util.service.ServiceBoundFragment import de.kuschku.quasseldroid.viewmodel.helper.QuasselViewModelHelper import javax.inject.Inject class ArchiveFragment : ServiceBoundFragment() { + @BindView(R.id.list_temporary) + lateinit var listTemporary: RecyclerView + + @BindView(R.id.list_permanently) + lateinit var listPermanently: RecyclerView + @Inject lateinit var modelHelper: QuasselViewModelHelper override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { - val view = inflater.inflate(R.layout.add_join, container, false) + val view = inflater.inflate(R.layout.chat_archive, container, false) ButterKnife.bind(this, view) + val chatlistId = arguments?.getInt("chatlist_id", -1) + + val chatlist = modelHelper.bufferViewConfigMap.map { + it[chatlistId] + } + return view } } diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/buffers/BufferViewConfigFragment.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/buffers/BufferViewConfigFragment.kt index fafed3b75..5b7e32009 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/buffers/BufferViewConfigFragment.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/buffers/BufferViewConfigFragment.kt @@ -63,6 +63,7 @@ import de.kuschku.quasseldroid.ui.chat.ChatActivity import de.kuschku.quasseldroid.ui.chat.add.create.ChannelCreateActivity import de.kuschku.quasseldroid.ui.chat.add.join.ChannelJoinActivity import de.kuschku.quasseldroid.ui.chat.add.query.QueryCreateActivity +import de.kuschku.quasseldroid.ui.chat.archive.ArchiveActivity import de.kuschku.quasseldroid.ui.coresettings.network.NetworkEditActivity import de.kuschku.quasseldroid.ui.info.channellist.ChannelListActivity import de.kuschku.quasseldroid.util.ColorContext @@ -488,6 +489,10 @@ class BufferViewConfigFragment : ServiceBoundFragment() { chatListToolbar.menu.findItem(R.id.action_search).isChecked = modelHelper.chat.bufferSearchTemporarilyVisible.value chatListToolbar.setOnMenuItemClickListener { item -> when (item.itemId) { + R.id.action_archived_chats -> { + ArchiveActivity.launch(requireContext(), chatlistId = modelHelper.chat.bufferViewConfigId.value) + true + } R.id.action_search -> { item.isChecked = !item.isChecked modelHelper.chat.bufferSearchTemporarilyVisible.onNext(item.isChecked) diff --git a/app/src/main/res/layout/chat_archive.xml b/app/src/main/res/layout/chat_archive.xml index ffc9418bb..f5282ff48 100644 --- a/app/src/main/res/layout/chat_archive.xml +++ b/app/src/main/res/layout/chat_archive.xml @@ -50,6 +50,7 @@ android:text="@string/label_temporarily_archived_long" /> <androidx.recyclerview.widget.RecyclerView + android:id="@+id/list_temporary" android:layout_width="match_parent" android:layout_height="wrap_content" tools:listitem="@layout/widget_buffer_reorder" /> @@ -74,6 +75,7 @@ android:text="@string/label_permanently_archived_long" /> <androidx.recyclerview.widget.RecyclerView + android:id="@+id/list_permanently" android:layout_width="match_parent" android:layout_height="wrap_content" tools:listitem="@layout/widget_buffer_reorder" /> diff --git a/app/src/main/res/menu/context_bufferlist.xml b/app/src/main/res/menu/context_bufferlist.xml index cb6f9de17..62aa4eebd 100644 --- a/app/src/main/res/menu/context_bufferlist.xml +++ b/app/src/main/res/menu/context_bufferlist.xml @@ -18,6 +18,9 @@ --> <menu xmlns:android="http://schemas.android.com/apk/res/android"> + <item + android:id="@+id/action_archived_chats" + android:title="@string/label_archived_chats" /> <item android:id="@+id/action_search" android:checkable="true" -- GitLab