diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 7be6ba549..7fe50d2d0 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -98,7 +98,6 @@
-
diff --git a/app/src/main/java/com/aurora/store/util/NavigationUtil.kt b/app/src/main/java/com/aurora/store/util/NavigationUtil.kt
index 109c8aabd..7bb3ab7c9 100644
--- a/app/src/main/java/com/aurora/store/util/NavigationUtil.kt
+++ b/app/src/main/java/com/aurora/store/util/NavigationUtil.kt
@@ -27,7 +27,6 @@ import com.aurora.Constants
import com.aurora.gplayapi.data.models.App
import com.aurora.store.data.model.Report
import com.aurora.store.view.ui.details.DetailsExodusActivity
-import com.aurora.store.view.ui.details.DevAppsActivity
import com.google.gson.Gson
import com.google.gson.GsonBuilder
import java.lang.reflect.Modifier
@@ -35,17 +34,6 @@ import java.lang.reflect.Modifier
object NavigationUtil {
val gson: Gson = GsonBuilder().excludeFieldsWithModifiers(Modifier.TRANSIENT).create()
- fun openDevAppsActivity(context: Context, app: App) {
- val intent = Intent(
- context,
- DevAppsActivity::class.java
- ).apply {
- putExtra(Constants.STRING_APP, gson.toJson(app))
- }
- val options = ActivityOptions.makeSceneTransitionAnimation(context as AppCompatActivity)
- context.startActivity(intent, options.toBundle())
- }
-
fun openExodusActivity(context: Context, app: App, report: Report) {
val intent = Intent(
context,
diff --git a/app/src/main/java/com/aurora/store/view/ui/details/AppDetailsFragment.kt b/app/src/main/java/com/aurora/store/view/ui/details/AppDetailsFragment.kt
index a9e9eff46..dd5b96179 100644
--- a/app/src/main/java/com/aurora/store/view/ui/details/AppDetailsFragment.kt
+++ b/app/src/main/java/com/aurora/store/view/ui/details/AppDetailsFragment.kt
@@ -460,9 +460,9 @@ class AppDetailsFragment : BaseFragment(R.layout.fragment_details) {
txtLine1.text = app.displayName
txtLine2.text = app.developerName
txtLine2.setOnClickListener {
- NavigationUtil.openDevAppsActivity(
- requireContext(),
- app
+ findNavController().navigate(
+ AppDetailsFragmentDirections
+ .actionAppDetailsFragmentToDevAppsFragment(app.developerName)
)
}
txtLine3.text = ("${app.versionName} (${app.versionCode})")
diff --git a/app/src/main/java/com/aurora/store/view/ui/details/DevAppsActivity.kt b/app/src/main/java/com/aurora/store/view/ui/details/DevAppsFragment.kt
similarity index 59%
rename from app/src/main/java/com/aurora/store/view/ui/details/DevAppsActivity.kt
rename to app/src/main/java/com/aurora/store/view/ui/details/DevAppsFragment.kt
index 3c549cc7a..127819fe4 100644
--- a/app/src/main/java/com/aurora/store/view/ui/details/DevAppsActivity.kt
+++ b/app/src/main/java/com/aurora/store/view/ui/details/DevAppsFragment.kt
@@ -19,89 +19,67 @@
package com.aurora.store.view.ui.details
-import android.content.Intent
import android.os.Bundle
import android.view.View
import androidx.lifecycle.ViewModelProvider
-import com.aurora.Constants
-import com.aurora.gplayapi.data.models.App
+import androidx.navigation.fragment.findNavController
+import androidx.navigation.fragment.navArgs
import com.aurora.gplayapi.data.models.SearchBundle
+import com.aurora.store.R
import com.aurora.store.databinding.ActivityGenericRecyclerBinding
import com.aurora.store.view.custom.recycler.EndlessRecyclerOnScrollListener
-import com.aurora.store.view.epoxy.views.app.AppListViewModel_
import com.aurora.store.view.epoxy.views.AppProgressViewModel_
-import com.aurora.store.view.ui.commons.BaseActivity
+import com.aurora.store.view.epoxy.views.app.AppListViewModel_
+import com.aurora.store.view.ui.commons.BaseFragment
import com.aurora.store.viewmodel.search.SearchResultViewModel
-class DevAppsActivity : BaseActivity() {
+class DevAppsFragment : BaseFragment(R.layout.activity_generic_recycler) {
+
+ private var _binding: ActivityGenericRecyclerBinding? = null
+ private val binding: ActivityGenericRecyclerBinding
+ get() = _binding!!
+
+ private val args: DevAppsFragmentArgs by navArgs()
- private lateinit var B: ActivityGenericRecyclerBinding
private lateinit var VM: SearchResultViewModel
private lateinit var endlessRecyclerOnScrollListener: EndlessRecyclerOnScrollListener
- private lateinit var app: App
- var searchBundle: SearchBundle = SearchBundle()
-
- override fun onConnected() {
- hideNetworkConnectivitySheet()
- }
-
- override fun onDisconnected() {
- showNetworkConnectivitySheet()
- }
-
- override fun onReconnected() {
- }
-
- override fun onCreate(savedInstanceState: Bundle?) {
- super.onCreate(savedInstanceState)
-
- B = ActivityGenericRecyclerBinding.inflate(layoutInflater)
+ override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
+ super.onViewCreated(view, savedInstanceState)
+ _binding = ActivityGenericRecyclerBinding.bind(view)
VM = ViewModelProvider(this)[SearchResultViewModel::class.java]
- setContentView(B.root)
-
- VM.liveData.observe(this) {
- searchBundle = it
- updateController(searchBundle)
+ VM.liveData.observe(viewLifecycleOwner) {
+ updateController(it)
}
- attachRecycler()
-
- onNewIntent(intent)
- }
-
- override fun onNewIntent(intent: Intent?) {
- super.onNewIntent(intent)
- intent?.let {
- val rawApp: String? = intent.getStringExtra(Constants.STRING_APP)
- app = gson.fromJson(rawApp, App::class.java)
- app.let {
- attachToolbar()
- VM.observeSearchResults("pub:${app.developerName}")
+ // Toolbar
+ binding.layoutToolbarAction.apply {
+ txtTitle.text = args.developerName
+ toolbar.setOnClickListener {
+ findNavController().navigateUp()
}
}
- }
- private fun attachToolbar() {
- B.layoutToolbarAction.toolbar.setOnClickListener {
- finishAfterTransition()
- }
- B.layoutToolbarAction.txtTitle.text = app.developerName
- }
-
- private fun attachRecycler() {
+ // Recycler View
endlessRecyclerOnScrollListener = object : EndlessRecyclerOnScrollListener() {
override fun onLoadMore(currentPage: Int) {
- VM.next(searchBundle.subBundles)
+ VM.liveData.value?.let { VM.next(it.subBundles) }
}
}
- B.recycler.addOnScrollListener(endlessRecyclerOnScrollListener)
+ binding.recycler.addOnScrollListener(endlessRecyclerOnScrollListener)
+
+ VM.observeSearchResults("pub:${args.developerName}")
+ }
+
+ override fun onDestroyView() {
+ super.onDestroyView()
+ _binding = null
}
private fun updateController(searchBundle: SearchBundle) {
- B.recycler
+ binding.recycler
.withModels {
setFilterDuplicates(true)
searchBundle.appList.forEach { app ->
diff --git a/app/src/main/res/navigation/mobile_navigation.xml b/app/src/main/res/navigation/mobile_navigation.xml
index 02b93d488..c8e50adea 100644
--- a/app/src/main/res/navigation/mobile_navigation.xml
+++ b/app/src/main/res/navigation/mobile_navigation.xml
@@ -108,6 +108,9 @@
+
+
+
+