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