permission_setting_controller.dart 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. import 'dart:io';
  2. import 'package:get/get.dart';
  3. import 'package:injectable/injectable.dart';
  4. import 'package:location/base/base_controller.dart';
  5. import 'package:location/resource/string.gen.dart';
  6. import 'package:location/utils/app_info_util.dart';
  7. import 'package:location/utils/toast_util.dart';
  8. import 'package:url_launcher/url_launcher.dart';
  9. import '../../utils/permission_util.dart';
  10. @injectable
  11. class PermissionSettingController extends BaseController {
  12. final RxBool _permissionShowBattery = false.obs;
  13. final RxBool _permissionShowBackgroundRun = false.obs;
  14. final RxBool _permissionShowTip = false.obs;
  15. bool get permissionShowBattery => _permissionShowBattery.value;
  16. bool get permissionShowBackgroundRun => _permissionShowBackgroundRun.value;
  17. bool get permissionShowTip => _permissionShowTip.value;
  18. @override
  19. void onReady() {
  20. super.onReady();
  21. if (Platform.isAndroid) {
  22. _permissionShowBattery.value = true;
  23. _permissionShowBackgroundRun.value = true;
  24. _permissionShowTip.value = true;
  25. }
  26. }
  27. void openLocationSetting() async {
  28. bool isGranted = await PermissionUtil.checkLocationPermission();
  29. if (!isGranted) {
  30. isGranted = await PermissionUtil.requestLocationPermission();
  31. }
  32. if (isGranted) {
  33. isGranted = await PermissionUtil.checkShowLocationAlways();
  34. if (isGranted) {
  35. ToastUtil.show(StringName.permissionSettingSuccess);
  36. } else {
  37. isGranted = await PermissionUtil.requestShowLocationAlways();
  38. if (isGranted) {
  39. ToastUtil.show(StringName.permissionSettingSuccess);
  40. } else {
  41. ToastUtil.show(StringName.permissionLocationSettingSubtitle);
  42. }
  43. }
  44. } else {
  45. ToastUtil.show(StringName.permissionRequestFail);
  46. }
  47. }
  48. void openBatterySetting() {}
  49. void openBackgroundRunSetting() async {}
  50. }