Files

3.3 KiB

سیستم آپدیت اجباری و مدیریت دسترسی‌ها

این طرح شامل پیاده‌سازی مکانیزم بررسی نسخه جدید اپلیکیشن از طریق فایل JSON در گیتهاب و همچنین الزامی کردن دسترسی‌های مورد نیاز برنامه (مشابه پروژه ابزار فروش) در بدو ورود کاربر است.

User Review Required

  • لینک فایل آپدیت: فعلاً از لینک https://raw.githubusercontent.com/oqba26/MonthlyPaymentApp/main/update.json استفاده شده است. لطفاً مطمئن شوید این فایل در مخزن شما وجود دارد.
  • دسترسی‌های اجباری: دسترسی‌های Contacts، Camera و Storage (برای نسخه‌های قدیمی) به صورت پیش‌فرض اجباری در نظر گرفته شده‌اند.

Proposed Changes

[Dependencies]

[MODIFY] libs.versions.toml

افزودن کتابخانه‌های Ktor برای Content Negotiation و Serialization جهت پردازش فایل JSON آپدیت.

[MODIFY] build.gradle.kts

اضافه کردن وابستگی‌های جدید به ماژول اپلیکیشن.


[Update System]

[NEW] UpdateManager.kt

کلاسی برای چک کردن نسخه جدید، دانلود APK و اجرای فرآیند نصب.

[NEW] UpdateDialog.kt

رابط کاربری نمایش وجود نسخه جدید و گزارش پیشرفت دانلود.


[Permissions & Manifest]

[NEW] PermissionDialogs.kt

دیالوگ‌های نمایش دسترسی‌های الزامی و اخطار عدم دسترسی.

[MODIFY] AndroidManifest.xml

افزودن مجوز REQUEST_INSTALL_PACKAGES و تعریف FileProvider برای نصب خودکار فایل APK.

[NEW] file_paths.xml

تعریف مسیرهای مجاز برای FileProvider.


[Integration]

[MODIFY] MainActivity.kt

یکپارچه‌سازی فرآیند بررسی آپدیت و چک کردن دسترسی‌ها در زمان اجرای برنامه.

Verification Plan

Manual Verification

  1. اجرای برنامه و مشاهده دیالوگ دسترسی‌ها (در صورت عدم تایید قبلی).
  2. شبیه‌سازی وجود آپدیت جدید با تغییر دستی versionCode در کد و بررسی نمایش دیالوگ آپدیت.
  3. تست فرآیند دانلود و باز شدن صفحه نصب اندروید.