Loading app/build.gradle +1 −1 Original line number Diff line number Diff line Loading @@ -10,7 +10,7 @@ plugins { def versionMajor = 2 def versionMinor = 4 def versionPatch = 2 def versionPatch = 3 def getGitHash = { -> def stdOut = new ByteArrayOutputStream() Loading app/src/main/java/foundation/e/apps/api/fused/FusedAPIImpl.kt +2 −13 Original line number Diff line number Diff line Loading @@ -109,13 +109,6 @@ class FusedAPIImpl @Inject constructor( return true } fun isCategoriesEmpty(fusedCategories: List<FusedCategory>): Boolean { fusedCategories.forEach { if (it.title.isNotEmpty()) return false } return true } fun getApplicationCategoryPreference(): String { return preferenceManagerModule.preferredApplicationType() } Loading Loading @@ -177,11 +170,7 @@ class FusedAPIImpl @Inject constructor( setHomeErrorMessage(apiStatus, source) scope.emit( ResultSupreme.create(apiStatus, priorList.toList()).apply { otherPayload = source.name } ) scope.emit(ResultSupreme.create(apiStatus, priorList)) } private fun setHomeErrorMessage(apiStatus: ResultStatus, source: Source) { Loading Loading @@ -1345,7 +1334,7 @@ class FusedAPIImpl @Inject constructor( updateFilterLevel(authData) } } list.add(FusedHome(it.key, result, source = APP_TYPE_ANY)) list.add(FusedHome(it.key, result)) } return list } Loading app/src/main/java/foundation/e/apps/api/fused/FusedAPIRepository.kt +0 −4 Original line number Diff line number Diff line Loading @@ -86,10 +86,6 @@ class FusedAPIRepository @Inject constructor(private val fusedAPIImpl: FusedAPII return fusedAPIImpl.isFusedHomesEmpty(fusedHomes) } fun isCategoriesEmpty(fusedCategories: List<FusedCategory>): Boolean { return fusedAPIImpl.isCategoriesEmpty(fusedCategories) } fun getApplicationCategoryPreference(): String { return fusedAPIImpl.getApplicationCategoryPreference() } Loading app/src/main/java/foundation/e/apps/categories/CategoriesViewModel.kt +16 −26 Original line number Diff line number Diff line Loading @@ -26,12 +26,9 @@ import dagger.hilt.android.lifecycle.HiltViewModel import foundation.e.apps.api.fused.FusedAPIRepository import foundation.e.apps.api.fused.data.FusedCategory import foundation.e.apps.login.AuthObject import foundation.e.apps.utils.enums.AppTag import foundation.e.apps.utils.enums.ResultStatus import foundation.e.apps.utils.enums.User import foundation.e.apps.utils.exceptions.CleanApkException import foundation.e.apps.utils.exceptions.GPlayException import foundation.e.apps.utils.exceptions.GPlayLoginException import foundation.e.apps.utils.parentFragment.LoadingViewModel import kotlinx.coroutines.launch import javax.inject.Inject Loading @@ -52,33 +49,25 @@ class CategoriesViewModel @Inject constructor( super.onLoadData(authObjectList, { successAuthList, _ -> successAuthList.find { it is AuthObject.GPlayAuth }?.run { getCategoriesList(type, result.data!! as AuthData, this.user) getCategoriesList(type, result.data!! as AuthData) return@onLoadData } successAuthList.find { it is AuthObject.CleanApk }?.run { getCategoriesList(type, AuthData("", ""), this.user) getCategoriesList(type, AuthData("", "")) return@onLoadData } }, retryBlock) } fun getCategoriesList(type: Category.Type, authData: AuthData, user: User) { fun getCategoriesList(type: Category.Type, authData: AuthData) { viewModelScope.launch { val categoriesData = fusedAPIRepository.getCategoriesList(type, authData) categoriesList.postValue(categoriesData) val status = categoriesData.third val categoriesList = categoriesData.first if (status == ResultStatus.OK) { if (categoriesList.all { it.tag is AppTag.GPlay } && isCategoriesEmpty(categoriesList)) { exceptionsList.add(GPlayLoginException(false, "Received empty Categories", user)) } return@launch } if (status != ResultStatus.OK) { val exception = if (authData.aasToken.isNotBlank() || authData.authToken.isNotBlank()) GPlayException( Loading @@ -94,8 +83,9 @@ class CategoriesViewModel @Inject constructor( exceptionsLiveData.postValue(exceptionsList) } } } fun isCategoriesEmpty(fusedCategories: List<FusedCategory>): Boolean { return fusedAPIRepository.isCategoriesEmpty(fusedCategories) fun isCategoriesEmpty(): Boolean { return categoriesList.value?.first?.isEmpty() ?: true } } app/src/main/java/foundation/e/apps/home/HomeViewModel.kt +5 −17 Original line number Diff line number Diff line Loading @@ -28,11 +28,8 @@ import foundation.e.apps.api.fused.FusedAPIRepository import foundation.e.apps.api.fused.data.FusedApp import foundation.e.apps.api.fused.data.FusedHome import foundation.e.apps.login.AuthObject import foundation.e.apps.utils.enums.Source import foundation.e.apps.utils.enums.User import foundation.e.apps.utils.exceptions.CleanApkException import foundation.e.apps.utils.exceptions.GPlayException import foundation.e.apps.utils.exceptions.GPlayLoginException import foundation.e.apps.utils.parentFragment.LoadingViewModel import kotlinx.coroutines.launch import javax.inject.Inject Loading @@ -58,12 +55,12 @@ class HomeViewModel @Inject constructor( super.onLoadData(authObjectList, { successAuthList, _ -> successAuthList.find { it is AuthObject.GPlayAuth }?.run { getHomeScreenData(result.data!! as AuthData, this.user, lifecycleOwner) getHomeScreenData(result.data!! as AuthData, lifecycleOwner) return@onLoadData } successAuthList.find { it is AuthObject.CleanApk }?.run { getHomeScreenData(AuthData("", ""), this.user, lifecycleOwner) getHomeScreenData(AuthData("", ""), lifecycleOwner) return@onLoadData } }, retryBlock) Loading @@ -71,22 +68,13 @@ class HomeViewModel @Inject constructor( fun getHomeScreenData( authData: AuthData, user: User, lifecycleOwner: LifecycleOwner, ) { viewModelScope.launch { fusedAPIRepository.getHomeScreenData(authData).observe(lifecycleOwner) { homeScreenData.postValue(it) val homeList = it.data ?: emptyList() val source = it.otherPayload?.toString() ?: "" if (it.isSuccess()) { if (homeList.all { source == Source.GPLAY.name } && isFusedHomesEmpty(homeList)) { exceptionsList.add(GPlayLoginException(false, "Received empty Home", user)) } return@observe } if (it.isSuccess()) return@observe val exception = if (authData.aasToken.isNotBlank() || authData.authToken.isNotBlank()) Loading @@ -109,8 +97,8 @@ class HomeViewModel @Inject constructor( return fusedAPIRepository.getApplicationCategoryPreference() } fun isFusedHomesEmpty(fusedHomes: List<FusedHome>): Boolean { return fusedHomes.let { fun isFusedHomesEmpty(): Boolean { return homeScreenData.value?.data?.let { fusedAPIRepository.isFusedHomesEmpty(it) } ?: true } Loading Loading
app/build.gradle +1 −1 Original line number Diff line number Diff line Loading @@ -10,7 +10,7 @@ plugins { def versionMajor = 2 def versionMinor = 4 def versionPatch = 2 def versionPatch = 3 def getGitHash = { -> def stdOut = new ByteArrayOutputStream() Loading
app/src/main/java/foundation/e/apps/api/fused/FusedAPIImpl.kt +2 −13 Original line number Diff line number Diff line Loading @@ -109,13 +109,6 @@ class FusedAPIImpl @Inject constructor( return true } fun isCategoriesEmpty(fusedCategories: List<FusedCategory>): Boolean { fusedCategories.forEach { if (it.title.isNotEmpty()) return false } return true } fun getApplicationCategoryPreference(): String { return preferenceManagerModule.preferredApplicationType() } Loading Loading @@ -177,11 +170,7 @@ class FusedAPIImpl @Inject constructor( setHomeErrorMessage(apiStatus, source) scope.emit( ResultSupreme.create(apiStatus, priorList.toList()).apply { otherPayload = source.name } ) scope.emit(ResultSupreme.create(apiStatus, priorList)) } private fun setHomeErrorMessage(apiStatus: ResultStatus, source: Source) { Loading Loading @@ -1345,7 +1334,7 @@ class FusedAPIImpl @Inject constructor( updateFilterLevel(authData) } } list.add(FusedHome(it.key, result, source = APP_TYPE_ANY)) list.add(FusedHome(it.key, result)) } return list } Loading
app/src/main/java/foundation/e/apps/api/fused/FusedAPIRepository.kt +0 −4 Original line number Diff line number Diff line Loading @@ -86,10 +86,6 @@ class FusedAPIRepository @Inject constructor(private val fusedAPIImpl: FusedAPII return fusedAPIImpl.isFusedHomesEmpty(fusedHomes) } fun isCategoriesEmpty(fusedCategories: List<FusedCategory>): Boolean { return fusedAPIImpl.isCategoriesEmpty(fusedCategories) } fun getApplicationCategoryPreference(): String { return fusedAPIImpl.getApplicationCategoryPreference() } Loading
app/src/main/java/foundation/e/apps/categories/CategoriesViewModel.kt +16 −26 Original line number Diff line number Diff line Loading @@ -26,12 +26,9 @@ import dagger.hilt.android.lifecycle.HiltViewModel import foundation.e.apps.api.fused.FusedAPIRepository import foundation.e.apps.api.fused.data.FusedCategory import foundation.e.apps.login.AuthObject import foundation.e.apps.utils.enums.AppTag import foundation.e.apps.utils.enums.ResultStatus import foundation.e.apps.utils.enums.User import foundation.e.apps.utils.exceptions.CleanApkException import foundation.e.apps.utils.exceptions.GPlayException import foundation.e.apps.utils.exceptions.GPlayLoginException import foundation.e.apps.utils.parentFragment.LoadingViewModel import kotlinx.coroutines.launch import javax.inject.Inject Loading @@ -52,33 +49,25 @@ class CategoriesViewModel @Inject constructor( super.onLoadData(authObjectList, { successAuthList, _ -> successAuthList.find { it is AuthObject.GPlayAuth }?.run { getCategoriesList(type, result.data!! as AuthData, this.user) getCategoriesList(type, result.data!! as AuthData) return@onLoadData } successAuthList.find { it is AuthObject.CleanApk }?.run { getCategoriesList(type, AuthData("", ""), this.user) getCategoriesList(type, AuthData("", "")) return@onLoadData } }, retryBlock) } fun getCategoriesList(type: Category.Type, authData: AuthData, user: User) { fun getCategoriesList(type: Category.Type, authData: AuthData) { viewModelScope.launch { val categoriesData = fusedAPIRepository.getCategoriesList(type, authData) categoriesList.postValue(categoriesData) val status = categoriesData.third val categoriesList = categoriesData.first if (status == ResultStatus.OK) { if (categoriesList.all { it.tag is AppTag.GPlay } && isCategoriesEmpty(categoriesList)) { exceptionsList.add(GPlayLoginException(false, "Received empty Categories", user)) } return@launch } if (status != ResultStatus.OK) { val exception = if (authData.aasToken.isNotBlank() || authData.authToken.isNotBlank()) GPlayException( Loading @@ -94,8 +83,9 @@ class CategoriesViewModel @Inject constructor( exceptionsLiveData.postValue(exceptionsList) } } } fun isCategoriesEmpty(fusedCategories: List<FusedCategory>): Boolean { return fusedAPIRepository.isCategoriesEmpty(fusedCategories) fun isCategoriesEmpty(): Boolean { return categoriesList.value?.first?.isEmpty() ?: true } }
app/src/main/java/foundation/e/apps/home/HomeViewModel.kt +5 −17 Original line number Diff line number Diff line Loading @@ -28,11 +28,8 @@ import foundation.e.apps.api.fused.FusedAPIRepository import foundation.e.apps.api.fused.data.FusedApp import foundation.e.apps.api.fused.data.FusedHome import foundation.e.apps.login.AuthObject import foundation.e.apps.utils.enums.Source import foundation.e.apps.utils.enums.User import foundation.e.apps.utils.exceptions.CleanApkException import foundation.e.apps.utils.exceptions.GPlayException import foundation.e.apps.utils.exceptions.GPlayLoginException import foundation.e.apps.utils.parentFragment.LoadingViewModel import kotlinx.coroutines.launch import javax.inject.Inject Loading @@ -58,12 +55,12 @@ class HomeViewModel @Inject constructor( super.onLoadData(authObjectList, { successAuthList, _ -> successAuthList.find { it is AuthObject.GPlayAuth }?.run { getHomeScreenData(result.data!! as AuthData, this.user, lifecycleOwner) getHomeScreenData(result.data!! as AuthData, lifecycleOwner) return@onLoadData } successAuthList.find { it is AuthObject.CleanApk }?.run { getHomeScreenData(AuthData("", ""), this.user, lifecycleOwner) getHomeScreenData(AuthData("", ""), lifecycleOwner) return@onLoadData } }, retryBlock) Loading @@ -71,22 +68,13 @@ class HomeViewModel @Inject constructor( fun getHomeScreenData( authData: AuthData, user: User, lifecycleOwner: LifecycleOwner, ) { viewModelScope.launch { fusedAPIRepository.getHomeScreenData(authData).observe(lifecycleOwner) { homeScreenData.postValue(it) val homeList = it.data ?: emptyList() val source = it.otherPayload?.toString() ?: "" if (it.isSuccess()) { if (homeList.all { source == Source.GPLAY.name } && isFusedHomesEmpty(homeList)) { exceptionsList.add(GPlayLoginException(false, "Received empty Home", user)) } return@observe } if (it.isSuccess()) return@observe val exception = if (authData.aasToken.isNotBlank() || authData.authToken.isNotBlank()) Loading @@ -109,8 +97,8 @@ class HomeViewModel @Inject constructor( return fusedAPIRepository.getApplicationCategoryPreference() } fun isFusedHomesEmpty(fusedHomes: List<FusedHome>): Boolean { return fusedHomes.let { fun isFusedHomesEmpty(): Boolean { return homeScreenData.value?.data?.let { fusedAPIRepository.isFusedHomesEmpty(it) } ?: true } Loading