diff --git a/app/detekt-baseline.xml b/app/detekt-baseline.xml
index 217b0fd1c61fcb74f64eb48e8fbbd6956e37286d..7c6469b29768c5cfec1a205c2fb89b64e0a370ef 100644
--- a/app/detekt-baseline.xml
+++ b/app/detekt-baseline.xml
@@ -27,7 +27,7 @@
LongMethod:MainActivity.kt$MainActivity$override fun onCreate(savedInstanceState: Bundle?)
LongMethod:NativeDeviceInfoProviderModule.kt$NativeDeviceInfoProviderModule$@Singleton @Provides fun provideNativeDeviceProperties( @ApplicationContext context: Context, ): Properties
LongParameterList:ApplicationDialogFragment.kt$ApplicationDialogFragment$( drawable: Int = -1, title: String, message: String, positiveButtonText: String = "", positiveButtonAction: (() -> Unit)? = null, cancelButtonText: String = "", cancelButtonAction: (() -> Unit)? = null, cancellable: Boolean = true, onDismissListener: (() -> Unit)? = null, )
- LongParameterList:ApplicationListRVAdapter.kt$ApplicationListRVAdapter$( private val fusedAPIInterface: FusedAPIInterface, private val privacyInfoViewModel: PrivacyInfoViewModel, private val appInfoFetchViewModel: AppInfoFetchViewModel, private val mainActivityViewModel: MainActivityViewModel, private val currentDestinationId: Int, private var lifecycleOwner: LifecycleOwner?, private var paidAppHandler: ((FusedApp) -> Unit)? = null )
+ LongParameterList:ApplicationListRVAdapter.kt$ApplicationListRVAdapter$( private val applicationInstaller: ApplicationInstaller, private val privacyInfoViewModel: PrivacyInfoViewModel, private val appInfoFetchViewModel: AppInfoFetchViewModel, private val mainActivityViewModel: MainActivityViewModel, private val currentDestinationId: Int, private var lifecycleOwner: LifecycleOwner?, private var paidAppHandler: ((FusedApp) -> Unit)? = null )
LongParameterList:ApplicationViewModel.kt$ApplicationViewModel$( id: String, packageName: String, origin: Origin, isFdroidLink: Boolean, authObjectList: List<AuthObject>, retryBlock: (failedObjects: List<AuthObject>) -> Boolean, )
LongParameterList:CleanApkRetrofit.kt$CleanApkRetrofit$( @Query("keyword") keyword: String, @Query("source") source: String = APP_SOURCE_FOSS, @Query("type") type: String = APP_TYPE_ANY, @Query("nres") nres: Int = 20, @Query("page") page: Int = 1, @Query("by") by: String? = null, )
LongParameterList:EglExtensionProvider.kt$EglExtensionProvider$( egl10: EGL10, eglDisplay: EGLDisplay, eglConfig: EGLConfig?, ai: IntArray, ai1: IntArray?, set: MutableSet<String> )
@@ -195,7 +195,7 @@
TooManyFunctions:AppInstallProcessor.kt$AppInstallProcessor
TooManyFunctions:AppPrivacyInfoRepositoryImpl.kt$AppPrivacyInfoRepositoryImpl : IAppPrivacyInfoRepository
TooManyFunctions:ApplicationFragment.kt$ApplicationFragment : TimeoutFragment
- TooManyFunctions:ApplicationListFragment.kt$ApplicationListFragment : TimeoutFragmentFusedAPIInterface
+ TooManyFunctions:ApplicationListFragment.kt$ApplicationListFragment : TimeoutFragmentApplicationInstaller
TooManyFunctions:ApplicationListRVAdapter.kt$ApplicationListRVAdapter : ListAdapter
TooManyFunctions:DownloadManager.kt$DownloadManager
TooManyFunctions:FusedAPIRepository.kt$FusedAPIRepository
@@ -205,7 +205,7 @@
TooManyFunctions:FusedManagerRepository.kt$FusedManagerRepository
TooManyFunctions:GPlayHttpClient.kt$GPlayHttpClient : IHttpClient
TooManyFunctions:HomeChildRVAdapter.kt$HomeChildRVAdapter : ListAdapter
- TooManyFunctions:HomeFragment.kt$HomeFragment : TimeoutFragmentFusedAPIInterface
+ TooManyFunctions:HomeFragment.kt$HomeFragment : TimeoutFragmentApplicationInstaller
TooManyFunctions:IFusedManager.kt$IFusedManager
TooManyFunctions:LoginData.kt$LoginData
TooManyFunctions:MainActivity.kt$MainActivity : AppCompatActivity
@@ -214,9 +214,9 @@
TooManyFunctions:PlayStoreAuthenticator.kt$PlayStoreAuthenticator : StoreAuthenticatorAuthDataValidator
TooManyFunctions:PlayStoreRepositoryImpl.kt$PlayStoreRepositoryImpl : PlayStoreRepository
TooManyFunctions:RetrofitModule.kt$RetrofitModule
- TooManyFunctions:SearchFragment.kt$SearchFragment : TimeoutFragmentOnQueryTextListenerOnSuggestionListenerFusedAPIInterface
+ TooManyFunctions:SearchFragment.kt$SearchFragment : TimeoutFragmentOnQueryTextListenerOnSuggestionListenerApplicationInstaller
TooManyFunctions:TimeoutFragment.kt$TimeoutFragment : Fragment
- TooManyFunctions:UpdatesFragment.kt$UpdatesFragment : TimeoutFragmentFusedAPIInterface
+ TooManyFunctions:UpdatesFragment.kt$UpdatesFragment : TimeoutFragmentApplicationInstaller
TooManyFunctions:UpdatesManagerImpl.kt$UpdatesManagerImpl
TooManyFunctions:UpdatesWorker.kt$UpdatesWorker : CoroutineWorker
UnusedParameter:ApplicationFragment.kt$ApplicationFragment$it: ImageView
diff --git a/app/src/main/java/foundation/e/apps/data/fused/FusedAPIInterface.kt b/app/src/main/java/foundation/e/apps/data/fused/ApplicationInstaller.kt
similarity index 78%
rename from app/src/main/java/foundation/e/apps/data/fused/FusedAPIInterface.kt
rename to app/src/main/java/foundation/e/apps/data/fused/ApplicationInstaller.kt
index c60312deb89efbc859aff50596309ac23e5e7930..a17e792b2a809bd9bf7466f7841cd8c46a262d62 100644
--- a/app/src/main/java/foundation/e/apps/data/fused/FusedAPIInterface.kt
+++ b/app/src/main/java/foundation/e/apps/data/fused/ApplicationInstaller.kt
@@ -18,15 +18,11 @@
package foundation.e.apps.data.fused
-import android.widget.ImageView
import foundation.e.apps.data.fused.data.FusedApp
-/**
- * FusedAPIInterface to allow adapter classes to install applications easily
- */
-interface FusedAPIInterface {
+interface ApplicationInstaller {
- fun getApplication(app: FusedApp, appIcon: ImageView? = null)
+ fun installApplication(app: FusedApp)
fun cancelDownload(app: FusedApp)
}
diff --git a/app/src/main/java/foundation/e/apps/ui/applicationlist/ApplicationListFragment.kt b/app/src/main/java/foundation/e/apps/ui/applicationlist/ApplicationListFragment.kt
index ccf2abcbb8b032f827d07bbc8c0040f85cbe8a73..aad78058c9ee45c36b405d0320af5d47384f7355 100644
--- a/app/src/main/java/foundation/e/apps/ui/applicationlist/ApplicationListFragment.kt
+++ b/app/src/main/java/foundation/e/apps/ui/applicationlist/ApplicationListFragment.kt
@@ -20,7 +20,6 @@ package foundation.e.apps.ui.applicationlist
import android.os.Bundle
import android.view.View
-import android.widget.ImageView
import androidx.appcompat.app.AlertDialog
import androidx.fragment.app.activityViewModels
import androidx.fragment.app.viewModels
@@ -34,7 +33,7 @@ import dagger.hilt.android.AndroidEntryPoint
import foundation.e.apps.R
import foundation.e.apps.data.ResultSupreme
import foundation.e.apps.data.enums.Status
-import foundation.e.apps.data.fused.FusedAPIInterface
+import foundation.e.apps.data.fused.ApplicationInstaller
import foundation.e.apps.data.fused.data.FusedApp
import foundation.e.apps.data.login.AuthObject
import foundation.e.apps.data.login.exceptions.GPlayLoginException
@@ -54,7 +53,7 @@ import javax.inject.Inject
@AndroidEntryPoint
class ApplicationListFragment :
TimeoutFragment(R.layout.fragment_application_list),
- FusedAPIInterface {
+ ApplicationInstaller {
// protected to avoid SyntheticAccessor
protected val args: ApplicationListFragmentArgs by navArgs()
@@ -196,7 +195,7 @@ class ApplicationListFragment :
),
positiveButtonText = getString(R.string.dialog_confirm),
positiveButtonAction = {
- getApplication(fusedApp)
+ installApplication(fusedApp)
},
cancelButtonText = getString(R.string.dialog_cancel),
).show(childFragmentManager, "HomeFragment")
@@ -333,7 +332,7 @@ class ApplicationListFragment :
super.onPause()
}
- override fun getApplication(app: FusedApp, appIcon: ImageView?) {
+ override fun installApplication(app: FusedApp) {
mainActivityViewModel.getApplication(app)
}
diff --git a/app/src/main/java/foundation/e/apps/ui/applicationlist/ApplicationListRVAdapter.kt b/app/src/main/java/foundation/e/apps/ui/applicationlist/ApplicationListRVAdapter.kt
index d28e864b0b900c172e98d821aa29dba99399f647..61b0c46fb4f17a2005f0346f1cdf5ba10f0475cd 100644
--- a/app/src/main/java/foundation/e/apps/ui/applicationlist/ApplicationListRVAdapter.kt
+++ b/app/src/main/java/foundation/e/apps/ui/applicationlist/ApplicationListRVAdapter.kt
@@ -20,7 +20,6 @@ package foundation.e.apps.ui.applicationlist
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
-import android.widget.ImageView
import androidx.core.content.ContextCompat
import androidx.core.view.children
import androidx.lifecycle.LifecycleOwner
@@ -40,7 +39,7 @@ import foundation.e.apps.data.cleanapk.CleanApkRetrofit
import foundation.e.apps.data.enums.Origin
import foundation.e.apps.data.enums.Status
import foundation.e.apps.data.enums.User
-import foundation.e.apps.data.fused.FusedAPIInterface
+import foundation.e.apps.data.fused.ApplicationInstaller
import foundation.e.apps.data.fused.data.FusedApp
import foundation.e.apps.databinding.ApplicationListItemBinding
import foundation.e.apps.install.pkg.InstallerService
@@ -56,7 +55,7 @@ import javax.inject.Singleton
@Singleton
class ApplicationListRVAdapter(
- private val fusedAPIInterface: FusedAPIInterface,
+ private val applicationInstaller: ApplicationInstaller,
private val privacyInfoViewModel: PrivacyInfoViewModel,
private val appInfoFetchViewModel: AppInfoFetchViewModel,
private val mainActivityViewModel: MainActivityViewModel,
@@ -326,7 +325,7 @@ class ApplicationListRVAdapter(
backgroundTintList =
ContextCompat.getColorStateList(view.context, android.R.color.transparent)
setOnClickListener {
- installApplication(searchApp, appIcon)
+ installApplication(searchApp)
}
}
}
@@ -447,7 +446,7 @@ class ApplicationListRVAdapter(
if (searchApp.isFree || searchApp.isPurchased) {
disableInstallButton()
text = context.getText(R.string.cancel)
- installApplication(searchApp, appIcon)
+ installApplication(searchApp)
} else {
paidAppHandler?.invoke(searchApp)
}
@@ -504,7 +503,7 @@ class ApplicationListRVAdapter(
if (mainActivityViewModel.checkUnsupportedApplication(searchApp, context)) {
return@setOnClickListener
}
- installApplication(searchApp, appIcon)
+ installApplication(searchApp)
}
}
progressBarInstall.visibility = View.GONE
@@ -543,12 +542,12 @@ class ApplicationListRVAdapter(
this.submitList(newList.map { it.copy() })
}
- private fun installApplication(searchApp: FusedApp, appIcon: ImageView) {
- fusedAPIInterface.getApplication(searchApp, appIcon)
+ private fun installApplication(searchApp: FusedApp) {
+ applicationInstaller.installApplication(searchApp)
}
private fun cancelDownload(searchApp: FusedApp) {
- fusedAPIInterface.cancelDownload(searchApp)
+ applicationInstaller.cancelDownload(searchApp)
}
override fun onDetachedFromRecyclerView(recyclerView: RecyclerView) {
diff --git a/app/src/main/java/foundation/e/apps/ui/home/HomeFragment.kt b/app/src/main/java/foundation/e/apps/ui/home/HomeFragment.kt
index f1c538a566d4d86480eb75fe16437ebc7fbc5d6d..618db210b9b2b43916c9043af52fe0687e3787a9 100644
--- a/app/src/main/java/foundation/e/apps/ui/home/HomeFragment.kt
+++ b/app/src/main/java/foundation/e/apps/ui/home/HomeFragment.kt
@@ -20,7 +20,6 @@ package foundation.e.apps.ui.home
import android.os.Bundle
import android.view.View
-import android.widget.ImageView
import androidx.appcompat.app.AlertDialog
import androidx.fragment.app.activityViewModels
import androidx.fragment.app.viewModels
@@ -32,7 +31,7 @@ import dagger.hilt.android.AndroidEntryPoint
import foundation.e.apps.R
import foundation.e.apps.data.ResultSupreme
import foundation.e.apps.data.enums.Status
-import foundation.e.apps.data.fused.FusedAPIInterface
+import foundation.e.apps.data.fused.ApplicationInstaller
import foundation.e.apps.data.fused.data.FusedApp
import foundation.e.apps.data.fused.data.FusedHome
import foundation.e.apps.data.login.AuthObject
@@ -53,7 +52,7 @@ import kotlinx.coroutines.launch
import javax.inject.Inject
@AndroidEntryPoint
-class HomeFragment : TimeoutFragment(R.layout.fragment_home), FusedAPIInterface {
+class HomeFragment : TimeoutFragment(R.layout.fragment_home), ApplicationInstaller {
/*
* Make adapter nullable to avoid memory leaks.
@@ -134,7 +133,7 @@ class HomeFragment : TimeoutFragment(R.layout.fragment_home), FusedAPIInterface
),
positiveButtonText = getString(R.string.dialog_confirm),
positiveButtonAction = {
- getApplication(fusedApp)
+ installApplication(fusedApp)
},
cancelButtonText = getString(R.string.dialog_cancel),
).show(childFragmentManager, "HomeFragment")
@@ -284,7 +283,7 @@ class HomeFragment : TimeoutFragment(R.layout.fragment_home), FusedAPIInterface
homeParentRVAdapter = null
}
- override fun getApplication(app: FusedApp, appIcon: ImageView?) {
+ override fun installApplication(app: FusedApp) {
mainActivityViewModel.getApplication(app)
}
diff --git a/app/src/main/java/foundation/e/apps/ui/home/model/HomeChildRVAdapter.kt b/app/src/main/java/foundation/e/apps/ui/home/model/HomeChildRVAdapter.kt
index 1dc7933ab89d508dfd6921af0fe2ee8a46018984..908507ac015dbe82aa200a2fcf6f2c9b95cc2baa 100644
--- a/app/src/main/java/foundation/e/apps/ui/home/model/HomeChildRVAdapter.kt
+++ b/app/src/main/java/foundation/e/apps/ui/home/model/HomeChildRVAdapter.kt
@@ -21,7 +21,6 @@ package foundation.e.apps.ui.home.model
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
-import android.widget.ImageView
import androidx.core.content.ContextCompat
import androidx.lifecycle.LifecycleOwner
import androidx.navigation.findNavController
@@ -37,7 +36,7 @@ import foundation.e.apps.data.cleanapk.CleanApkRetrofit
import foundation.e.apps.data.enums.Origin
import foundation.e.apps.data.enums.Status
import foundation.e.apps.data.enums.User
-import foundation.e.apps.data.fused.FusedAPIInterface
+import foundation.e.apps.data.fused.ApplicationInstaller
import foundation.e.apps.data.fused.data.FusedApp
import foundation.e.apps.databinding.HomeChildListItemBinding
import foundation.e.apps.ui.AppInfoFetchViewModel
@@ -47,7 +46,7 @@ import foundation.e.apps.utils.disableInstallButton
import foundation.e.apps.utils.enableInstallButton
class HomeChildRVAdapter(
- private var fusedAPIInterface: FusedAPIInterface?,
+ private var applicationInstaller: ApplicationInstaller?,
private val appInfoFetchViewModel: AppInfoFetchViewModel,
private val mainActivityViewModel: MainActivityViewModel,
private var lifecycleOwner: LifecycleOwner?,
@@ -136,7 +135,7 @@ class HomeChildRVAdapter(
enableInstallButton()
text = context.getString(R.string.retry)
setOnClickListener {
- installApplication(homeApp, appIcon)
+ installApplication(homeApp)
}
}
progressBarInstall.visibility = View.GONE
@@ -201,7 +200,7 @@ class HomeChildRVAdapter(
if (homeApp.isFree) {
disableInstallButton()
text = context.getString(R.string.cancel)
- installApplication(homeApp, appIcon)
+ installApplication(homeApp)
} else {
paidAppHandler?.invoke(homeApp)
}
@@ -221,7 +220,7 @@ class HomeChildRVAdapter(
if (mainActivityViewModel.checkUnsupportedApplication(homeApp, context)) {
return@setOnClickListener
}
- installApplication(homeApp, appIcon)
+ installApplication(homeApp)
}
}
progressBarInstall.visibility = View.GONE
@@ -283,18 +282,18 @@ class HomeChildRVAdapter(
this.submitList(newList.map { it.copy() })
}
- private fun installApplication(homeApp: FusedApp, appIcon: ImageView) {
- fusedAPIInterface?.getApplication(homeApp, appIcon)
+ private fun installApplication(homeApp: FusedApp) {
+ applicationInstaller?.installApplication(homeApp)
}
private fun cancelDownload(homeApp: FusedApp) {
- fusedAPIInterface?.cancelDownload(homeApp)
+ applicationInstaller?.cancelDownload(homeApp)
}
override fun onDetachedFromRecyclerView(recyclerView: RecyclerView) {
super.onDetachedFromRecyclerView(recyclerView)
lifecycleOwner = null
paidAppHandler = null
- fusedAPIInterface = null
+ applicationInstaller = null
}
}
diff --git a/app/src/main/java/foundation/e/apps/ui/home/model/HomeParentRVAdapter.kt b/app/src/main/java/foundation/e/apps/ui/home/model/HomeParentRVAdapter.kt
index 5edbbebb9c6efe7eafd77456f2ec6a987e7b0a07..a1b2b23dcf85b6c2a3d6529c167c4ac503300262 100644
--- a/app/src/main/java/foundation/e/apps/ui/home/model/HomeParentRVAdapter.kt
+++ b/app/src/main/java/foundation/e/apps/ui/home/model/HomeParentRVAdapter.kt
@@ -25,7 +25,7 @@ import androidx.lifecycle.LifecycleOwner
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.ListAdapter
import androidx.recyclerview.widget.RecyclerView
-import foundation.e.apps.data.fused.FusedAPIInterface
+import foundation.e.apps.data.fused.ApplicationInstaller
import foundation.e.apps.data.fused.data.FusedApp
import foundation.e.apps.data.fused.data.FusedHome
import foundation.e.apps.databinding.HomeParentListItemBinding
@@ -33,7 +33,7 @@ import foundation.e.apps.ui.AppInfoFetchViewModel
import foundation.e.apps.ui.MainActivityViewModel
class HomeParentRVAdapter(
- private val fusedAPIInterface: FusedAPIInterface,
+ private val applicationInstaller: ApplicationInstaller,
private val mainActivityViewModel: MainActivityViewModel,
private val appInfoFetchViewModel: AppInfoFetchViewModel,
private var lifecycleOwner: LifecycleOwner?,
@@ -64,7 +64,7 @@ class HomeParentRVAdapter(
val homeChildRVAdapter =
HomeChildRVAdapter(
- fusedAPIInterface,
+ applicationInstaller,
appInfoFetchViewModel,
mainActivityViewModel,
lifecycleOwner,
diff --git a/app/src/main/java/foundation/e/apps/ui/search/SearchFragment.kt b/app/src/main/java/foundation/e/apps/ui/search/SearchFragment.kt
index 5e2a519ab519e5b30f0a9847cf53eadbd5487118..ae53be63fa9630f89971217e1e44d9acf951c898 100644
--- a/app/src/main/java/foundation/e/apps/ui/search/SearchFragment.kt
+++ b/app/src/main/java/foundation/e/apps/ui/search/SearchFragment.kt
@@ -43,7 +43,7 @@ import com.facebook.shimmer.ShimmerFrameLayout
import dagger.hilt.android.AndroidEntryPoint
import foundation.e.apps.R
import foundation.e.apps.data.enums.Status
-import foundation.e.apps.data.fused.FusedAPIInterface
+import foundation.e.apps.data.fused.ApplicationInstaller
import foundation.e.apps.data.fused.data.FusedApp
import foundation.e.apps.data.fusedDownload.models.FusedDownload
import foundation.e.apps.data.login.AuthObject
@@ -67,7 +67,7 @@ class SearchFragment :
TimeoutFragment(R.layout.fragment_search),
SearchView.OnQueryTextListener,
SearchView.OnSuggestionListener,
- FusedAPIInterface {
+ ApplicationInstaller {
@Inject
lateinit var pwaManagerModule: PWAManagerModule
@@ -270,7 +270,7 @@ class SearchFragment :
),
positiveButtonText = getString(R.string.dialog_confirm),
positiveButtonAction = {
- getApplication(fusedApp)
+ installApplication(fusedApp)
},
cancelButtonText = getString(R.string.dialog_cancel),
).show(childFragmentManager, "SearchFragment")
@@ -476,7 +476,7 @@ class SearchFragment :
searchView?.suggestionsAdapter?.changeCursor(cursor)
}
- override fun getApplication(app: FusedApp, appIcon: ImageView?) {
+ override fun installApplication(app: FusedApp) {
mainActivityViewModel.getApplication(app)
}
diff --git a/app/src/main/java/foundation/e/apps/ui/updates/UpdatesFragment.kt b/app/src/main/java/foundation/e/apps/ui/updates/UpdatesFragment.kt
index ee6825cb3aa0d54780b6f94ec1f6ec2852680a18..db21225a729bd06bf90a6ff33204cd7c4098a902 100644
--- a/app/src/main/java/foundation/e/apps/ui/updates/UpdatesFragment.kt
+++ b/app/src/main/java/foundation/e/apps/ui/updates/UpdatesFragment.kt
@@ -20,7 +20,6 @@ package foundation.e.apps.ui.updates
import android.os.Bundle
import android.view.View
-import android.widget.ImageView
import androidx.appcompat.app.AlertDialog
import androidx.fragment.app.activityViewModels
import androidx.fragment.app.viewModels
@@ -37,7 +36,7 @@ import foundation.e.apps.R
import foundation.e.apps.data.ResultSupreme
import foundation.e.apps.data.enums.ResultStatus
import foundation.e.apps.data.enums.Status
-import foundation.e.apps.data.fused.FusedAPIInterface
+import foundation.e.apps.data.fused.ApplicationInstaller
import foundation.e.apps.data.fused.data.FusedApp
import foundation.e.apps.data.fusedDownload.models.FusedDownload
import foundation.e.apps.data.login.AuthObject
@@ -66,7 +65,7 @@ import timber.log.Timber
import javax.inject.Inject
@AndroidEntryPoint
-class UpdatesFragment : TimeoutFragment(R.layout.fragment_updates), FusedAPIInterface {
+class UpdatesFragment : TimeoutFragment(R.layout.fragment_updates), ApplicationInstaller {
private var _binding: FragmentUpdatesBinding? = null
private val binding get() = _binding!!
@@ -221,7 +220,7 @@ class UpdatesFragment : TimeoutFragment(R.layout.fragment_updates), FusedAPIInte
),
positiveButtonText = getString(R.string.dialog_confirm),
positiveButtonAction = {
- getApplication(fusedApp)
+ installApplication(fusedApp)
},
cancelButtonText = getString(R.string.dialog_cancel),
).show(childFragmentManager, "UpdatesFragment")
@@ -374,7 +373,7 @@ class UpdatesFragment : TimeoutFragment(R.layout.fragment_updates), FusedAPIInte
_binding = null
}
- override fun getApplication(app: FusedApp, appIcon: ImageView?) {
+ override fun installApplication(app: FusedApp) {
mainActivityViewModel.getApplication(app)
}