From ccc50108d3ac257649d88337fd6cc4a53792adfb Mon Sep 17 00:00:00 2001 From: Pritimay Sarkar Date: Sun, 29 Oct 2023 07:33:12 +0530 Subject: [PATCH] add app distribution auto update --- app/build.gradle | 6 ++- .../ui/activities/MainActivity.kt | 44 +++++++++++++++++++ 2 files changed, 48 insertions(+), 2 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 368fba3..5b2fa60 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -16,8 +16,8 @@ android { applicationId "in.sminnovations.hposregistration" minSdk 26 targetSdk 34 - versionCode 1 - versionName "1.0" + versionCode 6 + versionName "1.0.6" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } @@ -59,6 +59,8 @@ dependencies { implementation 'com.google.firebase:firebase-storage-ktx' implementation 'com.firebaseui:firebase-ui-firestore:8.0.2' implementation 'com.google.android.gms:play-services-auth:20.6.0' + implementation 'com.google.firebase:firebase-appdistribution:16.0.0-beta10' + implementation("com.google.firebase:firebase-appdistribution-api-ktx:16.0.0-beta10") // Coroutines implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.1' diff --git a/app/src/main/java/com/example/hposregistration/ui/activities/MainActivity.kt b/app/src/main/java/com/example/hposregistration/ui/activities/MainActivity.kt index 51c0221..013bdf0 100644 --- a/app/src/main/java/com/example/hposregistration/ui/activities/MainActivity.kt +++ b/app/src/main/java/com/example/hposregistration/ui/activities/MainActivity.kt @@ -2,6 +2,10 @@ package com.example.hposregistration.ui.activities import androidx.appcompat.app.AppCompatActivity import android.os.Bundle +import android.widget.Toast +import com.google.firebase.appdistribution.FirebaseAppDistribution +import com.google.firebase.appdistribution.FirebaseAppDistributionException +import com.google.firebase.crashlytics.FirebaseCrashlytics import dagger.hilt.android.AndroidEntryPoint import `in`.sminnovations.hposregistration.databinding.ActivityMainBinding @@ -16,4 +20,44 @@ class MainActivity : AppCompatActivity() { setContentView(binding.root) } + + override fun onResume() { + super.onResume() + + val firebaseAppDistribution = FirebaseAppDistribution.getInstance() + firebaseAppDistribution.updateIfNewReleaseAvailable() + .addOnProgressListener { updateProgress -> + + if (updateProgress.apkBytesDownloaded > 0) { + Toast.makeText( + this, + "${updateProgress.updateStatus}. ${updateProgress.apkBytesDownloaded / 1048576} /${updateProgress.apkFileTotalBytes / 1048576} MB", + Toast.LENGTH_SHORT + ).show() + } + } + .addOnFailureListener { e -> + // (Optional) Handle errors. + if (e is FirebaseAppDistributionException) { + when (e.errorCode) { + FirebaseAppDistributionException.Status.NOT_IMPLEMENTED -> { + // SDK did nothing. This is expected when building for Play. + } + + else -> { + // Handle other errors. + Toast.makeText( + this, + "AppDistribution error, status: ${e.errorCode}", + Toast.LENGTH_SHORT + ).show() + } + } + FirebaseCrashlytics.getInstance().recordException(e) + } + } + .addOnSuccessListener { +// Toast.makeText(this, "App Update: Success!", Toast.LENGTH_SHORT).show() + } + } } \ No newline at end of file