diff options
author | Stefan Niedermann <info@niedermann.it> | 2020-11-04 19:59:20 +0300 |
---|---|---|
committer | Stefan Niedermann <info@niedermann.it> | 2020-11-04 19:59:20 +0300 |
commit | 27a07f62966fbd22aa828acb3c386e9a8cbfcfbd (patch) | |
tree | 6610631324f70032be6a4c313e4941570c465c48 /app/src/main/java/it/niedermann/nextcloud/deck/ui | |
parent | a78b0f8935d90870527b3e75ed27c4f35349972f (diff) |
Provide fallback initials for contacts wtihout avatars
Signed-off-by: Stefan Niedermann <info@niedermann.it>
Diffstat (limited to 'app/src/main/java/it/niedermann/nextcloud/deck/ui')
-rw-r--r-- | app/src/main/java/it/niedermann/nextcloud/deck/ui/card/attachments/picker/ContactItemViewHolder.java | 30 |
1 files changed, 25 insertions, 5 deletions
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/attachments/picker/ContactItemViewHolder.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/attachments/picker/ContactItemViewHolder.java index 272fcdca3..3a3eee3f9 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/attachments/picker/ContactItemViewHolder.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/attachments/picker/ContactItemViewHolder.java @@ -1,7 +1,9 @@ package it.niedermann.nextcloud.deck.ui.card.attachments.picker; import android.graphics.Bitmap; +import android.graphics.drawable.ColorDrawable; import android.net.Uri; +import android.text.TextUtils; import androidx.annotation.NonNull; import androidx.annotation.Nullable; @@ -15,6 +17,10 @@ import java.util.function.Consumer; import it.niedermann.nextcloud.deck.R; import it.niedermann.nextcloud.deck.databinding.ItemPickerUserBinding; +import static android.view.View.GONE; +import static android.view.View.VISIBLE; +import static it.niedermann.nextcloud.deck.util.VCardUtil.getColorBasedOnDisplayName; + public class ContactItemViewHolder extends RecyclerView.ViewHolder { private final ItemPickerUserBinding binding; @@ -27,11 +33,25 @@ public class ContactItemViewHolder extends RecyclerView.ViewHolder { public void bind(@NonNull Uri uri, @Nullable Bitmap image, @NonNull String displayName, @NonNull Consumer<Uri> onSelect) { itemView.setOnClickListener((v) -> onSelect.accept(uri)); binding.displayName.setText(displayName); - Glide.with(itemView.getContext()) - .load(image) - .placeholder(R.drawable.ic_person_grey600_24dp) - .apply(RequestOptions.circleCropTransform()) - .into(binding.avatar); + if (image == null) { + binding.initials.setVisibility(VISIBLE); + binding.initials.setText(TextUtils.isEmpty(displayName) + ? null + : String.valueOf(displayName.charAt(0)) + ); + Glide.with(itemView.getContext()) + .load(new ColorDrawable(getColorBasedOnDisplayName(itemView.getContext(), displayName))) + .apply(RequestOptions.circleCropTransform()) + .into(binding.avatar); + } else { + binding.initials.setVisibility(GONE); + binding.initials.setText(null); + Glide.with(itemView.getContext()) + .load(image) + .placeholder(R.drawable.ic_person_grey600_24dp) + .apply(RequestOptions.circleCropTransform()) + .into(binding.avatar); + } } public void bindError() { |