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