Skip to content

Commit

Permalink
For mozilla-mobile#7378: Replace deprecated setHasOptionsMenu with Me…
Browse files Browse the repository at this point in the history
…nuProvider.
  • Loading branch information
mcarare authored and mergify[bot] committed Sep 21, 2022
1 parent ebfa4b1 commit 1aaec09
Show file tree
Hide file tree
Showing 11 changed files with 92 additions and 79 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -39,11 +39,6 @@ class AutocompleteAddFragment : BaseSettingsLikeFragment(), CoroutineScope {
private var _binding: FragmentAutocompleteAddDomainBinding? = null
private val binding get() = _binding!!

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setHasOptionsMenu(true)
}

override fun onResume() {
super.onResume()

Expand Down Expand Up @@ -79,12 +74,12 @@ class AutocompleteAddFragment : BaseSettingsLikeFragment(), CoroutineScope {
_binding = null
}

override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) {
inflater.inflate(R.menu.menu_autocomplete_add, menu)
override fun onCreateMenu(menu: Menu, menuInflater: MenuInflater) {
menuInflater.inflate(R.menu.menu_autocomplete_add, menu)
}

override fun onOptionsItemSelected(item: MenuItem): Boolean {
if (item.itemId == R.id.save) {
override fun onMenuItemSelected(menuItem: MenuItem): Boolean = when (menuItem.itemId) {
R.id.save -> {
val domain = binding.domainView.text.toString().trim()

launch(IO) {
Expand All @@ -103,11 +98,10 @@ class AutocompleteAddFragment : BaseSettingsLikeFragment(), CoroutineScope {
}
}
}

return true
true
}

return super.onOptionsItemSelected(item)
// other options are not handled by this menu provider
else -> false
}

private fun saveDomainAndClose(context: Context, domain: String) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -112,11 +112,6 @@ open class AutocompleteListFragment : BaseSettingsLikeFragment(), CoroutineScope
},
)

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setHasOptionsMenu(true)
}

