From 0b84132c6c0f3c719c0ae2382c5d25ffb71aa35f Mon Sep 17 00:00:00 2001
From: Taras Smakula <tarassmakula@gmail.com>
Date: Mon, 23 Oct 2023 14:00:41 +0300
Subject: [PATCH] Add menu on Groups fragment

---
 .../circles/feature/groups/GroupsFragment.kt  | 23 ++++++++++++++++++-
 1 file changed, 22 insertions(+), 1 deletion(-)

diff --git a/app/src/main/java/org/futo/circles/feature/groups/GroupsFragment.kt b/app/src/main/java/org/futo/circles/feature/groups/GroupsFragment.kt
index 3981c199f..ed39a4887 100644
--- a/app/src/main/java/org/futo/circles/feature/groups/GroupsFragment.kt
+++ b/app/src/main/java/org/futo/circles/feature/groups/GroupsFragment.kt
@@ -1,7 +1,13 @@
 package org.futo.circles.feature.groups
 
+import android.annotation.SuppressLint
 import android.os.Bundle
+import android.view.Menu
+import android.view.MenuInflater
+import android.view.MenuItem
 import android.view.View
+import androidx.appcompat.view.menu.MenuBuilder
+import androidx.core.view.MenuProvider
 import androidx.fragment.app.Fragment
 import androidx.fragment.app.viewModels
 import androidx.navigation.fragment.findNavController
@@ -24,7 +30,7 @@ import org.futo.circles.feature.groups.list.GroupsListAdapter
 import org.futo.circles.model.GroupListItem
 
 @AndroidEntryPoint
-class GroupsFragment : Fragment(org.futo.circles.core.R.layout.fragment_rooms) {
+class GroupsFragment : Fragment(org.futo.circles.core.R.layout.fragment_rooms), MenuProvider {
 
     private val viewModel by viewModels<GroupsViewModel>()
     private val binding by viewBinding(FragmentRoomsBinding::bind)
@@ -42,6 +48,7 @@ class GroupsFragment : Fragment(org.futo.circles.core.R.layout.fragment_rooms) {
         super.onViewCreated(view, savedInstanceState)
         setupViews()
         setupObservers()
+        activity?.addMenuProvider(this, viewLifecycleOwner)
     }
 
     override fun onCreate(savedInstanceState: Bundle?) {
@@ -50,6 +57,20 @@ class GroupsFragment : Fragment(org.futo.circles.core.R.layout.fragment_rooms) {
             CirclesExplanationDialog(requireContext(), CircleRoomTypeArg.Group).show()
     }
 
+    @SuppressLint("RestrictedApi")
+    override fun onCreateMenu(menu: Menu, inflater: MenuInflater) {
+        (menu as? MenuBuilder)?.setOptionalIconsVisible(true)
+        menu.clear()
+        inflater.inflate(R.menu.circles_tab_menu, menu)
+    }
+
+    override fun onMenuItemSelected(item: MenuItem): Boolean {
+        when (item.itemId) {
+            R.id.help -> CirclesExplanationDialog(requireContext(), CircleRoomTypeArg.Group).show()
+        }
+        return true
+    }
+
     private fun setupViews() {
         binding.rvRooms.apply {
             setEmptyView(EmptyTabPlaceholderView(requireContext()).apply {
-- 
GitLab