kopia lustrzana https://github.com/ryukoposting/Signal-Android
40 wiersze
1.4 KiB
Java
40 wiersze
1.4 KiB
Java
package org.thoughtcrime.securesms.insights;
|
|
|
|
import android.content.Context;
|
|
import android.graphics.drawable.Drawable;
|
|
import android.widget.ImageView;
|
|
|
|
import androidx.annotation.NonNull;
|
|
|
|
import com.bumptech.glide.load.engine.DiskCacheStrategy;
|
|
|
|
import org.thoughtcrime.securesms.color.MaterialColor;
|
|
import org.thoughtcrime.securesms.contacts.avatars.FallbackContactPhoto;
|
|
import org.thoughtcrime.securesms.contacts.avatars.ProfileContactPhoto;
|
|
import org.thoughtcrime.securesms.mms.GlideApp;
|
|
|
|
class InsightsUserAvatar {
|
|
private final ProfileContactPhoto profileContactPhoto;
|
|
private final MaterialColor fallbackColor;
|
|
private final FallbackContactPhoto fallbackContactPhoto;
|
|
|
|
InsightsUserAvatar(@NonNull ProfileContactPhoto profileContactPhoto, @NonNull MaterialColor fallbackColor, @NonNull FallbackContactPhoto fallbackContactPhoto) {
|
|
this.profileContactPhoto = profileContactPhoto;
|
|
this.fallbackColor = fallbackColor;
|
|
this.fallbackContactPhoto = fallbackContactPhoto;
|
|
}
|
|
|
|
private Drawable fallbackDrawable(@NonNull Context context) {
|
|
return fallbackContactPhoto.asDrawable(context, fallbackColor.toAvatarColor(context));
|
|
}
|
|
|
|
void load(ImageView into) {
|
|
GlideApp.with(into)
|
|
.load(profileContactPhoto)
|
|
.error(fallbackDrawable(into.getContext()))
|
|
.circleCrop()
|
|
.diskCacheStrategy(DiskCacheStrategy.ALL)
|
|
.into(into);
|
|
}
|
|
}
|