apsun / uSticker

Custom stickers for Gboard on Android.
https://play.google.com/store/apps/details?id=com.crossbowffs.usticker
MIT License
71 stars 6 forks source link

Stickers doesn't appear in 10.2.01.351353117 beta #49

Open lucatarik opened 3 years ago

lucatarik commented 3 years ago

I updated to 10.2.01.351353117 beta and all the stickers were missing, tried to re-import them with usticker. message said import successful but they were missing again in gboard. deleted gboard cache / data, re-imported but can't see them. reverted to version 10.1.05.342850159 beta and they come back with no issue. so I think support for 10.2 is broken

LoganMD commented 3 years ago

Same here, stickers just don't show

LinkofHyrule89 commented 3 years ago

Latest beta still has this issue.

apsun commented 3 years ago

Is this beta version on the Google Play store? Or are you downloading it from somewhere else? If it's not on Google Play then I'd wait to see if the stable release fixes this. If it is, then... thanks Google?

Logcats would be appreciated if you have them, I'm going to be fairly busy for the next month or so, not sure if I'll have the time to debug this on my own.

LinkofHyrule89 commented 3 years ago

It's the beta that's on the Google Play Store. You can sign up here https://play.google.com/apps/testing/com.google.android.inputmethod.latin

lucatarik commented 3 years ago

It's the official beta version from Play Store, but if you can't join beta program you can find it on apkmirror. there were 2 more version of beta deployed since the first post but the problem is still there. (latest beta is 10.2.06.351353117)

these are the logcats of usticker and of gboard

