Ensure profile photo in ConversationList is accurate.

Fixes #8270
This commit is contained in:
Greyson Parrelli 2018-10-25 15:14:34 -07:00
parent 48ff9673b9
commit 6ce278114f
2 changed files with 7 additions and 6 deletions

View file

@ -28,7 +28,6 @@
android:layout_height="36dp"
android:layout_marginLeft="8dp"
android:layout_marginStart="8dp"
android:src="@drawable/icon_transparent"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_centerVertical="true"/>

View file

@ -25,6 +25,7 @@ import android.graphics.drawable.Drawable;
import android.net.Uri;
import android.os.AsyncTask;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.v7.widget.Toolbar;
import android.support.v7.widget.TooltipCompat;
import android.text.TextUtils;
@ -58,6 +59,7 @@ import org.thoughtcrime.securesms.util.DynamicLanguage;
import org.thoughtcrime.securesms.util.DynamicNoActionBarTheme;
import org.thoughtcrime.securesms.util.DynamicTheme;
import org.thoughtcrime.securesms.util.TextSecurePreferences;
import org.thoughtcrime.securesms.util.concurrent.LifecycleBoundTask;
import org.whispersystems.libsignal.util.guava.Optional;
import java.util.List;
@ -109,7 +111,9 @@ public class ConversationListActivity extends PassphraseRequiredActionBarActivit
dynamicTheme.onResume(this);
dynamicLanguage.onResume(this);
initializeProfileIcon();
LifecycleBoundTask.run(getLifecycle(), () -> {
return Recipient.from(this, Address.fromSerialized(TextSecurePreferences.getLocalNumber(this)), false);
}, this::initializeProfileIcon);
}
@Override
@ -174,10 +178,8 @@ public class ConversationListActivity extends PassphraseRequiredActionBarActivit
});
}
private void initializeProfileIcon() {
private void initializeProfileIcon(@NonNull Recipient recipient) {
ImageView icon = findViewById(R.id.toolbar_icon);
Address localAddress = Address.fromSerialized(TextSecurePreferences.getLocalNumber(this));
Recipient recipient = Recipient.from(this, localAddress, true);
String name = Optional.fromNullable(recipient.getName()).or(Optional.fromNullable(TextSecurePreferences.getProfileName(this))).or("");
MaterialColor fallbackColor = recipient.getColor();
@ -188,7 +190,7 @@ public class ConversationListActivity extends PassphraseRequiredActionBarActivit
Drawable fallback = new GeneratedContactPhoto(name, R.drawable.ic_profile_default).asDrawable(this, fallbackColor.toAvatarColor(this));
GlideApp.with(this)
.load(new ProfileContactPhoto(localAddress, String.valueOf(TextSecurePreferences.getProfileAvatarId(this))))
.load(new ProfileContactPhoto(recipient.getAddress(), String.valueOf(TextSecurePreferences.getProfileAvatarId(this))))
.error(fallback)
.circleCrop()
.diskCacheStrategy(DiskCacheStrategy.ALL)