Files
MWClash/lib/views/developer.dart
chen08209 35e1fc51af Fix android tile service
Fix some issues
2025-10-06 19:15:22 +08:00

103 lines
3.0 KiB
Dart

import 'package:fl_clash/common/common.dart';
import 'package:fl_clash/core/controller.dart';
import 'package:fl_clash/enum/enum.dart';
import 'package:fl_clash/models/common.dart';
import 'package:fl_clash/providers/config.dart';
import 'package:fl_clash/state.dart';
import 'package:fl_clash/widgets/widgets.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
class DeveloperView extends ConsumerWidget {
const DeveloperView({super.key});
Widget _getDeveloperList(BuildContext context, WidgetRef ref) {
return generateSectionV2(
title: appLocalizations.options,
items: [
ListItem(
title: Text(appLocalizations.messageTest),
minVerticalPadding: 14,
onTap: () {
context.showNotifier(appLocalizations.messageTestTip);
},
),
ListItem(
title: Text(appLocalizations.logsTest),
minVerticalPadding: 14,
onTap: () {
for (int i = 0; i < 1000; i++) {
globalState.appController.addLog(
Log.app(
'[$i]${utils.generateRandomString(maxLength: 200, minLength: 20)}',
),
);
}
},
),
ListItem(
title: Text(appLocalizations.crashTest),
minVerticalPadding: 14,
onTap: () {
// coreController.crash();
if (kDebugMode) {
coreController.crash();
}
},
),
ListItem(
title: Text(appLocalizations.clearData),
minVerticalPadding: 14,
onTap: () async {
await globalState.appController.handleClear();
},
),
// ListItem(
// title: Text('Loading'),
// minVerticalPadding: 14,
// onTap: () {
// ref.read(loadingProvider.notifier).value = !ref.read(
// loadingProvider,
// );
// },
// ),
],
);
}
@override
Widget build(BuildContext context, ref) {
final enable = ref.watch(
appSettingProvider.select((state) => state.developerMode),
);
return SingleChildScrollView(
padding: baseInfoEdgeInsets,
child: Column(
children: [
CommonCard(
type: CommonCardType.filled,
radius: 18,
child: ListItem.switchItem(
padding: const EdgeInsets.only(left: 16, right: 16),
title: Text(appLocalizations.developerMode),
delegate: SwitchDelegate(
value: enable,
onChanged: (value) {
ref
.read(appSettingProvider.notifier)
.updateState(
(state) => state.copyWith(developerMode: value),
);
},
),
),
),
SizedBox(height: 16),
_getDeveloperList(context, ref),
],
),
);
}
}