Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 00a1990e authored by Md.Hasib Prince's avatar Md.Hasib Prince Committed by Aayush Gupta
Browse files

App Lounge: Refactoring

parent 8c48056d
Loading
Loading
Loading
Loading
+13 −0
Original line number Original line Diff line number Diff line
@@ -94,4 +94,17 @@ class FusedAPIRepository @Inject constructor(
    suspend fun listApps(category: String, browseUrl: String, authData: AuthData): List<FusedApp>? {
    suspend fun listApps(category: String, browseUrl: String, authData: AuthData): List<FusedApp>? {
        return fusedAPIImpl.listApps(category, browseUrl, authData)
        return fusedAPIImpl.listApps(category, browseUrl, authData)
    }
    }

    suspend fun getAppsListBasedOnCategory(
        category: String,
        browseUrl: String,
        authData: AuthData,
        source: String
    ): List<FusedApp> {
        return when (source) {
            "Open Source" -> fusedAPIImpl.getOpenSourceApps(category) ?: listOf()
            "PWA" -> fusedAPIImpl.getPWAApps(category) ?: listOf()
            else -> fusedAPIImpl.getPlayStoreApps(browseUrl, authData)
        }
    }
}
}
+1 −3
Original line number Original line Diff line number Diff line
@@ -26,7 +26,6 @@ import dagger.hilt.android.lifecycle.HiltViewModel
import foundation.e.apps.api.fused.FusedAPIRepository
import foundation.e.apps.api.fused.FusedAPIRepository
import foundation.e.apps.api.fused.data.FusedApp
import foundation.e.apps.api.fused.data.FusedApp
import foundation.e.apps.api.fused.data.Origin
import foundation.e.apps.api.fused.data.Origin
import foundation.e.apps.domain.ApplicationListUseCase
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
import kotlinx.coroutines.launch
import javax.inject.Inject
import javax.inject.Inject
@@ -34,14 +33,13 @@ import javax.inject.Inject
@HiltViewModel
@HiltViewModel
class ApplicationListViewModel @Inject constructor(
class ApplicationListViewModel @Inject constructor(
    private val fusedAPIRepository: FusedAPIRepository,
    private val fusedAPIRepository: FusedAPIRepository,
    private val applicationListUseCase: ApplicationListUseCase
) : ViewModel() {
) : ViewModel() {


    val appListLiveData: MutableLiveData<List<FusedApp>> = MutableLiveData()
    val appListLiveData: MutableLiveData<List<FusedApp>> = MutableLiveData()


    fun getList(category: String, browseUrl: String, authData: AuthData, source: String) {
    fun getList(category: String, browseUrl: String, authData: AuthData, source: String) {
        viewModelScope.launch(Dispatchers.IO) {
        viewModelScope.launch(Dispatchers.IO) {
            appListLiveData.postValue(applicationListUseCase.getAppsList(category, browseUrl, authData, source))
            appListLiveData.postValue(fusedAPIRepository.getAppsListBasedOnCategory(category, browseUrl, authData, source))
        }
        }
    }
    }


+0 −15
Original line number Original line Diff line number Diff line
package foundation.e.apps.di

import dagger.Binds
import dagger.Module
import dagger.hilt.InstallIn
import dagger.hilt.android.components.ViewModelComponent
import foundation.e.apps.domain.repositories.IApplicationsRepository
import foundation.e.apps.repositories.ApplicationRepositoryImpl

@InstallIn(ViewModelComponent::class)
@Module
interface RepositoryModule {
    @Binds
    fun getApplicationsRepository(applicationRepositoryImpl: ApplicationRepositoryImpl): IApplicationsRepository
}
+0 −21
Original line number Original line Diff line number Diff line
package foundation.e.apps.domain

import com.aurora.gplayapi.data.models.AuthData
import foundation.e.apps.api.fused.data.FusedApp
import foundation.e.apps.domain.repositories.IApplicationsRepository
import javax.inject.Inject

class ApplicationListUseCase @Inject constructor(private val applicationRepository: IApplicationsRepository) {
    suspend fun getAppsList(
        category: String,
        browseUrl: String,
        authData: AuthData,
        source: String
    ): List<FusedApp> {
        return when (source) {
            "Open Source" -> applicationRepository.getOpenSourceApps(category)
            "PWA" -> applicationRepository.getPWAApps(category)
            else -> applicationRepository.getPlayStoreApps(browseUrl, authData)
        }
    }
}
+0 −10
Original line number Original line Diff line number Diff line
package foundation.e.apps.domain.repositories

import com.aurora.gplayapi.data.models.AuthData
import foundation.e.apps.api.fused.data.FusedApp

interface IApplicationsRepository {
    suspend fun getOpenSourceApps(category: String): List<FusedApp>
    suspend fun getPWAApps(category: String): List<FusedApp>
    suspend fun getPlayStoreApps(browseUrl: String, authData: AuthData): List<FusedApp>
}
Loading