Make zoom dynamic, refactoring

pull/147/head
M66B 7 years ago
parent 1a99188b85
commit 9cbf4ab9eb

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

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

Loading…
Cancel
Save