import 'package:flutter/material.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:get/get.dart'; import 'package:star_lock/appRouters.dart'; import 'package:star_lock/common/XSConstantMacro/XSConstantMacro.dart'; import 'package:package_info_plus/package_info_plus.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'; import '../../translations/trans_lib.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(); 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: TranslationLoader.lanKeys!.about!.tr, haveBack: true, backgroundColor: AppColors.mainColor, ), xhjCall: () => TitleAppBar( barTitle: TranslationLoader.lanKeys!.about!.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: TranslationLoader.lanKeys!.introduce!.tr, rightTitle: "", isHaveLine: false, isHaveDirection: true, action: () { Navigator.pushNamed(context, Routers.webviewShowPage, arguments: { "url": XSConstantMacro.introduceURL, "title": '介绍'.tr }); }), Divider( height: 1, color: AppColors.greyLineColor, indent: 20.w, endIndent: 20.w, ), CommonItem( leftTitel: TranslationLoader.lanKeys!.userAgreement!.tr, rightTitle: "", isHaveLine: false, isHaveDirection: true, action: () { Get.toNamed(Routers.webviewShowPage, arguments: { "url": XSConstantMacro.userAgreementURL, "title": '用户协议'.tr }); }), Divider( height: 1, color: AppColors.greyLineColor, indent: 20.w, endIndent: 20.w, ), CommonItem( leftTitel: TranslationLoader.lanKeys!.privacyPolicy!.tr, rightTitle: "", isHaveLine: false, isHaveDirection: true, action: () { Navigator.pushNamed(context, Routers.webviewShowPage, arguments: { "url": XSConstantMacro.privacyPolicyURL, "title": '隐私政策'.tr }); }), Divider( height: 1, color: AppColors.greyLineColor, indent: 20.w, endIndent: 20.w, ), CommonItem( leftTitel: TranslationLoader .lanKeys!.personalInformationCollectionList!.tr, rightTitle: "", isHaveLine: false, isHaveDirection: true, action: () { Navigator.pushNamed(context, Routers.webviewShowPage, arguments: { "url": XSConstantMacro.collectionListURL, "title": '个人信息收集清单'.tr }); }), Divider( height: 1, color: AppColors.greyLineColor, indent: 20.w, endIndent: 20.w, ), CommonItem( leftTitel: TranslationLoader.lanKeys!.applicationPermissionDescription!.tr, rightTitle: "", isHaveLine: false, isHaveDirection: true, action: () { Navigator.pushNamed(context, Routers.webviewShowPage, arguments: { "url": XSConstantMacro.appPermissionDescURL, "title": '应用权限说明'.tr }); }), Divider( height: 1, color: AppColors.greyLineColor, indent: 20.w, endIndent: 20.w, ), CommonItem( leftTitel: TranslationLoader.lanKeys!.thirdPartyInformationSharingList!.tr, rightTitle: "", isHaveLine: false, isHaveDirection: true, action: () { Navigator.pushNamed(context, Routers.webviewShowPage, arguments: { "url": XSConstantMacro.thirdPartyInfShareListURL, "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, ), ), ), ClipRRect( borderRadius: BorderRadius.circular(20.r), child: Image.asset( F.sw( skyCall: () => "images/icon_main_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), ), ], ), ); }); } }