Created
February 24, 2026 14:09
-
-
Save orkun1675/5803f43f897b22365651bdf9561ca4f4 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| import 'package:disable_battery_optimization/disable_battery_optimization.dart'; | |
| class BatteryPermission extends RequiredPermission { | |
| static final Logger _log = Logger('BatteryPermission'); | |
| @override | |
| String get explanation => | |
| 'Turning off battery optimizations allows us to XXX.'; | |
| const BatteryPermission() : super(priority: 5, androidOnly: true); | |
| @override | |
| Future<bool> _isGrantedInternal(GeoLocationPermission permission) async { | |
| final native = | |
| (await DisableBatteryOptimization.isBatteryOptimizationDisabled) ?? | |
| true; | |
| final manufacturer = | |
| (await DisableBatteryOptimization | |
| .isManufacturerBatteryOptimizationDisabled) ?? | |
| true; | |
| _log.fine( | |
| 'Battery optimization info ' | |
| 'native=$native manufacturer=$manufacturer', | |
| ); | |
| return native && manufacturer; | |
| } | |
| @override | |
| Future<PermissionResult> request( | |
| GeoLocationRepository geoLocationRepository, | |
| ) async { | |
| final nativeGranted = | |
| (await DisableBatteryOptimization.isBatteryOptimizationDisabled) ?? | |
| true; | |
| if (!nativeGranted) { | |
| final result = | |
| await DisableBatteryOptimization.showDisableBatteryOptimizationSettings(); | |
| _log.info('showDisableBatteryOptimizationSettings result is: $result'); | |
| } | |
| final manufacturerGranted = | |
| (await DisableBatteryOptimization | |
| .isManufacturerBatteryOptimizationDisabled) ?? | |
| true; | |
| if (!manufacturerGranted) { | |
| final result = | |
| await DisableBatteryOptimization.showDisableManufacturerBatteryOptimizationSettings( | |
| 'Your device has additional battery settings', | |
| 'Please follow the steps and disable the battery optimizations.', | |
| ); | |
| _log.info( | |
| 'showDisableManufacturerBatteryOptimizationSettings result is: $result', | |
| ); | |
| } | |
| return const Success(); | |
| } | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment