Loading app/src/main/AndroidManifest.xml +1 −0 Original line number Diff line number Diff line Loading @@ -50,6 +50,7 @@ </intent-filter> <nav-graph android:value="@navigation/navigation_resource" /> </activity> <service android:name=".manager.pkg.InstallerService" /> <receiver android:name="foundation.e.apps.manager.download.DownloadManagerBR" Loading app/src/main/java/foundation/e/apps/AppLoungeApplication.kt +2 −0 Original line number Diff line number Diff line Loading @@ -25,6 +25,7 @@ import dagger.hilt.android.HiltAndroidApp import foundation.e.apps.manager.pkg.PkgManagerBR import foundation.e.apps.manager.pkg.PkgManagerModule import kotlinx.coroutines.DelicateCoroutinesApi import java.util.concurrent.Executors import javax.inject.Inject @HiltAndroidApp Loading @@ -47,5 +48,6 @@ class AppLoungeApplication : Application(), Configuration.Provider { override fun getWorkManagerConfiguration() = Configuration.Builder() .setWorkerFactory(workerFactory) .setExecutor(Executors.newSingleThreadExecutor()) .build() } app/src/main/java/foundation/e/apps/MainActivity.kt +2 −1 Original line number Diff line number Diff line Loading @@ -54,6 +54,7 @@ import java.util.UUID class MainActivity : AppCompatActivity() { private lateinit var binding: ActivityMainBinding private val TAG = MainActivity::class.java.simpleName private lateinit var viewModel: MainActivityViewModel override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) Loading @@ -68,7 +69,7 @@ class MainActivity : AppCompatActivity() { var hasInternet = true val viewModel = ViewModelProvider(this)[MainActivityViewModel::class.java] viewModel = ViewModelProvider(this)[MainActivityViewModel::class.java] val signInViewModel = ViewModelProvider(this)[SignInViewModel::class.java] // navOptions and activityNavController for TOS and SignIn Fragments Loading app/src/main/java/foundation/e/apps/applicationlist/ApplicationListViewModel.kt +0 −2 Original line number Diff line number Diff line Loading @@ -18,7 +18,6 @@ package foundation.e.apps.applicationlist import android.util.Log import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope Loading @@ -40,7 +39,6 @@ class ApplicationListViewModel @Inject constructor( fun getList(category: String, browseUrl: String, authData: AuthData, source: String) { if (appListLiveData.value?.isNotEmpty() == true) { Log.d("ApplicationListViewModel", "getList: ") return } viewModelScope.launch(Dispatchers.IO) { Loading app/src/main/java/foundation/e/apps/manager/fused/FusedManagerImpl.kt +18 −6 Original line number Diff line number Diff line Loading @@ -21,11 +21,15 @@ import foundation.e.apps.utils.enums.Type import foundation.e.apps.utils.modules.PWAManagerModule import kotlinx.coroutines.DelicateCoroutinesApi import kotlinx.coroutines.delay import kotlinx.coroutines.sync.Mutex import kotlinx.coroutines.sync.withLock import java.io.File import javax.inject.Inject import javax.inject.Named import javax.inject.Singleton import com.aurora.gplayapi.data.models.File as AuroraFile @Singleton class FusedManagerImpl @Inject constructor( @Named("cacheDir") private val cacheDir: String, private val downloadManager: DownloadManager, Loading Loading @@ -86,12 +90,16 @@ class FusedManagerImpl @Inject constructor( } } private val mutex = Mutex() suspend fun downloadApp(fusedDownload: FusedDownload) { mutex.withLock { when (fusedDownload.type) { Type.NATIVE -> downloadNativeApp(fusedDownload) Type.PWA -> pwaManagerModule.installPWAApp(fusedDownload) } } } suspend fun installApp(fusedDownload: FusedDownload) { val list = mutableListOf<File>() Loading @@ -101,9 +109,13 @@ class FusedManagerImpl @Inject constructor( parentPathFile.listFiles()?.let { list.addAll(it) } list.sort() if (list.size != 0) { try { Log.d(TAG, "installApp: STARTED ${fusedDownload.name} ${list.size}") pkgManagerModule.installApplication(list, fusedDownload.packageName) Log.d(TAG, "installApp: ENDED ${fusedDownload.name} ${list.size}") } catch (e: Exception) { installationIssue(fusedDownload) } } } else -> { Loading Loading
app/src/main/AndroidManifest.xml +1 −0 Original line number Diff line number Diff line Loading @@ -50,6 +50,7 @@ </intent-filter> <nav-graph android:value="@navigation/navigation_resource" /> </activity> <service android:name=".manager.pkg.InstallerService" /> <receiver android:name="foundation.e.apps.manager.download.DownloadManagerBR" Loading
app/src/main/java/foundation/e/apps/AppLoungeApplication.kt +2 −0 Original line number Diff line number Diff line Loading @@ -25,6 +25,7 @@ import dagger.hilt.android.HiltAndroidApp import foundation.e.apps.manager.pkg.PkgManagerBR import foundation.e.apps.manager.pkg.PkgManagerModule import kotlinx.coroutines.DelicateCoroutinesApi import java.util.concurrent.Executors import javax.inject.Inject @HiltAndroidApp Loading @@ -47,5 +48,6 @@ class AppLoungeApplication : Application(), Configuration.Provider { override fun getWorkManagerConfiguration() = Configuration.Builder() .setWorkerFactory(workerFactory) .setExecutor(Executors.newSingleThreadExecutor()) .build() }
app/src/main/java/foundation/e/apps/MainActivity.kt +2 −1 Original line number Diff line number Diff line Loading @@ -54,6 +54,7 @@ import java.util.UUID class MainActivity : AppCompatActivity() { private lateinit var binding: ActivityMainBinding private val TAG = MainActivity::class.java.simpleName private lateinit var viewModel: MainActivityViewModel override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) Loading @@ -68,7 +69,7 @@ class MainActivity : AppCompatActivity() { var hasInternet = true val viewModel = ViewModelProvider(this)[MainActivityViewModel::class.java] viewModel = ViewModelProvider(this)[MainActivityViewModel::class.java] val signInViewModel = ViewModelProvider(this)[SignInViewModel::class.java] // navOptions and activityNavController for TOS and SignIn Fragments Loading
app/src/main/java/foundation/e/apps/applicationlist/ApplicationListViewModel.kt +0 −2 Original line number Diff line number Diff line Loading @@ -18,7 +18,6 @@ package foundation.e.apps.applicationlist import android.util.Log import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope Loading @@ -40,7 +39,6 @@ class ApplicationListViewModel @Inject constructor( fun getList(category: String, browseUrl: String, authData: AuthData, source: String) { if (appListLiveData.value?.isNotEmpty() == true) { Log.d("ApplicationListViewModel", "getList: ") return } viewModelScope.launch(Dispatchers.IO) { Loading
app/src/main/java/foundation/e/apps/manager/fused/FusedManagerImpl.kt +18 −6 Original line number Diff line number Diff line Loading @@ -21,11 +21,15 @@ import foundation.e.apps.utils.enums.Type import foundation.e.apps.utils.modules.PWAManagerModule import kotlinx.coroutines.DelicateCoroutinesApi import kotlinx.coroutines.delay import kotlinx.coroutines.sync.Mutex import kotlinx.coroutines.sync.withLock import java.io.File import javax.inject.Inject import javax.inject.Named import javax.inject.Singleton import com.aurora.gplayapi.data.models.File as AuroraFile @Singleton class FusedManagerImpl @Inject constructor( @Named("cacheDir") private val cacheDir: String, private val downloadManager: DownloadManager, Loading Loading @@ -86,12 +90,16 @@ class FusedManagerImpl @Inject constructor( } } private val mutex = Mutex() suspend fun downloadApp(fusedDownload: FusedDownload) { mutex.withLock { when (fusedDownload.type) { Type.NATIVE -> downloadNativeApp(fusedDownload) Type.PWA -> pwaManagerModule.installPWAApp(fusedDownload) } } } suspend fun installApp(fusedDownload: FusedDownload) { val list = mutableListOf<File>() Loading @@ -101,9 +109,13 @@ class FusedManagerImpl @Inject constructor( parentPathFile.listFiles()?.let { list.addAll(it) } list.sort() if (list.size != 0) { try { Log.d(TAG, "installApp: STARTED ${fusedDownload.name} ${list.size}") pkgManagerModule.installApplication(list, fusedDownload.packageName) Log.d(TAG, "installApp: ENDED ${fusedDownload.name} ${list.size}") } catch (e: Exception) { installationIssue(fusedDownload) } } } else -> { Loading