Skip to content

ashwinpinetco/auto_update

Repository files navigation

Vending Updater Demo

વેચાણ મશીન માટે સતત ચલાવવાની Flutter ડેમો એપ્લિકેશન, જે GitHub Releases પરથી ઓટોમેટિક OTA અપડેટ્સ હેન્ડલ કરે છે. સંપૂર્ણ-સ્ક્રીન ફરજિયાત ડાયલોગ, પૃષ્ઠભૂમિ ચેક, રિટ્રાય લોજિક અને Gujarati મેસેજિંગ સાથે કિયોસ્ક પ્રસંગોમાં સલામત છે.

Project Highlights

  • પેકેજ નામ: com.example.vending_updater અને એપ નામ "Vending Updater Demo".
  • અપડેટ ચેક: સ્ટાર્ટઅપ પર તરત, પછી દરેક 2 કલાકે Flutter Background Service મારફતે.
  • GitHub Releases API જેટલેટ્સ ( /repos/YOUR_GITHUB_USERNAME/vending-machine-app/releases/latest ).
  • ફરજિયાત પૂર્ણ-સ્ક્રીન UI lib/screens/update_screen.dart માં Gujarati CTA સાથે.
  • lib/services/update_service.dart OTA વર્કફ્લો, ડાઉનલોડ, ઇન્સ્ટોલ, લોગિંગ, idle-state કંટ્રોલ અને ટેસ્ટ હૂક્સ પ્રદાન કરે છે.
  • update_logs.txt (app documents dir) માં પ્રત્યેક સ્ટેપનું ટાઈમસ્ટેમ્પ્ડ લોગ સંગ્રહિત થાય છે, જે હિડન એડમિન પેનલમાં વાંચી શકાય છે.

Quick Setup

  1. Flutter SDK: 3.8+ (Dart 3.8) પસંદ કરો અને flutter doctor સાફ કરો.
  2. Dependencies: પ્રોજેક્ટ રૂટ પરથી flutter pub get ચલાવો.
  3. GitHub Auth: public repo હોય તો પૂરતું, private હોવા પર GitHub ટોકનથી API કૉલ proxied કરો અથવા રિલીઝ URL ને signed URL થી બદલો.
  4. Update Config: lib/config/update_config.dart માં githubUsername ને તમારા GitHub યુઝરનેમથી બદલો. જરૂર પડે તો repoName, intervals, retry વગેરે ફાઇન-ટ્યુન કરો.
  5. Android Permissions: android/app/src/main/AndroidManifest.xml પહેલેથી INERNET, REQUEST_INSTALL_PACKAGES, FOREGROUND_SERVICE, WAKE_LOCK, ACCESS_NETWORK_STATE ઉમેરાયું છે. અન્ય OEM માટે બેટરી ઑપ્ટિમાઈઝેશન exempt કરવાની જરૂર હોય તો ડોક્યુમેન્ટ કરો.
  6. Run: flutter run --release કિયોસ્ક ડિવાઈસ પર ચલાવો. એપ સ્ટાર્ટ થતાની સાથે જ update check અને perms માંગશે.

Creating a GitHub Release With APK

  1. flutter build apk --target-platform android-arm64 ચલાવો.
  2. GitHub repo vending-machine-app માં vX.Y.Z ટૅગ સાથે નવી રિલીઝ બનાવો.
  3. Release body માં Gujarati/English ચેન્જલોગ મૂકો (UI માં દર્શાય છે).
  4. Generated app-release.apk ને release asset તરીકે અપલોડ કરો. ખાતરી કરો કે નામ અને સાઇઝ ચોક્કસ છે (size GitHub API દ્વારા size ફિલ્ડમાં આવે છે).
  5. જ્યારે ડિવાઈસ એપ GitHub API હિટ કરશે ત્યારે નવું વર્ઝન ઓળખશે અને dialogs ટ્રિગર કરશે.

Testing the Update Flow

  1. Startup check: એપ kill કરીને ફરી ચાલુ કરો. ઇન્ટરનેટ ઉપલબ્ધ હોય તો API હિટ થશે; નેટવર્ક ન હોય તો "ઇન્ટરનેટ કનેક્શન તપાસો" મેસેજ દેખાશે અને 30 સેકંડે રિટ્રાય થશે.
  2. Admin Panel: હોમ સ્ક્રીનની આવૃત્તિ લખાણ પર 5 વાર લૉંગ-પ્રેસ કરો. પેનલમાં:
    • Manual update check
    • Simulate Update / Test Dialog buttons
    • Machine idle toggle ( busy હોય ત્યારે અપડેટ deferred )
    • Manual version override / downgrade ટેસ્ટિંગ
    • Update logs રીડઆઉટ
    • Battery optimization settings શોર્ટકટ
  3. Silent background checks: 2 કલાક ઈન્ટરવલ સુધી રાહ જુઓ અથવા "Force background check" બટન દબાવો ( BackgroundUpdateService.triggerImmediateCheck() ). Idle થાય ત્યારે જ dialog દેખાશે.
  4. Download/Retry: નેટવર્ક કાપો અથવા ખરાબ URL આપી simulate કરો. Error Gujarati માં દેખાશે અને retry બટન ઉપલબ્ધ રહેશે.
  5. Install path: APK ડાઉનલોડ થયા પછી "અપડેટ ઇન્સ્ટોલ કરો" દબાવો. Android install prompt ઓપન થાય છે, સફળતાએ પછી એપ રીસ્ટાર્ટ પર નવી version દેખાય છે.

Troubleshooting

Issue Gujarati UI Message Resolution
No internet "ઇન્ટરનેટ કનેક્શન તપાસો" કનેક્ટિવિટી સુધારો; એપ 30 સેકંડે auto retry કરે છે.
GitHub API throttled/failed "અપડેટ તપાસ નિષ્ફળ ગઈ" GitHub status તપાસો, tokens ઉમેરો, update_config.dart માં interval વધારવો.
Download failed / mismatch "ડાઉનલોડ નિષ્ફળ રહ્યું" Release assetનું URL અથવા સાઇઝ તપાસો; ફરી પ્રયત્ન કરો બટનથી auto retry થાય છે.
Install permission denied "ઇન્સ્ટોલ પરવાનગી જરૂરી છે" Settings -> Install unknown apps માંથી મંજૂરી આપો (admin panel battery settings બટન મદદરૂપ).
Machine busy અપડેટ deferred થાય છે Admin panel માં Machine Idle ટૉગલ true કરો અથવા ટ્રાન્ઝેક્શન પૂરું કરો; idle થયા પછી dialog auto દેખાશે.

Observability & Logs

  • update_logs.txt એપ ડોક્યુમેન્ટ ડિરેક્ટરીમાં છે (Android: /data/data/com.example.vending_updater/app_flutter/update_logs.txt).
  • દરેક event [timestamp] Event - details ફૉર્મેટમાં append થાય છે.
  • Admin panel માં ટોચની 100 લોગ લાઈનો રિવર્સ ઓર્ડરમાં દર્શાય છે.

Video Walkthrough

આ README સાથે કિયોસ્ક ઇન્ટિગ્રેશન, GitHub રિલીઝ publish અને non-stop vending deployment માટે જરૂરી માહિતી ઉપલબ્ધ છે.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published