11package now.link.viewmodel
22
3+ import android.annotation.SuppressLint
34import android.app.Application
45import android.content.Context
56import android.content.Intent
@@ -25,6 +26,7 @@ import now.link.utils.LogManager
2526import now.link.utils.RootUtils
2627import now.link.utils.ServiceStatusManager
2728import now.link.utils.SPUtils
29+ import androidx.core.net.toUri
2830
2931private const val TAG = " MainViewModel"
3032
@@ -57,19 +59,19 @@ data class MainScreenUiState(
5759 val agentConfiguration : AgentConfiguration ? = null ,
5860 val isWakeLockEnabled : Boolean = false ,
5961 val isLoggingEnabled : Boolean = false ,
60-
62+
6163 // Action states using sealed classes
6264 val serviceAction : ServiceAction = ServiceAction .Idle ,
6365 val permissionState : PermissionState = PermissionState .Unknown ,
6466 val batteryOptimizationState : BatteryOptimizationState = BatteryOptimizationState .Unknown ,
65-
67+
6668 // Dialog states
6769 val showConfigurationDialog : Boolean = false ,
6870 val showWakeLockDialog : Boolean = false ,
69-
71+
7072 // Error handling
7173 val errorMessage : String? = null ,
72- val toastMessage : String? = null
74+ val toastMessage : String? = null ,
7375)
7476
7577class MainViewModel (application : Application ) : AndroidViewModel(application) {
@@ -259,12 +261,13 @@ class MainViewModel(application: Application) : AndroidViewModel(application) {
259261 _uiState .update { it.copy(batteryOptimizationState = BatteryOptimizationState .Unknown ) }
260262 }
261263
264+ @SuppressLint(" BatteryLife" )
262265 fun requestBatteryOptimizationExemption (context : Context ): Intent ? {
263266 val powerManager = context.getSystemService(Context .POWER_SERVICE ) as PowerManager
264267
265268 return if (! powerManager.isIgnoringBatteryOptimizations(context.packageName)) {
266269 Intent (Settings .ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS ).apply {
267- data = Uri .parse( " ${Constants .Intent .PACKAGE_URI_PREFIX }${context.packageName} " )
270+ data = " ${Constants .Intent .PACKAGE_URI_PREFIX }${context.packageName} " .toUri( )
268271 }
269272 } else {
270273 LogManager .d(TAG , " Already exempted from battery optimization" )
0 commit comments