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

Commit cdda2a9b authored by Abhishek Aggarwal's avatar Abhishek Aggarwal
Browse files

Merge branch '4863_installation_issue' into 'epic_176-all-refactorAndGplay'

App lounge: fix app install issue

See merge request ecorp/apps/apps!35
parents ba7c3584 b9be8f1a
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -10,6 +10,7 @@
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
    <uses-permission android:name="android.permission.UPDATE_PACKAGES_WITHOUT_USER_ACTION" />
    <uses-permission
        android:name="android.permission.MANAGE_EXTERNAL_STORAGE"
        tools:ignore="ScopedStorage" />
@@ -66,6 +67,8 @@
            android:authorities="${applicationId}.androidx-startup"
            tools:node="remove">
        </provider>

        <service android:name=".manager.pkg.PackageInstallerService"/>
    </application>

</manifest>
 No newline at end of file
+1 −14
Original line number Diff line number Diff line
@@ -31,7 +31,6 @@ import dagger.hilt.android.AndroidEntryPoint
import foundation.e.apps.databinding.ActivityMainBinding
import foundation.e.apps.updates.UpdatesNotifier
import foundation.e.apps.utils.enums.Status
import foundation.e.apps.utils.enums.Type
import foundation.e.apps.utils.enums.User
import foundation.e.apps.utils.modules.CommonUtilsModule

@@ -144,7 +143,7 @@ class MainActivity : AppCompatActivity() {
        // Observe and handle downloads
        viewModel.downloadList.observe(this) { list ->
            val shouldDownload = list.any {
                it.status == Status.INSTALLING || it.status == Status.DOWNLOADING
                it.status == Status.INSTALLING || it.status == Status.DOWNLOADING || it.status == Status.INSTALLED
            }
            if (!shouldDownload && list.isNotEmpty()) {
                for (item in list) {
@@ -154,18 +153,6 @@ class MainActivity : AppCompatActivity() {
                    }
                }
            }
            list.forEach { app ->
                if (app.type == Type.NATIVE) {
                    if (app.status == Status.INSTALLING && !viewModel.installInProgress) {
                        if (app.downloadIdMap.all { it.value }) {
                            viewModel.installInProgress = true
                            viewModel.installApp(app)
                        }
                    } else if (app.status == Status.INSTALLED) {
                        viewModel.installInProgress = false
                    }
                }
            }
        }

        if (!CommonUtilsModule.isNetworkAvailable(this)) {
+4 −4
Original line number Diff line number Diff line
@@ -37,6 +37,7 @@ import foundation.e.apps.api.fused.FusedAPIRepository
import foundation.e.apps.api.fused.data.FusedApp
import foundation.e.apps.manager.database.fusedDownload.FusedDownload
import foundation.e.apps.manager.fused.FusedManagerRepository
import foundation.e.apps.utils.enums.Status
import foundation.e.apps.utils.enums.Type
import foundation.e.apps.utils.modules.DataStoreModule
import kotlinx.coroutines.Dispatchers
@@ -117,10 +118,6 @@ class MainActivityViewModel @Inject constructor(
        }
    }

    fun installApp(fusedDownload: FusedDownload) {
        fusedManagerRepository.installApp(fusedDownload)
    }

    fun getApplication(app: FusedApp, imageView: ImageView?) {
        viewModelScope.launch {
            val appIcon = imageView?.let { getImageBase64(it) } ?: ""
@@ -138,6 +135,9 @@ class MainActivityViewModel @Inject constructor(
                app.type,
                appIcon
            )
            if (fusedDownload.status == Status.INSTALLATION_ISSUE) {
                fusedManagerRepository.clearInstallationIssue(fusedDownload)
            }
            fusedManagerRepository.addDownload(fusedDownload)
        }
    }
+2 −0
Original line number Diff line number Diff line
@@ -646,6 +646,8 @@ class FusedAPIImpl @Inject constructor(
    private fun FusedApp.updateStatus() {
        this.status = if (this.isFree) {
            pkgManagerModule.getPackageStatus(this.package_name, this.latest_version_code)
        } else if (this.status == Status.INSTALLATION_ISSUE) {
            this.status
        } else {
            Status.BLOCKED
        }
+12 −0
Original line number Diff line number Diff line
@@ -211,6 +211,18 @@ class ApplicationFragment : Fragment(R.layout.fragment_application) {
                        }
                    }
                }
                Status.INSTALLATION_ISSUE -> {
                    installButton.apply {
                        text = getString(R.string.retry)
                        setOnClickListener {
                            applicationIcon?.let {
                                mainActivityViewModel.getApplication(fusedApp, it)
                            }
                        }
                    }
                    downloadPB.visibility = View.GONE
                    appSize.visibility = View.VISIBLE
                }
                else -> {
                    Log.d(TAG, "Unknown status: $status")
                }
Loading