[Xposed Framework Modules] Roughy:
Exi for Swiftkey 2.1.3 release

2.1.3 [ 11.03.2019 ] - Compatibility, bug fixes ( Stable: 7.2.4.22 Beta: 7.2.4.22 )

Changes in 2.1.0

Fixed

- Compatibility targeting 7.2.4.22 ( swipe/popup key issue )

- Bing redirect not being removed when gif inserted as link text instead of content

Added

- Debug output when class/method profiles do not match exactly ( logcat )

Changed

- Translations updated ( Russian, Brazillian-Portugese, Polish )

- Removed attempted EdXposed GC crash fix

The Xposed Installer app does not appear to be refreshing properly and may not list the latest version.

Please download it directly from the Xposed Repository below using a browser.

Download:

Exi for Swiftkey on Xposed module repository

Notes:

Compatibility [MENTION=5643806]Bobobot[/MENTION]

The method that is run when the user long-presses a key was moved from a class method to a lambda, meaning our hook couldn't find it and anything that relied on it failed.

We keep track of what keys have multi-key popups, and disable swipe-selection if a long-press event occurs after one is pressed, so that the user can select one of the popup keys.

Gif bing redirect [MENTION=4402493]BadToThePhone[/MENTION]

I was mainly testing in Discord when I originally implemented this, and must have... not tested generic text boxes and such, because it turns out our hook does not cover instances when the gif is inserted as a plain-text link, as opposed to as "rich content".

tl;dr if the textbox displays a preview of the image it is content, if just inserts the text it is text.

Removing the bing redirect should now work elsewhere too, though it should always have been inserted as content in Discord, so if that wasn't working before then... maybe?

Debug output

Exi relies a lot on finding the class or method that is the most similar to a profile we provide.

If the similarity score differs significantly, there have likely been major changes and it might be a good idea to check that any hooks that rely on that class/method still work correctly.

It also provides a clue as to what hook might have broken.

Up until now the only log output I provided for this was in the profile cache I store in Swiftkey's data folder, but from now it will also print info about the affected item to logcat is the similarity score is < 1.0.

This doesn't do anything for you, but makes my life a tiny bit easier.

Swiftkey from third-party stores/apks [MENTION=6450691]KaMyKaSii[/MENTION]

After Swiftkey vanished from the Play store on my device the other day, I had a look at various third-party stores, and was surprised to find that the updated version of Swiftkey they provide would crash saying it couldn't find certain resources.

I have since solved the issue on my device by changing the ROM fingerprint, and also figured out why I couldn't find a working 7.2.4.22 apk anywhere.

If you have a look at the directory where the apk is stored when you install Swiftkey ...

You will find that it is now a split configuration.

You get one shared base.apk, and then the various resources for your device configuration are included separately.

The third party stores were probably all providing just the base.apk, and was thus missing the resources provided in the other split apks.