ankidroid / Anki-Android

AnkiDroid: Anki flashcards on Android. Your secret trick to achieve superhuman information retention.
GNU General Public License v3.0
8.72k stars 2.24k forks source link

Blocker: Disable hardware rendering in WebView Activities for Android 8/8.1 #8160

Closed mikehardy closed 3 years ago

mikehardy commented 3 years ago
Reproduction Steps

Refer to: #7369 - Reviewer and Changelog (both WebViews) have flicker / render issues only on Android 8/8.1 real devices (not emulators)

Refer to: #8154 - where all Reviewer-related Views are switched to software render using layout overrides

Expected Result

That layout files are not duplicated, but Android 8/8.1 have software render for WebView Views such that they render correctly

Actual Result

We have the layouts duplicated 3 times, once from minSdkVersion to API25, once for API26+API27, and once for API28 and higher

Also, the Changelog is not software render yet.

Proposed Solution:

You can disable hardware in these ways:

The goal here is:

Open questions:

Debug info

This is not really debuggable as none of the core contributors have real devices that show the probem though @jbuschtoens was instrumental in the hotfix I put in release-2.14 as a responsive tester that reproduces it every time, with reliable first reports on failure and success that were invariably reproduced by others.

mikehardy commented 3 years ago

Noting this is a blocker for v2.15 release. If we release v2.15 without doing either this, or cherry-picking #8154 to main dev branch, Android 8/8.1 will have render issues during review again, breaking review for many users.

danishjamal104 commented 3 years ago

Hey @mikehardy , so what is actual cause of this flicker / render issue ?

krmanik commented 3 years ago

@mikehardy The buttons and card count not appearing due to webview. So, I have created JS Addon for adding button and card count using JS API. It is not good solution but if user use hardware rendering with the JS Addon will be helpful or not?

https://github.com/infinyte7/Anki-Custom-Card-Layout/tree/master/JS%20addon#2-button-and-card-count-addon

mikehardy commented 3 years ago

@infinyte7 that could help, but we need to solve the underlying problem first I think

@danishjamal104 no idea, I don't have an Android 8/8.1 hardware device to test with, and could never reproduce it myself - when it shows up, it does not matter what version of AnkiDroid is in use back to really old ones (2.10.x at least) so it is some sort of operating system or WebView change :shrug: