Support core status check and force restart Optimize proxies page and access page Update flutter and pub dependencies Update go version Optimize more details
102 lines
3.0 KiB
Dart
102 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: () {
|
|
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),
|
|
],
|
|
),
|
|
);
|
|
}
|
|
}
|