Loading app/build.gradle +4 −0 Original line number Diff line number Diff line Loading @@ -116,10 +116,14 @@ dependencies { def retrofit_version = "2.9.0" implementation "com.squareup.retrofit2:retrofit:$retrofit_version" implementation "com.squareup.retrofit2:converter-moshi:$retrofit_version" implementation "com.squareup.retrofit2:converter-jackson:$retrofit_version" implementation "com.squareup.moshi:moshi-kotlin:1.13.0" // implementation "com.squareup.moshi:moshi-adapters:1.5.0" implementation "com.squareup.okhttp3:okhttp:4.9.2" // YAML factory implementation "com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.11.2" // Navigation Components def navigation_version = "2.3.5" implementation "androidx.navigation:navigation-fragment-ktx:$navigation_version" Loading app/src/main/AndroidManifest.xml +11 −5 Original line number Diff line number Diff line Loading @@ -24,12 +24,19 @@ <uses-permission android:name="android.permission.DELETE_PACKAGES" tools:ignore="ProtectedPermissions" /> <uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" /> <uses-permission android:name="android.permission.REQUEST_DELETE_PACKAGES" /> <uses-permission android:name="android.permission.UPDATE_PACKAGES_WITHOUT_USER_ACTION" /> <application android:name=".AppLoungeApplication" android:allowBackup="false" android:icon="@mipmap/ic_launcher" android:killAfterRestore="false" android:label="@string/app_name" android:requestLegacyExternalStorage="true" android:restoreAnyVersion="true" android:restoreNeedsApplication="true" android:supportsRtl="true" android:theme="@style/Theme.Apps" android:usesCleartextTraffic="true"> Loading Loading @@ -65,8 +72,7 @@ <provider android:name="androidx.startup.InitializationProvider" android:authorities="${applicationId}.androidx-startup" tools:node="remove"> </provider> tools:node="remove" /> <service android:name=".manager.pkg.PackageInstallerService" /> </application> Loading app/src/main/java/foundation/e/apps/AppProgressViewModel.kt +2 −2 Original line number Diff line number Diff line Loading @@ -22,10 +22,10 @@ class AppProgressViewModel @Inject constructor( ): Pair<Long, Long> { fusedApp?.let { app -> val appDownload = fusedManagerRepository.getDownloadList() .singleOrNull { it.id.contentEquals(app._id) && it.package_name.contentEquals(app.package_name) } .singleOrNull { it.id.contentEquals(app._id) && it.packageName.contentEquals(app.package_name) } ?: return Pair(1, 0) if (!appDownload.id.contentEquals(app._id) || !appDownload.package_name.contentEquals(app.package_name)) { if (!appDownload.id.contentEquals(app._id) || !appDownload.packageName.contentEquals(app.package_name)) { return@let } val downloadingMap = progress.totalSizeBytes.filter { item -> Loading app/src/main/java/foundation/e/apps/FdroidFetchViewModel.kt 0 → 100644 +60 −0 Original line number Diff line number Diff line package foundation.e.apps import android.widget.TextView import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import dagger.hilt.android.lifecycle.HiltViewModel import foundation.e.apps.api.fdroid.FdroidRepository import foundation.e.apps.api.fdroid.models.FdroidEntity import foundation.e.apps.api.fused.data.FusedApp import foundation.e.apps.utils.enums.Origin import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch import kotlinx.coroutines.withContext import javax.inject.Inject /** * */ @HiltViewModel class FdroidFetchViewModel @Inject constructor( private val fdroidRepository: FdroidRepository ): ViewModel() { private val fdroidEntries = mutableMapOf<String, FdroidEntity?>() fun setAuthorNameIfNeeded(textView: TextView, fusedApp: FusedApp) { viewModelScope.launch { var authorNameToDisplay = textView.text withContext(Dispatchers.Default) { fusedApp.run { try { if (author == "unknown" && origin == Origin.CLEANAPK) { withContext(Dispatchers.Main) { textView.text = FdroidEntity.DEFAULT_FDROID_AUTHOR_NAME } var result = fdroidEntries[package_name] if (result == null) { result = fdroidRepository.getFdroidInfo(package_name)?.also { fdroidEntries[package_name] = it } } result?.authorName?.let { authorNameToDisplay = it } } } catch (e: Exception) { e.printStackTrace() } } } withContext(Dispatchers.Main) { textView.text = authorNameToDisplay } } } } No newline at end of file app/src/main/java/foundation/e/apps/MainActivity.kt +1 −1 Original line number Diff line number Diff line Loading @@ -175,7 +175,7 @@ class MainActivity : AppCompatActivity() { viewModel.purchaseAppLiveData.observe(this) { val action = AppPurchaseFragmentDirections.actionGlobalAppPurchaseFragment(it.package_name) AppPurchaseFragmentDirections.actionGlobalAppPurchaseFragment(it.packageName) findNavController(R.id.fragment).navigate(action) } Loading Loading
app/build.gradle +4 −0 Original line number Diff line number Diff line Loading @@ -116,10 +116,14 @@ dependencies { def retrofit_version = "2.9.0" implementation "com.squareup.retrofit2:retrofit:$retrofit_version" implementation "com.squareup.retrofit2:converter-moshi:$retrofit_version" implementation "com.squareup.retrofit2:converter-jackson:$retrofit_version" implementation "com.squareup.moshi:moshi-kotlin:1.13.0" // implementation "com.squareup.moshi:moshi-adapters:1.5.0" implementation "com.squareup.okhttp3:okhttp:4.9.2" // YAML factory implementation "com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.11.2" // Navigation Components def navigation_version = "2.3.5" implementation "androidx.navigation:navigation-fragment-ktx:$navigation_version" Loading
app/src/main/AndroidManifest.xml +11 −5 Original line number Diff line number Diff line Loading @@ -24,12 +24,19 @@ <uses-permission android:name="android.permission.DELETE_PACKAGES" tools:ignore="ProtectedPermissions" /> <uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" /> <uses-permission android:name="android.permission.REQUEST_DELETE_PACKAGES" /> <uses-permission android:name="android.permission.UPDATE_PACKAGES_WITHOUT_USER_ACTION" /> <application android:name=".AppLoungeApplication" android:allowBackup="false" android:icon="@mipmap/ic_launcher" android:killAfterRestore="false" android:label="@string/app_name" android:requestLegacyExternalStorage="true" android:restoreAnyVersion="true" android:restoreNeedsApplication="true" android:supportsRtl="true" android:theme="@style/Theme.Apps" android:usesCleartextTraffic="true"> Loading Loading @@ -65,8 +72,7 @@ <provider android:name="androidx.startup.InitializationProvider" android:authorities="${applicationId}.androidx-startup" tools:node="remove"> </provider> tools:node="remove" /> <service android:name=".manager.pkg.PackageInstallerService" /> </application> Loading
app/src/main/java/foundation/e/apps/AppProgressViewModel.kt +2 −2 Original line number Diff line number Diff line Loading @@ -22,10 +22,10 @@ class AppProgressViewModel @Inject constructor( ): Pair<Long, Long> { fusedApp?.let { app -> val appDownload = fusedManagerRepository.getDownloadList() .singleOrNull { it.id.contentEquals(app._id) && it.package_name.contentEquals(app.package_name) } .singleOrNull { it.id.contentEquals(app._id) && it.packageName.contentEquals(app.package_name) } ?: return Pair(1, 0) if (!appDownload.id.contentEquals(app._id) || !appDownload.package_name.contentEquals(app.package_name)) { if (!appDownload.id.contentEquals(app._id) || !appDownload.packageName.contentEquals(app.package_name)) { return@let } val downloadingMap = progress.totalSizeBytes.filter { item -> Loading
app/src/main/java/foundation/e/apps/FdroidFetchViewModel.kt 0 → 100644 +60 −0 Original line number Diff line number Diff line package foundation.e.apps import android.widget.TextView import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import dagger.hilt.android.lifecycle.HiltViewModel import foundation.e.apps.api.fdroid.FdroidRepository import foundation.e.apps.api.fdroid.models.FdroidEntity import foundation.e.apps.api.fused.data.FusedApp import foundation.e.apps.utils.enums.Origin import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch import kotlinx.coroutines.withContext import javax.inject.Inject /** * */ @HiltViewModel class FdroidFetchViewModel @Inject constructor( private val fdroidRepository: FdroidRepository ): ViewModel() { private val fdroidEntries = mutableMapOf<String, FdroidEntity?>() fun setAuthorNameIfNeeded(textView: TextView, fusedApp: FusedApp) { viewModelScope.launch { var authorNameToDisplay = textView.text withContext(Dispatchers.Default) { fusedApp.run { try { if (author == "unknown" && origin == Origin.CLEANAPK) { withContext(Dispatchers.Main) { textView.text = FdroidEntity.DEFAULT_FDROID_AUTHOR_NAME } var result = fdroidEntries[package_name] if (result == null) { result = fdroidRepository.getFdroidInfo(package_name)?.also { fdroidEntries[package_name] = it } } result?.authorName?.let { authorNameToDisplay = it } } } catch (e: Exception) { e.printStackTrace() } } } withContext(Dispatchers.Main) { textView.text = authorNameToDisplay } } } } No newline at end of file
app/src/main/java/foundation/e/apps/MainActivity.kt +1 −1 Original line number Diff line number Diff line Loading @@ -175,7 +175,7 @@ class MainActivity : AppCompatActivity() { viewModel.purchaseAppLiveData.observe(this) { val action = AppPurchaseFragmentDirections.actionGlobalAppPurchaseFragment(it.package_name) AppPurchaseFragmentDirections.actionGlobalAppPurchaseFragment(it.packageName) findNavController(R.id.fragment).navigate(action) } Loading