ソースを参照

ui: wizard: Keep screen on during the download process

Peter Cai 10 ヶ月 前
コミット
33d383a3ce

+ 11 - 0
app-common/src/main/java/im/angry/openeuicc/ui/wizard/DownloadWizardActivity.kt

@@ -3,6 +3,7 @@ package im.angry.openeuicc.ui.wizard
 import android.app.assist.AssistContent
 import android.os.Bundle
 import android.view.View
+import android.view.WindowManager
 import android.view.inputmethod.InputMethodManager
 import android.widget.Button
 import android.widget.ProgressBar
@@ -251,6 +252,14 @@ class DownloadWizardActivity: BaseEuiccAccessActivity() {
         supportFragmentManager.beginTransaction().setCustomAnimations(enterAnim, exitAnim)
             .replace(R.id.step_fragment_container, nextFrag)
             .commit()
+
+        // Sync screen on state
+        if (nextFrag.keepScreenOn) {
+            window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)
+        } else {
+            window.clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)
+        }
+
         refreshButtons()
     }
 
@@ -280,6 +289,8 @@ class DownloadWizardActivity: BaseEuiccAccessActivity() {
         protected val state: DownloadWizardState
             get() = (requireActivity() as DownloadWizardActivity).state
 
+        open val keepScreenOn = false
+
         abstract val hasNext: Boolean
         abstract val hasPrev: Boolean
         abstract fun createNextFragment(): DownloadWizardStepFragment?

+ 3 - 0
app-common/src/main/java/im/angry/openeuicc/ui/wizard/DownloadWizardProgressFragment.kt

@@ -59,6 +59,9 @@ class DownloadWizardProgressFragment : DownloadWizardActivity.DownloadWizardStep
 
     private val adapter = ProgressItemAdapter()
 
+    // We don't want to turn off the screen during a download
+    override val keepScreenOn = true
+
     private var isDone = false
 
     override val hasNext: Boolean