mirror of
https://github.com/signalapp/Signal-Android.git
synced 2026-04-22 18:00:02 +01:00
committed by
Nicholas Tinsley
parent
aa33fd44b8
commit
ec96b4e3aa
@@ -15,11 +15,11 @@ import androidx.annotation.Nullable;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.annimon.stream.Stream;
|
||||
import com.bumptech.glide.RequestManager;
|
||||
import com.bumptech.glide.load.engine.DiskCacheStrategy;
|
||||
|
||||
import org.thoughtcrime.securesms.R;
|
||||
import org.thoughtcrime.securesms.contactshare.Contact.Phone;
|
||||
import org.thoughtcrime.securesms.mms.GlideRequests;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
@@ -31,16 +31,16 @@ import static org.thoughtcrime.securesms.contactshare.Contact.PostalAddress;
|
||||
|
||||
class ContactFieldAdapter extends RecyclerView.Adapter<ContactFieldAdapter.ContactFieldViewHolder> {
|
||||
|
||||
private final Locale locale;
|
||||
private final boolean selectable;
|
||||
private final List<Field> fields;
|
||||
private final GlideRequests glideRequests;
|
||||
private final Locale locale;
|
||||
private final boolean selectable;
|
||||
private final List<Field> fields;
|
||||
private final RequestManager requestManager;
|
||||
|
||||
public ContactFieldAdapter(@NonNull Locale locale, @NonNull GlideRequests glideRequests, boolean selectable) {
|
||||
this.locale = locale;
|
||||
this.glideRequests = glideRequests;
|
||||
this.selectable = selectable;
|
||||
this.fields = new ArrayList<>();
|
||||
public ContactFieldAdapter(@NonNull Locale locale, @NonNull RequestManager requestManager, boolean selectable) {
|
||||
this.locale = locale;
|
||||
this.requestManager = requestManager;
|
||||
this.selectable = selectable;
|
||||
this.fields = new ArrayList<>();
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -50,7 +50,7 @@ class ContactFieldAdapter extends RecyclerView.Adapter<ContactFieldAdapter.Conta
|
||||
|
||||
@Override
|
||||
public void onBindViewHolder(@NonNull ContactFieldViewHolder holder, int position) {
|
||||
holder.bind(fields.get(position), glideRequests, selectable);
|
||||
holder.bind(fields.get(position), requestManager, selectable);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -98,7 +98,7 @@ class ContactFieldAdapter extends RecyclerView.Adapter<ContactFieldAdapter.Conta
|
||||
checkBox = itemView.findViewById(R.id.contact_field_checkbox);
|
||||
}
|
||||
|
||||
void bind(@NonNull Field field, @NonNull GlideRequests glideRequests, boolean selectable) {
|
||||
void bind(@NonNull Field field, @NonNull RequestManager requestManager, boolean selectable) {
|
||||
value.setMaxLines(field.maxLines);
|
||||
value.setText(field.value);
|
||||
label.setText(field.label);
|
||||
@@ -106,7 +106,7 @@ class ContactFieldAdapter extends RecyclerView.Adapter<ContactFieldAdapter.Conta
|
||||
|
||||
if (field.iconUri != null) {
|
||||
avatar.setVisibility(View.VISIBLE);
|
||||
glideRequests.load(field.iconUri)
|
||||
requestManager.load(field.iconUri)
|
||||
.diskCacheStrategy(DiskCacheStrategy.NONE)
|
||||
.skipMemoryCache(true)
|
||||
.circleCrop()
|
||||
|
||||
@@ -20,9 +20,10 @@ import androidx.lifecycle.ViewModelProvider;
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.bumptech.glide.Glide;
|
||||
|
||||
import org.thoughtcrime.securesms.PassphraseRequiredActivity;
|
||||
import org.thoughtcrime.securesms.R;
|
||||
import org.thoughtcrime.securesms.mms.GlideApp;
|
||||
import org.thoughtcrime.securesms.util.DynamicLanguage;
|
||||
import org.thoughtcrime.securesms.util.DynamicNoActionBarTheme;
|
||||
import org.thoughtcrime.securesms.util.DynamicTheme;
|
||||
@@ -89,7 +90,7 @@ public class ContactShareEditActivity extends PassphraseRequiredActivity impleme
|
||||
Material3OnScrollHelper onScrollHelper = new Material3OnScrollHelper(this, Collections.singletonList(toolbar), Collections.emptyList(), this);
|
||||
onScrollHelper.attach(contactList);
|
||||
|
||||
ContactShareEditAdapter contactAdapter = new ContactShareEditAdapter(GlideApp.with(this), dynamicLanguage.getCurrentLocale(), this);
|
||||
ContactShareEditAdapter contactAdapter = new ContactShareEditAdapter(Glide.with(this), dynamicLanguage.getCurrentLocale(), this);
|
||||
contactList.setAdapter(contactAdapter);
|
||||
|
||||
SharedContactRepository contactRepository = new SharedContactRepository(this, AsyncTask.THREAD_POOL_EXECUTOR);
|
||||
|
||||
@@ -11,8 +11,9 @@ import androidx.annotation.Nullable;
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.bumptech.glide.RequestManager;
|
||||
|
||||
import org.thoughtcrime.securesms.R;
|
||||
import org.thoughtcrime.securesms.mms.GlideRequests;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
@@ -22,23 +23,23 @@ import static org.thoughtcrime.securesms.contactshare.Contact.Name;
|
||||
|
||||
public class ContactShareEditAdapter extends RecyclerView.Adapter<ContactShareEditAdapter.ContactEditViewHolder> {
|
||||
|
||||
private final GlideRequests glideRequests;
|
||||
private final Locale locale;
|
||||
private final EventListener eventListener;
|
||||
private final List<Contact> contacts;
|
||||
private final RequestManager requestManager;
|
||||
private final Locale locale;
|
||||
private final EventListener eventListener;
|
||||
private final List<Contact> contacts;
|
||||
|
||||
ContactShareEditAdapter(@NonNull GlideRequests glideRequests, @NonNull Locale locale, @NonNull EventListener eventListener) {
|
||||
this.glideRequests = glideRequests;
|
||||
this.locale = locale;
|
||||
this.eventListener = eventListener;
|
||||
this.contacts = new ArrayList<>();
|
||||
ContactShareEditAdapter(@NonNull RequestManager requestManager, @NonNull Locale locale, @NonNull EventListener eventListener) {
|
||||
this.requestManager = requestManager;
|
||||
this.locale = locale;
|
||||
this.eventListener = eventListener;
|
||||
this.contacts = new ArrayList<>();
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NonNull ContactEditViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
|
||||
return new ContactEditViewHolder(LayoutInflater.from(parent.getContext()).inflate(R.layout.item_editable_contact, parent, false),
|
||||
locale,
|
||||
glideRequests);
|
||||
requestManager);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -67,12 +68,12 @@ public class ContactShareEditAdapter extends RecyclerView.Adapter<ContactShareEd
|
||||
private final View nameEditButton;
|
||||
private final ContactFieldAdapter fieldAdapter;
|
||||
|
||||
ContactEditViewHolder(View itemView, @NonNull Locale locale, @NonNull GlideRequests glideRequests) {
|
||||
ContactEditViewHolder(View itemView, @NonNull Locale locale, @NonNull RequestManager requestManager) {
|
||||
super(itemView);
|
||||
|
||||
this.name = itemView.findViewById(R.id.editable_contact_name);
|
||||
this.nameEditButton = itemView.findViewById(R.id.editable_contact_name_edit_button);
|
||||
this.fieldAdapter = new ContactFieldAdapter(locale, glideRequests, true);
|
||||
this.fieldAdapter = new ContactFieldAdapter(locale, requestManager, true);
|
||||
|
||||
RecyclerView fields = itemView.findViewById(R.id.editable_contact_fields);
|
||||
fields.setLayoutManager(new LinearLayoutManager(itemView.getContext()));
|
||||
|
||||
@@ -18,6 +18,8 @@ import androidx.core.content.ContextCompat;
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.bumptech.glide.Glide;
|
||||
import com.bumptech.glide.RequestManager;
|
||||
import com.bumptech.glide.load.engine.DiskCacheStrategy;
|
||||
|
||||
import org.thoughtcrime.securesms.PassphraseRequiredActivity;
|
||||
@@ -25,8 +27,6 @@ import org.thoughtcrime.securesms.R;
|
||||
import org.thoughtcrime.securesms.database.RecipientTable;
|
||||
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies;
|
||||
import org.thoughtcrime.securesms.jobs.DirectoryRefreshJob;
|
||||
import org.thoughtcrime.securesms.mms.GlideApp;
|
||||
import org.thoughtcrime.securesms.mms.GlideRequests;
|
||||
import org.thoughtcrime.securesms.recipients.LiveRecipient;
|
||||
import org.thoughtcrime.securesms.recipients.Recipient;
|
||||
import org.thoughtcrime.securesms.recipients.RecipientId;
|
||||
@@ -59,7 +59,7 @@ public class SharedContactDetailsActivity extends PassphraseRequiredActivity {
|
||||
private View messageButtonView;
|
||||
private View callButtonView;
|
||||
|
||||
private GlideRequests glideRequests;
|
||||
private RequestManager requestManager;
|
||||
private Contact contact;
|
||||
|
||||
private final DynamicTheme dynamicTheme = new DynamicNoActionBarTheme();
|
||||
@@ -132,13 +132,13 @@ public class SharedContactDetailsActivity extends PassphraseRequiredActivity {
|
||||
messageButtonView = findViewById(R.id.contact_details_message_button);
|
||||
callButtonView = findViewById(R.id.contact_details_call_button);
|
||||
|
||||
contactFieldAdapter = new ContactFieldAdapter(dynamicLanguage.getCurrentLocale(), glideRequests, false);
|
||||
contactFieldAdapter = new ContactFieldAdapter(dynamicLanguage.getCurrentLocale(), requestManager, false);
|
||||
|
||||
RecyclerView list = findViewById(R.id.contact_details_fields);
|
||||
list.setLayoutManager(new LinearLayoutManager(this));
|
||||
list.setAdapter(contactFieldAdapter);
|
||||
|
||||
glideRequests = GlideApp.with(this);
|
||||
requestManager = Glide.with(this);
|
||||
}
|
||||
|
||||
@SuppressLint("StaticFieldLeak")
|
||||
@@ -172,13 +172,15 @@ public class SharedContactDetailsActivity extends PassphraseRequiredActivity {
|
||||
|
||||
public void presentAvatar(@Nullable Uri uri) {
|
||||
if (uri != null) {
|
||||
glideRequests.load(new DecryptableUri(uri))
|
||||
requestManager
|
||||
.load(new DecryptableUri(uri))
|
||||
.fallback(R.drawable.symbol_person_display_40)
|
||||
.circleCrop()
|
||||
.diskCacheStrategy(DiskCacheStrategy.ALL)
|
||||
.into(avatarView);
|
||||
} else {
|
||||
glideRequests.load(R.drawable.symbol_person_display_40)
|
||||
requestManager
|
||||
.load(R.drawable.symbol_person_display_40)
|
||||
.circleCrop()
|
||||
.diskCacheStrategy(DiskCacheStrategy.ALL)
|
||||
.into(avatarView);
|
||||
|
||||
Reference in New Issue
Block a user