mirror of
https://github.com/kiwix/kiwix-android.git
synced 2025-08-03 18:56:44 -04:00
Merge pull request #3244 from criticalAY/replace_deprecated_methods
replaced the deprecated setHasOptionsMenu(true) with new API
This commit is contained in:
commit
660b376969
@ -26,6 +26,9 @@ import android.view.MenuItem
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import androidx.appcompat.widget.SearchView
|
||||
import androidx.core.view.MenuHost
|
||||
import androidx.core.view.MenuProvider
|
||||
import androidx.lifecycle.Lifecycle
|
||||
import androidx.lifecycle.Observer
|
||||
import androidx.lifecycle.ViewModelProvider
|
||||
import androidx.recyclerview.widget.LinearLayoutManager
|
||||
@ -103,11 +106,40 @@ class LanguageFragment : BaseFragment() {
|
||||
container: ViewGroup?,
|
||||
savedInstanceState: Bundle?
|
||||
): View? {
|
||||
setHasOptionsMenu(true)
|
||||
setupMenu()
|
||||
activityLanguageBinding = ActivityLanguageBinding.inflate(inflater, container, false)
|
||||
return activityLanguageBinding?.root
|
||||
}
|
||||
|
||||
private fun setupMenu() {
|
||||
(requireActivity() as MenuHost).addMenuProvider(
|
||||
object : MenuProvider {
|
||||
override fun onCreateMenu(menu: Menu, menuInflater: MenuInflater) {
|
||||
menuInflater.inflate(R.menu.menu_language, menu)
|
||||
val search = menu.findItem(R.id.menu_language_search)
|
||||
(search.actionView as SearchView).setOnQueryTextListener(
|
||||
SimpleTextListener {
|
||||
languageViewModel.actions.offer(Filter(it))
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
override fun onMenuItemSelected(menuItem: MenuItem): Boolean {
|
||||
return when (menuItem.itemId) {
|
||||
R.id.menu_language_save -> {
|
||||
languageViewModel.actions.offer(Action.SaveAll)
|
||||
closeKeyboard()
|
||||
true
|
||||
}
|
||||
else -> false
|
||||
}
|
||||
}
|
||||
},
|
||||
viewLifecycleOwner,
|
||||
Lifecycle.State.RESUMED
|
||||
)
|
||||
}
|
||||
|
||||
override fun onDestroy() {
|
||||
super.onDestroy()
|
||||
compositeDisposable.clear()
|
||||
@ -122,28 +154,6 @@ class LanguageFragment : BaseFragment() {
|
||||
Saving -> Unit
|
||||
}
|
||||
|
||||
override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) {
|
||||
super.onCreateOptionsMenu(menu, inflater)
|
||||
inflater.inflate(R.menu.menu_language, menu)
|
||||
val search = menu.findItem(R.id.menu_language_search)
|
||||
(search.actionView as SearchView).setOnQueryTextListener(
|
||||
SimpleTextListener {
|
||||
languageViewModel.actions.offer(Filter(it))
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
override fun onOptionsItemSelected(item: MenuItem): Boolean {
|
||||
return when (item.itemId) {
|
||||
R.id.menu_language_save -> {
|
||||
languageViewModel.actions.offer(Action.SaveAll)
|
||||
closeKeyboard()
|
||||
true
|
||||
}
|
||||
else -> super.onOptionsItemSelected(item)
|
||||
}
|
||||
}
|
||||
|
||||
override fun onDestroyView() {
|
||||
super.onDestroyView()
|
||||
activityLanguageBinding = null
|
||||
|
@ -45,6 +45,9 @@ import androidx.annotation.RequiresApi
|
||||
import androidx.appcompat.widget.Toolbar
|
||||
import androidx.core.app.ActivityCompat
|
||||
import androidx.core.content.ContextCompat
|
||||
import androidx.core.view.MenuHost
|
||||
import androidx.core.view.MenuProvider
|
||||
import androidx.lifecycle.Lifecycle
|
||||
import androidx.lifecycle.lifecycleScope
|
||||
import androidx.recyclerview.widget.LinearLayoutManager
|
||||
import org.kiwix.kiwixmobile.R
|
||||
@ -110,14 +113,9 @@ class LocalFileTransferFragment :
|
||||
return fragmentLocalFileTransferBinding?.root
|
||||
}
|
||||
|
||||
override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) {
|
||||
inflater.inflate(R.menu.wifi_file_share_items, menu)
|
||||
super.onCreateOptionsMenu(menu, inflater)
|
||||
}
|
||||
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
setHasOptionsMenu(true)
|
||||
setupMenu()
|
||||
val activity = requireActivity() as CoreMainActivity
|
||||
val filesForTransfer = getFilesForTransfer()
|
||||
val isReceiver = filesForTransfer.isEmpty()
|
||||
@ -134,6 +132,45 @@ class LocalFileTransferFragment :
|
||||
wifiDirectManager.startWifiDirectManager(filesForTransfer)
|
||||
}
|
||||
|
||||
private fun setupMenu() {
|
||||
(requireActivity() as MenuHost).addMenuProvider(
|
||||
object : MenuProvider {
|
||||
override fun onCreateMenu(menu: Menu, menuInflater: MenuInflater) {
|
||||
menuInflater.inflate(R.menu.wifi_file_share_items, menu)
|
||||
}
|
||||
|
||||
override fun onMenuItemSelected(menuItem: MenuItem): Boolean {
|
||||
if (menuItem.itemId == R.id.menu_item_search_devices) {
|
||||
/* Permissions essential for this module */
|
||||
return when {
|
||||
!checkFineLocationAccessPermission() ->
|
||||
true
|
||||
!checkExternalStorageWritePermission() ->
|
||||
true
|
||||
/* Initiate discovery */
|
||||
!wifiDirectManager.isWifiP2pEnabled -> {
|
||||
requestEnableWifiP2pServices()
|
||||
true
|
||||
}
|
||||
Build.VERSION.SDK_INT >= Build.VERSION_CODES.O && !isLocationServiceEnabled -> {
|
||||
requestEnableLocationServices()
|
||||
true
|
||||
}
|
||||
else -> {
|
||||
showPeerDiscoveryProgressBar()
|
||||
wifiDirectManager.discoverPeerDevices()
|
||||
true
|
||||
}
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
},
|
||||
viewLifecycleOwner,
|
||||
Lifecycle.State.RESUMED
|
||||
)
|
||||
}
|
||||
|
||||
private fun setupPeerDevicesList(activity: CoreMainActivity) {
|
||||
fragmentLocalFileTransferBinding?.listPeerDevices?.apply {
|
||||
adapter = wifiPeerListAdapter
|
||||
@ -156,33 +193,6 @@ class LocalFileTransferFragment :
|
||||
LocalFileTransferFragmentArgs.fromBundle(requireArguments()).uris?.map(::FileItem)
|
||||
?: emptyList()
|
||||
|
||||
override fun onOptionsItemSelected(item: MenuItem): Boolean {
|
||||
if (item.itemId == R.id.menu_item_search_devices) {
|
||||
/* Permissions essential for this module */
|
||||
return when {
|
||||
!checkFineLocationAccessPermission() ->
|
||||
true
|
||||
!checkExternalStorageWritePermission() ->
|
||||
true
|
||||
/* Initiate discovery */
|
||||
!wifiDirectManager.isWifiP2pEnabled -> {
|
||||
requestEnableWifiP2pServices()
|
||||
true
|
||||
}
|
||||
Build.VERSION.SDK_INT >= Build.VERSION_CODES.O && !isLocationServiceEnabled -> {
|
||||
requestEnableLocationServices()
|
||||
true
|
||||
}
|
||||
else -> {
|
||||
showPeerDiscoveryProgressBar()
|
||||
wifiDirectManager.discoverPeerDevices()
|
||||
true
|
||||
}
|
||||
}
|
||||
}
|
||||
return super.onOptionsItemSelected(item)
|
||||
}
|
||||
|
||||
private fun showPeerDiscoveryProgressBar() { // Setup UI for searching peers
|
||||
fragmentLocalFileTransferBinding?.progressBarSearchingPeers?.visibility = View.VISIBLE
|
||||
fragmentLocalFileTransferBinding?.listPeerDevices?.visibility = View.INVISIBLE
|
||||
|
@ -42,7 +42,10 @@ import androidx.coordinatorlayout.widget.CoordinatorLayout
|
||||
import androidx.core.app.ActivityCompat
|
||||
import androidx.core.content.ContextCompat
|
||||
import androidx.core.net.toUri
|
||||
import androidx.core.view.MenuHost
|
||||
import androidx.core.view.MenuProvider
|
||||
import androidx.fragment.app.FragmentActivity
|
||||
import androidx.lifecycle.Lifecycle
|
||||
import androidx.lifecycle.Observer
|
||||
import androidx.lifecycle.ViewModelProvider
|
||||
import androidx.recyclerview.widget.LinearLayoutManager
|
||||
@ -140,11 +143,37 @@ class LocalLibraryFragment : BaseFragment() {
|
||||
if (toolbar != null) {
|
||||
activity.setupDrawerToggle(toolbar)
|
||||
}
|
||||
setHasOptionsMenu(true)
|
||||
setupMenu()
|
||||
|
||||
return fragmentDestinationLibraryBinding?.root
|
||||
}
|
||||
|
||||
private fun setupMenu() {
|
||||
(requireActivity() as MenuHost).addMenuProvider(
|
||||
object : MenuProvider {
|
||||
override fun onCreateMenu(menu: Menu, menuInflater: MenuInflater) {
|
||||
menuInflater.inflate(R.menu.menu_zim_manager, menu)
|
||||
val searchItem = menu.findItem(R.id.action_search)
|
||||
val languageItem = menu.findItem(R.id.select_language)
|
||||
languageItem.isVisible = false
|
||||
searchItem.isVisible = false
|
||||
}
|
||||
|
||||
override fun onMenuItemSelected(menuItem: MenuItem): Boolean {
|
||||
when (menuItem.itemId) {
|
||||
R.id.get_zim_nearby_device -> {
|
||||
navigateToLocalFileTransferFragment()
|
||||
return true
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
},
|
||||
viewLifecycleOwner,
|
||||
Lifecycle.State.RESUMED
|
||||
)
|
||||
}
|
||||
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
fragmentDestinationLibraryBinding?.zimSwiperefresh?.setOnRefreshListener(
|
||||
@ -279,22 +308,6 @@ class LocalLibraryFragment : BaseFragment() {
|
||||
}
|
||||
}
|
||||
|
||||
override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) {
|
||||
inflater.inflate(R.menu.menu_zim_manager, menu)
|
||||
val searchItem = menu.findItem(R.id.action_search)
|
||||
val languageItem = menu.findItem(R.id.select_language)
|
||||
languageItem.isVisible = false
|
||||
searchItem.isVisible = false
|
||||
super.onCreateOptionsMenu(menu, inflater)
|
||||
}
|
||||
|
||||
override fun onOptionsItemSelected(item: MenuItem): Boolean {
|
||||
when (item.itemId) {
|
||||
R.id.get_zim_nearby_device -> navigateToLocalFileTransferFragment()
|
||||
}
|
||||
return super.onOptionsItemSelected(item)
|
||||
}
|
||||
|
||||
override fun onResume() {
|
||||
super.onResume()
|
||||
if (!sharedPreferenceUtil.isPlayStoreBuildWithAndroid11OrAbove() &&
|
||||
|
@ -41,6 +41,9 @@ import androidx.appcompat.widget.SearchView
|
||||
import androidx.appcompat.widget.Toolbar
|
||||
import androidx.core.app.ActivityCompat
|
||||
import androidx.core.content.ContextCompat
|
||||
import androidx.core.view.MenuHost
|
||||
import androidx.core.view.MenuProvider
|
||||
import androidx.lifecycle.Lifecycle
|
||||
import androidx.lifecycle.Observer
|
||||
import androidx.lifecycle.ViewModelProvider
|
||||
import androidx.lifecycle.observe
|
||||
@ -143,7 +146,6 @@ class OnlineLibraryFragment : BaseFragment(), FragmentActivityExtensions {
|
||||
container: ViewGroup?,
|
||||
savedInstanceState: Bundle?
|
||||
): View? {
|
||||
setHasOptionsMenu(true)
|
||||
fragmentDestinationDownloadBinding =
|
||||
FragmentDestinationDownloadBinding.inflate(inflater, container, false)
|
||||
val toolbar = fragmentDestinationDownloadBinding?.root?.findViewById<Toolbar>(R.id.toolbar)
|
||||
@ -183,6 +185,7 @@ class OnlineLibraryFragment : BaseFragment(), FragmentActivityExtensions {
|
||||
showInternetAccessViaMobileNetworkDialog()
|
||||
}
|
||||
}
|
||||
setupMenu()
|
||||
|
||||
// hides keyboard when scrolled
|
||||
fragmentDestinationDownloadBinding?.libraryList?.addOnScrollListener(
|
||||
@ -194,6 +197,37 @@ class OnlineLibraryFragment : BaseFragment(), FragmentActivityExtensions {
|
||||
)
|
||||
}
|
||||
|
||||
private fun setupMenu() {
|
||||
(requireActivity() as MenuHost).addMenuProvider(
|
||||
object : MenuProvider {
|
||||
override fun onCreateMenu(menu: Menu, menuInflater: MenuInflater) {
|
||||
menuInflater.inflate(R.menu.menu_zim_manager, menu)
|
||||
val searchItem = menu.findItem(R.id.action_search)
|
||||
val getZimItem = menu.findItem(R.id.get_zim_nearby_device)
|
||||
getZimItem?.isVisible = false
|
||||
|
||||
(searchItem?.actionView as? SearchView)?.setOnQueryTextListener(
|
||||
SimpleTextListener(zimManageViewModel.requestFiltering::onNext)
|
||||
)
|
||||
zimManageViewModel.requestFiltering.onNext("")
|
||||
}
|
||||
|
||||
override fun onMenuItemSelected(menuItem: MenuItem): Boolean {
|
||||
when (menuItem.itemId) {
|
||||
R.id.select_language -> {
|
||||
requireActivity().navigate(R.id.languageFragment)
|
||||
closeKeyboard()
|
||||
return true
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
},
|
||||
viewLifecycleOwner,
|
||||
Lifecycle.State.RESUMED
|
||||
)
|
||||
}
|
||||
|
||||
private fun showInternetAccessViaMobileNetworkDialog() {
|
||||
dialogShower.show(
|
||||
WifiOnly,
|
||||
@ -231,29 +265,6 @@ class OnlineLibraryFragment : BaseFragment(), FragmentActivityExtensions {
|
||||
}
|
||||
}
|
||||
|
||||
override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) {
|
||||
super<BaseFragment>.onCreateOptionsMenu(menu, inflater)
|
||||
inflater.inflate(R.menu.menu_zim_manager, menu)
|
||||
val searchItem = menu.findItem(R.id.action_search)
|
||||
val getZimItem = menu.findItem(R.id.get_zim_nearby_device)
|
||||
getZimItem?.isVisible = false
|
||||
|
||||
(searchItem?.actionView as? SearchView)?.setOnQueryTextListener(
|
||||
SimpleTextListener(zimManageViewModel.requestFiltering::onNext)
|
||||
)
|
||||
zimManageViewModel.requestFiltering.onNext("")
|
||||
}
|
||||
|
||||
override fun onOptionsItemSelected(item: MenuItem): Boolean {
|
||||
when (item.itemId) {
|
||||
R.id.select_language -> {
|
||||
requireActivity().navigate(R.id.languageFragment)
|
||||
closeKeyboard()
|
||||
}
|
||||
}
|
||||
return super.onOptionsItemSelected(item)
|
||||
}
|
||||
|
||||
override fun onDestroyView() {
|
||||
super.onDestroyView()
|
||||
availableSpaceCalculator.dispose()
|
||||
|
@ -31,6 +31,9 @@ import androidx.appcompat.app.AppCompatActivity
|
||||
import androidx.appcompat.view.ActionMode
|
||||
import androidx.appcompat.widget.SearchView
|
||||
import androidx.appcompat.widget.Toolbar
|
||||
import androidx.core.view.MenuHost
|
||||
import androidx.core.view.MenuProvider
|
||||
import androidx.lifecycle.Lifecycle
|
||||
import androidx.lifecycle.Observer
|
||||
import androidx.lifecycle.ViewModelProvider
|
||||
import androidx.recyclerview.widget.LinearLayoutManager
|
||||
@ -91,35 +94,43 @@ abstract class PageFragment : OnItemClickListener, BaseFragment(), FragmentActiv
|
||||
}
|
||||
}
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
setHasOptionsMenu(true)
|
||||
}
|
||||
private fun setupMenu() {
|
||||
(requireActivity() as MenuHost).addMenuProvider(
|
||||
object : MenuProvider {
|
||||
override fun onCreateMenu(menu: Menu, menuInflater: MenuInflater) {
|
||||
menuInflater.inflate(R.menu.menu_page, menu)
|
||||
val search = menu.findItem(R.id.menu_page_search).actionView as SearchView
|
||||
search.queryHint = searchQueryHint
|
||||
search.setOnQueryTextListener(
|
||||
SimpleTextListener {
|
||||
pageViewModel.actions.offer(Action.Filter(it))
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) {
|
||||
super<BaseFragment>.onCreateOptionsMenu(menu, inflater)
|
||||
inflater.inflate(R.menu.menu_page, menu)
|
||||
val search = menu.findItem(R.id.menu_page_search).actionView as SearchView
|
||||
search.queryHint = searchQueryHint
|
||||
search.setOnQueryTextListener(
|
||||
SimpleTextListener {
|
||||
pageViewModel.actions.offer(Action.Filter(it))
|
||||
}
|
||||
@Suppress("ReturnCount")
|
||||
override fun onMenuItemSelected(menuItem: MenuItem): Boolean {
|
||||
when (menuItem.itemId) {
|
||||
android.R.id.home -> {
|
||||
pageViewModel.actions.offer(Action.Exit)
|
||||
return true
|
||||
}
|
||||
R.id.menu_pages_clear -> {
|
||||
pageViewModel.actions.offer(Action.UserClickedDeleteButton)
|
||||
return true
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
},
|
||||
viewLifecycleOwner,
|
||||
Lifecycle.State.RESUMED
|
||||
)
|
||||
}
|
||||
|
||||
override fun onOptionsItemSelected(item: MenuItem): Boolean {
|
||||
if (item.itemId == android.R.id.home) {
|
||||
pageViewModel.actions.offer(Action.Exit)
|
||||
}
|
||||
if (item.itemId == R.id.menu_pages_clear) {
|
||||
pageViewModel.actions.offer(Action.UserClickedDeleteButton)
|
||||
}
|
||||
return super.onOptionsItemSelected(item)
|
||||
}
|
||||
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
setupMenu()
|
||||
val activity = requireActivity() as CoreMainActivity
|
||||
fragmentPageBinding?.recyclerView?.layoutManager =
|
||||
LinearLayoutManager(activity, RecyclerView.VERTICAL, false)
|
||||
|
Loading…
x
Reference in New Issue
Block a user