release 1.3.1

This commit is contained in:
Developer
2026-04-01 18:40:21 +08:00
parent 91ef47f991
commit f0a62ed68b
60 changed files with 1750 additions and 313 deletions

View File

@@ -1,5 +1,6 @@
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import '../../../config/app_config.dart';
import '../../../constants/app_constants.dart';
/// 时间: 2026-03-26
@@ -39,7 +40,7 @@ class LearnUsPage extends StatelessWidget {
const SizedBox(height: 16),
_buildQQGroupCard(context),
const SizedBox(height: 16),
_buildDeveloperCard(),
_buildDeveloperCard(context),
const SizedBox(height: 16),
_buildTeamCard(),
const SizedBox(height: 16),
@@ -127,7 +128,7 @@ class LearnUsPage extends StatelessWidget {
),
const SizedBox(width: 6),
Text(
'版本 ${AppConstants.appVersion}',
'版本 ${AppConfig.appVersion}',
style: const TextStyle(
fontSize: 12,
color: Colors.white,
@@ -215,7 +216,7 @@ class LearnUsPage extends StatelessWidget {
const SizedBox(width: 8),
Expanded(
child: Text(
'https://*****.github.io',
'https://poe.vogov.cn/app.html',
style: TextStyle(
fontSize: 14,
color: AppConstants.primaryColor,
@@ -347,7 +348,7 @@ class LearnUsPage extends StatelessWidget {
);
}
Widget _buildDeveloperCard() {
Widget _buildDeveloperCard(BuildContext context) {
return Container(
decoration: BoxDecoration(
color: Colors.white,
@@ -467,7 +468,7 @@ class LearnUsPage extends StatelessWidget {
const Text(
'2821981550@qq.com',
style: TextStyle(
fontSize: 13,
fontSize: 15,
color: Colors.blue,
decoration: TextDecoration.underline,
),
@@ -478,6 +479,95 @@ class LearnUsPage extends StatelessWidget {
],
),
),
Padding(
padding: const EdgeInsets.fromLTRB(16, 8, 16, 16),
child: Row(
children: [
Container(
width: 50,
height: 50,
decoration: BoxDecoration(
gradient: LinearGradient(
colors: [
const Color(0xFF07C160).withValues(alpha: 0.1),
const Color(0xFF07C160).withValues(alpha: 0.05),
],
),
borderRadius: BorderRadius.circular(12),
),
child: const Center(
child: Text('💬', style: TextStyle(fontSize: 24)),
),
),
const SizedBox(width: 12),
Expanded(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
const Text(
'微信公众号',
style: TextStyle(
fontSize: 16,
fontWeight: FontWeight.bold,
),
),
const SizedBox(height: 4),
Container(
padding: const EdgeInsets.symmetric(
horizontal: 12,
vertical: 6,
),
decoration: BoxDecoration(
color: const Color(0xFF07C160).withValues(alpha: 0.1),
borderRadius: BorderRadius.circular(8),
),
child: Row(
mainAxisSize: MainAxisSize.min,
children: [
const Icon(
Icons.search,
size: 16,
color: Color(0xFF07C160),
),
const SizedBox(width: 6),
const Text(
'微风暴',
style: TextStyle(
fontSize: 14,
fontWeight: FontWeight.w600,
color: Color(0xFF07C160),
),
),
const SizedBox(width: 8),
GestureDetector(
onTap: () {
Clipboard.setData(
const ClipboardData(text: '微风暴'),
);
ScaffoldMessenger.of(context).showSnackBar(
const SnackBar(
content: Text('已复制到剪贴板'),
duration: Duration(seconds: 2),
),
);
},
child: Icon(
Icons.content_copy,
size: 16,
color: const Color(
0xFF07C160,
).withValues(alpha: 0.8),
),
),
],
),
),
],
),
),
],
),
),
],
),
);
@@ -519,7 +609,6 @@ class LearnUsPage extends StatelessWidget {
],
),
),
const Divider(height: 1),
_buildTeamMember('💻', '程序设计', '无书的书🤡', '尽毕生所学,取天下之诗集,只为逗她一笑'),
_buildTeamMember('🎨', 'UI/UX/Testing', 'Ayk', '....'),
_buildTeamMember('⚙️', '后端', '伯乐不相马', '真的吗,还是做不到吗?'),

View File

@@ -22,7 +22,7 @@ class PrivacyPolicyContent extends StatelessWidget {
_buildUpdateDate('2026.3.26'),
const SizedBox(height: 24),
_buildParagraph(
'情景诗词 是由 *****工作室 (以下简称"我们")为您提供的,用于在诗词里旅行,在文化中生长的应用。本隐私声明由我们为处理您的个人信息而制定。',
'情景诗词 是由 弥勒市朋普镇微风暴网络科技工作室 (以下简称"我们")为您提供的,用于在诗词里旅行,在文化中生长的应用。本隐私声明由我们为处理您的个人信息而制定。',
),
const SizedBox(height: 16),
_buildParagraph(
@@ -47,6 +47,8 @@ class PrivacyPolicyContent extends StatelessWidget {
const SizedBox(height: 16),
_buildPermissionItem('存储权限', '用于保存和读取您的笔记、收藏等本地数据'),
_buildPermissionItem('网络权限', '用于获取诗词内容和更新应用信息'),
_buildPermissionItem('震动权限', '用于在执行操作时提供反馈提示'),
_buildPermissionItem('分享能力', '调用系统分享功能,分享您的笔记、收藏等本地数据'),
const SizedBox(height: 24),
_buildSectionTitle('3. 管理您的个人信息'),
const SizedBox(height: 16),
@@ -64,9 +66,9 @@ class PrivacyPolicyContent extends StatelessWidget {
const SizedBox(height: 16),
_buildParagraph('您可通过以下方式联系我们,并行使您的相关权利,我们会尽快回复。'),
const SizedBox(height: 12),
_buildContactInfo('开发者', '*****工作室'),
_buildContactInfo('地址', '云南昆明'),
_buildContactInfo('邮箱', '********@outlook.com'),
_buildContactInfo('开发者', '弥勒市朋普镇微风暴网络科技工作室'),
_buildContactInfo('地址', '云南 昆明 西山区'),
_buildContactInfo('邮箱', '2821981550@qq.com'),
const SizedBox(height: 16),
_buildParagraph(
'如果您对我们的回复不满意,特别是当个人信息处理行为损害了您的合法权益时,您还可以通过向有管辖权的人民法院提起诉讼、向行业自律协会或政府相关管理机构投诉等外部途径进行解决。您也可以向我们了解可能适用的相关投诉途径的信息。',
@@ -74,6 +76,7 @@ class PrivacyPolicyContent extends StatelessWidget {
const SizedBox(height: 24),
_buildEffectiveDate('2026年3月26日'),
_buildBottomIndicator(),
_buildParagraph(''),
],
),
);
@@ -240,13 +243,13 @@ class UserAgreementContent extends StatelessWidget {
_buildEffectiveDate('2026-03-26'),
const SizedBox(height: 24),
_buildParagraph(
'欢迎使用 情景诗词(以下简称"本App")。本用户协议由个人开发者 *****工作室 制定。用户在下载、安装、注册、登录、使用本App服务前应当仔细阅读并充分理解本协议内容。用户开始使用本App即视为同意本协议全部条款。',
'欢迎使用 情景诗词(以下简称"本App")。本用户协议由 弥勒市朋普镇微风暴网络科技工作室 制定。用户在下载、安装、注册、登录、使用本App服务前应当仔细阅读并充分理解本协议内容。用户开始使用本App即视为同意本协议全部条款。',
),
const SizedBox(height: 24),
_buildSectionTitle('一、协议适用范围'),
const SizedBox(height: 16),
_buildParagraph(
'本协议适用于用户与开发者 *****工作室 之间,关于用户使用 情景诗词 产品及服务所建立的权利义务关系。',
'本协议适用于用户与开发者 弥勒市朋普镇微风暴网络科技工作室 之间,关于用户使用 情景诗词 产品及服务所建立的权利义务关系。',
),
const SizedBox(height: 24),
_buildSectionTitle('二、服务内容'),
@@ -301,11 +304,12 @@ class UserAgreementContent extends StatelessWidget {
const SizedBox(height: 24),
_buildSectionTitle('九、联系方式'),
const SizedBox(height: 16),
_buildContactInfo('开发者', '*****工作室'),
_buildContactInfo('开发者', '弥勒市朋普镇微风暴网络科技工作室'),
_buildContactInfo('应用名称', '情景诗词'),
_buildContactInfo('联系邮箱', '********@outlook.com'),
_buildContactInfo('联系邮箱', '2821981550@qq.com'),
const SizedBox(height: 24),
_buildBottomIndicator(),
_buildParagraph(''),
],
),
);
@@ -478,7 +482,7 @@ class _PrivacyPageState extends State<PrivacyPage>
border: Border.all(color: Colors.grey[300]!),
),
child: SelectableText(
'https://*****.github.io/privacy',
'https://poe.vogov.cn/privacy.html',
style: TextStyle(
fontSize: 13,
color: AppConstants.primaryColor,
@@ -501,7 +505,7 @@ class _PrivacyPageState extends State<PrivacyPage>
ElevatedButton.icon(
onPressed: () {
Clipboard.setData(
const ClipboardData(text: 'https://*****.github.io/privacy'),
const ClipboardData(text: 'https://poe.vogov.cn/privacy.html'),
);
Navigator.pop(context);
ScaffoldMessenger.of(context).showSnackBar(