Use MenuProvider (#2436)
This commit is contained in:
parent
af1223e4a5
commit
880dc4d719
|
|
@ -23,6 +23,7 @@ import android.content.Intent;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.Menu;
|
import android.view.Menu;
|
||||||
|
import android.view.MenuInflater;
|
||||||
import android.view.MenuItem;
|
import android.view.MenuItem;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
|
|
@ -33,6 +34,7 @@ import androidx.activity.result.contract.ActivityResultContracts;
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import androidx.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
import androidx.appcompat.widget.SearchView;
|
import androidx.appcompat.widget.SearchView;
|
||||||
|
import androidx.core.view.MenuProvider;
|
||||||
import androidx.recyclerview.widget.ConcatAdapter;
|
import androidx.recyclerview.widget.ConcatAdapter;
|
||||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||||
import androidx.recyclerview.widget.RecyclerView;
|
import androidx.recyclerview.widget.RecyclerView;
|
||||||
|
|
@ -49,7 +51,7 @@ import org.lsposed.manager.util.ModuleUtil;
|
||||||
import rikka.material.app.LocaleDelegate;
|
import rikka.material.app.LocaleDelegate;
|
||||||
import rikka.recyclerview.RecyclerViewKt;
|
import rikka.recyclerview.RecyclerViewKt;
|
||||||
|
|
||||||
public class AppListFragment extends BaseFragment {
|
public class AppListFragment extends BaseFragment implements MenuProvider {
|
||||||
|
|
||||||
public SearchView searchView;
|
public SearchView searchView;
|
||||||
private ScopeAdapter scopeAdapter;
|
private ScopeAdapter scopeAdapter;
|
||||||
|
|
@ -191,16 +193,12 @@ public class AppListFragment extends BaseFragment {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onOptionsItemSelected(@NonNull MenuItem item) {
|
public boolean onMenuItemSelected(@NonNull MenuItem item) {
|
||||||
if (scopeAdapter.onOptionsItemSelected(item)) {
|
return scopeAdapter.onOptionsItemSelected(item);
|
||||||
return true;
|
|
||||||
}
|
|
||||||
return super.onOptionsItemSelected(item);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onPrepareOptionsMenu(@NonNull Menu menu) {
|
public void onPrepareMenu(@NonNull Menu menu) {
|
||||||
super.onPrepareOptionsMenu(menu);
|
|
||||||
searchView = (SearchView) menu.findItem(R.id.menu_search).getActionView();
|
searchView = (SearchView) menu.findItem(R.id.menu_search).getActionView();
|
||||||
searchView.setOnQueryTextListener(searchListener);
|
searchView.setOnQueryTextListener(searchListener);
|
||||||
searchView.addOnAttachStateChangeListener(new View.OnAttachStateChangeListener() {
|
searchView.addOnAttachStateChangeListener(new View.OnAttachStateChangeListener() {
|
||||||
|
|
@ -219,6 +217,11 @@ public class AppListFragment extends BaseFragment {
|
||||||
scopeAdapter.onPrepareOptionsMenu(menu);
|
scopeAdapter.onPrepareOptionsMenu(menu);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onCreateMenu(@NonNull Menu menu, @NonNull MenuInflater menuInflater) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onContextItemSelected(@NonNull MenuItem item) {
|
public boolean onContextItemSelected(@NonNull MenuItem item) {
|
||||||
if (scopeAdapter.onContextItemSelected(item)) {
|
if (scopeAdapter.onContextItemSelected(item)) {
|
||||||
|
|
|
||||||
|
|
@ -27,6 +27,7 @@ import android.widget.Toast;
|
||||||
import androidx.annotation.IdRes;
|
import androidx.annotation.IdRes;
|
||||||
import androidx.annotation.StringRes;
|
import androidx.annotation.StringRes;
|
||||||
import androidx.appcompat.widget.Toolbar;
|
import androidx.appcompat.widget.Toolbar;
|
||||||
|
import androidx.core.view.MenuProvider;
|
||||||
import androidx.fragment.app.Fragment;
|
import androidx.fragment.app.Fragment;
|
||||||
import androidx.navigation.NavController;
|
import androidx.navigation.NavController;
|
||||||
import androidx.navigation.NavDirections;
|
import androidx.navigation.NavDirections;
|
||||||
|
|
@ -43,7 +44,7 @@ import java.util.concurrent.Callable;
|
||||||
import java.util.concurrent.Future;
|
import java.util.concurrent.Future;
|
||||||
import java.util.concurrent.FutureTask;
|
import java.util.concurrent.FutureTask;
|
||||||
|
|
||||||
public class BaseFragment extends Fragment {
|
public abstract class BaseFragment extends Fragment {
|
||||||
private final Handler uiHandler = new Handler(Looper.getMainLooper());
|
private final Handler uiHandler = new Handler(Looper.getMainLooper());
|
||||||
|
|
||||||
public void navigateUp() {
|
public void navigateUp() {
|
||||||
|
|
@ -92,8 +93,11 @@ public class BaseFragment extends Fragment {
|
||||||
if (tipsView != null) tipsView.setTooltipText(title);
|
if (tipsView != null) tipsView.setTooltipText(title);
|
||||||
if (menu != -1) {
|
if (menu != -1) {
|
||||||
toolbar.inflateMenu(menu);
|
toolbar.inflateMenu(menu);
|
||||||
toolbar.setOnMenuItemClickListener(this::onOptionsItemSelected);
|
if (this instanceof MenuProvider) {
|
||||||
onPrepareOptionsMenu(toolbar.getMenu());
|
var self = (MenuProvider) this;
|
||||||
|
toolbar.setOnMenuItemClickListener(self::onMenuItemSelected);
|
||||||
|
self.onPrepareMenu(toolbar.getMenu());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -149,5 +153,4 @@ public class BaseFragment extends Fragment {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -26,12 +26,15 @@ import android.os.Bundle;
|
||||||
import android.text.method.LinkMovementMethod;
|
import android.text.method.LinkMovementMethod;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.Menu;
|
import android.view.Menu;
|
||||||
|
import android.view.MenuInflater;
|
||||||
|
import android.view.MenuItem;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import androidx.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
import androidx.core.text.HtmlCompat;
|
import androidx.core.text.HtmlCompat;
|
||||||
|
import androidx.core.view.MenuProvider;
|
||||||
import androidx.fragment.app.DialogFragment;
|
import androidx.fragment.app.DialogFragment;
|
||||||
|
|
||||||
import org.lsposed.lspd.ILSPManagerService;
|
import org.lsposed.lspd.ILSPManagerService;
|
||||||
|
|
@ -54,8 +57,7 @@ import java.util.HashMap;
|
||||||
import rikka.core.util.ClipboardUtils;
|
import rikka.core.util.ClipboardUtils;
|
||||||
import rikka.material.app.LocaleDelegate;
|
import rikka.material.app.LocaleDelegate;
|
||||||
|
|
||||||
public class HomeFragment extends BaseFragment {
|
public class HomeFragment extends BaseFragment implements MenuProvider {
|
||||||
|
|
||||||
private FragmentHomeBinding binding;
|
private FragmentHomeBinding binding;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
@ -65,7 +67,7 @@ public class HomeFragment extends BaseFragment {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onPrepareOptionsMenu(Menu menu) {
|
public void onPrepareMenu(Menu menu) {
|
||||||
menu.findItem(R.id.menu_about).setOnMenuItemClickListener(v -> {
|
menu.findItem(R.id.menu_about).setOnMenuItemClickListener(v -> {
|
||||||
showAbout();
|
showAbout();
|
||||||
return true;
|
return true;
|
||||||
|
|
@ -76,6 +78,16 @@ public class HomeFragment extends BaseFragment {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onCreateMenu(@NonNull Menu menu, @NonNull MenuInflater menuInflater) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean onMenuItemSelected(@NonNull MenuItem menuItem) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
|
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
|
||||||
binding = FragmentHomeBinding.inflate(inflater, container, false);
|
binding = FragmentHomeBinding.inflate(inflater, container, false);
|
||||||
|
|
|
||||||
|
|
@ -27,6 +27,7 @@ import android.os.Looper;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.Menu;
|
import android.view.Menu;
|
||||||
|
import android.view.MenuInflater;
|
||||||
import android.view.MenuItem;
|
import android.view.MenuItem;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
|
|
@ -36,6 +37,7 @@ import androidx.activity.result.ActivityResultLauncher;
|
||||||
import androidx.activity.result.contract.ActivityResultContracts;
|
import androidx.activity.result.contract.ActivityResultContracts;
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import androidx.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
|
import androidx.core.view.MenuProvider;
|
||||||
import androidx.fragment.app.Fragment;
|
import androidx.fragment.app.Fragment;
|
||||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||||
import androidx.recyclerview.widget.RecyclerView;
|
import androidx.recyclerview.widget.RecyclerView;
|
||||||
|
|
@ -67,7 +69,7 @@ import java.util.stream.IntStream;
|
||||||
import rikka.material.app.LocaleDelegate;
|
import rikka.material.app.LocaleDelegate;
|
||||||
import rikka.recyclerview.RecyclerViewKt;
|
import rikka.recyclerview.RecyclerViewKt;
|
||||||
|
|
||||||
public class LogsFragment extends BaseFragment {
|
public class LogsFragment extends BaseFragment implements MenuProvider {
|
||||||
private final Handler handler = new Handler(Looper.getMainLooper());
|
private final Handler handler = new Handler(Looper.getMainLooper());
|
||||||
private FragmentPagerBinding binding;
|
private FragmentPagerBinding binding;
|
||||||
private LogPageAdapter adapter;
|
private LogPageAdapter adapter;
|
||||||
|
|
@ -129,7 +131,7 @@ public class LogsFragment extends BaseFragment {
|
||||||
|
|
||||||
@SuppressLint("NotifyDataSetChanged")
|
@SuppressLint("NotifyDataSetChanged")
|
||||||
@Override
|
@Override
|
||||||
public boolean onOptionsItemSelected(@NonNull MenuItem item) {
|
public boolean onMenuItemSelected(@NonNull MenuItem item) {
|
||||||
var itemId = item.getItemId();
|
var itemId = item.getItemId();
|
||||||
if (itemId == R.id.menu_save) {
|
if (itemId == R.id.menu_save) {
|
||||||
save();
|
save();
|
||||||
|
|
@ -142,20 +144,23 @@ public class LogsFragment extends BaseFragment {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
if (optionsItemSelectListener != null) {
|
if (optionsItemSelectListener != null) {
|
||||||
if (optionsItemSelectListener.onOptionsItemSelected(item))
|
return optionsItemSelectListener.onOptionsItemSelected(item);
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
return super.onOptionsItemSelected(item);
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onPrepareOptionsMenu(@NonNull Menu menu) {
|
public void onPrepareMenu(@NonNull Menu menu) {
|
||||||
super.onPrepareOptionsMenu(menu);
|
|
||||||
wordWrap = menu.findItem(R.id.menu_word_wrap);
|
wordWrap = menu.findItem(R.id.menu_word_wrap);
|
||||||
wordWrap.setChecked(App.getPreferences().getBoolean("enable_word_wrap", false));
|
wordWrap.setChecked(App.getPreferences().getBoolean("enable_word_wrap", false));
|
||||||
binding.viewPager.setUserInputEnabled(wordWrap.isChecked());
|
binding.viewPager.setUserInputEnabled(wordWrap.isChecked());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onCreateMenu(@NonNull Menu menu, @NonNull MenuInflater menuInflater) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onDestroyView() {
|
public void onDestroyView() {
|
||||||
super.onDestroyView();
|
super.onDestroyView();
|
||||||
|
|
|
||||||
|
|
@ -39,6 +39,7 @@ import android.text.style.TypefaceSpan;
|
||||||
import android.util.SparseArray;
|
import android.util.SparseArray;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.Menu;
|
import android.view.Menu;
|
||||||
|
import android.view.MenuInflater;
|
||||||
import android.view.MenuItem;
|
import android.view.MenuItem;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
|
|
@ -52,6 +53,7 @@ import androidx.annotation.Nullable;
|
||||||
import androidx.appcompat.widget.SearchView;
|
import androidx.appcompat.widget.SearchView;
|
||||||
import androidx.constraintlayout.widget.ConstraintLayout;
|
import androidx.constraintlayout.widget.ConstraintLayout;
|
||||||
import androidx.coordinatorlayout.widget.CoordinatorLayout;
|
import androidx.coordinatorlayout.widget.CoordinatorLayout;
|
||||||
|
import androidx.core.view.MenuProvider;
|
||||||
import androidx.fragment.app.Fragment;
|
import androidx.fragment.app.Fragment;
|
||||||
import androidx.navigation.NavOptions;
|
import androidx.navigation.NavOptions;
|
||||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||||
|
|
@ -92,7 +94,7 @@ import rikka.core.util.ResourceUtils;
|
||||||
import rikka.material.app.LocaleDelegate;
|
import rikka.material.app.LocaleDelegate;
|
||||||
import rikka.recyclerview.RecyclerViewKt;
|
import rikka.recyclerview.RecyclerViewKt;
|
||||||
|
|
||||||
public class ModulesFragment extends BaseFragment implements ModuleUtil.ModuleListener, RepoLoader.RepoListener {
|
public class ModulesFragment extends BaseFragment implements ModuleUtil.ModuleListener, RepoLoader.RepoListener, MenuProvider {
|
||||||
private static final PackageManager pm = App.getInstance().getPackageManager();
|
private static final PackageManager pm = App.getInstance().getPackageManager();
|
||||||
private static final ModuleUtil moduleUtil = ModuleUtil.getInstance();
|
private static final ModuleUtil moduleUtil = ModuleUtil.getInstance();
|
||||||
private static final RepoLoader repoLoader = RepoLoader.getInstance();
|
private static final RepoLoader repoLoader = RepoLoader.getInstance();
|
||||||
|
|
@ -190,7 +192,7 @@ public class ModulesFragment extends BaseFragment implements ModuleUtil.ModuleLi
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onPrepareOptionsMenu(Menu menu) {
|
public void onPrepareMenu(Menu menu) {
|
||||||
searchView = (SearchView) menu.findItem(R.id.menu_search).getActionView();
|
searchView = (SearchView) menu.findItem(R.id.menu_search).getActionView();
|
||||||
searchView.setOnQueryTextListener(searchListener);
|
searchView.setOnQueryTextListener(searchListener);
|
||||||
searchView.addOnAttachStateChangeListener(new View.OnAttachStateChangeListener() {
|
searchView.addOnAttachStateChangeListener(new View.OnAttachStateChangeListener() {
|
||||||
|
|
@ -206,6 +208,16 @@ public class ModulesFragment extends BaseFragment implements ModuleUtil.ModuleLi
|
||||||
searchView.findViewById(androidx.appcompat.R.id.search_edit_frame).setLayoutDirection(View.LAYOUT_DIRECTION_INHERIT);
|
searchView.findViewById(androidx.appcompat.R.id.search_edit_frame).setLayoutDirection(View.LAYOUT_DIRECTION_INHERIT);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onCreateMenu(@NonNull Menu menu, @NonNull MenuInflater menuInflater) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean onMenuItemSelected(@NonNull MenuItem menuItem) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onResume() {
|
public void onResume() {
|
||||||
super.onResume();
|
super.onResume();
|
||||||
|
|
|
||||||
|
|
@ -34,6 +34,7 @@ import android.text.style.StyleSpan;
|
||||||
import android.text.style.TypefaceSpan;
|
import android.text.style.TypefaceSpan;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.Menu;
|
import android.view.Menu;
|
||||||
|
import android.view.MenuInflater;
|
||||||
import android.view.MenuItem;
|
import android.view.MenuItem;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
|
|
@ -46,6 +47,7 @@ import androidx.annotation.NonNull;
|
||||||
import androidx.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
import androidx.appcompat.widget.SearchView;
|
import androidx.appcompat.widget.SearchView;
|
||||||
import androidx.constraintlayout.widget.ConstraintLayout;
|
import androidx.constraintlayout.widget.ConstraintLayout;
|
||||||
|
import androidx.core.view.MenuProvider;
|
||||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||||
import androidx.recyclerview.widget.RecyclerView;
|
import androidx.recyclerview.widget.RecyclerView;
|
||||||
|
|
||||||
|
|
@ -74,7 +76,7 @@ import rikka.core.util.LabelComparator;
|
||||||
import rikka.core.util.ResourceUtils;
|
import rikka.core.util.ResourceUtils;
|
||||||
import rikka.recyclerview.RecyclerViewKt;
|
import rikka.recyclerview.RecyclerViewKt;
|
||||||
|
|
||||||
public class RepoFragment extends BaseFragment implements RepoLoader.RepoListener, ModuleUtil.ModuleListener {
|
public class RepoFragment extends BaseFragment implements RepoLoader.RepoListener, ModuleUtil.ModuleListener, MenuProvider {
|
||||||
protected FragmentRepoBinding binding;
|
protected FragmentRepoBinding binding;
|
||||||
protected SearchView searchView;
|
protected SearchView searchView;
|
||||||
private SearchView.OnQueryTextListener mSearchListener;
|
private SearchView.OnQueryTextListener mSearchListener;
|
||||||
|
|
@ -173,7 +175,7 @@ public class RepoFragment extends BaseFragment implements RepoLoader.RepoListene
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onPrepareOptionsMenu(Menu menu) {
|
public void onPrepareMenu(Menu menu) {
|
||||||
searchView = (SearchView) menu.findItem(R.id.menu_search).getActionView();
|
searchView = (SearchView) menu.findItem(R.id.menu_search).getActionView();
|
||||||
searchView.setOnQueryTextListener(mSearchListener);
|
searchView.setOnQueryTextListener(mSearchListener);
|
||||||
searchView.addOnAttachStateChangeListener(new View.OnAttachStateChangeListener() {
|
searchView.addOnAttachStateChangeListener(new View.OnAttachStateChangeListener() {
|
||||||
|
|
@ -198,6 +200,10 @@ public class RepoFragment extends BaseFragment implements RepoLoader.RepoListene
|
||||||
menu.findItem(R.id.item_upgradable_first).setChecked(App.getPreferences().getBoolean("upgradable_first", true));
|
menu.findItem(R.id.item_upgradable_first).setChecked(App.getPreferences().getBoolean("upgradable_first", true));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onCreateMenu(@NonNull Menu menu, @NonNull MenuInflater menuInflater) {
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onDestroyView() {
|
public void onDestroyView() {
|
||||||
super.onDestroyView();
|
super.onDestroyView();
|
||||||
|
|
@ -239,7 +245,7 @@ public class RepoFragment extends BaseFragment implements RepoLoader.RepoListene
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onOptionsItemSelected(@NonNull MenuItem item) {
|
public boolean onMenuItemSelected(@NonNull MenuItem item) {
|
||||||
int itemId = item.getItemId();
|
int itemId = item.getItemId();
|
||||||
if (itemId == R.id.item_sort_by_name) {
|
if (itemId == R.id.item_sort_by_name) {
|
||||||
item.setChecked(true);
|
item.setChecked(true);
|
||||||
|
|
@ -253,8 +259,10 @@ public class RepoFragment extends BaseFragment implements RepoLoader.RepoListene
|
||||||
item.setChecked(!item.isChecked());
|
item.setChecked(!item.isChecked());
|
||||||
App.getPreferences().edit().putBoolean("upgradable_first", item.isChecked()).apply();
|
App.getPreferences().edit().putBoolean("upgradable_first", item.isChecked()).apply();
|
||||||
adapter.refresh();
|
adapter.refresh();
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
return super.onOptionsItemSelected(item);
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
private class RepoAdapter extends EmptyStateRecyclerView.EmptyStateAdapter<RepoAdapter.ViewHolder> implements Filterable {
|
private class RepoAdapter extends EmptyStateRecyclerView.EmptyStateAdapter<RepoAdapter.ViewHolder> implements Filterable {
|
||||||
|
|
|
||||||
|
|
@ -34,6 +34,8 @@ import android.text.style.ForegroundColorSpan;
|
||||||
import android.text.style.RelativeSizeSpan;
|
import android.text.style.RelativeSizeSpan;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
|
import android.view.Menu;
|
||||||
|
import android.view.MenuInflater;
|
||||||
import android.view.MenuItem;
|
import android.view.MenuItem;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
|
|
@ -48,6 +50,7 @@ import android.widget.TextView;
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import androidx.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
|
import androidx.core.view.MenuProvider;
|
||||||
import androidx.fragment.app.DialogFragment;
|
import androidx.fragment.app.DialogFragment;
|
||||||
import androidx.fragment.app.Fragment;
|
import androidx.fragment.app.Fragment;
|
||||||
import androidx.fragment.app.FragmentManager;
|
import androidx.fragment.app.FragmentManager;
|
||||||
|
|
@ -100,7 +103,7 @@ import rikka.material.app.LocaleDelegate;
|
||||||
import rikka.recyclerview.RecyclerViewKt;
|
import rikka.recyclerview.RecyclerViewKt;
|
||||||
import rikka.widget.borderview.BorderView;
|
import rikka.widget.borderview.BorderView;
|
||||||
|
|
||||||
public class RepoItemFragment extends BaseFragment implements RepoLoader.RepoListener {
|
public class RepoItemFragment extends BaseFragment implements RepoLoader.RepoListener, MenuProvider {
|
||||||
FragmentPagerBinding binding;
|
FragmentPagerBinding binding;
|
||||||
OnlineModule module;
|
OnlineModule module;
|
||||||
private ReleaseAdapter releaseAdapter;
|
private ReleaseAdapter releaseAdapter;
|
||||||
|
|
@ -222,12 +225,18 @@ public class RepoItemFragment extends BaseFragment implements RepoLoader.RepoLis
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onOptionsItemSelected(@NonNull MenuItem item) {
|
public void onCreateMenu(@NonNull Menu menu, @NonNull MenuInflater menuInflater) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean onMenuItemSelected(@NonNull MenuItem item) {
|
||||||
int id = item.getItemId();
|
int id = item.getItemId();
|
||||||
if (id == R.id.menu_open_in_browser) {
|
if (id == R.id.menu_open_in_browser) {
|
||||||
NavUtil.startURL(requireActivity(), "https://modules.lsposed.org/module/" + module.getName());
|
NavUtil.startURL(requireActivity(), "https://modules.lsposed.org/module/" + module.getName());
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
return super.onOptionsItemSelected(item);
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue