content: import 'package:fl_clash/clash/core.dart';
  import 'package:fl_clash/common/common.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/material.dart';
  import 'package:flutter_riverpod/flutter_riverpod.dart';
  
  import '../providers/app.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++) {
                ref.read(requestsProvider.notifier).addRequest(Connection(
                      id: utils.id,
                      start: DateTime.now(),
                      metadata: Metadata(
                        uid: i * i,
                        network: utils.generateRandomString(
                          maxLength: 1000,
                          minLength: 20,
                        ),
                        sourceIP: '',
                        sourcePort: '',
                        destinationIP: '',
                        destinationPort: '',
                        host: '',
                        process: '',
                        remoteDestination: "",
                      ),
                      chains: ["chains"],
                    ));
                globalState.appController.addLog(
                  Log.app(
                    utils.generateRandomString(
                      maxLength: 200,
                      minLength: 20,
                    ),
                  ),
                );
              }
            },
          ),
          ListItem(
            title: Text(appLocalizations.crashTest),
            onTap: () {
              clashCore.clashInterface.crash();
            },
          ),
          ListItem(
            title: Text(appLocalizations.clearData),
            onTap: () async {
              await globalState.appController.handleClear();
            },
          )
        ],
      );
    }
  
    @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,
                  top: 4,
                  bottom: 4,
                ),
                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)
          ],
        ),
      );
    }
  }
  