View Issue Details
|ID||Project||Category||View Status||Date Submitted||Last Update|
|0006608||Taler||wallet (Android App)||public||2020-09-16 11:24||2020-09-16 11:24|
|Reporter||Florian Dold||Assigned To||grote|
|Priority||high||Severity||minor||Reproducibility||have not tried|
|Summary||0006608: make wallet work on Android 21+|
|Description||>> According to the git commit history, the minimum Android version got|
>> bumped in March, because the QR code scanner package was changed a
>> different one that requires Android 7.0+ (AFAIK to get around some
>> limitation of the current one).
> Ugh. Can we do something conditional, like use one package for ancient
> Android and the other one for 7.0+? What was the limitation anyway?
It wasn't actually a library swap, but just upgrading the same QR scanner library (zxing-android-embedded) to a new major version. A direct dependency this lib (ZXing core, the underlying QR / bar code image processing library) requires Java8+ since 2019. That explains the minSdkVersion bump to 24.
As a quick fix, we can downgrade. But IIRC, the old version had limitations regarding the device orientation (it would always present the reader in landscape mode). According to the change logs, scanning accuracy was also improved in the current zxing release.
Interestingly, since only April 2020 (!), the Android SDK supports "desugaring" Java 8 class files, so they can also run on older Androids, including 21.
Torsten should investigate if we can use this to make ZXing run even on 21+. (You *can* override the API level requirement, but of course that doesn't guarantee that it will actually work.)
So we have three options:
(a) downgrade zxing-android-embedded, making UX worse
(b) *only* downgrade zxing-core (might work according to documentation of zxing-android-embedded, but explicitly not supported)
(c) try to use the latest Android SDK feature of desugaring to make the latest versions of zxing-android-embedded work in 21+
|Tags||No tags attached.|