From 158ac3c19ae039f9f706879a16366dc4d4e15d3a Mon Sep 17 00:00:00 2001 From: Kieran W <41634689+FredHappyface@users.noreply.github.com> Date: Sun, 9 Feb 2025 12:22:53 +0000 Subject: [PATCH] make png fallback configurable and improve share sheet --- .../com/fredhappyface/ewesticker/ImageKeyboard.kt | 3 +++ .../com/fredhappyface/ewesticker/MainActivity.kt | 1 + .../ewesticker/utilities/StickerSender.kt | 5 ++++- app/src/main/res/layout/activity_main.xml | 14 ++++++++++++++ app/src/main/res/values/strings.xml | 1 + 5 files changed, 23 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/fredhappyface/ewesticker/ImageKeyboard.kt b/app/src/main/java/com/fredhappyface/ewesticker/ImageKeyboard.kt index 77ce492..c058b55 100644 --- a/app/src/main/java/com/fredhappyface/ewesticker/ImageKeyboard.kt +++ b/app/src/main/java/com/fredhappyface/ewesticker/ImageKeyboard.kt @@ -58,6 +58,7 @@ class ImageKeyboard : InputMethodService(), StickerClickListener { private var iconsPerX = 0 private var iconSize = 0 private var insensitiveSort = false + private var isPngFallback = true // Constants private lateinit var internalDir: File @@ -127,6 +128,7 @@ class ImageKeyboard : InputMethodService(), StickerClickListener { this.scroll = this.backupSharedPreferences.getBoolean("scroll", false) this.vibrate = this.backupSharedPreferences.getBoolean("vibrate", true) this.insensitiveSort = this.backupSharedPreferences.getBoolean("insensitiveSort", false) + this.isPngFallback = this.backupSharedPreferences.getBoolean("isPngFallback", true) this.iconsPerX = this.backupSharedPreferences.getInt("iconsPerX", 3) this.totalIconPadding = @@ -228,6 +230,7 @@ class ImageKeyboard : InputMethodService(), StickerClickListener { this.currentInputEditorInfo, this.compatCache, this.imageLoader, + this.isPngFallback, ) } diff --git a/app/src/main/java/com/fredhappyface/ewesticker/MainActivity.kt b/app/src/main/java/com/fredhappyface/ewesticker/MainActivity.kt index e6457a8..e0bd3b5 100644 --- a/app/src/main/java/com/fredhappyface/ewesticker/MainActivity.kt +++ b/app/src/main/java/com/fredhappyface/ewesticker/MainActivity.kt @@ -91,6 +91,7 @@ class MainActivity : AppCompatActivity() { toggle(findViewById(R.id.restoreOnClose), "restoreOnClose", false) {} toggle(findViewById(R.id.scroll), "scroll", false) {} toggle(findViewById(R.id.insensitive_sort), "insensitiveSort", false) {} + toggle(findViewById(R.id.pngFallback), "isPngFallback", true) {} val versionText: TextView = findViewById(R.id.versionText) var version = getString(R.string.version_text) diff --git a/app/src/main/java/com/fredhappyface/ewesticker/utilities/StickerSender.kt b/app/src/main/java/com/fredhappyface/ewesticker/utilities/StickerSender.kt index e5558db..37d4f57 100644 --- a/app/src/main/java/com/fredhappyface/ewesticker/utilities/StickerSender.kt +++ b/app/src/main/java/com/fredhappyface/ewesticker/utilities/StickerSender.kt @@ -36,6 +36,7 @@ import java.io.IOException * @property compatCache: used to track previous x converted compat stickers * @property imageLoader: coil imageLoader object used to convert a sticker file to a drawable ready * for writing to a compat sticker + * @property isPngFallback: is a png fallback enabled */ class StickerSender( private val context: Context, @@ -45,6 +46,7 @@ class StickerSender( private val currentInputEditorInfo: EditorInfo?, private val compatCache: Cache, private val imageLoader: ImageLoader, + private val isPngFallback: Boolean, ) { private val supportedMimes = this.currentInputEditorInfo?.contentMimeTypes ?: emptyArray() @@ -175,7 +177,7 @@ class StickerSender( */ private suspend fun doFallbackCommitContent(mimeType: String, file: File) { - if ("image/png" in supportedMimes || "image/*" in supportedMimes) { + if (isPngFallback && ("image/png" in supportedMimes || "image/*" in supportedMimes)) { val compatSticker = createCompatSticker(file) if (compatSticker != null) { if (!doCommitContent("image/png", compatSticker)) { @@ -209,6 +211,7 @@ class StickerSender( } shareIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION) + shareIntent.setPackage(packageName) val chooserIntent = Intent.createChooser(shareIntent, "Share Sticker") chooserIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK) diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 9136748..b1bc780 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -259,6 +259,20 @@ android:text="@string/options_insensitive_sort" /> + + + + + + + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 17fbb3c..7e9fafb 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -26,6 +26,7 @@ Restore previous keyboard on keyboard close Enable swipe between packs (perpendicular to scroll direction) Enable case-insensitive pack sorting + Enable PNG sticker fallback if sticker format isn\'t supported "Number of Rows: " "Icon size: "