Refactoring

pull/194/merge
M66B 4 years ago
parent 1abfdb7e06
commit f2daedcf7d

@ -6506,9 +6506,9 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
String type = args.getString("type");
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
boolean filter_seen = prefs.getBoolean(FragmentMessages.getFilter("seen", type), false);
boolean filter_unflagged = prefs.getBoolean(FragmentMessages.getFilter("unflagged", type), false);
boolean filter_snoozed = prefs.getBoolean(FragmentMessages.getFilter("snoozed", type), true);
boolean filter_seen = prefs.getBoolean(FragmentMessages.getFilter(context, "seen", viewType, type), false);
boolean filter_unflagged = prefs.getBoolean(FragmentMessages.getFilter(context, "unflagged", viewType, type), false);
boolean filter_snoozed = prefs.getBoolean(FragmentMessages.getFilter(context, "snoozed", viewType, type), true);
List<Long> removed = new ArrayList<>();

@ -86,6 +86,7 @@ import io.requery.android.database.sqlite.SQLiteDatabase;
public class BoundaryCallbackMessages extends PagedList.BoundaryCallback<TupleMessageEx> {
private Context context;
private AdapterMessage.ViewType viewType;
private Long account;
private Long folder;
private boolean server;
@ -108,8 +109,13 @@ public class BoundaryCallbackMessages extends PagedList.BoundaryCallback<TupleMe
void onException(@NonNull Throwable ex);
}
BoundaryCallbackMessages(Context context, long account, long folder, boolean server, SearchCriteria criteria, int pageSize) {
BoundaryCallbackMessages(
Context context,
AdapterMessage.ViewType viewType, long account, long folder,
boolean server, SearchCriteria criteria,
int pageSize) {
this.context = context.getApplicationContext();
this.viewType = viewType;
this.account = (account < 0 ? null : account);
this.folder = (folder < 0 ? null : folder);
this.server = server;
@ -511,8 +517,8 @@ public class BoundaryCallbackMessages extends PagedList.BoundaryCallback<TupleMe
db.folder().setFolderTotal(browsable.id, count < 0 ? null : count);
if (criteria == null) {
boolean filter_seen = prefs.getBoolean(FragmentMessages.getFilter("seen", browsable.type), false);
boolean filter_unflagged = prefs.getBoolean(FragmentMessages.getFilter("unflagged", browsable.type), false);
boolean filter_seen = prefs.getBoolean(FragmentMessages.getFilter(context, "seen", viewType, browsable.type), false);
boolean filter_unflagged = prefs.getBoolean(FragmentMessages.getFilter(context, "unflagged", viewType, browsable.type), false);
EntityLog.log(context, "Boundary filter seen=" + filter_seen + " unflagged=" + filter_unflagged);
List<SearchTerm> and = new ArrayList<>();

@ -675,7 +675,7 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences.
TextView tvFixedDate = inGroup.findViewById(R.id.tvDate);
View vFixedSeparator = inGroup.findViewById(R.id.vSeparator);
String sort = prefs.getString("sort", "time");
String sort = prefs.getString(getSort(getContext(), viewType, type), "time");
inGroup.setVisibility(date_fixed && "time".equals(sort) ? View.INVISIBLE : View.GONE);
tvFixedCategory.setVisibility(View.GONE);
if (cards)
@ -844,8 +844,7 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences.
boolean compact = prefs.getBoolean("compact", false);
int zoom = prefs.getInt("view_zoom", compact ? 0 : 1);
boolean ascending = prefs.getBoolean(
viewType == AdapterMessage.ViewType.THREAD ? "ascending_thread" : "ascending_list", false);
boolean ascending = prefs.getBoolean(getSortOrder(getContext(), viewType, type), false);
boolean filter_duplicates = prefs.getBoolean("filter_duplicates", true);
boolean filter_trash = prefs.getBoolean("filter_trash", false);
@ -922,8 +921,8 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences.
ibSeen.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String name = getFilter("seen", type);
public void onClick(View v) {
String name = getFilter(v.getContext(), "seen", viewType, type);
boolean filter = prefs.getBoolean(name, true);
onMenuFilter(name, !filter);
}
@ -931,8 +930,8 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences.
ibUnflagged.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String name = getFilter("unflagged", type);
public void onClick(View v) {
String name = getFilter(v.getContext(), "unflagged", viewType, type);
boolean filter = prefs.getBoolean(name, true);
onMenuFilter(name, !filter);
}
@ -940,8 +939,8 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences.
ibSnoozed.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String name = getFilter("snoozed", type);
public void onClick(View v) {
String name = getFilter(v.getContext(), "snoozed", viewType, type);
boolean filter = prefs.getBoolean(name, true);
onMenuFilter(name, !filter);
}
@ -4428,13 +4427,12 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences.
public void onPrepareOptionsMenu(Menu menu) {
final Context context = getContext();
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
String sort = prefs.getString("sort", "time");
boolean ascending = prefs.getBoolean(
viewType == AdapterMessage.ViewType.THREAD ? "ascending_thread" : "ascending_list", false);
boolean filter_seen = prefs.getBoolean(getFilter("seen", type), false);
boolean filter_unflagged = prefs.getBoolean(getFilter("unflagged", type), false);
boolean filter_unknown = prefs.getBoolean(getFilter("unknown", type), false);
boolean filter_snoozed = prefs.getBoolean(getFilter("snoozed", type), true);
String sort = prefs.getString(getSort(context, viewType, type), "time");
boolean ascending = prefs.getBoolean(getSortOrder(context, viewType, type), false);
boolean filter_seen = prefs.getBoolean(getFilter(context, "seen", viewType, type), false);
boolean filter_unflagged = prefs.getBoolean(getFilter(context, "unflagged", viewType, type), false);
boolean filter_unknown = prefs.getBoolean(getFilter(context, "unknown", viewType, type), false);
boolean filter_snoozed = prefs.getBoolean(getFilter(context, "snoozed", viewType, type), true);
boolean filter_duplicates = prefs.getBoolean("filter_duplicates", true);
boolean filter_trash = prefs.getBoolean("filter_trash", false);
boolean language_detection = prefs.getBoolean("language_detection", false);
@ -4642,16 +4640,16 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences.
onMenuAscending(!item.isChecked());
return true;
} else if (itemId == R.id.menu_filter_seen) {
onMenuFilter(getFilter("seen", type), !item.isChecked());
onMenuFilter(getFilter(getContext(), "seen", viewType, type), !item.isChecked());
return true;
} else if (itemId == R.id.menu_filter_unflagged) {
onMenuFilter(getFilter("unflagged", type), !item.isChecked());
onMenuFilter(getFilter(getContext(), "unflagged", viewType, type), !item.isChecked());
return true;
} else if (itemId == R.id.menu_filter_unknown) {
onMenuFilter(getFilter("unknown", type), !item.isChecked());
onMenuFilter(getFilter(getContext(), "unknown", viewType, type), !item.isChecked());
return true;
} else if (itemId == R.id.menu_filter_snoozed) {
onMenuFilter(getFilter("snoozed", type), !item.isChecked());
onMenuFilter(getFilter(getContext(), "snoozed", viewType, type), !item.isChecked());
return true;
} else if (itemId == R.id.menu_filter_language) {
onMenuFilterLanguage();
@ -4786,16 +4784,17 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences.
}
private void onMenuSort(String sort) {
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getContext());
prefs.edit().putString("sort", sort).apply();
final Context context = getContext();
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
prefs.edit().putString(getSort(context, viewType, type), sort).apply();
adapter.setSort(sort);
loadMessages(true);
}
private void onMenuAscending(boolean ascending) {
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getContext());
prefs.edit().putBoolean(
viewType == AdapterMessage.ViewType.THREAD ? "ascending_thread" : "ascending_list", ascending).apply();
final Context context = getContext();
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
prefs.edit().putBoolean(getSortOrder(context, viewType, type), ascending).apply();
adapter.setAscending(ascending);
invalidateOptionsMenu();
loadMessages(true);
@ -5027,9 +5026,9 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences.
long folder = args.getLong("folder");
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getContext());
boolean filter_unflagged = prefs.getBoolean(getFilter("unflagged", type), false);
boolean filter_unknown = prefs.getBoolean(getFilter("unknown", type), false);
boolean filter_snoozed = prefs.getBoolean(getFilter("snoozed", type), true);
boolean filter_unflagged = prefs.getBoolean(getFilter(context, "unflagged", viewType, type), false);
boolean filter_unknown = prefs.getBoolean(getFilter(context, "unknown", viewType, type), false);
boolean filter_snoozed = prefs.getBoolean(getFilter(context, "snoozed", viewType, type), true);
boolean language_detection = prefs.getBoolean("language_detection", false);
String filter_language = prefs.getString("filter_language", null);
@ -5381,9 +5380,9 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences.
boolean outbox = EntityFolder.OUTBOX.equals(type);
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
boolean filter_seen = prefs.getBoolean(getFilter("seen", type), false);
boolean filter_unflagged = prefs.getBoolean(getFilter("unflagged", type), false);
boolean filter_unknown = prefs.getBoolean(getFilter("unknown", type), false);
boolean filter_seen = prefs.getBoolean(getFilter(context, "seen", viewType, type), false);
boolean filter_unflagged = prefs.getBoolean(getFilter(context, "unflagged", viewType, type), false);
boolean filter_unknown = prefs.getBoolean(getFilter(context, "unknown", viewType, type), false);
boolean language_detection = prefs.getBoolean("language_detection", false);
String filter_language = prefs.getString("filter_language", null);
boolean filter_active = ((filter_seen && !outbox) ||
@ -6210,7 +6209,15 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences.
return sb.toString();
}
static String getFilter(String name, String type) {
static String getSort(Context context, AdapterMessage.ViewType viewType, String type) {
return "sort";
}
static String getSortOrder(Context context, AdapterMessage.ViewType viewType, String type) {
return (viewType == AdapterMessage.ViewType.THREAD ? "ascending_thread" : "ascending_list");
}
static String getFilter(Context context, String name, AdapterMessage.ViewType viewType, String type) {
return "filter_" + (EntityFolder.isOutgoing(type) ? "out_" : "") + name;
}

@ -105,10 +105,10 @@ public class ViewModelMessages extends ViewModel {
BoundaryCallbackMessages boundary = null;
if (viewType == AdapterMessage.ViewType.FOLDER)
boundary = new BoundaryCallbackMessages(context,
args.account, args.folder, true, args.criteria, REMOTE_PAGE_SIZE);
viewType, args.account, args.folder, true, args.criteria, REMOTE_PAGE_SIZE);
else if (viewType == AdapterMessage.ViewType.SEARCH)
boundary = new BoundaryCallbackMessages(context,
args.account, args.folder, args.server, args.criteria,
viewType, args.account, args.folder, args.server, args.criteria,
args.server ? REMOTE_PAGE_SIZE : SEARCH_PAGE_SIZE);
LivePagedListBuilder<Integer, TupleMessageEx> builder = null;
@ -503,13 +503,12 @@ public class ViewModelMessages extends ViewModel {
this.server = server;
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
this.sort = prefs.getString("sort", "time");
this.ascending = prefs.getBoolean(
viewType == AdapterMessage.ViewType.THREAD ? "ascending_thread" : "ascending_list", false);
this.filter_seen = prefs.getBoolean(FragmentMessages.getFilter("seen", type), false);
this.filter_unflagged = prefs.getBoolean(FragmentMessages.getFilter("unflagged", type), false);
this.filter_unknown = prefs.getBoolean(FragmentMessages.getFilter("unknown", type), false);
this.filter_snoozed = prefs.getBoolean(FragmentMessages.getFilter("snoozed", type), true);
this.sort = prefs.getString(FragmentMessages.getSort(context, viewType, type), "time");
this.ascending = prefs.getBoolean(FragmentMessages.getSortOrder(context, viewType, type), false);
this.filter_seen = prefs.getBoolean(FragmentMessages.getFilter(context, "seen", viewType, type), false);
this.filter_unflagged = prefs.getBoolean(FragmentMessages.getFilter(context, "unflagged", viewType, type), false);
this.filter_unknown = prefs.getBoolean(FragmentMessages.getFilter(context, "unknown", viewType, type), false);
this.filter_snoozed = prefs.getBoolean(FragmentMessages.getFilter(context, "snoozed", viewType, type), true);
boolean language_detection = prefs.getBoolean("language_detection", false);
String filter_language = prefs.getString("filter_language", null);

Loading…
Cancel
Save