Browse Source

[new]更换新的添加好友引导弹窗

zk 3 months ago
parent
commit
c4bfb4a57d

BIN
assets/images/bg_dialog_add_friend.webp


BIN
assets/images/icon_dialog_add_friend.webp


BIN
assets/images/img_dialog_add_friend_title.webp


+ 4 - 4
assets/string/base/string.xml

@@ -112,10 +112,9 @@
     <string name="next_step">下一步</string>
     <string name="next_step">下一步</string>
     <string name="location_background_always_desc">为保位置展示在地图上,请按照图中指引操作</string>
     <string name="location_background_always_desc">为保位置展示在地图上,请按照图中指引操作</string>
 
 
-    <string name="dialog_add_friend_title">实时定位轨迹</string>
-    <string name="dialog_add_friend_desc">去添加Ta的手机号码</string>
-    <string name="dialog_add_friend_btn">立即添加</string>
-    <string name="dialog_add_friend_btn_ios">立即查找</string>
+    <string name="dialog_add_friend_title">去添加Ta的好友开启守护!</string>
+    <string name="dialog_add_friend_btn">添加好友</string>
+    <string name="dialog_add_friend_btn_ios">查找好友</string>
     <string name="dialog_record_location">记录轨迹</string>
     <string name="dialog_record_location">记录轨迹</string>
     <string name="dialog_record_location_has_permission">开启定位权限</string>
     <string name="dialog_record_location_has_permission">开启定位权限</string>
     <string name="dialog_record_location_not_request">暂不开启</string>
     <string name="dialog_record_location_not_request">暂不开启</string>
@@ -449,4 +448,5 @@
     <string name="location_amap_co">合作单位:高德软件有限公司 审图号 GS(2021)6375号</string>
     <string name="location_amap_co">合作单位:高德软件有限公司 审图号 GS(2021)6375号</string>
     <string name="current_location">[当前位置]</string>
     <string name="current_location">[当前位置]</string>
     <string name="select_address_please">请在列表下方选择一个详细地址</string>
     <string name="select_address_please">请在列表下方选择一个详细地址</string>
+    <string name="dialog_add_friend_next_time">下次再说</string>
 </resources>
 </resources>

+ 76 - 67
lib/dialog/friend_dialog.dart

@@ -9,6 +9,8 @@ import 'package:location/resource/string.gen.dart';
 import 'package:location/utils/common_expand.dart';
 import 'package:location/utils/common_expand.dart';
 import 'package:location/utils/common_style.dart';
 import 'package:location/utils/common_style.dart';
 
 
