From 14c95c2c1ff9c1494cf32ddd513c763cdbb29b68 Mon Sep 17 00:00:00 2001
From: Taras Smakula <tarassmakula@gmail.com>
Date: Mon, 23 Oct 2023 13:58:55 +0300
Subject: [PATCH] Add menu on Circles tab

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

diff --git a/app/src/main/java/org/futo/circles/feature/circles/CirclesFragment.kt b/app/src/main/java/org/futo/circles/feature/circles/CirclesFragment.kt
index 2498b2e87..73b29c4ea 100644
--- a/app/src/main/java/org/futo/circles/feature/circles/CirclesFragment.kt
+++ b/app/src/main/java/org/futo/circles/feature/circles/CirclesFragment.kt
@@ -1,7 +1,13 @@
 package org.futo.circles.feature.circles
 
+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
@@ -25,7 +31,7 @@ import org.futo.circles.feature.circles.list.CirclesListAdapter
 import org.futo.circles.model.CircleListItem
 
 @AndroidEntryPoint
-class CirclesFragment : Fragment(org.futo.circles.core.R.layout.fragment_rooms) {
+class CirclesFragment : Fragment(org.futo.circles.core.R.layout.fragment_rooms), MenuProvider {
 
     private val viewModel by viewModels<CirclesViewModel>()
     private val binding by viewBinding(FragmentRoomsBinding::bind)
@@ -37,6 +43,7 @@ class CirclesFragment : 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 CirclesFragment : Fragment(org.futo.circles.core.R.layout.fragment_rooms)
         listAdapter = null
     }
 
+    @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.Circle).show()
+        }
+        return true
+    }
+
     private fun setupViews() {
         binding.rvRooms.apply {
             setEmptyView(EmptyTabPlaceholderView(requireContext()).apply {
-- 
GitLab