/**
* In selection mode the user can select and remove items. In non-selection mode the list can
* be reordered by the user.
Expand Down Expand Up @@ -170,11 +165,11 @@ open class AutocompleteListFragment : BaseSettingsLikeFragment(), CoroutineScope
_binding = null
}

override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) {
inflater.inflate(R.menu.menu_autocomplete_list, menu)
override fun onCreateMenu(menu: Menu, menuInflater: MenuInflater) {
menuInflater.inflate(R.menu.menu_autocomplete_list, menu)
}

override fun onPrepareOptionsMenu(menu: Menu) {
override fun onPrepareMenu(menu: Menu) {
val removeItem = menu.findItem(R.id.remove)

removeItem?.let {
Expand All @@ -186,14 +181,14 @@ open class AutocompleteListFragment : BaseSettingsLikeFragment(), CoroutineScope
}
}

override fun onOptionsItemSelected(item: MenuItem): Boolean = when (item.itemId) {
override fun onMenuItemSelected(menuItem: MenuItem): Boolean = when (menuItem.itemId) {
R.id.remove -> {
requireComponents.appStore.dispatch(
AppAction.OpenSettings(page = Screen.Settings.Page.SearchAutocompleteRemove),
)
true
}
else -> super.onOptionsItemSelected(item)
else -> false
}

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,16 +28,16 @@ class AutocompleteRemoveFragment : AutocompleteListFragment(), CoroutineScope {
override val coroutineContext: CoroutineContext
get() = job + Main

override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) {
inflater.inflate(R.menu.menu_autocomplete_remove, menu)
override fun onCreateMenu(menu: Menu, menuInflater: MenuInflater) {
menuInflater.inflate(R.menu.menu_autocomplete_remove, menu)
}

override fun onOptionsItemSelected(item: MenuItem): Boolean = when (item.itemId) {
override fun onMenuItemSelected(menuItem: MenuItem): Boolean = when (menuItem.itemId) {
R.id.remove -> {
removeSelectedDomains(requireActivity().applicationContext)
true
}
else -> super.onOptionsItemSelected(item)
else -> false
}

private fun removeSelectedDomains(context: Context) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -96,11 +96,6 @@ open class ExceptionsListFragment : BaseSettingsLikeFragment(), CoroutineScope {
},
)

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setHasOptionsMenu(true)
}

/**
* In selection mode the user can select and remove items. In non-selection mode the list can
* be reordered by the user.
Expand Down Expand Up @@ -182,11 +177,11 @@ open class ExceptionsListFragment : BaseSettingsLikeFragment(), CoroutineScope {
_binding = null
}

override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) {
inflater.inflate(R.menu.menu_exceptions_list, menu)
override fun onCreateMenu(menu: Menu, menuInflater: MenuInflater) {
menuInflater.inflate(R.menu.menu_exceptions_list, menu)
}

override fun onPrepareOptionsMenu(menu: Menu) {
override fun onPrepareMenu(menu: Menu) {
val removeItem = menu.findItem(R.id.remove)

removeItem?.let {
Expand All @@ -197,14 +192,14 @@ open class ExceptionsListFragment : BaseSettingsLikeFragment(), CoroutineScope {
}
}

override fun onOptionsItemSelected(item: MenuItem): Boolean = when (item.itemId) {
override fun onMenuItemSelected(menuItem: MenuItem): Boolean = when (menuItem.itemId) {
R.id.remove -> {
requireComponents.appStore.dispatch(
AppAction.OpenSettings(page = Screen.Settings.Page.PrivacyExceptionsRemove),
)
true
}
else -> super.onOptionsItemSelected(item)
else -> false
}

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,16 +21,16 @@ import kotlin.collections.forEach as withEach

class ExceptionsRemoveFragment : ExceptionsListFragment() {

override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) {
inflater.inflate(R.menu.menu_autocomplete_remove, menu)
override fun onCreateMenu(menu: Menu, menuInflater: MenuInflater) {
menuInflater.inflate(R.menu.menu_autocomplete_remove, menu)
}

override fun onOptionsItemSelected(item: MenuItem): Boolean = when (item.itemId) {
override fun onMenuItemSelected(menuItem: MenuItem): Boolean = when (menuItem.itemId) {
R.id.remove -> {
removeSelectedDomains(requireActivity().applicationContext)
true
}
else -> super.onOptionsItemSelected(item)
else -> false
}

private fun removeSelectedDomains(context: Context) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,15 +5,31 @@
package org.mozilla.focus.settings

import android.os.Bundle
import android.view.Menu
import android.view.MenuInflater
import android.view.MenuItem
import android.view.View
import androidx.core.view.MenuHost
import androidx.core.view.MenuProvider
import androidx.lifecycle.Lifecycle
import androidx.preference.PreferenceFragmentCompat
import org.mozilla.focus.R
import org.mozilla.focus.activity.MainActivity

abstract class BaseSettingsFragment : PreferenceFragmentCompat() {
abstract class BaseSettingsFragment : PreferenceFragmentCompat(), MenuProvider {
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)

val menuHost: MenuHost = requireHost() as MenuHost
menuHost.addMenuProvider(this, viewLifecycleOwner, Lifecycle.State.RESUMED)

// Customize status bar background if the parent activity can be casted to MainActivity
(requireActivity() as? MainActivity)?.customizeStatusBar(R.color.settings_background)
}

override fun onCreateMenu(menu: Menu, menuInflater: MenuInflater) {
// no-op
}

override fun onMenuItemSelected(menuItem: MenuItem): Boolean = false
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,14 @@
package org.mozilla.focus.settings

import android.os.Bundle
import android.view.Menu
import android.view.MenuInflater
import android.view.MenuItem
import android.view.View
import androidx.core.view.MenuHost
import androidx.core.view.MenuProvider
import androidx.fragment.app.Fragment
import androidx.lifecycle.Lifecycle
import androidx.preference.PreferenceFragmentCompat
import org.mozilla.focus.R
import org.mozilla.focus.activity.MainActivity
Expand All @@ -15,10 +21,20 @@ import org.mozilla.focus.activity.MainActivity
* Similar behavior as [BaseSettingsFragment], but doesn't extend [PreferenceFragmentCompat] and is
* a regular [Fragment] instead.
*/
open class BaseSettingsLikeFragment : Fragment() {
open class BaseSettingsLikeFragment : Fragment(), MenuProvider {
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)

val menuHost: MenuHost = requireHost() as MenuHost
menuHost.addMenuProvider(this, viewLifecycleOwner, Lifecycle.State.RESUMED)

// Customize status bar background if the parent activity can be casted to MainActivity
(requireActivity() as? MainActivity)?.customizeStatusBar(R.color.settings_background)
}

