1
0
Fork 0
mirror of https://github.com/M66B/FairEmail.git synced 2025-02-21 21:57:19 +00:00

Make zoom dynamic, refactoring

This commit is contained in:
M66B 2018-12-30 16:33:52 +00:00
parent 1a99188b85
commit 9cbf4ab9eb
2 changed files with 42 additions and 27 deletions

View file

@ -112,6 +112,7 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
private FragmentManager fragmentManager;
private ViewType viewType;
private boolean outgoing;
private int zoom;
private boolean internet;
private IProperties properties;
@ -1691,6 +1692,7 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
this.fragmentManager = fragmentManager;
this.viewType = viewType;
this.outgoing = outgoing;
this.zoom = zoom;
this.internet = (Helper.isMetered(context, false) != null);
this.properties = properties;
@ -1727,8 +1729,11 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
}
void setZoom(int zoom) {
textSize = Helper.getTextSize(context, zoom);
notifyDataSetChanged();
if (this.zoom != zoom) {
this.zoom = zoom;
textSize = Helper.getTextSize(context, zoom);
notifyDataSetChanged();
}
}
void checkInternet() {

View file

@ -100,17 +100,17 @@ public class FragmentMessages extends FragmentEx {
private FloatingActionButton fab;
private FloatingActionButton fabMore;
private long account = -1;
private long folder = -1;
private boolean outgoing = false;
private String thread = null;
private long id = -1;
private String search = null;
private long account;
private long folder;
private boolean outgoing;
private String thread;
private long id;
private String search;
private int zoom = 0;
private boolean threading = true;
private boolean actionbar = false;
private boolean autoclose = false;
private boolean compact;
private boolean threading;
private boolean actionbar;
private boolean autoclose;
private long primary = -1;
private boolean outbox = false;
@ -151,8 +151,7 @@ public class FragmentMessages extends FragmentEx {
search = args.getString("search");
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getContext());
boolean compact = prefs.getBoolean("compact", false);
zoom = prefs.getInt("zoom", compact ? 0 : 1);
compact = prefs.getBoolean("compact", false);
threading = prefs.getBoolean("threading", true);
actionbar = prefs.getBoolean("actionbar", true);
autoclose = prefs.getBoolean("autoclose", true);
@ -316,6 +315,7 @@ public class FragmentMessages extends FragmentEx {
LinearLayoutManager llm = new LinearLayoutManager(getContext());
rvMessage.setLayoutManager(llm);
int zoom = prefs.getInt("zoom", compact ? 0 : 1);
adapter = new AdapterMessage(
getContext(), getViewLifecycleOwner(), getFragmentManager(),
viewType, outgoing,
@ -1370,6 +1370,10 @@ public class FragmentMessages extends FragmentEx {
NetworkRequest.Builder builder = new NetworkRequest.Builder();
builder.addCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET);
cm.registerNetworkCallback(builder.build(), networkCallback);
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getContext());
int zoom = prefs.getInt("zoom", compact ? 0 : 1);
adapter.setZoom(zoom);
}
@Override
@ -1509,37 +1513,29 @@ public class FragmentMessages extends FragmentEx {
@Override
public boolean onOptionsItemSelected(MenuItem item) {
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getContext());
switch (item.getItemId()) {
case R.id.menu_sort_on_time:
prefs.edit().putString("sort", "time").apply();
item.setChecked(true);
loadMessages();
onMenuSort("time");
return true;
case R.id.menu_sort_on_unread:
prefs.edit().putString("sort", "unread").apply();
item.setChecked(true);
loadMessages();
onMenuSort("unread");
return true;
case R.id.menu_sort_on_starred:
prefs.edit().putString("sort", "starred").apply();
item.setChecked(true);
loadMessages();
onMenuSort("starred");
return true;
case R.id.menu_sort_on_sender:
prefs.edit().putString("sort", "sender").apply();
item.setChecked(true);
loadMessages();
onMenuSort("sender");
return true;
case R.id.menu_zoom:
zoom = ++zoom % 3;
prefs.edit().putInt("zoom", zoom).apply();
adapter.setZoom(zoom);
onMenuZoom();
return true;
case R.id.menu_folders:
@ -1556,6 +1552,20 @@ public class FragmentMessages extends FragmentEx {
}
}
private void onMenuSort(String sort) {
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getContext());
prefs.edit().putString("sort", sort).apply();
loadMessages();
}
private void onMenuZoom() {
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getContext());
int zoom = prefs.getInt("zoom", compact ? 0 : 1);
zoom = ++zoom % 3;
prefs.edit().putInt("zoom", zoom).apply();
adapter.setZoom(zoom);
}
private void onMenuFolders() {
if (getLifecycle().getCurrentState().isAtLeast(Lifecycle.State.RESUMED))
getFragmentManager().popBackStack("unified", 0);