@@ -78,44 +78,39 @@ class BatteryOptimizationHelper(reactContext: ReactApplicationContext) : ReactCo
78
78
val context: Context = reactApplicationContext
79
79
val packageName = context.packageName
80
80
81
- Log.d("BatteryOptimizationHelper", "Opening battery optimization settings for " + packageName)
82
-
83
- // First, try opening the specific battery optimization settings
84
- val intent = Intent(Settings.ACTION_IGNORE_BATTERY_OPTIMIZATION_SETTINGS)
85
- intent.data = Uri.parse("package:" + packageName)
81
+ // Try to open the specific screen to request ignore battery optimizations for this app
82
+ val intent = Intent(Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS)
83
+ intent.data = Uri.parse("package:$packageName")
86
84
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
87
85
88
86
if (intent.resolveActivity(context.packageManager) != null) {
89
87
context.startActivity(intent)
90
- Log.d("BatteryOptimizationHelper", "Battery optimization settings opened! ")
88
+ Log.d("BatteryOptimizationHelper", "Requested ignore battery optimizations for $packageName ")
91
89
} else {
92
- // If direct setting fails, open general battery settings instead
93
- Log.e("BatteryOptimizationHelper", "Could not resolve activity for battery optimization settings! Trying general battery settings...")
94
- val generalIntent = Intent(Settings.ACTION_BATTERY_SAVER_SETTINGS)
90
+ // Fallback: open the general battery optimization settings
91
+ val generalIntent = Intent(Settings.ACTION_IGNORE_BATTERY_OPTIMIZATION_SETTINGS)
95
92
generalIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
96
-
97
93
if (generalIntent.resolveActivity(context.packageManager) != null) {
98
94
context.startActivity(generalIntent)
99
- Log.d("BatteryOptimizationHelper", "General battery settings opened! ")
95
+ Log.d("BatteryOptimizationHelper", "Opened general battery optimization settings ")
100
96
} else {
101
- Log.e("BatteryOptimizationHelper", "Could not resolve activity for general battery settings!")
97
+ Log.e("BatteryOptimizationHelper", "Could not resolve activity for battery optimization settings!")
102
98
}
103
99
}
104
100
} catch (e: Exception) {
105
101
Log.e("BatteryOptimizationHelper", "Error opening battery settings: " + e.message, e)
106
102
}
107
103
}
108
- }
109
104
110
- class BatteryOptimizationPackage : ReactPackage {
111
- override fun createNativeModules(reactContext: ReactApplicationContext): List<NativeModule> {
112
- return listOf(BatteryOptimizationHelper(reactContext))
113
- }
105
+ class BatteryOptimizationPackage : ReactPackage {
106
+ override fun createNativeModules(reactContext: ReactApplicationContext): List<NativeModule> {
107
+ return listOf(BatteryOptimizationHelper(reactContext))
108
+ }
114
109
115
- override fun createViewManagers(reactContext: ReactApplicationContext): List<ViewManager<*, *>> {
116
- return emptyList()
110
+ override fun createViewManagers(reactContext: ReactApplicationContext): List<ViewManager<*, *>> {
111
+ return emptyList()
112
+ }
117
113
}
118
- }
119
114
` ;
120
115
121
116
const createBatteryOptimizationHelper = async ( ) => {
0 commit comments