From 8731f27f833ed5b197accfe8cd398983253bc47c Mon Sep 17 00:00:00 2001 From: sathwikcs <85106054+sathwikcs@users.noreply.github.com> Date: Fri, 27 Dec 2024 13:15:12 +0530 Subject: [PATCH] fixed battery issue --- .../attendanceapp/main/MainAppActivity.kt | 23 +++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/in/sminnovations/attendanceapp/main/MainAppActivity.kt b/app/src/main/java/in/sminnovations/attendanceapp/main/MainAppActivity.kt index d76f236..2e328e0 100644 --- a/app/src/main/java/in/sminnovations/attendanceapp/main/MainAppActivity.kt +++ b/app/src/main/java/in/sminnovations/attendanceapp/main/MainAppActivity.kt @@ -1,5 +1,8 @@ package `in`.sminnovations.attendanceapp.main +import android.content.Intent +import android.content.IntentFilter +import android.os.BatteryManager import android.os.Bundle import android.view.WindowManager import androidx.activity.ComponentActivity @@ -12,7 +15,11 @@ import `in`.sminnovations.attendanceapp.ui.theme.SMIAttendanceTheme class MainAppActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON) + if (shouldKeepScreenOn()) { + window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON) + } else { + window.clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON) + } enableEdgeToEdge() setContent { SMIAttendanceTheme { @@ -20,4 +27,16 @@ class MainAppActivity : ComponentActivity() { } } } -} \ No newline at end of file + + private fun shouldKeepScreenOn(): Boolean { + val batteryStatus = registerReceiver( + null, + IntentFilter(Intent.ACTION_BATTERY_CHANGED) + ) ?: return false + val level = batteryStatus.getIntExtra(BatteryManager.EXTRA_LEVEL, -1) + val scale = batteryStatus.getIntExtra(BatteryManager.EXTRA_SCALE, -1) + val isCharging = batteryStatus.getIntExtra(BatteryManager.EXTRA_PLUGGED, -1) > 0 + val batteryPct = level * 100 / scale + return batteryPct > 50 || isCharging + } +}