reduced number of api calls in home screen

This commit is contained in:
Mariya
2024-03-01 13:37:16 +05:30
parent 1e5afa0a5c
commit b68ec45642
2 changed files with 24 additions and 15 deletions

View File

@@ -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)

View File

@@ -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()