mirror of
https://github.com/M66B/FairEmail.git
synced 2025-02-24 15:11:03 +00:00
Added option to enable showing contact photos
Default disabled Resf #61
This commit is contained in:
parent
7b74f87e0f
commit
17c4bad2a3
4 changed files with 31 additions and 5 deletions
|
@ -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 =
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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>
|
|
@ -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 …</string>
|
||||
|
|
Loading…
Reference in a new issue