mirror of
https://github.com/deltachat/deltachat-android.git
synced 2025-10-03 01:39:18 +02:00
Merge pull request #3870 from deltachat/adb/issue-3782
improve group image quality
This commit is contained in:
commit
b584fdfd89
6 changed files with 10 additions and 32 deletions
|
@ -1,5 +1,9 @@
|
|||
# Delta Chat Android Changelog
|
||||
|
||||
## Unreleased
|
||||
|
||||
* improve image quality when setting group avatars
|
||||
|
||||
## v2.10.0
|
||||
2025-08
|
||||
|
||||
|
|
|
@ -35,7 +35,6 @@ import org.thoughtcrime.securesms.mms.AttachmentManager;
|
|||
import org.thoughtcrime.securesms.mms.GlideApp;
|
||||
import org.thoughtcrime.securesms.permissions.Permissions;
|
||||
import org.thoughtcrime.securesms.profiles.AvatarHelper;
|
||||
import org.thoughtcrime.securesms.profiles.ProfileMediaConstraints;
|
||||
import org.thoughtcrime.securesms.scribbles.ScribbleActivity;
|
||||
import org.thoughtcrime.securesms.util.Prefs;
|
||||
import org.thoughtcrime.securesms.util.ViewUtil;
|
||||
|
@ -144,14 +143,13 @@ public class CreateProfileActivity extends BaseActionBarActivity {
|
|||
}
|
||||
|
||||
private void setAvatarView(Uri output) {
|
||||
final ProfileMediaConstraints constraints = new ProfileMediaConstraints();
|
||||
GlideApp.with(this)
|
||||
.asBitmap()
|
||||
.load(output)
|
||||
.skipMemoryCache(true)
|
||||
.diskCacheStrategy(DiskCacheStrategy.NONE)
|
||||
.centerCrop()
|
||||
.override(constraints.getImageMaxWidth(this), constraints.getImageMaxHeight(this))
|
||||
.override(AvatarHelper.AVATAR_SIZE, AvatarHelper.AVATAR_SIZE)
|
||||
.into(new SimpleTarget<Bitmap>() {
|
||||
@Override
|
||||
public void onResourceReady(@NonNull Bitmap resource, Transition<? super Bitmap> transition) {
|
||||
|
|
|
@ -54,7 +54,6 @@ public class GroupCreateActivity extends PassphraseRequiredActionBarActivity
|
|||
public static final String CLONE_CHAT_EXTRA = "clone_chat";
|
||||
|
||||
private static final int PICK_CONTACT = 1;
|
||||
public static final int AVATAR_SIZE = 210;
|
||||
private static final int REQUEST_CODE_AVATAR = 2759;
|
||||
|
||||
private DcContext dcContext;
|
||||
|
@ -376,7 +375,7 @@ public class GroupCreateActivity extends PassphraseRequiredActionBarActivity
|
|||
.skipMemoryCache(true)
|
||||
.diskCacheStrategy(DiskCacheStrategy.NONE)
|
||||
.centerCrop()
|
||||
.override(AVATAR_SIZE, AVATAR_SIZE)
|
||||
.override(AvatarHelper.AVATAR_SIZE, AvatarHelper.AVATAR_SIZE)
|
||||
.into(new CustomTarget<Bitmap>() {
|
||||
@Override
|
||||
public void onResourceReady(@NonNull Bitmap resource, Transition<? super Bitmap> transition) {
|
||||
|
|
|
@ -49,7 +49,6 @@ import org.thoughtcrime.securesms.mms.AttachmentManager;
|
|||
import org.thoughtcrime.securesms.mms.GlideApp;
|
||||
import org.thoughtcrime.securesms.permissions.Permissions;
|
||||
import org.thoughtcrime.securesms.profiles.AvatarHelper;
|
||||
import org.thoughtcrime.securesms.profiles.ProfileMediaConstraints;
|
||||
import org.thoughtcrime.securesms.proxy.ProxySettingsActivity;
|
||||
import org.thoughtcrime.securesms.qr.RegistrationQrActivity;
|
||||
import org.thoughtcrime.securesms.scribbles.ScribbleActivity;
|
||||
|
@ -284,14 +283,13 @@ public class InstantOnboardingActivity extends BaseActionBarActivity implements
|
|||
}
|
||||
|
||||
private void setAvatarView(Uri output) {
|
||||
final ProfileMediaConstraints constraints = new ProfileMediaConstraints();
|
||||
GlideApp.with(this)
|
||||
.asBitmap()
|
||||
.load(output)
|
||||
.skipMemoryCache(true)
|
||||
.diskCacheStrategy(DiskCacheStrategy.NONE)
|
||||
.centerCrop()
|
||||
.override(constraints.getImageMaxWidth(this), constraints.getImageMaxHeight(this))
|
||||
.override(AvatarHelper.AVATAR_SIZE, AvatarHelper.AVATAR_SIZE)
|
||||
.into(new CustomTarget<Bitmap>() {
|
||||
@Override
|
||||
public void onResourceReady(@NonNull Bitmap resource, Transition<? super Bitmap> transition) {
|
||||
|
|
|
@ -20,6 +20,8 @@ import java.io.FileOutputStream;
|
|||
import java.io.IOException;
|
||||
|
||||
public class AvatarHelper {
|
||||
/* the maximum width/height an avatar should have */
|
||||
public static final int AVATAR_SIZE = 640;
|
||||
|
||||
public static void setGroupAvatar(Context context, int chatId, Bitmap bitmap) {
|
||||
DcContext dcContext = DcHelper.getContext(context);
|
||||
|
@ -30,7 +32,7 @@ public class AvatarHelper {
|
|||
try {
|
||||
File avatar = File.createTempFile("groupavatar", ".jpg", context.getCacheDir());
|
||||
FileOutputStream out = new FileOutputStream(avatar);
|
||||
bitmap.compress(Bitmap.CompressFormat.JPEG, 85, out);
|
||||
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, out);
|
||||
out.close();
|
||||
dcContext.setChatProfileImage(chatId, avatar.getPath()); // The avatar is copied to the blobs directory here...
|
||||
//noinspection ResultOfMethodCallIgnored
|
||||
|
|
|
@ -1,23 +0,0 @@
|
|||
package org.thoughtcrime.securesms.profiles;
|
||||
|
||||
|
||||
import android.content.Context;
|
||||
|
||||
import org.thoughtcrime.securesms.mms.MediaConstraints;
|
||||
|
||||
public class ProfileMediaConstraints extends MediaConstraints {
|
||||
@Override
|
||||
public int getImageMaxWidth(Context context) {
|
||||
return 640;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getImageMaxHeight(Context context) {
|
||||
return 640;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getImageMaxSize(Context context) {
|
||||
return 5 * 1024 * 1024;
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue