Added text size option

pull/147/head
M66B 6 years ago
parent 4e7b60bd32
commit 86fbef7cda

@ -28,6 +28,7 @@ import android.content.Intent;
import android.content.SharedPreferences;
import android.content.pm.PackageManager;
import android.content.res.ColorStateList;
import android.content.res.TypedArray;
import android.database.Cursor;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
@ -114,6 +115,7 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
private FragmentManager fragmentManager;
private ViewType viewType;
private boolean outgoing;
private int zoom;
private IProperties properties;
private boolean threading;
@ -476,6 +478,22 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
vSeparatorBody.setVisibility(View.VISIBLE);
tvBody.setText(null);
TypedArray ta;
if (zoom == 0)
ta = context.obtainStyledAttributes(
R.style.TextAppearance_AppCompat_Small, new int[]{android.R.attr.textSize});
else if (zoom == 2)
ta = context.obtainStyledAttributes(
R.style.TextAppearance_AppCompat_Large, new int[]{android.R.attr.textSize});
else
ta = context.obtainStyledAttributes(
R.style.TextAppearance_AppCompat_Medium, new int[]{android.R.attr.textSize});
float textSize = ta.getDimension(0, 0);
if (textSize != 0)
tvBody.setTextSize(textSize / context.getResources().getDisplayMetrics().density);
ta.recycle();
pbBody.setVisibility(View.VISIBLE);
if (message.content) {
@ -1561,12 +1579,13 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
}
AdapterMessage(Context context, LifecycleOwner owner, FragmentManager fragmentManager,
ViewType viewType, boolean outgoing, IProperties properties) {
ViewType viewType, boolean outgoing, int zoom, IProperties properties) {
this.context = context;
this.owner = owner;
this.fragmentManager = fragmentManager;
this.viewType = viewType;
this.outgoing = outgoing;
this.zoom = zoom;
this.properties = properties;
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
@ -1596,6 +1615,11 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
return differ.getCurrentList();
}
void setZoom(int zoom) {
this.zoom = zoom;
notifyDataSetChanged();
}
@Override
public int getItemCount() {
return differ.getItemCount();

@ -97,6 +97,7 @@ public class FragmentMessages extends FragmentEx {
private long id = -1;
private String search = null;
private int zoom = 0;
private boolean threading = true;
private boolean actionbar = false;
private boolean autoclose = false;
@ -143,6 +144,8 @@ 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);
threading = prefs.getBoolean("threading", true);
actionbar = prefs.getBoolean("actionbar", true);
autoclose = prefs.getBoolean("autoclose", false);
@ -294,6 +297,7 @@ public class FragmentMessages extends FragmentEx {
adapter = new AdapterMessage(
getContext(), getViewLifecycleOwner(), getFragmentManager(),
viewType, outgoing,
zoom,
new AdapterMessage.IProperties() {
@Override
public void setExpanded(long id, boolean expand) {
@ -1441,8 +1445,11 @@ public class FragmentMessages extends FragmentEx {
@Override
public void onPrepareOptionsMenu(Menu menu) {
menu.findItem(R.id.menu_search).setVisible(folder >= 0 && search == null);
menu.findItem(R.id.menu_sort_on).setVisible(TextUtils.isEmpty(search));
menu.findItem(R.id.menu_search).setVisible(
folder >= 0 && viewType != AdapterMessage.ViewType.SEARCH);
menu.findItem(R.id.menu_sort_on).setVisible(
viewType == AdapterMessage.ViewType.UNIFIED || viewType == AdapterMessage.ViewType.FOLDER);
menu.findItem(R.id.menu_zoom).setVisible(viewType == AdapterMessage.ViewType.THREAD);
menu.findItem(R.id.menu_folders).setVisible(primary >= 0);
menu.findItem(R.id.menu_folders).setIcon(connected ? R.drawable.baseline_folder_24 : R.drawable.baseline_folder_open_24);
menu.findItem(R.id.menu_move_sent).setVisible(outbox);
@ -1482,6 +1489,12 @@ public class FragmentMessages extends FragmentEx {
loadMessages();
return true;
case R.id.menu_zoom:
zoom = ++zoom % 3;
prefs.edit().putInt("zoom", zoom).apply();
adapter.setZoom(zoom);
return true;
case R.id.menu_folders:
onMenuFolders();
loadMessages();

@ -29,6 +29,12 @@
</menu>
</item>
<item
android:id="@+id/menu_zoom"
android:icon="@drawable/baseline_format_size_24"
android:title="@string/title_zoom"
app:showAsAction="ifRoom" />
<item
android:id="@+id/menu_folders"
android:icon="@drawable/baseline_folder_open_24"

@ -307,6 +307,8 @@
<string name="title_sort_on_unread">Unread</string>
<string name="title_sort_on_starred">Starred</string>
<string name="title_zoom">Text size</string>
<string name="title_address_sent">Sent:</string>
<string name="title_address_unsent">Unsent:</string>
<string name="title_address_invalid">Invalid:</string>

Loading…
Cancel
Save