To keep the code readable, I did a major refactor and converted the code to be written in Kotlin and use coroutines (thanks to the now-existing HttpClient class). As positive effects, the licensing code is now much shorter, easier to understand due to its clearer logical flow and no longer visibly consists of loads of nested callbacks and recursive calls.
Adds support for auto-purchasing free apps, and adds preference to enable auto-purchasing. Inspired by the implementation in gplayapi. Fixes https://gitlab.e.foundation/e/backlog/-/issues/7949.
To keep the code readable, I did a major refactor and converted the code to be written in Kotlin and use coroutines (thanks to the now-existing
HttpClient
class). As positive effects, the licensing code is now much shorter, easier to understand due to its clearer logical flow and no longer visibly consists of loads of nested callbacks and recursive calls.cc @jonathanklee