InstallerFragment: Rename and relocate method to get available installer info
* Keep all installer related code to AppInstaller as much as possible Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
This commit is contained in:
@@ -3,7 +3,7 @@ package com.aurora.store.data.installer
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import com.aurora.store.R
|
||||
import com.aurora.store.data.model.Installer
|
||||
import com.aurora.store.data.model.InstallerInfo
|
||||
import com.aurora.store.data.room.download.Download
|
||||
import com.aurora.store.util.Log
|
||||
import com.aurora.store.util.PackageUtil.isSharedLibraryInstalled
|
||||
@@ -24,8 +24,8 @@ class AMInstaller @Inject constructor(
|
||||
const val AM_PACKAGE_NAME = "io.github.muntashirakon.AppManager"
|
||||
const val AM_DEBUG_PACKAGE_NAME = "io.github.muntashirakon.AppManager.debug"
|
||||
|
||||
fun getInstallerInfo(context: Context): Installer {
|
||||
return Installer(
|
||||
fun getInstallerInfo(context: Context): InstallerInfo {
|
||||
return InstallerInfo(
|
||||
id = 4,
|
||||
title = context.getString(R.string.pref_install_mode_am),
|
||||
subtitle = context.getString(R.string.am_installer_subtitle),
|
||||
|
||||
@@ -32,6 +32,7 @@ import com.aurora.extensions.isOAndAbove
|
||||
import com.aurora.extensions.isPAndAbove
|
||||
import com.aurora.store.BuildConfig
|
||||
import com.aurora.store.R
|
||||
import com.aurora.store.data.model.InstallerInfo
|
||||
import com.aurora.store.data.room.download.Download
|
||||
import com.aurora.store.util.NotificationUtil
|
||||
import com.aurora.store.util.PackageUtil
|
||||
@@ -58,6 +59,31 @@ class AppInstaller @Inject constructor(
|
||||
companion object {
|
||||
const val EXTRA_DOWNLOAD = "com.aurora.store.data.installer.AppInstaller.EXTRA_DOWNLOAD"
|
||||
|
||||
fun getAvailableInstallersInfo(context: Context): List<InstallerInfo> {
|
||||
val installers = mutableListOf(
|
||||
SessionInstaller.getInstallerInfo(context),
|
||||
NativeInstaller.getInstallerInfo(context)
|
||||
)
|
||||
|
||||
if (hasRootAccess()) {
|
||||
installers.add(RootInstaller.getInstallerInfo(context))
|
||||
}
|
||||
|
||||
if (hasAuroraService(context)) {
|
||||
installers.add(ServiceInstaller.getInstallerInfo(context))
|
||||
}
|
||||
|
||||
if (hasAppManager(context)) {
|
||||
installers.add(AMInstaller.getInstallerInfo(context))
|
||||
}
|
||||
|
||||
if (isOAndAbove() && hasShizukuOrSui(context)) {
|
||||
installers.add(ShizukuInstaller.getInstallerInfo(context))
|
||||
}
|
||||
|
||||
return installers
|
||||
}
|
||||
|
||||
fun notifyInstallation(context: Context, download: Download) {
|
||||
val notificationManager =
|
||||
context.getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager
|
||||
|
||||
@@ -25,7 +25,7 @@ import android.net.Uri
|
||||
import android.os.Build
|
||||
import com.aurora.extensions.runOnUiThread
|
||||
import com.aurora.store.R
|
||||
import com.aurora.store.data.model.Installer
|
||||
import com.aurora.store.data.model.InstallerInfo
|
||||
import com.aurora.store.data.room.download.Download
|
||||
import com.aurora.store.util.Log
|
||||
import dagger.hilt.android.qualifiers.ApplicationContext
|
||||
@@ -41,8 +41,8 @@ class NativeInstaller @Inject constructor(
|
||||
|
||||
companion object {
|
||||
|
||||
fun getInstallerInfo(context: Context): Installer {
|
||||
return Installer(
|
||||
fun getInstallerInfo(context: Context): InstallerInfo {
|
||||
return InstallerInfo(
|
||||
id = 1,
|
||||
title = context.getString(R.string.pref_install_mode_native),
|
||||
subtitle = context.getString(R.string.native_installer_subtitle),
|
||||
|
||||
@@ -22,7 +22,7 @@ package com.aurora.store.data.installer
|
||||
import android.content.Context
|
||||
import com.aurora.store.R
|
||||
import com.aurora.store.data.event.InstallerEvent
|
||||
import com.aurora.store.data.model.Installer
|
||||
import com.aurora.store.data.model.InstallerInfo
|
||||
import com.aurora.store.data.room.download.Download
|
||||
import com.aurora.store.util.Log
|
||||
import com.aurora.store.util.PackageUtil.isSharedLibraryInstalled
|
||||
@@ -40,8 +40,8 @@ class RootInstaller @Inject constructor(
|
||||
|
||||
companion object {
|
||||
|
||||
fun getInstallerInfo(context: Context): Installer {
|
||||
return Installer(
|
||||
fun getInstallerInfo(context: Context): InstallerInfo {
|
||||
return InstallerInfo(
|
||||
id = 2,
|
||||
title = context.getString(R.string.pref_install_mode_root),
|
||||
subtitle = context.getString(R.string.root_installer_subtitle),
|
||||
|
||||
@@ -37,7 +37,7 @@ import com.aurora.store.BuildConfig
|
||||
import com.aurora.store.R
|
||||
import com.aurora.store.data.event.BusEvent
|
||||
import com.aurora.store.data.event.InstallerEvent
|
||||
import com.aurora.store.data.model.Installer
|
||||
import com.aurora.store.data.model.InstallerInfo
|
||||
import com.aurora.store.data.room.download.Download
|
||||
import com.aurora.store.util.Log
|
||||
import com.aurora.store.util.PackageUtil
|
||||
@@ -65,8 +65,8 @@ class ServiceInstaller @Inject constructor(
|
||||
const val PRIVILEGED_EXTENSION_PACKAGE_NAME = "com.aurora.services"
|
||||
const val PRIVILEGED_EXTENSION_SERVICE_INTENT = "com.aurora.services.IPrivilegedService"
|
||||
|
||||
fun getInstallerInfo(context: Context): Installer {
|
||||
return Installer(
|
||||
fun getInstallerInfo(context: Context): InstallerInfo {
|
||||
return InstallerInfo(
|
||||
id = 3,
|
||||
title = context.getString(R.string.pref_install_mode_services),
|
||||
subtitle = context.getString(R.string.services_installer_subtitle),
|
||||
|
||||
@@ -37,7 +37,7 @@ import com.aurora.extensions.isUAndAbove
|
||||
import com.aurora.extensions.runOnUiThread
|
||||
import com.aurora.store.R
|
||||
import com.aurora.store.data.installer.AppInstaller.Companion.EXTRA_DOWNLOAD
|
||||
import com.aurora.store.data.model.Installer
|
||||
import com.aurora.store.data.model.InstallerInfo
|
||||
import com.aurora.store.data.receiver.InstallerStatusReceiver
|
||||
import com.aurora.store.data.room.download.Download
|
||||
import com.aurora.store.util.Log
|
||||
@@ -59,8 +59,8 @@ class SessionInstaller @Inject constructor(
|
||||
|
||||
companion object {
|
||||
|
||||
fun getInstallerInfo(context: Context): Installer {
|
||||
return Installer(
|
||||
fun getInstallerInfo(context: Context): InstallerInfo {
|
||||
return InstallerInfo(
|
||||
id = 0,
|
||||
title = context.getString(R.string.pref_install_mode_session),
|
||||
subtitle = context.getString(R.string.session_installer_subtitle),
|
||||
|
||||
@@ -32,7 +32,7 @@ import com.aurora.extensions.isOAndAbove
|
||||
import com.aurora.extensions.isSAndAbove
|
||||
import com.aurora.store.R
|
||||
import com.aurora.store.data.installer.AppInstaller.Companion.EXTRA_DOWNLOAD
|
||||
import com.aurora.store.data.model.Installer
|
||||
import com.aurora.store.data.model.InstallerInfo
|
||||
import com.aurora.store.data.receiver.InstallerStatusReceiver
|
||||
import com.aurora.store.data.room.download.Download
|
||||
import com.aurora.store.util.Log
|
||||
@@ -53,8 +53,8 @@ class ShizukuInstaller @Inject constructor(
|
||||
companion object {
|
||||
const val SHIZUKU_PACKAGE_NAME = "moe.shizuku.privileged.api"
|
||||
|
||||
fun getInstallerInfo(context: Context): Installer {
|
||||
return Installer(
|
||||
fun getInstallerInfo(context: Context): InstallerInfo {
|
||||
return InstallerInfo(
|
||||
id = 5,
|
||||
title = context.getString(R.string.pref_install_mode_shizuku),
|
||||
subtitle = context.getString(R.string.shizuku_installer_subtitle),
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
|
||||
package com.aurora.store.data.model
|
||||
|
||||
data class Installer(
|
||||
data class InstallerInfo(
|
||||
var id: Int,
|
||||
var title: String,
|
||||
var subtitle: String,
|
||||
@@ -27,7 +27,7 @@ data class Installer(
|
||||
) {
|
||||
override fun equals(other: Any?): Boolean {
|
||||
return when (other) {
|
||||
is Installer -> other.id == id
|
||||
is InstallerInfo -> other.id == id
|
||||
else -> false
|
||||
}
|
||||
}
|
||||
@@ -27,7 +27,7 @@ import com.airbnb.epoxy.CallbackProp
|
||||
import com.airbnb.epoxy.ModelProp
|
||||
import com.airbnb.epoxy.ModelView
|
||||
import com.aurora.store.R
|
||||
import com.aurora.store.data.model.Installer
|
||||
import com.aurora.store.data.model.InstallerInfo
|
||||
import com.aurora.store.databinding.ViewInstallerBinding
|
||||
import com.aurora.store.view.epoxy.views.BaseView
|
||||
|
||||
@@ -61,7 +61,7 @@ class InstallerView : RelativeLayout {
|
||||
}
|
||||
|
||||
@ModelProp
|
||||
fun installer(installer: Installer) {
|
||||
fun installer(installer: InstallerInfo) {
|
||||
B.line1.text = installer.title
|
||||
B.line2.text = installer.subtitle
|
||||
B.line3.text = installer.description
|
||||
|
||||
@@ -28,14 +28,7 @@ import com.aurora.extensions.isMiuiOptimizationDisabled
|
||||
import com.aurora.extensions.isOAndAbove
|
||||
import com.aurora.extensions.showDialog
|
||||
import com.aurora.store.R
|
||||
import com.aurora.store.data.installer.AMInstaller
|
||||
import com.aurora.store.data.installer.AppInstaller
|
||||
import com.aurora.store.data.installer.NativeInstaller
|
||||
import com.aurora.store.data.installer.RootInstaller
|
||||
import com.aurora.store.data.installer.ServiceInstaller
|
||||
import com.aurora.store.data.installer.SessionInstaller
|
||||
import com.aurora.store.data.installer.ShizukuInstaller
|
||||
import com.aurora.store.data.model.Installer
|
||||
import com.aurora.store.databinding.FragmentInstallerBinding
|
||||
import com.aurora.store.util.Log
|
||||
import com.aurora.store.util.Preferences
|
||||
@@ -97,7 +90,7 @@ class InstallerFragment : BaseFragment(R.layout.fragment_installer) {
|
||||
// RecyclerView
|
||||
binding.epoxyRecycler.withModels {
|
||||
setFilterDuplicates(true)
|
||||
getInstallers().forEach {
|
||||
AppInstaller.getAvailableInstallersInfo(requireContext()).forEach {
|
||||
add(
|
||||
InstallerViewModel_()
|
||||
.id(it.id)
|
||||
@@ -198,34 +191,4 @@ class InstallerFragment : BaseFragment(R.layout.fragment_installer) {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private fun getInstallers(): List<Installer> {
|
||||
val installers = mutableListOf(
|
||||
SessionInstaller.getInstallerInfo(requireContext()),
|
||||
NativeInstaller.getInstallerInfo(requireContext())
|
||||
)
|
||||
|
||||
// 2
|
||||
if (AppInstaller.hasRootAccess()) {
|
||||
installers.add(RootInstaller.getInstallerInfo(requireContext()))
|
||||
}
|
||||
|
||||
// 3
|
||||
if (AppInstaller.hasAuroraService(requireContext())) {
|
||||
installers.add(ServiceInstaller.getInstallerInfo(requireContext()))
|
||||
}
|
||||
|
||||
// 4
|
||||
if (AppInstaller.hasAppManager(requireContext())) {
|
||||
installers.add(AMInstaller.getInstallerInfo(requireContext()))
|
||||
}
|
||||
|
||||
// 5
|
||||
if (isOAndAbove() && AppInstaller.hasShizukuOrSui(requireContext())) {
|
||||
installers.add(ShizukuInstaller.getInstallerInfo(requireContext()))
|
||||
}
|
||||
|
||||
return installers
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user