diff --git a/app/src/main/java/ru/vtosters/lite/hooks/PicRoundingHook.java b/app/src/main/java/ru/vtosters/lite/hooks/PicRoundingHook.java index 1322ac84c..01f14c03d 100644 --- a/app/src/main/java/ru/vtosters/lite/hooks/PicRoundingHook.java +++ b/app/src/main/java/ru/vtosters/lite/hooks/PicRoundingHook.java @@ -5,7 +5,9 @@ import android.graphics.Bitmap; import android.graphics.BitmapShader; import android.graphics.Canvas; import android.graphics.Paint; +import android.graphics.RectF; import android.graphics.Shader; +import android.graphics.drawable.Drawable; import com.facebook.drawee.generic.RoundingParams; @@ -17,25 +19,33 @@ public class PicRoundingHook{ public static RoundingParams inject() { if (pref > 0) { return customParams(); + } else { + return new RoundingParams().a(true); } - - return new RoundingParams().a(true); } public static RoundingParams inject(float orig) { if (pref > 0) { return customParams(); + } else { + return new RoundingParams().b(orig); } - - return new RoundingParams().b(orig); } public static RoundingParams inject(float orig, float orig2, float orig3, float orig4) { if (pref > 0) { - orig = orig2 = orig3 = orig4 = AndroidUtils.dp2px(pref); + return new RoundingParams().a(AndroidUtils.dp2px(pref), AndroidUtils.dp2px(pref), AndroidUtils.dp2px(pref), AndroidUtils.dp2px(pref)); + } else { + return new RoundingParams().a(orig, orig2, orig3, orig4); } + } - return new RoundingParams().a(orig, orig2, orig3, orig4); + public static void inject(float orig, Canvas canvas, Paint paint){ + if (pref > 0) { + canvas.drawRoundRect(new RectF(0, 0, canvas.getWidth(), canvas.getHeight()), AndroidUtils.dp2px(pref), AndroidUtils.dp2px(pref), paint); + } else { + canvas.drawCircle(orig, orig, orig, paint); + } } public static void inject(Bitmap bitmap, Bitmap bitmap2, Paint b2) { @@ -46,10 +56,9 @@ public class PicRoundingHook{ if (pref > 0) { canvas.drawRoundRect(0, 0, bitmap.getWidth(), bitmap.getHeight(), AndroidUtils.dp2px(pref), AndroidUtils.dp2px(pref), b2); - return; + } else { + canvas.drawCircle(width, width, width, b2); } - - canvas.drawCircle(width, width, width, b2); } private static RoundingParams customParams(){ diff --git a/app/src/main/java/ru/vtosters/lite/ui/dialogs/RoundingSeekbarDialog.java b/app/src/main/java/ru/vtosters/lite/ui/dialogs/RoundingSeekbarDialog.java index 833a69902..fe9f7bbc3 100644 --- a/app/src/main/java/ru/vtosters/lite/ui/dialogs/RoundingSeekbarDialog.java +++ b/app/src/main/java/ru/vtosters/lite/ui/dialogs/RoundingSeekbarDialog.java @@ -17,7 +17,7 @@ public class RoundingSeekbarDialog{ public static void dialog(Context context) { LinearLayout mContainer = new LinearLayout(context); SeekBar seek = new SeekBar(context); - seek.setMax(10); + seek.setMax(15); seek.setKeyProgressIncrement(0); seek.setProgress(getPreferences().getInt("pic_rounding", 0)); seek.setPadding(dp2px(16f), dp2px(16f), dp2px(16f), dp2px(16f)); 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 9bb91ae7a..7ff1be1f7 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 @@ -65,8 +65,6 @@ import ru.vtosters.lite.utils.CacheUtils; import ru.vtosters.lite.utils.SSFSUtils; public class VTSettings extends MaterialPreferenceToolbarFragment { - public int hideitems = 0; - public static String getValAsString(String stringid, Boolean value) { if (disableSettingsSumms()) return null; diff --git a/app/src/main/java/ru/vtosters/lite/utils/ImageUtils.java b/app/src/main/java/ru/vtosters/lite/utils/ImageUtils.java index 632e800d1..32cdb5694 100644 --- a/app/src/main/java/ru/vtosters/lite/utils/ImageUtils.java +++ b/app/src/main/java/ru/vtosters/lite/utils/ImageUtils.java @@ -3,12 +3,14 @@ package ru.vtosters.lite.utils; import static android.graphics.Bitmap.createBitmap; import static android.graphics.Bitmap.createScaledBitmap; import static androidx.core.content.ContextCompat.getDrawable; +import static ru.vtosters.lite.utils.Preferences.preferences; import static ru.vtosters.lite.utils.ThemesUtils.getAccentColor; import android.content.Context; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Canvas; +import android.graphics.Paint; import android.graphics.Path; import android.graphics.PorterDuff; import android.graphics.RectF; @@ -27,7 +29,7 @@ import okhttp3.Response; public class ImageUtils { - private static OkHttpClient client = new OkHttpClient(); + private static final OkHttpClient client = new OkHttpClient(); public static Bitmap bmp = null; @@ -105,15 +107,21 @@ public class ImageUtils { final int width = bitmap.getWidth(); final int height = bitmap.getHeight(); final Bitmap outputBitmap = createBitmap(width, height, Bitmap.Config.ARGB_8888); + int pref = preferences.getInt("pic_rounding", 0); + final Canvas canvas = new Canvas(outputBitmap); final Path path = new Path(); - path.addCircle( - (float) (width / 2), - (float) (height / 2), - (float) Math.min(width, (height / 2)), - Path.Direction.CCW); - final Canvas canvas = new Canvas(outputBitmap); + if (pref > 0) { + path.addRoundRect(new RectF(0, 0, width, height), pref, pref, Path.Direction.CCW); + } else { + path.addCircle( + (float) (width / 2), + (float) (height / 2), + (float) Math.min(width, (height / 2)), + Path.Direction.CCW); + } + canvas.clipPath(path); canvas.drawBitmap(bitmap, 0, 0, null); return outputBitmap; diff --git a/smali/smali_classes3/com/vk/im/ui/views/avatars/AvatarDataSource.smali b/smali/smali_classes3/com/vk/im/ui/views/avatars/AvatarDataSource.smali index 8805e23ca..2e40534a2 100644 --- a/smali/smali_classes3/com/vk/im/ui/views/avatars/AvatarDataSource.smali +++ b/smali/smali_classes3/com/vk/im/ui/views/avatars/AvatarDataSource.smali @@ -769,7 +769,7 @@ .line 33 sget-object v1, Lcom/vk/im/ui/views/avatars/AvatarDataSource;->o:Landroid/graphics/Paint; - invoke-virtual {p1, v0, v0, v0, v1}, Landroid/graphics/Canvas;->drawCircle(FFFLandroid/graphics/Paint;)V + invoke-static {v0, p1, v1}, Lru/vtosters/lite/hooks/PicRoundingHook;->inject(FLandroid/graphics/Canvas;Landroid/graphics/Paint;)V return-void .end method