adb logcat | grep com.crossbowffs.usticker 02-04 16:08:47.756 611 4975 I ActivityTaskManager: START u0 {act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.crossbowffs.usticker/.MainActivity bnds=[792,1330][1045,1625]} from uid 10025 02-04 16:08:47.906 611 659 I ActivityManager: Start proc 8955:com.crossbowffs.usticker/u0a27 for pre-top-activity {com.crossbowffs.usticker/com.crossbowffs.usticker.MainActivity} 02-04 16:08:48.517 611 657 I ActivityTaskManager: Displayed com.crossbowffs.usticker/.MainActivity: +748ms 02-04 16:08:48.561 337 337 E Layer : [Surface(name=AppWindowToken{5dcfc96 token=Token{4eaffb1 ActivityRecord{acf0258 u0 com.crossbowffs.usticker/.MainActivity t499}}})/@0x914691e - animation-leash#0] No local sync point found 02-04 16:08:48.561 337 337 E Layer : [Surface(name=AppWindowToken{5dcfc96 token=Token{4eaffb1 ActivityRecord{acf0258 u0 com.crossbowffs.usticker/.MainActivity t499}}})/@0x914691e - animation-leash#0] No local sync point found 02-04 16:08:57.852 1415 8545 I Icing : Removing corpus key com.crossbowffs.usticker-internal.3p:StickerPack for package com.crossbowffs.usticker 02-04 16:08:58.205 1415 8545 I Icing : Indexing com.crossbowffs.usticker-internal.3p:StickerPack from com.crossbowffs.usticker 02-04 16:08:58.265 1415 8545 I Icing : Indexing done com.crossbowffs.usticker-internal.3p:StickerPack 02-04 16:08:58.269 1415 8545 I Icing : Removing corpus key com.crossbowffs.usticker-internal.3p:Sticker for package com.crossbowffs.usticker 02-04 16:08:58.491 1415 8545 I Icing : Indexing com.crossbowffs.usticker-internal.3p:Sticker from com.crossbowffs.usticker 02-04 16:08:58.524 1415 8545 I Icing : Indexing done com.crossbowffs.usticker-internal.3p:Sticker 02-04 16:08:58.735 1415 8545 I Icing : Indexing com.crossbowffs.usticker-internal.3p:StickerPack from com.crossbowffs.usticker 02-04 16:08:58.764 611 6174 E InputDispatcher: Window handle Window{7eac839 u0 com.crossbowffs.usticker/com.crossbowffs.usticker.MainActivity} has no registered input channel 02-04 16:08:58.817 1415 8545 I Icing : Indexing done com.crossbowffs.usticker-internal.3p:StickerPack 02-04 16:08:58.821 1415 8545 I Icing : Indexing com.crossbowffs.usticker-internal.3p:Sticker from com.crossbowffs.usticker 02-04 16:08:58.920 1415 8545 I Icing : Indexing done com.crossbowffs.usticker-internal.3p:Sticker 02-04 16:09:00.852 611 1723 W NotificationService: Toast already killed. pkg=com.crossbowffs.usticker callback=android.app.ITransientNotification$Stub$Proxy@3a21366

GBOARD:

adb logcat | grep com.google.android.inputmethod.latin 02-04 15:00:18.213 611 611 I PackageManager: Un-granting permission android.permission.INTERACT_ACROSS_PROFILES from package com.google.android.inputmethod.latin (protectionLevel=18 flags=0x20cabe44) 02-04 15:00:20.309 611 659 I ActivityManager: Start proc 1231:com.google.android.inputmethod.latin/u0a26 for service {com.google.android.inputmethod.latin/com.android.inputmethod.latin.LatinIME} 02-04 15:01:44.006 611 2517 D KeyValueBackupTask: Starting key-value backup of com.google.android.inputmethod.latin 02-04 15:01:44.009 611 2517 D BackupManagerService: awaiting agent for ApplicationInfo{e94e39c com.google.android.inputmethod.latin} 02-04 15:01:44.118 611 1723 D BackupManagerService: agentConnected pkg=com.google.android.inputmethod.latin agent=android.os.BinderProxy@966a1a5 02-04 15:01:44.118 611 2517 D KeyValueBackupTask: Invoking agent on com.google.android.inputmethod.latin 02-04 16:09:16.486 1231 1866 I native : proto-store.cc:46 File not found: '/data/user/0/com.google.android.inputmethod.latin/files/personal/adapt_state.it.dat'. 02-04 16:09:16.488 1231 1866 I native : blocklist.cc:223 No blocklist file for a language. (This is OK if the language is loaded for the first time.) /data/user/0/com.google.android.inputmethod.latin/files/personal/blacklist.it.list 02-04 16:09:16.488 1231 1866 E native : android-decoder-jni.cc:435 Failed to load dynamic LM from /data/user/0/com.google.android.inputmethod.latin/files/personal/blacklist.it.list 02-04 16:09:16.497 1231 1866 E native : dynamic-lm.cc:774 Cannot load dynamic lm from /data/user/0/com.google.android.inputmethod.latin/files/personal/userhistory/UserHistory.it.dict, openBuffer failed. 02-04 16:09:16.686 1231 1868 W SP : isDirectory returned false while listing files for /data/user/0/com.google.android.inputmethod.latin/files/superpacks/bundled_delight

apsun commented 3 years ago

Thanks for the info. I don't enroll into betas so I didn't see this. Personally I would wait for the stable release to see if this is still a problem, this issue has happened before where Google broke stickers in one version then silently fixed it a bit later.

@lucatarik, thanks for the logcat, can you include the logs from the moment you open the keyboard? I don't see anything out of the ordinary here.

lucatarik commented 3 years ago

this is the log from fresh system boot, i opened the keyboard and pressed on the sticker button

02-05 17:15:24.547 628 628 I PackageManager: Un-granting permission android.permission.INTERACT_ACROSS_PROFILES from package com.google.android.inputmethod.latin (protectionLevel=18 flags=0x20cabe44) 02-05 17:15:27.170 628 657 I ActivityManager: Start proc 1214:com.google.android.inputmethod.latin/u0a26 for service {com.google.android.inputmethod.latin/com.android.inputmethod.latin.LatinIME} 02-05 17:15:40.290 628 825 V ProcessedPackagesJournal: + com.google.android.inputmethod.latin 02-05 17:17:04.231 1818 1818 I Finsky : [2] almv.a(9): Capture account null for next update of com.google.android.inputmethod.latin 02-05 17:17:04.288 1818 1818 W Finsky : [2] frj.p(4): No everExternallyHosted provided for com.google.android.inputmethod.latin 02-05 17:17:14.957 1818 1818 I Finsky : [2] almv.a(9): Capture account null for next update of com.google.android.inputmethod.latin 02-05 17:17:14.976 1818 1818 W Finsky : [2] frj.p(4): No everExternallyHosted provided for com.google.android.inputmethod.latin 02-05 17:17:27.535 1818 1818 I Finsky : [2] alkp.e(20): AU: package com.google.android.inputmethod.latin has available update because at least one of the following constraints met: isGmsCoreInstall=false, isIsotopeInstall=false, isArInstall=false, canUpdateApp=true 02-05 17:17:28.503 1818 1818 I Finsky : [2] hqp.c(86): AU: com.google.android.inputmethod.latin is blocked with reason 8 02-05 17:17:28.627 1818 1818 I Finsky : [2] alkp.e(20): AU: package com.google.android.inputmethod.latin has available update because at least one of the following constraints met: isGmsCoreInstall=false, isIsotopeInstall=false, isArInstall=false, canUpdateApp=true ^[[A^[[A02-05 17:18:43.361 1214 1871 I native : proto-store.cc:112 Loaded successfully: '/data/user/0/com.google.android.inputmethod.latin/files/personal/adapt_state.it.dat' 02-05 17:18:43.920 1214 1875 W SP : isDirectory returned false while listing files for /data/user/0/com.google.android.inputmethod.latin/files/superpacks/bundled_delight 02-05 17:18:49.623 1432 2563 I Icing : IndexChimeraService.getServiceInterface callingPackage=com.google.android.inputmethod.latin componentName=null serviceId=32 02-05 17:18:56.071 628 645 I ActivityTaskManager: START u0 {flg=0x10808000 cmp=com.google.android.inputmethod.latin/com.google.android.apps.inputmethod.libs.search.sticker.ExpressiveStickerGalleryActivity (has extras)} from uid 10026 02-05 17:18:57.316 628 655 I ActivityTaskManager: Displayed com.google.android.inputmethod.latin/com.google.android.apps.inputmethod.libs.search.sticker.ExpressiveStickerGalleryActivity: +1s213ms 02-05 17:19:14.140 628 1079 I ActivityTaskManager: START u0 {flg=0x10808000 cmp=com.google.android.inputmethod.latin/com.google.android.apps.inputmethod.libs.search.sticker.ExpressiveStickerGalleryActivity (has extras)} from uid 10026 02-05 17:19:14.691 628 655 I ActivityTaskManager: Displayed com.google.android.inputmethod.latin/com.google.android.apps.inputmethod.libs.search.sticker.ExpressiveStickerGalleryActivity: +476ms 02-05 17:19:19.696 628 1661 I ActivityTaskManager: START u0 {cmp=com.google.android.inputmethod.latin/com.google.android.libraries.stickers.packdetails.PackDetailsActivity (has extras)} from uid 10026

an-unicorn commented 3 years ago

I meant to ask--is Google aware software like this that piggybacks onto Gboard? I would assume so since they allow programs like yours into their appstore, but I don't want to bring it up in a complaint to them and see your hard work get ganked.

apsun commented 3 years ago

I meant to ask--is Google aware software like this that piggybacks onto Gboard? I would assume so since they allow programs like yours into their appstore, but I don't want to bring it up in a complaint to them and see your hard work get ganked.

This app uses standard Firebase APIs to add stickers, Google has even made a blog post on how to do this (website seems to currently be broken, archive link: https://web.archive.org/web/20170905223604/https://android-developers.googleblog.com/2017/09/create-stickers-for-gboard-on-google.html), so I assume this is officially supported. I don't see why they would have an issue with uSticker. Feel free to report this to them.

Dipanshu6 commented 3 years ago

Problem still persists with the latest beta, I'll add logs logcat_02-17-2021_11-14-24.txt

apsun commented 3 years ago

Okay, I'm starting to suspect Google has pulled support for custom stickers from Gboard. The blog post outlining the API is clearly deliberately hidden/deleted, if you visit https://web.archive.org/web/20190306004336/https://android-developers.googleblog.com/2017/09/ you'll notice that all the posts are there, yet visiting the current version of that page has that blog post missing (yet all the others are still there).

I've tried updating the Firebase AppIndexing library, updating my Gboard version, etc... nothing helped. I've even tried out some other Gboard sticker pack apps from Google Play, and none of them work either. Conclusion: this is Google's problem, not uSticker's. Reporting the issue here will not help, please yell at Google instead.

Alternatively, there is https://github.com/apsun/Stickerboard if you are willing to switch to an iPhone, and it doesn't depend on Gboard so there is none of this bullshit.

noblereign commented 3 years ago

I think I figured it out. There's a new flag called deprecate_app_indexing_stickers located in /data/data/com.google.android.inputmethod.latin/shared_prefs/flag_value.xml on the new versions of Gboard. It was set to true, so I tried setting it to false, which allowed me to import my stickers again. In short, it does seem like Google's quietly pulling support, but at least we have a workaround for.. however long they decide to keep the flag for.

I'm running Gboard 10.2.08.351353117-beta-arm64-v8a and uSticker 1.6.0 Screenshot_20210224-100937 Screenshot_20210224-100158 (Small) Screenshot_20210224-095843 (Small)

Dipanshu6 commented 3 years ago

Epic finally some progress on this

apsun commented 3 years ago

@noblereign Wow, great find! It saddens me though that this pretty much confirms they are killing custom stickers :-(

noblereign commented 3 years ago

Well, that was depressingly fast. A Gboard beta update that was just pushed out (10.3, I think?) broke that method entirely, at least on my end. I tried restarting, clearing cache, re-importing, setting the flag back again, etc. and it wouldn't show the custom stickers until I downgraded back to 10.2. This may be the end of the road for uSticker. 😢

an-unicorn commented 3 years ago

@noblereign I was about ask if you know there was a way to toggle that without root, but that kinda spoils things altogether... 😿

apsun commented 3 years ago

x

I wouldn't be opposed to making a uSticker 2.0 that functions as a standalone keyboard if there is significant interest in one, the only problem is I've switched to an iPhone as my daily driver so it would be pretty low-pri for me (as in on the order of ~months to get something working).

LinkofHyrule89 commented 3 years ago

I wonder if you can do what Bitmoji does and just make your own tab some how.

On Fri, Feb 26, 2021, 12:51 AM Andrew Sun notifications@github.com wrote:

[image: x] https://user-images.githubusercontent.com/14020276/109269515-6f062800-77c1-11eb-86d3-dd15f04b1435.PNG

I wouldn't be opposed to making a uSticker 2.0 that functions as a standalone keyboard if there is significant interest in one, the only problem is I've switched to an iPhone as my daily driver so it would be pretty low-pri for me (as in on the order of ~months to get something working).

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/apsun/uSticker/issues/49#issuecomment-786475954, or unsubscribe https://github.com/notifications/unsubscribe-auth/AA6MPL7QBGBFXERG5T2FZOTTA5HJPANCNFSM4WTF5DGQ .

apsun commented 3 years ago

@LinkofHyrule89 That's not possible unfortunately, Google has a parnership with them and the code is integrated into Gboard. And plus, at this point Gboard has burned me so many times that I would rather not make it part of Gboard even if I could.

Dipanshu6 commented 3 years ago

You can contact vanced devs they mod Google apps secifically YouTube and YouTube music you can work with them to create a mod of gboard although this might be "illegal" but I think we don't have a choice (probably), we'll wait for further development if possible from your side

an-unicorn commented 3 years ago

@apsun I did wonder if there's a standalone way to set up a sticker database and do sticker insert that way, so count me in!

apsun commented 3 years ago

@Dipanshu6 There's also the option of Xposed (or whatever alternative is popular these days), but again, that sounds like a lot of effort and it would just tether us to Gboard forever. If you wanted to go that route you could always just download Gboard 10.1 and use that.

@an-unicorn Yeah it's definitely possible (I mean, Gboard is just another Android app after all), the only reason uSticker uses Gboard is that it was easy to get something working at the time. Those dynamics have now changed, Gboard is an ass and we will not be working with it again.

LinkofHyrule89 commented 3 years ago

I'm all for a stand alone app that I just have to switch between it's not too hard to long hold the space bar for that. Sucks they're removing sticker support.

On Fri, Feb 26, 2021, 9:57 AM Andrew Sun notifications@github.com wrote:

@Dipanshu6 https://github.com/Dipanshu6 There's also the option of Xposed (or whatever alternative is popular these days), but again, that sounds like a lot of effort and it would just tether us to Gboard forever. If you wanted to go that route you could always just download Gboard 10.1 and use that.

@an-unicorn https://github.com/an-unicorn Yeah it's definitely possible (I mean, Gboard is just another Android app after all), the only reason uSticker uses Gboard is that it was easy to get something working at the time. Those dynamics have now changed, Gboard is an ass and we will not be working with it again.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/apsun/uSticker/issues/49#issuecomment-786767629, or unsubscribe https://github.com/notifications/unsubscribe-auth/AA6MPL3FZKWYAQIU7KNFLF3TA7HG3ANCNFSM4WTF5DGQ .

FredHappyface commented 3 years ago

Are there any alternative keyboard apps that support this kind of integration?

jaytohe commented 3 years ago

Are there any alternative keyboard apps that support this kind of integration?

Yes, kind of. Microsoft's SwiftKey keyboard supports custom stickers with the Collection feature.

See here for more.

rzhou1999 commented 3 years ago

x

I wouldn't be opposed to making a uSticker 2.0 that functions as a standalone keyboard if there is significant interest in one, the only problem is I've switched to an iPhone as my daily driver so it would be pretty low-pri for me (as in on the order of ~months to get something working).

* It would also require Android 7.1+

Ah, so I ended up getting really invested in this over the weekend and banged out a quick proof of concept app that replicates uSticker/stickerboard. The code is quite terrible as of this moment (I went from never having written a mobile app literally ~24 hours ago to this pile of garbage), but it's functional and is good enough for my purposes for now. It's up at https://github.com/rzhou1999/woosticker if anyone wants to throw it into android studio and manually do a quick build, should work independently of gboard. I'll try to get around to getting it into publishable state but that also might take a while.

As a side note, thanks for you work on sticker keyboards! I've also been moving off wechat recently and have been experiencing acute sticker withdrawal symptoms, so uSticker (while it lasted) and stickerboard have been lifesavers.

1 day later edit: threw up a very simple release apk in the above repo. Feedback and advice would be appreciated if you feel so inclined.

apsun commented 3 years ago

@rzhou1999 That's awesome! If you are interested, the current dev branch of uSticker contains some work I've done when I made a half-assed attempt at this a few weeks back, if you want to ~steal~ borrow some of the UI/file indexing logic from there. (You're also more than welcome to contribute the code to uSticker if you'd like!) Good luck on your app, I'm excited that someone is working on this :-)

Also, the sticker withdrawal is real. I am very glad that I finished Stickerboard before Google pulled this BS...

X7md commented 3 years ago

So now I need to have root access, and with latest version of Gbord, I can set the flag deprecate_app_indexing_stickers to false, so should custom stickers work fine? or what?