From: Tobias Brunner Date: Wed, 5 Feb 2025 14:27:37 +0000 (+0100) Subject: android: Replace deprecated fragment menu APIs X-Git-Tag: android-2.5.3^2~8 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9a92088bb498a9fd7e9d79295d8ae4040b4b2c66;p=thirdparty%2Fstrongswan.git android: Replace deprecated fragment menu APIs --- diff --git a/src/frontends/android/app/src/main/java/org/strongswan/android/ui/SelectedApplicationsListFragment.java b/src/frontends/android/app/src/main/java/org/strongswan/android/ui/SelectedApplicationsListFragment.java index 5ef78b2959..89b5815301 100644 --- a/src/frontends/android/app/src/main/java/org/strongswan/android/ui/SelectedApplicationsListFragment.java +++ b/src/frontends/android/app/src/main/java/org/strongswan/android/ui/SelectedApplicationsListFragment.java @@ -44,12 +44,13 @@ import java.util.TreeSet; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.appcompat.widget.SearchView; +import androidx.core.view.MenuProvider; import androidx.fragment.app.ListFragment; import androidx.loader.app.LoaderManager; import androidx.loader.content.AsyncTaskLoader; import androidx.loader.content.Loader; -public class SelectedApplicationsListFragment extends ListFragment implements LoaderManager.LoaderCallbacks, List>>, SearchView.OnQueryTextListener +public class SelectedApplicationsListFragment extends ListFragment implements MenuProvider, LoaderManager.LoaderCallbacks, List>>, SearchView.OnQueryTextListener { private SelectedApplicationsAdapter mAdapter; private SortedSet mSelection; @@ -58,7 +59,7 @@ public class SelectedApplicationsListFragment extends ListFragment implements Lo public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); - setHasOptionsMenu(true); + requireActivity().addMenuProvider(this, getViewLifecycleOwner()); final boolean readOnly = getActivity().getIntent().getBooleanExtra(VpnProfileDataSource.KEY_READ_ONLY, false); getListView().setChoiceMode(readOnly ? ListView.CHOICE_MODE_NONE : ListView.CHOICE_MODE_MULTIPLE); @@ -134,17 +135,21 @@ public class SelectedApplicationsListFragment extends ListFragment implements Lo } @Override - public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) + public void onCreateMenu(@NonNull Menu menu, @NonNull MenuInflater menuInflater) { MenuItem item = menu.add(R.string.search); item.setIcon(android.R.drawable.ic_menu_search); - item.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM); + item.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS); SearchView sv = new SearchView(getActivity()); sv.setOnQueryTextListener(this); item.setActionView(sv); + } - super.onCreateOptionsMenu(menu, inflater); + @Override + public boolean onMenuItemSelected(@NonNull MenuItem menuItem) + { + return false; } @Override diff --git a/src/frontends/android/app/src/main/java/org/strongswan/android/ui/TrustedCertificateListFragment.java b/src/frontends/android/app/src/main/java/org/strongswan/android/ui/TrustedCertificateListFragment.java index 1ceba87f7f..940170943f 100644 --- a/src/frontends/android/app/src/main/java/org/strongswan/android/ui/TrustedCertificateListFragment.java +++ b/src/frontends/android/app/src/main/java/org/strongswan/android/ui/TrustedCertificateListFragment.java @@ -44,13 +44,15 @@ import java.util.Map.Entry; import androidx.annotation.NonNull; import androidx.annotation.Nullable; +import androidx.core.view.MenuProvider; import androidx.fragment.app.ListFragment; +import androidx.lifecycle.Lifecycle; import androidx.loader.app.LoaderManager; import androidx.loader.app.LoaderManager.LoaderCallbacks; import androidx.loader.content.AsyncTaskLoader; import androidx.loader.content.Loader; -public class TrustedCertificateListFragment extends ListFragment implements LoaderCallbacks>, OnQueryTextListener +public class TrustedCertificateListFragment extends ListFragment implements MenuProvider, LoaderCallbacks>, OnQueryTextListener { public static final String EXTRA_CERTIFICATE_SOURCE = "certificate_source"; private OnTrustedCertificateSelectedListener mListener; @@ -69,7 +71,7 @@ public class TrustedCertificateListFragment extends ListFragment implements Load public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); - setHasOptionsMenu(true); + requireActivity().addMenuProvider(this, getViewLifecycleOwner(), Lifecycle.State.RESUMED); setEmptyText(getString(R.string.no_certificates)); @@ -105,17 +107,23 @@ public class TrustedCertificateListFragment extends ListFragment implements Load } @Override - public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) + public void onCreateMenu(@NonNull Menu menu, @NonNull MenuInflater menuInflater) { MenuItem item = menu.add(R.string.search); item.setIcon(android.R.drawable.ic_menu_search); - item.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM); + item.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS); SearchView sv = new SearchView(getActivity()); sv.setOnQueryTextListener(this); item.setActionView(sv); } + @Override + public boolean onMenuItemSelected(@NonNull MenuItem menuItem) + { + return false; + } + @Override public boolean onQueryTextSubmit(String query) { /* already handled when the text changes */ diff --git a/src/frontends/android/app/src/main/java/org/strongswan/android/ui/VpnProfileListFragment.java b/src/frontends/android/app/src/main/java/org/strongswan/android/ui/VpnProfileListFragment.java index 6a22fdf5b1..9b25785f18 100644 --- a/src/frontends/android/app/src/main/java/org/strongswan/android/ui/VpnProfileListFragment.java +++ b/src/frontends/android/app/src/main/java/org/strongswan/android/ui/VpnProfileListFragment.java @@ -57,10 +57,13 @@ import java.util.Objects; import java.util.Set; import java.util.UUID; +import androidx.annotation.NonNull; +import androidx.core.view.MenuProvider; import androidx.fragment.app.Fragment; +import androidx.lifecycle.Lifecycle; import androidx.localbroadcastmanager.content.LocalBroadcastManager; -public class VpnProfileListFragment extends Fragment +public class VpnProfileListFragment extends Fragment implements MenuProvider { private static final String SELECTED_KEY = "SELECTED"; @@ -148,6 +151,7 @@ public class VpnProfileListFragment extends Fragment if (!mReadOnly) { + requireActivity().addMenuProvider(this, getViewLifecycleOwner()); mListView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE_MODAL); mListView.setMultiChoiceModeListener(mVpnProfileSelected); } @@ -167,8 +171,6 @@ public class VpnProfileListFragment extends Fragment if (!mReadOnly) { - setHasOptionsMenu(true); - ArrayList selected = null; if (savedInstanceState != null) { @@ -218,13 +220,13 @@ public class VpnProfileListFragment extends Fragment } @Override - public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) + public void onCreateMenu(@NonNull Menu menu, @NonNull MenuInflater menuInflater) { - inflater.inflate(R.menu.profile_list, menu); + menuInflater.inflate(R.menu.profile_list, menu); } @Override - public void onPrepareOptionsMenu(Menu menu) + public void onPrepareMenu(@NonNull Menu menu) { final MenuItem addProfile = menu.findItem(R.id.add_profile); if (addProfile != null) @@ -236,16 +238,16 @@ public class VpnProfileListFragment extends Fragment } @Override - public boolean onOptionsItemSelected(MenuItem item) + public boolean onMenuItemSelected(@NonNull MenuItem menuItem) { - if (item.getItemId() == R.id.add_profile) + if (menuItem.getItemId() == R.id.add_profile) { Intent connectionIntent = new Intent(getActivity(), VpnProfileDetailActivity.class); startActivity(connectionIntent); return true; } - return super.onOptionsItemSelected(item); + return false; } private final OnItemClickListener mVpnProfileClicked = new OnItemClickListener()