Added rule sort options

This commit is contained in:
M66B
2023-02-19 11:09:31 +01:00
parent 14627ab57e
commit dec6931f9b
5 changed files with 103 additions and 8 deletions

View File

@@ -173,14 +173,18 @@ public class FragmentRules extends FragmentBase {
searching = savedInstanceState.getString("fair:searching");
adapter.search(searching);
DB db = DB.getInstance(getContext());
final Context context = getContext();
DB db = DB.getInstance(context);
db.rule().liveRules(folder).observe(getViewLifecycleOwner(), new Observer<List<TupleRuleEx>>() {
@Override
public void onChanged(List<TupleRuleEx> rules) {
if (rules == null)
rules = new ArrayList<>();
adapter.set(protocol, rules);
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
String sort = prefs.getString("rule_sort", "order");
adapter.set(protocol, sort, rules);
pbWait.setVisibility(View.GONE);
grpReady.setVisibility(View.VISIBLE);
@@ -270,13 +274,35 @@ public class FragmentRules extends FragmentBase {
MenuCompat.setGroupDividerEnabled(menu, true);
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getContext());
String sort = prefs.getString("rule_sort", "order");
if ("last_applied".equals(sort))
menu.findItem(R.id.menu_sort_on_last_applied).setChecked(true);
else if ("applied".equals(sort))
menu.findItem(R.id.menu_sort_on_applied).setChecked(true);
else
menu.findItem(R.id.menu_sort_on_order).setChecked(true);
super.onCreateOptionsMenu(menu, inflater);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int itemId = item.getItemId();
if (itemId == R.id.menu_export) {
if (itemId == R.id.menu_sort_on_order) {
item.setChecked(true);
onMenuSort("order");
return true;
} else if (itemId == R.id.menu_sort_on_applied) {
item.setChecked(true);
onMenuSort("applied");
return true;
} else if (itemId == R.id.menu_sort_on_last_applied) {
item.setChecked(true);
onMenuSort("last_applied");
return true;
} else if (itemId == R.id.menu_export) {
onMenuExport();
return true;
} else if (itemId == R.id.menu_import) {
@@ -289,6 +315,13 @@ public class FragmentRules extends FragmentBase {
return super.onOptionsItemSelected(item);
}
private void onMenuSort(String sort) {
final Context context = getContext();
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
prefs.edit().putString("rule_sort", sort).apply();
adapter.setSort(sort);
}
private void onMenuExport() {
final Context context = getContext();
if (!ActivityBilling.isPro(context)) {