diff options
author | Christian Schneppe <christian@pix-art.de> | 2019-09-20 23:53:07 +0200 |
---|---|---|
committer | Christian Schneppe <christian@pix-art.de> | 2019-09-20 23:53:07 +0200 |
commit | c0c1af1ccaf11856fa765f98e5d4ad8e0fb4ab0c (patch) | |
tree | d6f7d12a6ba1c8b7051cedcd19cb20368c4c4d8b /src/main/java/de/pixart/messenger/ui | |
parent | 008d2895145e931fbb99a0f98d90ea5db880ef05 (diff) |
added overlay to avatar in EditAccountActivity
in addition to #390
Diffstat (limited to '')
-rw-r--r-- | src/main/java/de/pixart/messenger/ui/EditAccountActivity.java | 4 | ||||
-rw-r--r-- | src/main/java/de/pixart/messenger/ui/util/AvatarWorkerTask.java | 22 |
2 files changed, 21 insertions, 5 deletions
diff --git a/src/main/java/de/pixart/messenger/ui/EditAccountActivity.java b/src/main/java/de/pixart/messenger/ui/EditAccountActivity.java index 8d5712bf5..f3488a3fc 100644 --- a/src/main/java/de/pixart/messenger/ui/EditAccountActivity.java +++ b/src/main/java/de/pixart/messenger/ui/EditAccountActivity.java @@ -671,7 +671,7 @@ public class EditAccountActivity extends OmemoActivity implements OnAccountUpdat } private void refreshAvatar() { - AvatarWorkerTask.loadAvatar(mAccount, binding.avater, R.dimen.avatar_on_details_screen_size); + AvatarWorkerTask.loadAvatar(mAccount, binding.avater, R.dimen.avatar_on_details_screen_size, true); } @Override @@ -1154,7 +1154,7 @@ public class EditAccountActivity extends OmemoActivity implements OnAccountUpdat if (!mInitMode) { binding.avater.setVisibility(View.VISIBLE); - AvatarWorkerTask.loadAvatar(mAccount, binding.avater, R.dimen.avatar_on_details_screen_size); + refreshAvatar(); this.binding.accountJid.setEnabled(false); } else { binding.avater.setVisibility(View.GONE); diff --git a/src/main/java/de/pixart/messenger/ui/util/AvatarWorkerTask.java b/src/main/java/de/pixart/messenger/ui/util/AvatarWorkerTask.java index 54cb3c2a1..738f387de 100644 --- a/src/main/java/de/pixart/messenger/ui/util/AvatarWorkerTask.java +++ b/src/main/java/de/pixart/messenger/ui/util/AvatarWorkerTask.java @@ -4,6 +4,7 @@ import android.content.res.Resources; import android.graphics.Bitmap; import android.graphics.drawable.BitmapDrawable; import android.graphics.drawable.Drawable; +import android.graphics.drawable.LayerDrawable; import android.os.AsyncTask; import androidx.annotation.DimenRes; import android.widget.ImageView; @@ -11,6 +12,7 @@ import android.widget.ImageView; import java.lang.ref.WeakReference; import java.util.concurrent.RejectedExecutionException; +import de.pixart.messenger.R; import de.pixart.messenger.services.AvatarService; import de.pixart.messenger.ui.XmppActivity; @@ -72,22 +74,36 @@ public class AvatarWorkerTask extends AsyncTask<AvatarService.Avatarable, Void, } public static void loadAvatar(final AvatarService.Avatarable avatarable, final ImageView imageView, final @DimenRes int size) { + loadAvatar(avatarable, imageView, size, false); + } + + public static void loadAvatar(final AvatarService.Avatarable avatarable, final ImageView imageView, final @DimenRes int size, final boolean overlay) { if (cancelPotentialWork(avatarable, imageView)) { final XmppActivity activity = XmppActivity.find(imageView); if (activity == null) { return; } - final Bitmap bm = activity.avatarService().get(avatarable, (int) activity.getResources().getDimension(size), true); + final Bitmap bm = activity.avatarService().get(avatarable, (int) activity.getResources().getDimension(size), false); if (bm != null) { cancelPotentialWork(avatarable, imageView); - imageView.setImageBitmap(bm); + if (overlay) { + activity.xmppConnectionService.fileBackend.drawOverlay(bm, R.drawable.pencil_overlay, 1.0f); + imageView.setImageBitmap(bm); + } else { + imageView.setImageBitmap(bm); + } imageView.setBackgroundColor(0x00000000); } else { imageView.setBackgroundColor(avatarable.getAvatarBackgroundColor()); imageView.setImageDrawable(null); final AvatarWorkerTask task = new AvatarWorkerTask(imageView, size); final AsyncDrawable asyncDrawable = new AsyncDrawable(activity.getResources(), null, task); - imageView.setImageDrawable(asyncDrawable); + if (overlay) { + activity.xmppConnectionService.fileBackend.drawOverlayFromDrawable(asyncDrawable, R.drawable.pencil_overlay, 1.0f); + imageView.setImageDrawable(asyncDrawable); + } else { + imageView.setImageDrawable(asyncDrawable); + } try { task.execute(avatarable); } catch (final RejectedExecutionException ignored) { |