From f68cc4a6bde0a0c7c022a341f14597a048cdbe7f Mon Sep 17 00:00:00 2001 From: gdlbo <41114720+gdlbo@users.noreply.github.com> Date: Sat, 2 Jul 2022 14:00:54 +0300 Subject: [PATCH] fixed scaling pic --- .../vtosters/lite/ui/fragments/VTSettings.java | 2 +- .../java/ru/vtosters/lite/utils/Globals.java | 16 +++++++++++----- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/ru/vtosters/lite/ui/fragments/VTSettings.java b/app/src/main/java/ru/vtosters/lite/ui/fragments/VTSettings.java index bf24c5d3b..e21dfb723 100644 --- a/app/src/main/java/ru/vtosters/lite/ui/fragments/VTSettings.java +++ b/app/src/main/java/ru/vtosters/lite/ui/fragments/VTSettings.java @@ -123,7 +123,7 @@ public class VTSettings extends MaterialPreferenceToolbarFragment{ int vtosterXml = getIdentifier("empty", "xml"); this.addPreferencesFromResource(vtosterXml); - PreferencesUtil.addPreferenceDrawable(this, "", "Аккаунты", getUsername() + (hasVerification() ? Globals.getString("thanksfordonate") : Globals.getString("getdonate")), getDrawableFromUrl(getUserPhoto(), "ic_user_circle_outline_28", true), preference -> { + PreferencesUtil.addPreferenceDrawable(this, "", "Аккаунты", getUsername() + (hasVerification() ? Globals.getString("thanksfordonate") : Globals.getString("getdonate")), getDrawableFromUrl(getUserPhoto(), "ic_user_circle_outline_28", true, true), preference -> { AuthBridge.logout(); restartApplication(); return false; diff --git a/app/src/main/java/ru/vtosters/lite/utils/Globals.java b/app/src/main/java/ru/vtosters/lite/utils/Globals.java index 4da64934e..2d8bea6ba 100644 --- a/app/src/main/java/ru/vtosters/lite/utils/Globals.java +++ b/app/src/main/java/ru/vtosters/lite/utils/Globals.java @@ -1,5 +1,6 @@ package ru.vtosters.lite.utils; +import static android.graphics.Bitmap.*; import static androidx.core.content.ContextCompat.getDrawable; import static ru.vtosters.lite.utils.CacheUtils.getInstance; import static ru.vtosters.lite.utils.LocaleUtils.getLocale; @@ -171,27 +172,32 @@ public class Globals{ return extendedUserProfile.a; } - public static Drawable getDrawableFromUrl(String url, String nopic, Boolean rounded){ + public static Drawable getDrawableFromUrl(String url, String def, Boolean rounded, Boolean scaled){ try { URL aryURI = new URL(url); StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build(); - StrictMode.setThreadPolicy(policy); + StrictMode.setThreadPolicy(policy); // fix get pic URLConnection conn = aryURI.openConnection(); InputStream is = conn.getInputStream(); Bitmap bmp = BitmapFactory.decodeStream(is); + bmp = rounded? getBitmapClippedCircle(bmp) : bmp; // rounding - return new BitmapDrawable(getResources(), rounded? Bitmap.createScaledBitmap(getBitmapClippedCircle(bmp), convertDpToPixel(256), convertDpToPixel(256), true) : bmp); + bmp = scaled? createScaledBitmap(bmp, convertDpToPixel(256), convertDpToPixel(256), true) : bmp; // scaling + + return new BitmapDrawable(getResources(), bmp); // return our drawable } catch (Exception e) { - return getDrawable(getContext(), getIdentifier(nopic, "drawable")); + if(def == null) return null; // default pic can be null + + return getDrawable(getContext(), getIdentifier(def, "drawable")); // get default drawable via res } } public static Bitmap getBitmapClippedCircle(Bitmap bitmap){ final int width = bitmap.getWidth(); final int height = bitmap.getHeight(); - final Bitmap outputBitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888); + final Bitmap outputBitmap = createBitmap(width, height, Config.ARGB_8888); final Path path = new Path(); path.addCircle(