3 Commits cce78fffd6 ... 4499247657

Autor SHA1 Mensaje Fecha
  “HeShaoZe” 4499247657 Merge branch 'v1.1.0' into v1.1.0-iOS hace 4 meses
  zk 3edf521fb9 [new]版本号调整为110 hace 4 meses
  zk ba4cd52732 [new]新增定位申请过多跳转设置页权限弹窗 hace 4 meses

+ 3 - 0
assets/string/base/string.xml

@@ -376,4 +376,7 @@
         2.可能是TA手机尚未开启本软件
     </string>
     <string name="track_no_stay_data">暂无停留数据</string>
+    <string name="location_permission_refuse_desc">
+        我们需要您的定位权限,以提供更准确的位置服务,如果未开启,可能会影响功能使用(如实时定位、轨迹记录等)。
+    </string>
 </resources>

+ 1 - 1
lib/data/consts/constants.dart

@@ -1,7 +1,7 @@
 class Constants {
   Constants._();
 
-  static const String env = envTest;
+  static const String env = envDev;
 
   static const String envDev = 'dev';
 

+ 21 - 0
lib/dialog/common_confirm_dialog_impl.dart

@@ -138,3 +138,24 @@ void showPaymentSuccessDialog(
       cancelOnTap: onCancel,
       confirmOnTap: onConfirm);
 }
+
+void permissionRefuseDialog({required VoidCallback settingClick}) {
+  CommonConfirmDialog.show(
+      titleWidget: Text(StringName.kindlyReminder,
+          style: TextStyle(
+              fontSize: 17.sp,
+              color: '#333333'.color,
+              fontWeight: FontWeight.bold)),
+      descWidget: Text(
+        StringName.locationPermissionRefuseDesc,
+        style: TextStyle(fontSize: 14.sp, color: '#404040'.color),
+      ),
+      cancelOnTap: () {
+        CommonConfirmDialog.dismiss();
+      },
+      confirmText: StringName.dialogLocationAlwaysPermissionConfirmTxt,
+      confirmOnTap: () {
+        CommonConfirmDialog.dismiss();
+        settingClick.call();
+      });
+}

+ 6 - 0
lib/module/main/main_controller.dart

@@ -23,6 +23,7 @@ import 'package:location/resource/string.gen.dart';
 import 'package:location/sdk/map/map_helper.dart';
 import 'package:location/utils/mmkv_util.dart';
 import 'package:location/utils/toast_util.dart';
+import 'package:permission_handler/permission_handler.dart';
 import '../../data/bean/member_status_info.dart';
 import '../../data/repositories/config_repository.dart';
 import '../../data/repositories/track_repository.dart';
@@ -365,6 +366,11 @@ class MainController extends BaseController {
     if (isGranted) {
       _showLocationAlways();
       _updateCurrentLocation();
+    } else {
+      permissionRefuseDialog(settingClick: () {
+        openAppSettings();
+      });
+      ToastUtil.show(StringName.permissionRequestFail);
     }
   }
 

+ 4 - 1
lib/module/permission/permission_setting_controller.dart

@@ -8,8 +8,8 @@ import 'package:location/data/repositories/phone_event_repository.dart';
 import 'package:location/resource/string.gen.dart';
 import 'package:location/utils/notification_util.dart';
 import 'package:location/utils/toast_util.dart';
-import 'package:mobile_use_statistics/flutter_mobile_statistics.dart';
 import 'package:permission_handler/permission_handler.dart';
+import '../../dialog/common_confirm_dialog_impl.dart';
 import '../../utils/permission_util.dart';
 
 @injectable
@@ -52,6 +52,9 @@ class PermissionSettingController extends BaseController {
         }
       }
     } else {
+      permissionRefuseDialog(settingClick: () {
+        openAppSettings();
+      });
       ToastUtil.show(StringName.permissionRequestFail);
     }
   }

+ 8 - 0
lib/module/track/track_controller.dart

@@ -12,11 +12,14 @@ import 'package:location/data/repositories/friends_repository.dart';
 import 'package:location/data/repositories/track_repository.dart';
 import 'package:location/handler/error_handler.dart';
 import 'package:location/resource/string.gen.dart';
+import 'package:permission_handler/permission_handler.dart';
 import 'package:sliding_sheet2/sliding_sheet2.dart';
 import '../../data/bean/user_info.dart';
+import '../../dialog/common_confirm_dialog_impl.dart';
 import '../../dialog/location_permission_dialog.dart';
 import '../../sdk/map/map_helper.dart';
 import '../../utils/permission_util.dart';
+import '../../utils/toast_util.dart';
 
 @injectable
 class TrackController extends BaseController
@@ -221,6 +224,11 @@ class TrackController extends BaseController
     if (isGranted) {
       _showLocationAlways();
       _updateCurrentLocation();
+    } else {
+      permissionRefuseDialog(settingClick: () {
+        openAppSettings();
+      });
+      ToastUtil.show(StringName.permissionRequestFail);
     }
   }
 

+ 5 - 0
lib/resource/string.gen.dart

@@ -309,6 +309,9 @@ class StringName {
   static String get permissionNotificationSettingSubtitle => 'permission_notification_setting_subtitle'.tr; // 开启通知栏权限,可随时查看好友“每日轨迹”
   static String get trackNoDoubtDesc => 'track_no_doubt_desc'.tr; // 未授权原因:\n 1.可能是自己/TA手机解锁权限尚未开启,请在个人中心设置中开启权限\n 2.可能是TA手机尚未开启本软件
   static String get trackNoStayData => 'track_no_stay_data'.tr; // 暂无停留数据
+  static String get locationPermissionRefuseDesc =>
+      'location_permission_refuse_desc'
+          .tr; // 我们需要您的定位权限,以提供更准确的位置服务,如果未开启,可能会影响功能使用(如实时定位、轨迹记录等)。
 }
 class StringMultiSource {
   StringMultiSource._();
@@ -621,6 +624,8 @@ class StringMultiSource {
       'permission_notification_setting_subtitle': '开启通知栏权限,可随时查看好友“每日轨迹”',
       'track_no_doubt_desc': '未授权原因:\n 1.可能是自己/TA手机解锁权限尚未开启,请在个人中心设置中开启权限\n 2.可能是TA手机尚未开启本软件',
       'track_no_stay_data': '暂无停留数据',
+      'location_permission_refuse_desc':
+          '我们需要您的定位权限,以提供更准确的位置服务,如果未开启,可能会影响功能使用(如实时定位、轨迹记录等)。',
     },
   };
 }

+ 1 - 1
pubspec.yaml

@@ -16,7 +16,7 @@ publish_to: 'none' # Remove this line if you wish to publish to pub.dev
 # https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
 # In Windows, build-name is used as the major, minor, and patch parts
 # of the product and file versions while build-number is used as the build suffix.
-version: 1.0.0+100
+version: 1.1.0+110
 
 environment:
   sdk: ^3.5.0