override fun onCreateMenu(menu: Menu, menuInflater: MenuInflater) {
// no-op
}

override fun onMenuItemSelected(menuItem: MenuItem): Boolean = false
}
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ import kotlin.collections.forEach as withEach

class InstalledSearchEnginesSettingsFragment : BaseSettingsFragment() {
override fun onCreatePreferences(p0: Bundle?, p1: String?) {
setHasOptionsMenu(true)
//
}

companion object {
Expand All @@ -47,22 +47,22 @@ class InstalledSearchEnginesSettingsFragment : BaseSettingsFragment() {
}
}

override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) {
super.onCreateOptionsMenu(menu, inflater)
inflater.inflate(R.menu.menu_search_engines, menu)
override fun onCreateMenu(menu: Menu, menuInflater: MenuInflater) {
super.onCreateMenu(menu, menuInflater)
menuInflater.inflate(R.menu.menu_search_engines, menu)
}

override fun onPrepareOptionsMenu(menu: Menu) {
super.onPrepareOptionsMenu(menu)
override fun onPrepareMenu(menu: Menu) {
super.onPrepareMenu(menu)
menu.findItem(R.id.menu_restore_default_engines)?.let {
it.isEnabled = !requireComponents.store.state.search.hasDefaultSearchEnginesOnly()
}
}

override fun onOptionsItemSelected(item: MenuItem): Boolean {
override fun onMenuItemSelected(menuItem: MenuItem): Boolean {
val currentEnginesCount = requireComponents.store.state.search.searchEngines.size

return when (item.itemId) {
return when (menuItem.itemId) {
R.id.menu_remove_search_engines -> {
requireComponents.appStore.dispatch(
AppAction.OpenSettings(Screen.Settings.Page.SearchRemove),
Expand All @@ -82,7 +82,7 @@ class InstalledSearchEnginesSettingsFragment : BaseSettingsFragment() {
)
true
}
else -> super.onOptionsItemSelected(item)
else -> false
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -51,8 +51,6 @@ import java.util.concurrent.TimeUnit
@Suppress("TooManyFunctions")
class ManualAddSearchEngineSettingsFragment : BaseSettingsFragment() {
override fun onCreatePreferences(p0: Bundle?, p1: String?) {
setHasOptionsMenu(true)

addPreferencesFromResource(R.xml.manual_add_search_engine)
}

Expand All @@ -72,11 +70,11 @@ class ManualAddSearchEngineSettingsFragment : BaseSettingsFragment() {
menuItemForActiveAsyncTask = null
}

override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) {
inflater.inflate(R.menu.menu_search_engine_manual_add, menu)
override fun onCreateMenu(menu: Menu, menuInflater: MenuInflater) {
menuInflater.inflate(R.menu.menu_search_engine_manual_add, menu)
}

override fun onOptionsItemSelected(item: MenuItem): Boolean {
override fun onMenuItemSelected(menuItem: MenuItem): Boolean {
val openLearnMore = {
val learnMoreUrl = SupportUtils.getSumoURLForTopic(
requireContext(),
Expand All @@ -86,6 +84,8 @@ class ManualAddSearchEngineSettingsFragment : BaseSettingsFragment() {
SearchEngines.learnMoreTapped.record(NoExtras())

TelemetryWrapper.addSearchEngineLearnMoreEvent()

true
}

val saveSearchEngine = {
Expand All @@ -101,9 +101,9 @@ class ManualAddSearchEngineSettingsFragment : BaseSettingsFragment() {

if (isPartialSuccess) {
ViewUtils.hideKeyboard(view)
setUiIsValidatingAsync(true, item)
setUiIsValidatingAsync(true, menuItem)

menuItemForActiveAsyncTask = item
menuItemForActiveAsyncTask = menuItem
scope?.launch {
validateSearchEngine(engineName, searchQuery, requireComponents.client)
}
Expand All @@ -112,15 +112,15 @@ class ManualAddSearchEngineSettingsFragment : BaseSettingsFragment() {

TelemetryWrapper.saveCustomSearchEngineEvent(false)
}

true
}

when (item.itemId) {
return when (menuItem.itemId) {
R.id.learn_more -> openLearnMore()
R.id.menu_save_search_engine -> saveSearchEngine()
else -> return super.onOptionsItemSelected(item)
else -> false
}

return true
}

override fun onCreateView(
Expand Down
Loading

0 comments on commit 1aaec09

Please sign in to comment.