mirror of
https://github.com/oxen-io/session-android.git
synced 2024-12-24 16:57:50 +00:00
Fix group avatar issues in GroupCreateActivity
Images weren't rounded in some cases, and other times weren't updating in the group properly. Closes #4692 // FREEBIE
This commit is contained in:
parent
073be6696b
commit
7aac137fb7
@ -21,7 +21,6 @@ import android.app.Activity;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.graphics.Bitmap;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.net.Uri;
|
||||
import android.os.AsyncTask;
|
||||
import android.os.Bundle;
|
||||
@ -49,7 +48,6 @@ import org.thoughtcrime.securesms.components.PushRecipientsPanel.RecipientsPanel
|
||||
import org.thoughtcrime.securesms.contacts.RecipientsEditor;
|
||||
import org.thoughtcrime.securesms.contacts.avatars.ContactColors;
|
||||
import org.thoughtcrime.securesms.contacts.avatars.ContactPhotoFactory;
|
||||
import org.thoughtcrime.securesms.contacts.avatars.ResourceContactPhoto;
|
||||
import org.thoughtcrime.securesms.crypto.MasterSecret;
|
||||
import org.thoughtcrime.securesms.database.DatabaseFactory;
|
||||
import org.thoughtcrime.securesms.database.GroupDatabase;
|
||||
@ -325,13 +323,8 @@ public class GroupCreateActivity extends PassphraseRequiredActionBarActivity
|
||||
.centerCrop().override(AVATAR_SIZE, AVATAR_SIZE)
|
||||
.into(new SimpleTarget<Bitmap>() {
|
||||
@Override
|
||||
public void onResourceReady(Bitmap resource,
|
||||
GlideAnimation<? super Bitmap> glideAnimation)
|
||||
{
|
||||
avatarBmp = resource;
|
||||
Glide.with(GroupCreateActivity.this).load(Crop.getOutput(data)).skipMemoryCache(true)
|
||||
.transform(new RoundedCorners(GroupCreateActivity.this, avatar.getWidth() / 2))
|
||||
.into(avatar);
|
||||
public void onResourceReady(Bitmap resource, GlideAnimation<? super Bitmap> glideAnimation) {
|
||||
setAvatar(Crop.getOutput(data), resource);
|
||||
}
|
||||
});
|
||||
}
|
||||
@ -567,6 +560,7 @@ public class GroupCreateActivity extends PassphraseRequiredActionBarActivity
|
||||
return Optional.of(new GroupData(groupIds[0],
|
||||
existingContacts,
|
||||
BitmapUtil.fromByteArray(group.getAvatar()),
|
||||
group.getAvatar(),
|
||||
group.getTitle()));
|
||||
} else {
|
||||
return Optional.absent();
|
||||
@ -581,7 +575,9 @@ public class GroupCreateActivity extends PassphraseRequiredActionBarActivity
|
||||
activity.groupToUpdate = group;
|
||||
|
||||
activity.groupName.setText(group.get().name);
|
||||
if (group.get().avatar != null) activity.avatar.setImageBitmap(group.get().avatar);
|
||||
if (group.get().avatarBmp != null) {
|
||||
activity.setAvatar(group.get().avatarBytes, group.get().avatarBmp);
|
||||
}
|
||||
SelectedRecipientsAdapter adapter = new SelectedRecipientsAdapter(activity, group.get().recipients);
|
||||
adapter.setOnRecipientDeletedListener(activity);
|
||||
activity.lv.setAdapter(adapter);
|
||||
@ -590,16 +586,27 @@ public class GroupCreateActivity extends PassphraseRequiredActionBarActivity
|
||||
}
|
||||
}
|
||||
|
||||
private <T> void setAvatar(T model, Bitmap bitmap) {
|
||||
avatarBmp = bitmap;
|
||||
Glide.with(this)
|
||||
.load(model)
|
||||
.skipMemoryCache(true)
|
||||
.transform(new RoundedCorners(this, avatar.getWidth() / 2))
|
||||
.into(avatar);
|
||||
}
|
||||
|
||||
private static class GroupData {
|
||||
byte[] id;
|
||||
Set<Recipient> recipients;
|
||||
Bitmap avatar;
|
||||
Bitmap avatarBmp;
|
||||
byte[] avatarBytes;
|
||||
String name;
|
||||
|
||||
public GroupData(byte[] id, Set<Recipient> recipients, Bitmap avatar, String name) {
|
||||
public GroupData(byte[] id, Set<Recipient> recipients, Bitmap avatarBmp, byte[] avatarBytes, String name) {
|
||||
this.id = id;
|
||||
this.recipients = recipients;
|
||||
this.avatar = avatar;
|
||||
this.avatarBmp = avatarBmp;
|
||||
this.avatarBytes = avatarBytes;
|
||||
this.name = name;
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user