aboutsummaryrefslogtreecommitdiff
path: root/app/src/main/kotlin/com/pitchedapps/frost/glide
diff options
context:
space:
mode:
authorAllan Wang <me@allanwang.ca>2017-12-29 19:39:04 -0500
committerGitHub <noreply@github.com>2017-12-29 19:39:04 -0500
commit32e6b5be0e662bbac22806bcc87259fd1a2e2ed0 (patch)
treec97f7ef11b60231bbe7337f5960413b95da0a8c2 /app/src/main/kotlin/com/pitchedapps/frost/glide
parent8fee0629c27edee847358efc82309118f3a9a3a5 (diff)
downloadfrost-32e6b5be0e662bbac22806bcc87259fd1a2e2ed0.tar.gz
frost-32e6b5be0e662bbac22806bcc87259fd1a2e2ed0.tar.bz2
frost-32e6b5be0e662bbac22806bcc87259fd1a2e2ed0.zip
Feature/native notifs (#579)
* Improve parser and add zip test * Remove ActivityOptionsCompat, resolves #555 * Create native notifs * Add animations * Add image rounder * Improve glide transformations * Add request service * Fix parser * Fix parser * Add thumbnail and fix notification text * Update parsers and regex * Auto mark as read * Add request implementation in pending intent * Remove unnecessary return data * Simplify command retrieval * Use name keys instead * Revamp all bundle calls * Fix up thumbnail layout
Diffstat (limited to 'app/src/main/kotlin/com/pitchedapps/frost/glide')
-rw-r--r--app/src/main/kotlin/com/pitchedapps/frost/glide/GlideUtils.kt27
-rw-r--r--app/src/main/kotlin/com/pitchedapps/frost/glide/RoundCornerTransformation.kt41
2 files changed, 68 insertions, 0 deletions
diff --git a/app/src/main/kotlin/com/pitchedapps/frost/glide/GlideUtils.kt b/app/src/main/kotlin/com/pitchedapps/frost/glide/GlideUtils.kt
new file mode 100644
index 00000000..6d2b3cda
--- /dev/null
+++ b/app/src/main/kotlin/com/pitchedapps/frost/glide/GlideUtils.kt
@@ -0,0 +1,27 @@
+package com.pitchedapps.frost.glide
+
+import com.bumptech.glide.RequestBuilder
+import com.bumptech.glide.load.MultiTransformation
+import com.bumptech.glide.load.resource.bitmap.BitmapTransformation
+import com.bumptech.glide.load.resource.bitmap.CircleCrop
+import com.bumptech.glide.request.RequestOptions
+
+/**
+ * Created by Allan Wang on 28/12/17.
+ *
+ * Collection of transformations
+ * Each caller will generate a new one upon request
+ */
+object FrostGlide {
+ val roundCorner
+ get() = RoundCornerTransformation()
+ val circleCrop
+ get() = CircleCrop()
+}
+
+fun <T> RequestBuilder<T>.transform(vararg transformation: BitmapTransformation): RequestBuilder<T> =
+ when (transformation.size) {
+ 0 -> this
+ 1 -> apply(RequestOptions.bitmapTransform(transformation[0]))
+ else -> apply(RequestOptions.bitmapTransform(MultiTransformation(*transformation)))
+ }
diff --git a/app/src/main/kotlin/com/pitchedapps/frost/glide/RoundCornerTransformation.kt b/app/src/main/kotlin/com/pitchedapps/frost/glide/RoundCornerTransformation.kt
new file mode 100644
index 00000000..5eded159
--- /dev/null
+++ b/app/src/main/kotlin/com/pitchedapps/frost/glide/RoundCornerTransformation.kt
@@ -0,0 +1,41 @@
+package com.pitchedapps.frost.glide
+
+import android.graphics.*
+import com.bumptech.glide.load.engine.bitmap_recycle.BitmapPool
+import com.bumptech.glide.load.resource.bitmap.BitmapTransformation
+import com.pitchedapps.frost.utils.Prefs
+import java.security.MessageDigest
+
+
+/**
+ * Created by Allan Wang on 27/12/17.
+ */
+class RoundCornerTransformation : BitmapTransformation() {
+
+ override fun updateDiskCacheKey(messageDigest: MessageDigest) {
+ messageDigest.update("FrostRoundCornerTransform-${Prefs.showRoundedIcons}".toByteArray())
+ }
+
+ override fun transform(pool: BitmapPool, toTransform: Bitmap, outWidth: Int, outHeight: Int): Bitmap {
+
+ val width = toTransform.width
+ val height = toTransform.height
+
+ val bitmap = pool.get(width, height, Bitmap.Config.ARGB_8888)
+ bitmap.setHasAlpha(true)
+
+ val radius = Math.min(width, height).toFloat() /
+ (if (Prefs.showRoundedIcons) 2f else 10f)
+
+ val canvas = Canvas(bitmap)
+ val paint = Paint()
+ paint.isAntiAlias = true
+ paint.shader = BitmapShader(toTransform, Shader.TileMode.CLAMP, Shader.TileMode.CLAMP)
+ canvas.drawRoundRect(RectF(0f, 0f, width.toFloat(), height.toFloat()),
+ radius, radius, paint)
+
+ return bitmap
+ }
+
+
+} \ No newline at end of file