diff --git a/CHANGELOG.md b/CHANGELOG.md
index 19ff61e..b61609d 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,6 +1,17 @@
Change Log
==========
+Version 4.3.0 *(2020-09-27)*
+----------------------------
+
+Feature
+- Remove support v8 renderscript (Please use BlurTransformation)
+
+Update
+- minSdkVersion -> 21
+- GPUImage -> 2.1.0
+- Cleanup codes
+
Version 4.2.0 *(2020-09-15)*
----------------------------
diff --git a/build.gradle b/build.gradle
index 3a5bcea..67fad5e 100644
--- a/build.gradle
+++ b/build.gradle
@@ -4,7 +4,7 @@ buildscript {
ext {
kotlin_version = '1.3.72'
glide_version = '4.11.0'
- gpuimage_version = '2.0.4'
+ gpuimage_version = '2.1.0'
}
repositories {
@@ -12,7 +12,7 @@ buildscript {
jcenter()
}
dependencies {
- classpath 'com.android.tools.build:gradle:4.2.0-alpha10'
+ classpath 'com.android.tools.build:gradle:4.2.0-alpha12'
classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.8.5'
classpath 'com.github.dcendents:android-maven-gradle-plugin:2.1'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
diff --git a/example/build.gradle b/example/build.gradle
index ef6283c..8c5fa83 100644
--- a/example/build.gradle
+++ b/example/build.gradle
@@ -10,9 +10,6 @@ android {
targetSdkVersion TARGET_SDK_VERSION as int
versionCode VERSION_CODE as int
versionName VERSION_NAME
-
- renderscriptTargetApi TARGET_SDK_VERSION as int
- renderscriptSupportModeEnabled true
}
// SigningConfigs
diff --git a/example/src/main/java/jp/wasabeef/example/glide/MainActivity.kt b/example/src/main/java/jp/wasabeef/example/glide/MainActivity.kt
index d1b6bf8..c2939ba 100644
--- a/example/src/main/java/jp/wasabeef/example/glide/MainActivity.kt
+++ b/example/src/main/java/jp/wasabeef/example/glide/MainActivity.kt
@@ -16,7 +16,7 @@ class MainActivity : AppCompatActivity() {
layoutManager = LinearLayoutManager(context)
adapter = MainAdapter(context, mutableListOf(
Mask, NinePatchMask, RoundedCorners, CropTop, CropCenter, CropBottom, CropSquare, CropCircle,
- CropCircleWithBorder, Grayscale, Blur, SupportRSBlur, Toon, Sepia, Contrast, Invert,
+ CropCircleWithBorder, Grayscale, BlurLight, BlurDeep, Toon, Sepia, Contrast, Invert,
Pixel, Sketch, Swirl, Brightness, Kuawahara, Vignette
))
}
diff --git a/example/src/main/java/jp/wasabeef/example/glide/MainAdapter.kt b/example/src/main/java/jp/wasabeef/example/glide/MainAdapter.kt
index 3d6a350..dc5badb 100644
--- a/example/src/main/java/jp/wasabeef/example/glide/MainAdapter.kt
+++ b/example/src/main/java/jp/wasabeef/example/glide/MainAdapter.kt
@@ -41,8 +41,8 @@ class MainAdapter(
ColorFilter,
Grayscale,
RoundedCorners,
- Blur,
- SupportRSBlur,
+ BlurLight,
+ BlurDeep,
Toon,
Sepia,
Contrast,
@@ -131,14 +131,14 @@ class MainAdapter(
RoundedCornersTransformation.CornerType.DIAGONAL_FROM_TOP_LEFT)))
.into(holder.image)
- Blur -> Glide.with(context)
+ BlurLight -> Glide.with(context)
.load(R.drawable.check)
.apply(bitmapTransform(BlurTransformation(25)))
.into(holder.image)
- SupportRSBlur -> Glide.with(context)
+ BlurDeep -> Glide.with(context)
.load(R.drawable.check)
- .apply(bitmapTransform(SupportRSBlurTransformation(25, 10)))
+ .apply(bitmapTransform(BlurTransformation(25, 8)))
.into(holder.image)
Toon -> Glide.with(context)
diff --git a/gradle.properties b/gradle.properties
index 11e3750..700c510 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -1,29 +1,16 @@
-# Project-wide Gradle settings.
-# IDE (e.g. Android Studio) users:
-# Gradle settings configured through the IDE *will override*
-# any settings specified in this file.
-# For more details on how to configure your build environment visit
-# http://www.gradle.org/docs/current/userguide/build_environment.html
-# Specifies the JVM arguments used for the daemon process.
-# The setting is particularly useful for tweaking memory settings.
org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=1024m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
-# When configured, Gradle will run in incubating parallel mode.
-# This option should only be used with decoupled projects. More details, visit
-# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
org.gradle.parallel=true
org.gradle.daemon=true
org.gradle.configureondemand=true
org.gradle.caching=true
android.enableBuildCache=true
android.useAndroidX=true
-android.enableJetifier=true
# Use R8 instead of ProGuard for code shrinking.
-android.enableR8=true
android.enableR8.fullMode=true
-VERSION_NAME=4.2.0
-VERSION_CODE=420
+VERSION_NAME=4.3.0
+VERSION_CODE=421
GROUP=jp.wasabeef
COMPILE_SDK_VERSION=30
TARGET_SDK_VERSION=30
-MIN_SDK_VERSION=14
+MIN_SDK_VERSION=21
diff --git a/transformations/build.gradle b/transformations/build.gradle
index 9252f78..2ccd0b8 100644
--- a/transformations/build.gradle
+++ b/transformations/build.gradle
@@ -7,9 +7,6 @@ android {
minSdkVersion MIN_SDK_VERSION as int
targetSdkVersion TARGET_SDK_VERSION as int
- renderscriptTargetApi TARGET_SDK_VERSION as int
- renderscriptSupportModeEnabled true
-
consumerProguardFiles 'proguard-rules.txt'
}
}
diff --git a/transformations/src/main/AndroidManifest.xml b/transformations/src/main/AndroidManifest.xml
index c31b1c7..7201703 100644
--- a/transformations/src/main/AndroidManifest.xml
+++ b/transformations/src/main/AndroidManifest.xml
@@ -1 +1 @@
-
- * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - *
- * http://www.apache.org/licenses/LICENSE-2.0 - *
- * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import android.content.Context; -import android.graphics.Bitmap; -import android.graphics.Canvas; -import android.graphics.Paint; -import android.os.Build; - -import androidx.annotation.NonNull; - -import com.bumptech.glide.load.engine.bitmap_recycle.BitmapPool; - -import java.security.MessageDigest; - -import jp.wasabeef.glide.transformations.internal.FastBlur; -import jp.wasabeef.glide.transformations.internal.RSBlur; -import jp.wasabeef.glide.transformations.internal.SupportRSBlur; - -public class SupportRSBlurTransformation extends BitmapTransformation { - - private static final int VERSION = 1; - private static final String ID = - "jp.wasabeef.glide.transformations.SupportRSBlurTransformation." + VERSION; - - private static int MAX_RADIUS = 25; - private static int DEFAULT_DOWN_SAMPLING = 1; - - private int radius; - private int sampling; - - public SupportRSBlurTransformation() { - this(MAX_RADIUS, DEFAULT_DOWN_SAMPLING); - } - - public SupportRSBlurTransformation(int radius) { - this(radius, DEFAULT_DOWN_SAMPLING); - } - - public SupportRSBlurTransformation(int radius, int sampling) { - this.radius = radius; - this.sampling = sampling; - } - - @Override - protected Bitmap transform(@NonNull Context context, @NonNull BitmapPool pool, - @NonNull Bitmap toTransform, int outWidth, int outHeight) { - - int width = toTransform.getWidth(); - int height = toTransform.getHeight(); - int scaledWidth = width / sampling; - int scaledHeight = height / sampling; - - Bitmap bitmap = pool.get(scaledWidth, scaledHeight, Bitmap.Config.ARGB_8888); - - setCanvasBitmapDensity(toTransform, bitmap); - - Canvas canvas = new Canvas(bitmap); - canvas.scale(1 / (float) sampling, 1 / (float) sampling); - Paint paint = new Paint(); - paint.setFlags(Paint.FILTER_BITMAP_FLAG); - canvas.drawBitmap(toTransform, 0, 0, paint); - - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2) { - try { - bitmap = SupportRSBlur.blur(context, bitmap, radius); - } catch (NoClassDefFoundError e) { - bitmap = RSBlur.blur(context, bitmap, radius); - } catch (RuntimeException e) { - bitmap = FastBlur.blur(bitmap, radius, true); - } - } else { - bitmap = FastBlur.blur(bitmap, radius, true); - } - - return bitmap; - } - - @Override - public String toString() { - return "SupportRSBlurTransformation(radius=" + radius + ", sampling=" + sampling + ")"; - } - - @Override - public boolean equals(Object o) { - return o instanceof SupportRSBlurTransformation && - ((SupportRSBlurTransformation) o).radius == radius && - ((SupportRSBlurTransformation) o).sampling == sampling; - } - - @Override - public int hashCode() { - return ID.hashCode() + radius * 1000 + sampling * 10; - } - - @Override - public void updateDiskCacheKey(@NonNull MessageDigest messageDigest) { - messageDigest.update((ID + radius + sampling).getBytes(CHARSET)); - } -} diff --git a/transformations/src/main/java/jp/wasabeef/glide/transformations/gpu/BrightnessFilterTransformation.java b/transformations/src/main/java/jp/wasabeef/glide/transformations/gpu/BrightnessFilterTransformation.java index ce731c5..8655059 100755 --- a/transformations/src/main/java/jp/wasabeef/glide/transformations/gpu/BrightnessFilterTransformation.java +++ b/transformations/src/main/java/jp/wasabeef/glide/transformations/gpu/BrightnessFilterTransformation.java @@ -31,7 +31,7 @@ public class BrightnessFilterTransformation extends GPUFilterTransformation { private static final String ID = "jp.wasabeef.glide.transformations.gpu.BrightnessFilterTransformation." + VERSION; - private float brightness; + private final float brightness; public BrightnessFilterTransformation() { this(0.0f); diff --git a/transformations/src/main/java/jp/wasabeef/glide/transformations/gpu/ContrastFilterTransformation.java b/transformations/src/main/java/jp/wasabeef/glide/transformations/gpu/ContrastFilterTransformation.java index 8fbf5c0..b6af2c0 100755 --- a/transformations/src/main/java/jp/wasabeef/glide/transformations/gpu/ContrastFilterTransformation.java +++ b/transformations/src/main/java/jp/wasabeef/glide/transformations/gpu/ContrastFilterTransformation.java @@ -31,7 +31,7 @@ public class ContrastFilterTransformation extends GPUFilterTransformation { private static final String ID = "jp.wasabeef.glide.transformations.gpu.ContrastFilterTransformation." + VERSION; - private float contrast; + private final float contrast; public ContrastFilterTransformation() { this(1.0f); diff --git a/transformations/src/main/java/jp/wasabeef/glide/transformations/gpu/GPUFilterTransformation.java b/transformations/src/main/java/jp/wasabeef/glide/transformations/gpu/GPUFilterTransformation.java index bc8b780..91a0aec 100755 --- a/transformations/src/main/java/jp/wasabeef/glide/transformations/gpu/GPUFilterTransformation.java +++ b/transformations/src/main/java/jp/wasabeef/glide/transformations/gpu/GPUFilterTransformation.java @@ -36,7 +36,7 @@ public class GPUFilterTransformation extends BitmapTransformation { "jp.wasabeef.glide.transformations.gpu.GPUFilterTransformation." + VERSION; private static final byte[] ID_BYTES = ID.getBytes(CHARSET); - private GPUImageFilter gpuImageFilter; + private final GPUImageFilter gpuImageFilter; public GPUFilterTransformation(GPUImageFilter filter) { this.gpuImageFilter = filter; diff --git a/transformations/src/main/java/jp/wasabeef/glide/transformations/gpu/KuwaharaFilterTransformation.java b/transformations/src/main/java/jp/wasabeef/glide/transformations/gpu/KuwaharaFilterTransformation.java index b7a619c..78a5b2d 100755 --- a/transformations/src/main/java/jp/wasabeef/glide/transformations/gpu/KuwaharaFilterTransformation.java +++ b/transformations/src/main/java/jp/wasabeef/glide/transformations/gpu/KuwaharaFilterTransformation.java @@ -34,7 +34,7 @@ public class KuwaharaFilterTransformation extends GPUFilterTransformation { private static final String ID = "jp.wasabeef.glide.transformations.gpu.KuwaharaFilterTransformation." + VERSION; - private int radius; + private final int radius; public KuwaharaFilterTransformation() { this(25); diff --git a/transformations/src/main/java/jp/wasabeef/glide/transformations/gpu/PixelationFilterTransformation.java b/transformations/src/main/java/jp/wasabeef/glide/transformations/gpu/PixelationFilterTransformation.java index 548ed5c..1b6fd12 100755 --- a/transformations/src/main/java/jp/wasabeef/glide/transformations/gpu/PixelationFilterTransformation.java +++ b/transformations/src/main/java/jp/wasabeef/glide/transformations/gpu/PixelationFilterTransformation.java @@ -33,7 +33,7 @@ public class PixelationFilterTransformation extends GPUFilterTransformation { private static final String ID = "jp.wasabeef.glide.transformations.gpu.PixelationFilterTransformation." + VERSION; - private float pixel; + private final float pixel; public PixelationFilterTransformation() { this(10f); diff --git a/transformations/src/main/java/jp/wasabeef/glide/transformations/gpu/SepiaFilterTransformation.java b/transformations/src/main/java/jp/wasabeef/glide/transformations/gpu/SepiaFilterTransformation.java index eb4e47f..149f009 100755 --- a/transformations/src/main/java/jp/wasabeef/glide/transformations/gpu/SepiaFilterTransformation.java +++ b/transformations/src/main/java/jp/wasabeef/glide/transformations/gpu/SepiaFilterTransformation.java @@ -33,7 +33,7 @@ public class SepiaFilterTransformation extends GPUFilterTransformation { private static final String ID = "jp.wasabeef.glide.transformations.gpu.SepiaFilterTransformation." + VERSION; - private float intensity; + private final float intensity; public SepiaFilterTransformation() { this(1.0f); diff --git a/transformations/src/main/java/jp/wasabeef/glide/transformations/gpu/SwirlFilterTransformation.java b/transformations/src/main/java/jp/wasabeef/glide/transformations/gpu/SwirlFilterTransformation.java index 73394c7..3ff0043 100755 --- a/transformations/src/main/java/jp/wasabeef/glide/transformations/gpu/SwirlFilterTransformation.java +++ b/transformations/src/main/java/jp/wasabeef/glide/transformations/gpu/SwirlFilterTransformation.java @@ -33,9 +33,9 @@ public class SwirlFilterTransformation extends GPUFilterTransformation { private static final String ID = "jp.wasabeef.glide.transformations.gpu.SwirlFilterTransformation." + VERSION; - private float radius; - private float angle; - private PointF center; + private final float radius; + private final float angle; + private final PointF center; public SwirlFilterTransformation() { this(.5f, 1.0f, new PointF(0.5f, 0.5f)); diff --git a/transformations/src/main/java/jp/wasabeef/glide/transformations/gpu/ToonFilterTransformation.java b/transformations/src/main/java/jp/wasabeef/glide/transformations/gpu/ToonFilterTransformation.java index 8d531b4..de11c3e 100755 --- a/transformations/src/main/java/jp/wasabeef/glide/transformations/gpu/ToonFilterTransformation.java +++ b/transformations/src/main/java/jp/wasabeef/glide/transformations/gpu/ToonFilterTransformation.java @@ -33,8 +33,8 @@ public class ToonFilterTransformation extends GPUFilterTransformation { private static final String ID = "jp.wasabeef.glide.transformations.gpu.ToonFilterTransformation." + VERSION; - private float threshold; - private float quantizationLevels; + private final float threshold; + private final float quantizationLevels; public ToonFilterTransformation() { this(.2f, 10.0f); diff --git a/transformations/src/main/java/jp/wasabeef/glide/transformations/gpu/VignetteFilterTransformation.java b/transformations/src/main/java/jp/wasabeef/glide/transformations/gpu/VignetteFilterTransformation.java index a92617d..22450c1 100755 --- a/transformations/src/main/java/jp/wasabeef/glide/transformations/gpu/VignetteFilterTransformation.java +++ b/transformations/src/main/java/jp/wasabeef/glide/transformations/gpu/VignetteFilterTransformation.java @@ -36,10 +36,10 @@ public class VignetteFilterTransformation extends GPUFilterTransformation { private static final String ID = "jp.wasabeef.glide.transformations.gpu.VignetteFilterTransformation." + VERSION; - private PointF center; - private float[] vignetteColor; - private float vignetteStart; - private float vignetteEnd; + private final PointF center; + private final float[] vignetteColor; + private final float vignetteStart; + private final float vignetteEnd; public VignetteFilterTransformation() { this(new PointF(0.5f, 0.5f), new float[]{0.0f, 0.0f, 0.0f}, 0.0f, 0.75f); diff --git a/transformations/src/main/java/jp/wasabeef/glide/transformations/internal/RSBlur.java b/transformations/src/main/java/jp/wasabeef/glide/transformations/internal/RSBlur.java index 2093387..a2827dc 100644 --- a/transformations/src/main/java/jp/wasabeef/glide/transformations/internal/RSBlur.java +++ b/transformations/src/main/java/jp/wasabeef/glide/transformations/internal/RSBlur.java @@ -28,7 +28,6 @@ import android.renderscript.ScriptIntrinsicBlur; public class RSBlur { - @TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR2) public static Bitmap blur(Context context, Bitmap bitmap, int radius) throws RSRuntimeException { RenderScript rs = null; Allocation input = null; diff --git a/transformations/src/main/java/jp/wasabeef/glide/transformations/internal/SupportRSBlur.java b/transformations/src/main/java/jp/wasabeef/glide/transformations/internal/SupportRSBlur.java deleted file mode 100644 index ada3409..0000000 --- a/transformations/src/main/java/jp/wasabeef/glide/transformations/internal/SupportRSBlur.java +++ /dev/null @@ -1,71 +0,0 @@ -package jp.wasabeef.glide.transformations.internal; - -import android.annotation.TargetApi; -import android.content.Context; -import android.graphics.Bitmap; -import android.os.Build; - -import androidx.renderscript.Allocation; -import androidx.renderscript.Element; -import androidx.renderscript.RSRuntimeException; -import androidx.renderscript.RenderScript; -import androidx.renderscript.ScriptIntrinsicBlur; - -/** - * Copyright (C) 2020 Wasabeef - *
- * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - *
- * http://www.apache.org/licenses/LICENSE-2.0 - *
- * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -public class SupportRSBlur { - - @TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR2) - public static Bitmap blur(Context context, Bitmap bitmap, int radius) throws RSRuntimeException { - RenderScript rs = null; - Allocation input = null; - Allocation output = null; - ScriptIntrinsicBlur blur = null; - try { - rs = RenderScript.create(context); - rs.setMessageHandler(new RenderScript.RSMessageHandler()); - input = Allocation.createFromBitmap(rs, bitmap, Allocation.MipmapControl.MIPMAP_NONE, - Allocation.USAGE_SCRIPT); - output = Allocation.createTyped(rs, input.getType()); - blur = ScriptIntrinsicBlur.create(rs, Element.U8_4(rs)); - - blur.setInput(input); - blur.setRadius(radius); - blur.forEach(output); - output.copyTo(bitmap); - } finally { - if (rs != null) { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { - RenderScript.releaseAllContexts(); - } else { - rs.destroy(); - } - } - if (input != null) { - input.destroy(); - } - if (output != null) { - output.destroy(); - } - if (blur != null) { - blur.destroy(); - } - } - - return bitmap; - } -} diff --git a/transformations/src/main/java/jp/wasabeef/glide/transformations/internal/Utils.java b/transformations/src/main/java/jp/wasabeef/glide/transformations/internal/Utils.java index 21bc619..1b8ee5e 100644 --- a/transformations/src/main/java/jp/wasabeef/glide/transformations/internal/Utils.java +++ b/transformations/src/main/java/jp/wasabeef/glide/transformations/internal/Utils.java @@ -27,21 +27,6 @@ public final class Utils { // Utility class. } - public static Drawable getMaskDrawable(Context context, int maskId) { - Drawable drawable; - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { - drawable = context.getDrawable(maskId); - } else { - drawable = context.getResources().getDrawable(maskId); - } - - if (drawable == null) { - throw new IllegalArgumentException("maskId is invalid"); - } - - return drawable; - } - public static int toDp(int px) { return px * (int) Resources.getSystem().getDisplayMetrics().density; }