Added option to enable showing contact photos

Default disabled

Resf #61
This commit is contained in:
M66B 2018-09-08 15:07:40 +00:00
parent 7b74f87e0f
commit 17c4bad2a3
4 changed files with 31 additions and 5 deletions

View File

@ -24,6 +24,7 @@ import android.content.ContentResolver;
import android.content.ContentUris;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.pm.PackageManager;
import android.database.Cursor;
import android.graphics.Typeface;
@ -66,8 +67,8 @@ public class AdapterMessage extends PagedListAdapter<TupleMessageEx, AdapterMess
private LifecycleOwner owner;
private ViewType viewType;
private boolean avatars;
private boolean debug;
private boolean hasContactsPermission;
private DateFormat df = SimpleDateFormat.getDateTimeInstance(SimpleDateFormat.SHORT, SimpleDateFormat.LONG);
enum ViewType {UNIFIED, FOLDER, THREAD, SEARCH}
@ -135,7 +136,7 @@ public class AdapterMessage extends PagedListAdapter<TupleMessageEx, AdapterMess
pbLoading.setVisibility(View.GONE);
ivAvatar.setVisibility(View.GONE);
if (hasContactsPermission && message.from != null && message.from.length > 0) {
if (avatars && message.from != null && message.from.length > 0) {
itemView.setHasTransientState(true);
Bundle args = new Bundle();
@ -339,8 +340,12 @@ public class AdapterMessage extends PagedListAdapter<TupleMessageEx, AdapterMess
this.context = context;
this.owner = owner;
this.viewType = viewType;
this.hasContactsPermission = (ContextCompat.checkSelfPermission(context, Manifest.permission.READ_CONTACTS) == PackageManager.PERMISSION_GRANTED);
this.debug = PreferenceManager.getDefaultSharedPreferences(context).getBoolean("debug", false);
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
this.avatars = (prefs.getBoolean("avatars", false) &&
ContextCompat.checkSelfPermission(context, Manifest.permission.READ_CONTACTS) == PackageManager.PERMISSION_GRANTED);
this.debug = prefs.getBoolean("debug", false);
}
private static final DiffUtil.ItemCallback<TupleMessageEx> DIFF_CALLBACK =

View File

@ -38,6 +38,7 @@ public class FragmentOptions extends FragmentEx {
private TextView tvCustomTabs;
private CheckBox cbSanitize;
private CheckBox cbCompressImap;
private CheckBox cbAvatars;
private CheckBox cbDebug;
@Override
@ -52,6 +53,7 @@ public class FragmentOptions extends FragmentEx {
tvCustomTabs = view.findViewById(R.id.tvCustomTabs);
cbSanitize = view.findViewById(R.id.cbSanitize);
cbCompressImap = view.findViewById(R.id.cbCompressImap);
cbAvatars = view.findViewById(R.id.cbAvatars);
cbDebug = view.findViewById(R.id.cbDebug);
// Wire controls
@ -82,6 +84,14 @@ public class FragmentOptions extends FragmentEx {
}
});
cbAvatars.setChecked(prefs.getBoolean("avatars", false));
cbAvatars.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton compoundButton, boolean checked) {
prefs.edit().putBoolean("avatars", checked).apply();
}
});
cbDebug.setChecked(prefs.getBoolean("debug", false));
cbDebug.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override

View File

@ -51,6 +51,16 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/cbSanitize" />
<CheckBox
android:id="@+id/cbAvatars"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="12dp"
android:layout_marginTop="12dp"
android:text="@string/title_advanced_avatars"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/cbCompressImap" />
<CheckBox
android:id="@+id/cbDebug"
android:layout_width="wrap_content"
@ -59,6 +69,6 @@
android:layout_marginTop="12dp"
android:text="@string/title_advanced_debug"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/cbCompressImap" />
app:layout_constraintTop_toBottomOf="@id/cbAvatars" />
</androidx.constraintlayout.widget.ConstraintLayout>
</ScrollView>

View File

@ -76,6 +76,7 @@
<string name="title_advanced_customtabs">Instead of <a href="https://developer.chrome.com/multidevice/android/customtabs">Chrome Custom Tabs</a></string>
<string name="title_advanced_sanitize">Remove HTML formatting from messages</string>
<string name="title_advanced_compress_imap">Compress IMAP data</string>
<string name="title_advanced_avatars">Show contact photos</string>
<string name="title_advanced_debug">Debug</string>
<string name="title_select">Select &#8230;</string>