import 'package:flutter/material.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:get/get.dart'; import 'package:package_info_plus/package_info_plus.dart'; import 'package:star_lock/appRouters.dart'; import 'package:star_lock/common/XSConstantMacro/XSConstantMacro.dart'; import 'package:star_lock/mine/about/about_console.dart'; import '../../app_settings/app_colors.dart'; import '../../flavors.dart'; import '../../tools/commonItem.dart'; import '../../tools/titleAppBar.dart'; class AboutPage extends StatefulWidget { const AboutPage({Key? key}) : super(key: key); @override State createState() => _AboutPageState(); } class _AboutPageState extends State { late PackageInfo packageInfo; String appName = ''; String packageName = ''; String version = '-----'; String buildNumber = '---'; @override void initState() { super.initState(); // AppLog.log('Get.locale!: ${Get.locale.toString()}'); initPackageInfo(); } Future initPackageInfo() async { packageInfo = await PackageInfo.fromPlatform(); setState(() { appName = packageInfo.appName; packageName = packageInfo.packageName; version = packageInfo.version; buildNumber = packageInfo.buildNumber; }); } @override Widget build(BuildContext context) { return GetBuilder( init: AboutConsole(), builder: (AboutConsole logic) { return Scaffold( backgroundColor: AppColors.mainBackgroundColor, appBar: F.sw( skyCall: () => TitleAppBar( barTitle: '关于'.tr, haveBack: true, backgroundColor: AppColors.mainColor, ), xhjCall: () => TitleAppBar( barTitle: '关于'.tr, haveBack: true, backgroundColor: Colors.white, iconColor: AppColors.blackColor, titleColor: AppColors.blackColor, ), ), body: Column( crossAxisAlignment: CrossAxisAlignment.center, children: [ F.sw(skyCall: logoView, xhjCall: () => const SizedBox()), listView(), F.sw(skyCall: () => const SizedBox(), xhjCall: logoView), ], ), ); }); } //列表 Widget listView() { Widget view = Column( children: [ CommonItem( leftTitel: '介绍'.tr, rightTitle: '', isHaveLine: false, isHaveDirection: true, action: () { Navigator.pushNamed(context, Routers.webviewShowPage, arguments: { 'url': XSConstantMacro.introduceURL + '?lang=${Get.locale!.toString()}', 'title': '介绍'.tr }); }), Divider( height: 1, color: AppColors.greyLineColor, indent: 20.w, endIndent: 20.w, ), CommonItem( leftTitel: '用户协议'.tr, rightTitle: '', isHaveLine: false, isHaveDirection: true, action: () { Get.toNamed(Routers.webviewShowPage, arguments: { 'url': XSConstantMacro.userAgreementURL + '?lang=${Get.locale!.toString()}', 'title': '用户协议'.tr }); }), Divider( height: 1, color: AppColors.greyLineColor, indent: 20.w, endIndent: 20.w, ), CommonItem( leftTitel: '隐私政策'.tr, rightTitle: '', isHaveLine: false, isHaveDirection: true, action: () { Navigator.pushNamed(context, Routers.webviewShowPage, arguments: { 'url': XSConstantMacro.privacyPolicyURL + '?lang=${Get.locale!.toString()}', 'title': '隐私政策'.tr }); }), Divider( height: 1, color: AppColors.greyLineColor, indent: 20.w, endIndent: 20.w, ), CommonItem( leftTitel: '个人信息收集清单'.tr, rightTitle: '', isHaveLine: false, isHaveDirection: true, action: () { Navigator.pushNamed(context, Routers.webviewShowPage, arguments: { 'url': XSConstantMacro.collectionListURL + '?lang=${Get.locale!.toString()}', 'title': '个人信息收集清单'.tr }); }), Divider( height: 1, color: AppColors.greyLineColor, indent: 20.w, endIndent: 20.w, ), CommonItem( leftTitel: '应用权限说明'.tr, rightTitle: '', isHaveLine: false, isHaveDirection: true, action: () { Navigator.pushNamed(context, Routers.webviewShowPage, arguments: { 'url': XSConstantMacro.appPermissionDescURL + '?lang=${Get.locale!.toString()}', 'title': '应用权限说明'.tr }); }), Divider( height: 1, color: AppColors.greyLineColor, indent: 20.w, endIndent: 20.w, ), CommonItem( leftTitel: '第三方信息共享清单'.tr, rightTitle: '', isHaveLine: false, isHaveDirection: true, action: () { Navigator.pushNamed(context, Routers.webviewShowPage, arguments: { 'url': XSConstantMacro.thirdPartyInfShareListURL + '?lang=${Get.locale!.toString()}', 'title': '第三方信息共享清单'.tr }); }), ], ); view = F.sw( skyCall: () => view, xhjCall: () => Container( margin: EdgeInsets.only(top: 20.h, left: 20.w, right: 20.w), decoration: BoxDecoration( color: Colors.white, borderRadius: BorderRadius.all(Radius.circular(20.r))), child: ClipRRect( borderRadius: BorderRadius.circular(20.r), child: view, ), )); return view; } //图标 Widget logoView() { return GetBuilder(builder: (AboutConsole logic) { return Padding( padding: EdgeInsets.only(top: 70.h, bottom: 60.h), child: Column( children: [ Align( alignment: Alignment.topRight, child: GestureDetector( onTap: logic.handleTap, child: Container( color: Colors.transparent, width: 80.w, height: 80.h, ), ), ), GestureDetector( onTap: logic.handleTap, child: ClipRRect( borderRadius: BorderRadius.circular(20.r), child: Image.asset( F.sw( skyCall: () => 'images/icon_main_sky_1024.png', xhjCall: () => 'images/icon_main_xhj_1024.png'), width: 160.w, height: 160.w), ), ), SizedBox(height: 20.h), Text( '${F.title} $version+$buildNumber', style: TextStyle(fontSize: 24.sp, color: AppColors.blackColor), ), SizedBox(height: 20.h), Text( F.apiPrefix, style: TextStyle(fontSize: 24.sp, color: AppColors.blackColor), ), ], ), ); }); } }