Files
PiliPlus/lib/pages/setting/models/privacy_settings.dart
2026-06-03 19:58:24 +08:00

73 lines
2.1 KiB
Dart

import 'package:PiliPlus/models/common/account_type.dart';
import 'package:PiliPlus/pages/login/controller.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) {
LoginPageController.switchAccountDialog(context);
},
leading: const Icon(Icons.switch_account_outlined),
title: '切换账号',
subtitle: '播放进度信息跟随视频取流',
),
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 slivers = <Widget>[];
final theme = TextTheme.of(context);
for (final i in AccountType.values) {
final url = ApiType.apiTypeSet[i];
if (url == null) continue;
slivers
..add(Center(child: Text(i.title, style: theme.titleMedium)))
..add(SelectableText(url.join('\n')));
}
return Column(
mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.start,
spacing: 8,
children: slivers,
);
}