قم بتحسين الكود وجعلة اكثر كفائة واحترافية 
للعلم لا اريد ان يظهر النص بعد الفلترة وازالة الرموز
اريد ان يظهر النص العادي الذي يتم توليدة عبر دالة random 
الكود
import 'package:flutter/material.dart';
import 'package:http/http.dart' as http;
import 'dart:convert';
import 'package:encrypt/encrypt.dart' as encrypt;
import 'dart:math';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'توليد مستخدمين',
      theme: ThemeData(primarySwatch: Colors.blue),
      home: const UserGeneratorScreen(),
    );
  }
}

class UserGeneratorScreen extends StatefulWidget {
  const UserGeneratorScreen({super.key});

  @override
  _UserGeneratorScreenState createState() => _UserGeneratorScreenState();
}

class _UserGeneratorScreenState extends State<UserGeneratorScreen> {
  final String _apiUrl = "api/MicroSerial";
  final String _encryptionKey =
      "my32lengthsupersecretnooneknows1"; // يجب أن يكون طول المفتاح 32 حرف
  final String _iv = "8bytesiv12345678"; // يجب أن يكون طول IV 16 حرف

  bool _isLoading = false;
  String _resultMessage = '';
  bool _isSuccess = false;

  final String firebaseUrl =
      'https://micropanel-b67e0-default-rtdb.firebaseio.com/information.json';

  String? Urlapi;

  String decryptAES(String encryptedText, String keyString, String ivString) {
    try {
      final key = encrypt.Key.fromUtf8(keyString);
      final iv = encrypt.IV.fromUtf8(ivString);
      final encrypter = encrypt.Encrypter(
        encrypt.AES(key, mode: encrypt.AESMode.cbc),
      );

      // تنظيف النص المشفر من الأحرف غير الصالحة
      final cleanedEncryptedText = encryptedText
          .replaceAll('\n', '')
          .replaceAll('\r', '')
          .replaceAll(' ', '');

      final encrypted = encrypt.Encrypted.fromBase64(cleanedEncryptedText);
      final decrypted = encrypter.decrypt(encrypted, iv: iv);
      return decrypted;
    } catch (e) {
      print('Error decrypting AES: $e');
      rethrow;
    }
  }

  @override
  void initState() {
    super.initState();
    fetchJsonFromFirebase();
  }

  Future<void> fetchJsonFromFirebase() async {
    try {
      final response = await http.get(Uri.parse(firebaseUrl));
      if (response.statusCode == 200) {
        final Map<String, dynamic> data =
            jsonDecode(response.body) as Map<String, dynamic>;

        // التحقق من وجود البيانات قبل فك التشفير
        if (data['Urlapi'] != null) {
          Urlapi = decryptAES(data['Urlapi'].toString(), _encryptionKey, _iv);
          print('Urlapi:$Urlapi');
        } else {
          throw Exception('بيانات التشفير غير موجودة في الاستجابة');
        }
      } else {
        throw http.ClientException(
          'حدث خطأ أثناء جلب البيانات: ${response.statusCode}',
        );
      }
    } catch (e, st) {
      print('Error fetching or decrypting config from Firebase: $e\n$st');
      throw Exception('فشل في جلب أو فك تشفير الإعدادات: $e');
    }
  }

  String _generateRandomString(int length) {
    const chars =
        'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
    final random = Random();
    return String.fromCharCodes(
      Iterable.generate(
        length,
        (_) => chars.codeUnitAt(random.nextInt(chars.length)),
      ),
    );
  }

  String encryptAES(String plainText, String keyString, String ivString) {
    final key = encrypt.Key.fromUtf8(keyString);
    final iv = encrypt.IV.fromUtf8(ivString);
    final encrypter = encrypt.Encrypter(
      encrypt.AES(key, mode: encrypt.AESMode.cbc),
    );

    final encrypted = encrypter.encrypt(plainText, iv: iv);

    // تحويل إلى Base64 ثم تصفية الرموز
    String base64Str = encrypted.base64;
    base64Str = base64Str
        .replaceAll('+', '-') // استبدال + بـ -
        .replaceAll('/', '_') // استبدال / بـ _
        .replaceAll('=', ''); // إزالة = في النهاية

    return base64Str;
  }

  Future<void> _generateAndAddUser() async {
    setState(() {
      _isLoading = true;
      _resultMessage = '';
    });

    try {
      // توليد بيانات عشوائية
      final randomId = Random().nextInt(1000).toString();
      final randomSerial = _generateRandomString(20);

      // تشفير البيانات
      final encryptedSerial1 = encryptAES(randomSerial, _encryptionKey, _iv);
      final encryptedSerial2 = encryptAES(randomSerial, _encryptionKey, _iv);

      // إنشاء كائن JSON للإرسال
      final userData = {
        "id": randomId,
        "serialPart1": encryptedSerial1,
        "serialPart2": encryptedSerial2,
      };
      final apifullurl = "${Urlapi}/${_apiUrl}";
      print('$apifullurl');
      // إرسال الطلب إلى API
      final response = await http.post(
        Uri.parse(apifullurl),
        headers: {'accept': '*/*', 'Content-Type': 'application/json'},
        body: jsonEncode(userData),
      );

      if (response.statusCode == 201) {
        setState(() {
          _isSuccess = true;
          _resultMessage =
              'تم إضافة المستخدم بنجاح!\n'
              'ID: $randomId\n'
              'Serial Part 1: $encryptedSerial1\n'
              'Serial Part 2: $encryptedSerial2';
        });
      } else {
        setState(() {
          _isSuccess = false;
          _resultMessage =
              'فشل في إضافة المستخدم. رمز الخطأ: ${response.statusCode}\n'
              'الرد: ${response.body}';
        });
      }
    } catch (e) {
      setState(() {
        _isSuccess = false;
        _resultMessage = 'حدث خطأ: ${e.toString()}';
      });
    } finally {
      setState(() {
        _isLoading = false;
      });
    }
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: const Text('توليد مستخدمين وإضافتهم إلى API')),
      body: Padding(
        padding: const EdgeInsets.all(16.0),
        child: Center(
          child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: [
              ElevatedButton(
                onPressed: _isLoading ? null : _generateAndAddUser,
                child:
                    _isLoading
                        ? const CircularProgressIndicator()
                        : const Text('توليد مستخدم وإضافته'),
              ),
              const SizedBox(height: 20),
              if (_resultMessage.isNotEmpty)
                Container(
                  padding: const EdgeInsets.all(16),
                  decoration: BoxDecoration(
                    color: _isSuccess ? Colors.green[100] : Colors.red[100],
                    borderRadius: BorderRadius.circular(8),
                  ),
                  child: Text(
                    _resultMessage,
                    style: TextStyle(
                      color: _isSuccess ? Colors.green[800] : Colors.red[800],
                    ),
                    textAlign: TextAlign.center,
                  ),
                ),
            ],
          ),
        ),
      ),
    );
  }
}


ملاحظة اعطيني الكود بالكامل لاقوم باستخدامة مباشرة دفعة واحدة وبدون تعليقات