+import '../resource/colors.gen.dart';
+
 class AddFriendDialog {
 class AddFriendDialog {
   static final String _tag = 'AddFriendDialog';
   static final String _tag = 'AddFriendDialog';
 
 
@@ -52,82 +54,89 @@ class AddFriendDialogView extends Dialog {
 
 
   @override
   @override
   Widget build(BuildContext context) {
   Widget build(BuildContext context) {
-    return IntrinsicHeight(
+    return Container(
+      width: 360.w,
+      height: 400.w,
+      decoration: BoxDecoration(
+        image: DecorationImage(
+            image: Assets.images.bgDialogAddFriend.provider(),
+            fit: BoxFit.fill),
+      ),
       child: Stack(
       child: Stack(
         children: [
         children: [
-          Center(
+          buildFriendTitleView(),
+          buildAddFriendBtnView(),
+        ],
+      ),
+    );
+  }
+
+  Widget buildFriendTitleView() {
+    return Positioned(
+      left: 45.w,
+      top: 64.w,
+      child: Column(
+        crossAxisAlignment: CrossAxisAlignment.start,
+        children: [
+          Text(StringName.dialogAddFriendTitle,
+              style: TextStyle(fontSize: 12.sp, color: '#7A6187'.color)),
+          SizedBox(height: 4.w),
+          Assets.images.imgDialogAddFriendTitle.image(width: 167.w)
+        ],
+      ),
+    );
+  }
+
+  Widget buildAddFriendBtnView() {
+    return Positioned(
+      left: 55.w,
+      right: 55.w,
+      bottom: 10.w,
+      child: Column(
+        children: [
+          GestureDetector(
+            onTap: onAddFriendClick,
             child: Container(
             child: Container(
-              width: 289.w,
-              margin: EdgeInsets.only(top: 34.w),
               decoration: BoxDecoration(
               decoration: BoxDecoration(
-                color: Colors.white,
-                borderRadius: BorderRadius.circular(20.w),
-              ),
-              child: IntrinsicHeight(
-                child: Align(
-                  alignment: Alignment.topCenter,
-                  child: Stack(
-                    children: [
-                      SizedBox(
-                        width: double.infinity,
-                        child: Column(children: [
-                          SizedBox(height: 89.w),
-                          Text(StringName.dialogAddFriendTitle,
-                              style: TextStyle(
-                                  fontSize: 18.sp,
-                                  color: '#333333'.color,
-                                  fontWeight: FontWeight.bold)),
-                          SizedBox(height: 8.w),
-                          Text(StringName.dialogAddFriendDesc,
-                              style: TextStyle(
-                                  fontSize: 15.sp, color: '#404040'.color)),
-                          SizedBox(height: 23.w),
-                          GestureDetector(
-                            onTap: () {
-                              onAddClick();
-                              AddFriendDialog.dismiss();
-                            },
-                            child: Container(
-                              width: 229.w,
-                              height: 40.w,
-                              decoration: getPrimaryBtnDecoration(32.w),
-                              child: Center(
-                                child: Text(
-                                    Platform.isAndroid
-                                        ? StringName.dialogAddFriendBtn
-                                        : StringName.dialogAddFriendBtnIos,
-                                    style: TextStyle(
-                                        fontSize: 14.sp, color: Colors.white)),
-                              ),
-                            ),
-                          ),
-                          SizedBox(height: 22.w),
-                        ]),
-                      ),
-                      Align(
-                          alignment: Alignment.topRight,
-                          child: Container(
-                            margin: EdgeInsets.only(top: 12.w, right: 12.w),
-                            child: GestureDetector(
-                              onTap: () {
-                                onCloseClick?.call();
-                                AddFriendDialog.dismiss();
-                              },
-                              child: Assets.images.iconDialogClose
-                                  .image(width: 20.w, height: 20.w),
-                            ),
-                          ))
-                    ],
-                  ),
-                ),
+                  borderRadius: BorderRadius.circular(100.w),
+                  gradient: LinearGradient(colors: [
+                    '#7B7DFF'.color,
+                    '#6365FF'.color,
+                  ])),
+              width: double.infinity,
+              height: 44.w,
+              child: Center(
+                child: Text(
+                    Platform.isAndroid
+                        ? StringName.dialogAddFriendBtn
+                        : StringName.dialogAddFriendBtnIos,
+                    style: TextStyle(fontSize: 15.sp, color: Colors.white)),
               ),
               ),
             ),
             ),
           ),
           ),
-          Align(
-              alignment: Alignment.topCenter,
-              child: Assets.images.iconDialogAddFriend.image(width: 124.w)),
+          SizedBox(height: 3.w),
+          GestureDetector(
+            onTap: onNextTimeClick,
+            child: Padding(
+              padding: EdgeInsets.all(8.w),
+              child: Text(
+                StringName.dialogAddFriendNextTime,
+                style: TextStyle(fontSize: 11.sp, color: ColorName.black40),
+              ),
+            ),
+          )
         ],
         ],
       ),
       ),
     );
     );
   }
   }
+
+  void onNextTimeClick() {
+    onCloseClick?.call();
+    AddFriendDialog.dismiss();
+  }
+
+  void onAddFriendClick() {
+    onAddClick();
+    AddFriendDialog.dismiss();
+  }
 }
 }

+ 10 - 5
lib/resource/assets.gen.dart

@@ -51,6 +51,10 @@ class $AssetsImagesGen {
   AssetGenImage get bgCommonPointSelectAddressTop => const AssetGenImage(
   AssetGenImage get bgCommonPointSelectAddressTop => const AssetGenImage(
       'assets/images/bg_common_point_select_address_top.webp');
       'assets/images/bg_common_point_select_address_top.webp');
 
 
+  /// File path: assets/images/bg_dialog_add_friend.webp
+  AssetGenImage get bgDialogAddFriend =>
+      const AssetGenImage('assets/images/bg_dialog_add_friend.webp');
+
   /// File path: assets/images/bg_dialog_location_permission_ios.webp
   /// File path: assets/images/bg_dialog_location_permission_ios.webp
   AssetGenImage get bgDialogLocationPermissionIos => const AssetGenImage(
   AssetGenImage get bgDialogLocationPermissionIos => const AssetGenImage(
       'assets/images/bg_dialog_location_permission_ios.webp');
       'assets/images/bg_dialog_location_permission_ios.webp');
@@ -231,10 +235,6 @@ class $AssetsImagesGen {
   AssetGenImage get iconDefaultMineAvatar =>
   AssetGenImage get iconDefaultMineAvatar =>
       const AssetGenImage('assets/images/icon_default_mine_avatar.webp');
       const AssetGenImage('assets/images/icon_default_mine_avatar.webp');
 
 
-  /// File path: assets/images/icon_dialog_add_friend.webp
-  AssetGenImage get iconDialogAddFriend =>
-      const AssetGenImage('assets/images/icon_dialog_add_friend.webp');
-
   /// File path: assets/images/icon_dialog_close.webp
   /// File path: assets/images/icon_dialog_close.webp
   AssetGenImage get iconDialogClose =>
   AssetGenImage get iconDialogClose =>
       const AssetGenImage('assets/images/icon_dialog_close.webp');
       const AssetGenImage('assets/images/icon_dialog_close.webp');
@@ -735,6 +735,10 @@ class $AssetsImagesGen {
   AssetGenImage get iconWhiteBack =>
   AssetGenImage get iconWhiteBack =>
       const AssetGenImage('assets/images/icon_white_back.webp');
       const AssetGenImage('assets/images/icon_white_back.webp');
 
 
+  /// File path: assets/images/img_dialog_add_friend_title.webp
+  AssetGenImage get imgDialogAddFriendTitle =>
+      const AssetGenImage('assets/images/img_dialog_add_friend_title.webp');
+
   /// File path: assets/images/img_dialog_location_always_tip_1.webp
   /// File path: assets/images/img_dialog_location_always_tip_1.webp
   AssetGenImage get imgDialogLocationAlwaysTip1 => const AssetGenImage(
   AssetGenImage get imgDialogLocationAlwaysTip1 => const AssetGenImage(
       'assets/images/img_dialog_location_always_tip_1.webp');
       'assets/images/img_dialog_location_always_tip_1.webp');
@@ -828,6 +832,7 @@ class $AssetsImagesGen {
         bgAddFriendDialog,
         bgAddFriendDialog,
         bgCheckLocationPermission,
         bgCheckLocationPermission,
         bgCommonPointSelectAddressTop,
         bgCommonPointSelectAddressTop,
+        bgDialogAddFriend,
         bgDialogLocationPermissionIos,
         bgDialogLocationPermissionIos,
         bgDialogTrackError,
         bgDialogTrackError,
         bgFriendItem,
         bgFriendItem,
@@ -873,7 +878,6 @@ class $AssetsImagesGen {
         iconDateUnSelect,
         iconDateUnSelect,
         iconDefaultFriendAvatar,
         iconDefaultFriendAvatar,
         iconDefaultMineAvatar,
         iconDefaultMineAvatar,
-        iconDialogAddFriend,
         iconDialogClose,
         iconDialogClose,
         iconDialogClose2,
         iconDialogClose2,
         iconDialogNetError,
         iconDialogNetError,
@@ -999,6 +1003,7 @@ class $AssetsImagesGen {
         iconWechatPayment,
         iconWechatPayment,
         iconWechatScanPayment,
         iconWechatScanPayment,
         iconWhiteBack,
         iconWhiteBack,
+        imgDialogAddFriendTitle,
         imgDialogLocationAlwaysTip1,
         imgDialogLocationAlwaysTip1,
         imgDialogLocationAlwaysTip2,
         imgDialogLocationAlwaysTip2,
         imgDialogLocationAlwaysTip3,
         imgDialogLocationAlwaysTip3,

+ 11 - 8
lib/resource/string.gen.dart

@@ -94,10 +94,11 @@ class StringName {
   static String get dialogExitAccountDesc => 'dialog_exit_account_desc'.tr; // 确定退出登录吗?
   static String get dialogExitAccountDesc => 'dialog_exit_account_desc'.tr; // 确定退出登录吗?
   static String get nextStep => 'next_step'.tr; // 下一步
   static String get nextStep => 'next_step'.tr; // 下一步
   static String get locationBackgroundAlwaysDesc => 'location_background_always_desc'.tr; // 为保位置展示在地图上,请按照图中指引操作
   static String get locationBackgroundAlwaysDesc => 'location_background_always_desc'.tr; // 为保位置展示在地图上,请按照图中指引操作
-  static String get dialogAddFriendTitle => 'dialog_add_friend_title'.tr; // 实时定位轨迹
-  static String get dialogAddFriendDesc => 'dialog_add_friend_desc'.tr; // 去添加Ta的手机号码
-  static String get dialogAddFriendBtn => 'dialog_add_friend_btn'.tr; // 立即添加
-  static String get dialogAddFriendBtnIos => 'dialog_add_friend_btn_ios'.tr; // 立即查找
+  static String get dialogAddFriendTitle =>
+      'dialog_add_friend_title'.tr; // 去添加Ta的好友开启守护!
+  static String get dialogAddFriendBtn => 'dialog_add_friend_btn'.tr; // 添加好友
+  static String get dialogAddFriendBtnIos =>
+      'dialog_add_friend_btn_ios'.tr; // 查找好友
   static String get dialogRecordLocation => 'dialog_record_location'.tr; // 记录轨迹
   static String get dialogRecordLocation => 'dialog_record_location'.tr; // 记录轨迹
   static String get dialogRecordLocationHasPermission => 'dialog_record_location_has_permission'.tr; // 开启定位权限
   static String get dialogRecordLocationHasPermission => 'dialog_record_location_has_permission'.tr; // 开启定位权限
   static String get dialogRecordLocationNotRequest => 'dialog_record_location_not_request'.tr; // 暂不开启
   static String get dialogRecordLocationNotRequest => 'dialog_record_location_not_request'.tr; // 暂不开启
@@ -396,6 +397,8 @@ class StringName {
   static String get currentLocation => 'current_location'.tr; // [当前位置]
   static String get currentLocation => 'current_location'.tr; // [当前位置]
   static String get selectAddressPlease =>
   static String get selectAddressPlease =>
       'select_address_please'.tr; // 请在列表下方选择一个详细地址
       'select_address_please'.tr; // 请在列表下方选择一个详细地址
+  static String get dialogAddFriendNextTime =>
+      'dialog_add_friend_next_time'.tr; // 下次再说
 }
 }
 class StringMultiSource {
 class StringMultiSource {
   StringMultiSource._();
   StringMultiSource._();
@@ -493,10 +496,9 @@ class StringMultiSource {
       'dialog_exit_account_desc': '确定退出登录吗?',
       'dialog_exit_account_desc': '确定退出登录吗?',
       'next_step': '下一步',
       'next_step': '下一步',
       'location_background_always_desc': '为保位置展示在地图上,请按照图中指引操作',
       'location_background_always_desc': '为保位置展示在地图上,请按照图中指引操作',
-      'dialog_add_friend_title': '实时定位轨迹',
-      'dialog_add_friend_desc': '去添加Ta的手机号码',
-      'dialog_add_friend_btn': '立即添加',
-      'dialog_add_friend_btn_ios': '立即查找',
+      'dialog_add_friend_title': '去添加Ta的好友开启守护!',
+      'dialog_add_friend_btn': '添加好友',
+      'dialog_add_friend_btn_ios': '查找好友',
       'dialog_record_location': '记录轨迹',
       'dialog_record_location': '记录轨迹',
       'dialog_record_location_has_permission': '开启定位权限',
       'dialog_record_location_has_permission': '开启定位权限',
       'dialog_record_location_not_request': '暂不开启',
       'dialog_record_location_not_request': '暂不开启',
@@ -775,6 +777,7 @@ class StringMultiSource {
       'location_amap_co': '合作单位:高德软件有限公司 审图号 GS(2021)6375号',
       'location_amap_co': '合作单位:高德软件有限公司 审图号 GS(2021)6375号',
       'current_location': '[当前位置]',
       'current_location': '[当前位置]',
       'select_address_please': '请在列表下方选择一个详细地址',
       'select_address_please': '请在列表下方选择一个详细地址',
+      'dialog_add_friend_next_time': '下次再说',
     },
     },
   };
   };
 }
 }