Make system keyboard sticker detection more reliable.

This commit is contained in:
Greyson Parrelli
2025-04-16 16:37:22 -04:00
committed by Cody Henthorne
parent fe97c969ae
commit 2e50699a2d
4 changed files with 17 additions and 22 deletions

View File

@@ -4,7 +4,6 @@ import android.content.Context
import android.net.Uri
import android.text.Spannable
import android.text.SpannableString
import com.bumptech.glide.Glide
import io.reactivex.rxjava3.core.Maybe
import io.reactivex.rxjava3.schedulers.Schedulers
import org.signal.core.util.Base64
@@ -97,9 +96,9 @@ class DraftRepository(
}
if (shareMedia != null && shareContentType != null && borderless) {
val details = KeyboardUtil.getImageDetails(Glide.with(context), shareMedia)
val details = KeyboardUtil.getImageDetails(shareMedia)
if (details == null || !details.hasTransparency) {
if (details == null || !details.isSticker) {
return ShareOrDraftData.SetMedia(shareMedia, shareMediaType!!, null) to null
}

View File

@@ -4271,7 +4271,7 @@ class ConversationFragment :
}
private fun sendKeyboardImage(uri: Uri, contentType: String, keyboardImageDetails: KeyboardUtil.ImageDetails?) {
if (keyboardImageDetails == null || !keyboardImageDetails.hasTransparency) {
if (keyboardImageDetails == null || !keyboardImageDetails.isSticker) {
setMedia(uri, requireNotNull(SlideFactory.MediaType.from(contentType)))
return
}

View File

@@ -14,7 +14,6 @@ import android.text.SpannableStringBuilder
import androidx.core.content.pm.ShortcutInfoCompat
import androidx.core.graphics.drawable.IconCompat
import androidx.core.graphics.drawable.toBitmap
import com.bumptech.glide.Glide
import com.bumptech.glide.RequestManager
import com.bumptech.glide.request.target.CustomTarget
import com.bumptech.glide.request.transition.Transition
@@ -111,7 +110,7 @@ class ConversationRepository(
*/
fun getKeyboardImageDetails(uri: Uri): Maybe<KeyboardUtil.ImageDetails> {
return MaybeCompat.fromCallable {
KeyboardUtil.getImageDetails(Glide.with(applicationContext), uri)
KeyboardUtil.getImageDetails(uri)
}.subscribeOn(Schedulers.io())
}