fix: Screen turns off while patching due to wrong WakeLock #2147
+14
−16
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fix a issue that screen timeout is activated during patching.
This is caused by WakeLock not being set correctly.
The current code is passing
WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON
tonewWakeLock()
.But this is wrong.
It is true that the document says that
PowerManager.FULL_WAKE_LOCK
is deprecated and useWindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON
instead.However, this does not mean passing the
FLAG_KEEP_SCREEN_ON
flag tonewWakeLock()
.The flag have to be passed to
window.addFlags()
.https://developer.android.com/develop/background-work/background-tasks/scheduling/wakelock#screen
Therefore, I removed WakeLock and add window.addFlags().
Since the window requires Activity context, it can't be handled from PatcherWorker, so I added it to the UI code.
I've checked this sets KEEP_SCREEN_ON correctly at the start of patching, and clears the flag correctly when succeeded or failed to patching, or patching was canceled.