# QA يدوي لإصدار Android — البسطية

يُنفَّذ على **نسخة release** (مو debug) على جهاز حقيقي، قبل الرفع إلى Google Play.
علّم كل بند بـ ✅ / ❌ واكتب رقم النسخة وتاريخ الفحص.

النسخة المفحوصة: `__________`  التاريخ: `__________`  الجهاز/الأندرويد: `__________`

## 1. الدخول والحساب

- [ ] **Google Sign-In على نسخة release**: يفتح اختيار الحساب الأصلي (مو WebView) ويرجع للتطبيق مسجّل دخول.
      إذا فشل: تأكد أن SHA-1/SHA-256 لمفتاح الـrelease مضافة في Firebase (شاشة «حالة التوقيع» داخل الإعدادات).
- [ ] **رابط تأكيد البريد**: تسجيل بالبريد → فتح الرابط من تطبيق البريد → يرجع للتطبيق وتكتمل الجلسة بدون شاشة بيضاء.
- [ ] تسجيل الخروج ثم الدخول مرة ثانية يشتغل.
- [ ] حذف الحساب يشتغل ويطلع المستخدم من الجلسة.

## 2. الصلاحيات

- [ ] **الخرائط والموقع**: أول فتح للخريطة يطلب صلاحية الموقع؛ الرفض ما يكسر الصفحة (خريطة بدون تحديد تلقائي).
- [ ] بعد الموافقة: «قريب منك» يعرض نتائج منطقية.
- [ ] **الكاميرا/المعرض**: نشر إعلان → التقاط صورة + اختيار من المعرض، ورفض الصلاحية يعطي رسالة واضحة.
- [ ] **الإشعارات (Android 13+)**: يظهر طلب الإذن مرة وحدة، والرفض ما يعطل التطبيق.

## 3. التنقل والمشاركة

- [ ] **زر الرجوع**: من صفحة إعلان يرجع للقائمة، ومن الرئيسية يخرج من التطبيق (ما يعلق بحلقة).
- [ ] زر الرجوع يغلق النوافذ المنبثقة (Dialog/Sheet) قبل ما يرجع صفحة.
- [ ] **المشاركة الأصلية**: مشاركة إعلان تفتح ورقة مشاركة أندرويد **مرة وحدة فقط** (بدون ازدواج).
- [ ] الرابط المشارَك بصيغة `https://albastiya.com/listings/<id>` ويفتح صفحة صحيحة بمعاينة صورة.
- [ ] **رابط المتجر**: أي زر «حدّث التطبيق» يفتح صفحة Google Play للتطبيق مباشرة.

## 4. الصور

- [ ] رفع صورة **10MB** → تنضغط وتنرفع بدون تعليق.
- [ ] رفع صورة **25MB** → إما تنضغط وتنجح أو رسالة واضحة (بدون كراش).
- [ ] صورة عمودية بدوران EXIF تظهر بالاتجاه الصحيح بعد الرفع.
- [ ] 5 صور دفعة وحدة → ما يصير Out of memory.

## 5. الشبكة

- [ ] **انقطاع الإنترنت**: يظهر بانر «لا يوجد اتصال»، والمحتوى المخزّن يبقى ظاهر.
- [ ] رجوع الاتصال → زر إعادة المحاولة يجيب البيانات بدون إعادة تشغيل التطبيق.
- [ ] قطع الإنترنت أثناء نشر إعلان → رسالة خطأ واضحة وما ينحذف النص المكتوب.

## 6. المراجعة والامتثال (UGC)

- [ ] إعلان فيه محتوى مشبوه يروح `pending` وما يظهر للعامة.
- [ ] المشرف/المراجع يشوف الإعلان في تبويب «المراجعة» ويكدر يقبل أو يرفض بسبب.
- [ ] بعد القرار يوصل إشعار للمعلن ورابطه يفتح `/listings/<id>`.
- [ ] **الحظر**: بعد حظر مستخدم — ما يكدر يراسلك، ما يكدر يرسل عرض سعر، **وما يكدر يزايد** (رسالة عربية واضحة).
- [ ] إعلانات المحظور ما تظهر لك.
- [ ] الإبلاغ عن إعلان يشتغل ويوصل للوحة البلاغات.

## 7. الاستقرار

- [ ] ما تظهر شاشة بيضاء بأي مسار (ErrorBoundary يعرض رسالة + زر تحديث).
- [ ] تبويب «الأخطاء» يعرض `platform` و`app_version` وما يعرض أي بريد/هاتف/توكن.
