import 'dart:io'; import 'package:device_info_plus/device_info_plus.dart'; class DevicePerformanceManager { /// القائمة البيضاء لموديلات الهواتف القوية (Flagships Only) /// أي هاتف يبدأ موديله بأحد هذه الرموز سيعتبر قوياً static const List _highEndSamsungModels = [ 'SM-S', // سلسلة Galaxy S21, S22, S23, S24 (S901, S908, S911...) 'SM-F', // سلسلة Fold و Flip (Z Fold, Z Flip) 'SM-N9', // سلسلة Note 9, Note 10, Note 20 'SM-G9', // سلسلة S10, S20 (G970, G980...) ]; static const List _highEndGoogleModels = [ 'Pixel 6', 'Pixel 7', 'Pixel 8', 'Pixel 9', 'Pixel Fold' ]; static const List _highEndHuaweiModels = [ 'ELS-', // P40 Pro 'ANA-', // P40 'HMA-', // Mate 20 'LYA-', // Mate 20 Pro 'VOG-', // P30 Pro 'ELE-', // P30 'NOH-', // Mate 40 Pro 'AL00', // Mate X series (some) ]; static const List _highEndXiaomiModels = [ '2201122', // Xiaomi 12 series patterns often look like this '2210132', // Xiaomi 13 '2304FPN', // Xiaomi 13 Ultra 'M2007J1', // Mi 10 series 'M2102K1', // Mi 11 Ultra ]; static const List _highEndOnePlusModels = [ 'GM19', // OnePlus 7 'HD19', // OnePlus 7T 'IN20', // OnePlus 8 'KB20', // OnePlus 8T 'LE21', // OnePlus 9 'NE22', // OnePlus 10 'PHB110', // OnePlus 11 'CPH', // Newer OnePlus models ]; /// دالة الفحص الرئيسية static Future isHighEndDevice() async { // 1. الآيفون دائماً قوي (نظام الرسوميات فيه متفوق حتى في الموديلات القديمة) if (Platform.isIOS) return true; if (Platform.isAndroid) { try { final androidInfo = await DeviceInfoPlugin().androidInfo; String manufacturer = androidInfo.manufacturer.toLowerCase(); String model = androidInfo.model.toUpperCase(); // نحوله لحروف كبيرة للمقارنة String hardware = androidInfo.hardware.toLowerCase(); // المعالج // --- الفحص العكسي (الحظر المباشر) --- // إذا كان المعالج من الفئات الضعيفة جداً المشهورة في الهواتف المقلدة // mt65xx, mt6735, sc77xx هي معالجات رخيصة جداً if (hardware.contains('mt65') || hardware.contains('mt6735') || hardware.contains('sc77')) { return false; } // --- فحص القائمة البيضاء (Whitelist) --- // 1. Samsung Flagships if (manufacturer.contains('samsung')) { for (var prefix in _highEndSamsungModels) { if (model.startsWith(prefix)) return true; } } // 2. Google Pixel (6 and above) if (manufacturer.contains('google')) { for (var prefix in _highEndGoogleModels) { if (model.contains(prefix.toUpperCase())) return true; } } // 3. Huawei Flagships if (manufacturer.contains('huawei')) { for (var prefix in _highEndHuaweiModels) { if (model.startsWith(prefix)) return true; } } // 4. OnePlus Flagships if (manufacturer.contains('oneplus')) { for (var prefix in _highEndOnePlusModels) { if (model.startsWith(prefix)) return true; } } // 5. Xiaomi Flagships if (manufacturer.contains('xiaomi') || manufacturer.contains('redmi') || manufacturer.contains('poco')) { // شاومي تسميتها معقدة، لذا سنعتمد على فحص الرام كعامل مساعد هنا فقط // لأن هواتف شاومي القوية عادة لا تزور الرام // الرام يجب أن يكون أكبر من 6 جيجا (بايت) double ramGB = (androidInfo.availableRamSize) / (1024 * 1024 * 1024); if (ramGB > 7.5) return true; // 8GB RAM or more is usually safe for Xiaomi high-end } // إذا لم يكن من ضمن القوائم أعلاه، نعتبره جهازاً متوسطاً/ضعيفاً ونعرض الرسم البسيط return false; } catch (e) { // في حال حدوث خطأ في الفحص، نعود للوضع الآمن (الرسم البسيط) return false; } } return false; } }