Support core status check and force restart Optimize proxies page and access page Update flutter and pub dependencies Optimize more details
98 lines
2.8 KiB
Dart
98 lines
2.8 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/app.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),
|
|
onTap: () {
|
|
context.showNotifier(appLocalizations.messageTestTip);
|
|
},
|
|
),
|
|
ListItem(
|
|
title: Text(appLocalizations.logsTest),
|
|
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),
|
|
onTap: () {
|
|
if (kDebugMode) {
|
|
coreController.crash();
|
|
}
|
|
},
|
|
),
|
|
ListItem(
|
|
title: Text(appLocalizations.clearData),
|
|
onTap: () async {
|
|
await globalState.appController.handleClear();
|
|
},
|
|
),
|
|
ListItem(
|
|
title: Text('Loading'),
|
|
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),
|
|
],
|
|
),
|
|
);
|
|
}
|
|
}
|