Files
PiliPlus/lib/pages/setting/models/privacy_settings.dart
2026-07-20 14:13:45 +08:00

64 lines
1.8 KiB
Dart

import 'package:PiliPlus/models/common/account_type.dart';
import 'package:PiliPlus/pages/setting/models/model.dart';
import 'package:PiliPlus/utils/accounts.dart';
import 'package:PiliPlus/utils/accounts/api_type.dart';
import 'package:flutter/material.dart';
import 'package:flutter_smart_dialog/flutter_smart_dialog.dart';
import 'package:get/get.dart';
List<SettingsModel> get privacySettings => [
NormalModel(
onTap: (context, setState) {
if (!Accounts.main.isLogin) {
SmartDialog.showToast('登录后查看');
return;
}
Get.toNamed('/blackListPage');
},
title: '黑名单管理',
subtitle: '已拉黑用户',
leading: const Icon(Icons.block),
),
NormalModel(
onTap: (context, setState) {
showDialog(
context: context,
builder: (context) => AlertDialog(
title: const Text('账号模式详情'),
content: SingleChildScrollView(child: _getAccountDetail(context)),
actions: [
TextButton(
onPressed: Get.back,
child: const Text('确认'),
),
],
),
);
},
leading: const Icon(Icons.flag_outlined),
title: '了解账号模式',
subtitle: '查看各个账号模式作用的API列表',
),
];
Widget _getAccountDetail(BuildContext context) {
final children = <Widget>[];
final theme = TextTheme.of(context);
for (final i in AccountType.values) {
final url = ApiType.apiTypeSet[i];
if (url == null) continue;
children
..add(Center(child: Text(i.title, style: theme.titleMedium)))
..add(Text(url.join('\n')));
}
return SelectionArea(
child: Column(
mainAxisSize: .min,
crossAxisAlignment: .start,
spacing: 8,
children: children,
),
);
}