From 584a65da52529fb875471e511d1b01ae3a3ea5d4 Mon Sep 17 00:00:00 2001 From: Alexander Gramiak Date: Sun, 16 Oct 2022 14:34:18 -0600 Subject: [PATCH] [fenix] For https://github.com/mozilla-mobile/fenix/issues/21414: Use MenuProvider and MenuHost interface methods onPrepareOptionsMenu was not being called on invalidateOptionsMenu, which led to the saveButton being left enabled even with invalid hostnames, usersnames, and passwords. --- .../fenix/settings/logins/fragment/AddLoginFragment.kt | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/org/mozilla/fenix/settings/logins/fragment/AddLoginFragment.kt b/app/src/main/java/org/mozilla/fenix/settings/logins/fragment/AddLoginFragment.kt index c84583afc..9e26aaada 100644 --- a/app/src/main/java/org/mozilla/fenix/settings/logins/fragment/AddLoginFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/settings/logins/fragment/AddLoginFragment.kt @@ -331,14 +331,16 @@ class AddLoginFragment : Fragment(R.layout.fragment_add_login), MenuProvider { } private fun setSaveButtonState() { - activity?.invalidateOptionsMenu() + activity?.invalidateMenu() } override fun onCreateMenu(menu: Menu, inflater: MenuInflater) { inflater.inflate(R.menu.login_save, menu) } - override fun onPrepareOptionsMenu(menu: Menu) { + override fun onPrepareMenu(menu: Menu) { + super.onPrepareMenu(menu) + val saveButton = menu.findItem(R.id.save_login_button) val changesMadeWithNoErrors = validHostname && validUsername && validPassword saveButton.isEnabled = changesMadeWithNoErrors