From b68ec45642dd94407d5c43efee264025895a1d9e Mon Sep 17 00:00:00 2001 From: Mariya Date: Fri, 1 Mar 2024 13:37:16 +0530 Subject: [PATCH] reduced number of api calls in home screen --- .../dashboard/DashboardActivity.kt | 2 - .../presentation/dashboard/HomeFragment.kt | 37 ++++++++++++------- 2 files changed, 24 insertions(+), 15 deletions(-) diff --git a/app/src/main/java/com/example/hpostesting/presentation/dashboard/DashboardActivity.kt b/app/src/main/java/com/example/hpostesting/presentation/dashboard/DashboardActivity.kt index 009662c..cafeb61 100644 --- a/app/src/main/java/com/example/hpostesting/presentation/dashboard/DashboardActivity.kt +++ b/app/src/main/java/com/example/hpostesting/presentation/dashboard/DashboardActivity.kt @@ -100,8 +100,6 @@ class DashboardActivity : AppCompatActivity(), IDataCollector { val apk = result.data val file = File(getExternalFilesDir("Updates"), "update.apk") file.setReadable(true, false) // Ensure the file is readable - - apk.byteStream().use { input -> file.outputStream().use { output -> input.copyTo(output) diff --git a/app/src/main/java/com/example/hpostesting/presentation/dashboard/HomeFragment.kt b/app/src/main/java/com/example/hpostesting/presentation/dashboard/HomeFragment.kt index 70ae123..cc32501 100644 --- a/app/src/main/java/com/example/hpostesting/presentation/dashboard/HomeFragment.kt +++ b/app/src/main/java/com/example/hpostesting/presentation/dashboard/HomeFragment.kt @@ -267,14 +267,12 @@ class HomeFragment : Fragment() { var password = sharedPreference.getString(Constants.DEVICE_PASSWORD_API, "").toString() var userID = sharedPreference.getString(Constants.DEVICE_ID_API, "").toString() deviceId = sharedPreference.getString(Constants.DEVICE_ID, "").toString() - if (userID.isNotEmpty() && password.isNotEmpty()) { - if (!isTokenAvailable || isTokenExpired(accessToken)) { - hemoCubeViewModel.login(createLoginRequestData(userID, password)) - } else { - isTokenAvailable = true - hemoCubeViewModel.startPeriodicCheckUpdate() - hemoCubeViewModel.checkUpdate(createCheckUpdateRequestData()) + if (!isTokenAvailable) { + if(userID.isNotEmpty() || password.isNotEmpty()) { + if(isTokenExpired(accessToken)) { + hemoCubeViewModel.login(createLoginRequestData(userID, password)) + } } } else if (userID.isEmpty() && password.isEmpty() && deviceId.isNotEmpty()) { fetchDeviceCredentials() @@ -290,6 +288,9 @@ class HomeFragment : Fragment() { when (response) { is Result.Success -> { updateTokens(response) + isTokenAvailable = true + hemoCubeViewModel.startPeriodicCheckUpdate() + hemoCubeViewModel.checkUpdate(createCheckUpdateRequestData()) } is Result.Error -> { @@ -326,7 +327,7 @@ class HomeFragment : Fragment() { response.exception.let { message -> Toast.makeText( activity, - "An error occurred in uploading logs: $message", + "$message", Toast.LENGTH_LONG ) .show() @@ -344,13 +345,23 @@ class HomeFragment : Fragment() { hemoCubeViewModel.checkUpdate.observe(viewLifecycleOwner) { response -> when (response) { is Result.Success -> { - // Handle success - val apkUrl = response.data - Log.e("ApI", "APK URL: $apkUrl") - hemoCubeViewModel.deviceUpdate(createDeviceUpdateRequestData()) + val updatedversion = response.data.data?.version.toString() + val currentversion = + context?.let { context?.packageManager!!.getPackageInfo(it.packageName, 0) } + if(updatedversion > currentversion.toString()){ + hemoCubeViewModel.deviceUpdate(createDeviceUpdateRequestData()) + }else{ + Toast.makeText( + activity, + "App is Up to date", + Toast.LENGTH_LONG + ) + .show() + } + Toast.makeText( activity, - " ${response.data}", + "new version ${response.data.data?.version} Available", Toast.LENGTH_LONG ) .show()