@@ -24,14 +24,14 @@ import com.omarea.krscript.databinding.KrDialogLogBinding
2424import com.omarea.krscript.executor.ShellExecutor
2525import com.omarea.krscript.model.RunnableNode
2626import com.omarea.krscript.model.ShellHandlerBase
27+ import android.view.WindowManager
2728
2829class DialogLogFragment : androidx.fragment.app.DialogFragment () {
2930
3031 private var binding: KrDialogLogBinding ? = null
3132 private var running = false
3233 private var canceled = false
3334 private var uiVisible = true
34- private var wakeLock: PowerManager .WakeLock ? = null
3535 private var nodeInfo: RunnableNode ? = null
3636 private lateinit var onExit: Runnable
3737 private lateinit var script: String
@@ -80,7 +80,7 @@ class DialogLogFragment : androidx.fragment.app.DialogFragment() {
8080
8181 binding?.btnHide?.setOnClickListener {
8282 uiVisible = false
83- wakeLock?.release ()
83+ offScreen ()
8484 closeView()
8585 }
8686
@@ -135,7 +135,7 @@ class DialogLogFragment : androidx.fragment.app.DialogFragment() {
135135 override fun onCompleted () {
136136 running = false
137137 onExit.run ()
138- wakeLock?.release ()
138+ offScreen ()
139139 binding?.btnHide?.visibility = View .GONE
140140 binding?.btnCancel?.visibility = View .GONE
141141 binding?.btnExit?.visibility = View .VISIBLE
@@ -154,13 +154,7 @@ class DialogLogFragment : androidx.fragment.app.DialogFragment() {
154154 canceled = false
155155 forceStopRunnable = forceStop
156156
157- context?.let {
158- val powerManager = it.getSystemService(Context .POWER_SERVICE ) as PowerManager
159- if (wakeLock == null || ! wakeLock!! .isHeld) {
160- wakeLock = powerManager.newWakeLock(0x2000000a , " KeepScreenOn" )
161- wakeLock?.acquire()
162- }
163- }
157+ dialog?.window?.addFlags(WindowManager .LayoutParams .FLAG_KEEP_SCREEN_ON )
164158
165159 if (nodeInfo.interruptable && forceStop != null ) {
166160 binding?.btnCancel?.visibility = View .VISIBLE
@@ -267,6 +261,12 @@ class DialogLogFragment : androidx.fragment.app.DialogFragment() {
267261 }
268262 }
269263
264+ private fun offScreen () {
265+ dialog?.window?.let { window ->
266+ window.clearFlags(WindowManager .LayoutParams .FLAG_KEEP_SCREEN_ON )
267+ }
268+ }
269+
270270 private fun closeView () {
271271 try {
272272 dismissAllowingStateLoss()
0 commit comments