diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 7fe50d2d0..19dd10f2d 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -94,7 +94,6 @@
-
diff --git a/app/src/main/java/com/aurora/store/view/ui/commons/BaseActivity.kt b/app/src/main/java/com/aurora/store/view/ui/commons/BaseActivity.kt
index de9d87da6..15860a06b 100644
--- a/app/src/main/java/com/aurora/store/view/ui/commons/BaseActivity.kt
+++ b/app/src/main/java/com/aurora/store/view/ui/commons/BaseActivity.kt
@@ -56,13 +56,6 @@ abstract class BaseActivity : AppCompatActivity(), NetworkProvider.NetworkListen
startActivity(intent, options.toBundle())
}
- fun openDetailsMoreActivity(app: App) {
- val intent = Intent(this, DetailsMoreActivity::class.java)
- intent.putExtra(Constants.STRING_EXTRA, gson.toJson(app))
- val options = ActivityOptions.makeSceneTransitionAnimation(this)
- startActivity(intent, options.toBundle())
- }
-
fun openDetailsReviewActivity(app: App) {
val intent = Intent(this, DetailsReviewActivity::class.java)
intent.putExtra(Constants.STRING_EXTRA, gson.toJson(app))
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 dd5b96179..214f91dbc 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
@@ -922,7 +922,9 @@ class AppDetailsFragment : BaseFragment(R.layout.fragment_details) {
}
B.headerDescription.addClickListener {
- (activity as MainActivity).openDetailsMoreActivity(app)
+ findNavController().navigate(
+ AppDetailsFragmentDirections.actionAppDetailsFragmentToDetailsMoreFragment(app)
+ )
}
B.epoxyRecycler.withModels {
diff --git a/app/src/main/java/com/aurora/store/view/ui/details/DetailsMoreActivity.kt b/app/src/main/java/com/aurora/store/view/ui/details/DetailsMoreFragment.kt
similarity index 76%
rename from app/src/main/java/com/aurora/store/view/ui/details/DetailsMoreActivity.kt
rename to app/src/main/java/com/aurora/store/view/ui/details/DetailsMoreFragment.kt
index e69b0a5ea..66f4ffe1e 100644
--- a/app/src/main/java/com/aurora/store/view/ui/details/DetailsMoreActivity.kt
+++ b/app/src/main/java/com/aurora/store/view/ui/details/DetailsMoreFragment.kt
@@ -20,76 +20,64 @@
package com.aurora.store.view.ui.details
import android.os.Bundle
+import android.view.View
import androidx.core.text.HtmlCompat
-import com.aurora.Constants
+import androidx.navigation.fragment.findNavController
+import androidx.navigation.fragment.navArgs
import com.aurora.gplayapi.data.models.App
import com.aurora.gplayapi.data.models.AuthData
import com.aurora.gplayapi.helpers.AppDetailsHelper
import com.aurora.store.R
import com.aurora.store.data.providers.AuthProvider
-import com.aurora.store.databinding.ActivityDetailsMoreBinding
+import com.aurora.store.databinding.FragmentDetailsMoreBinding
import com.aurora.store.view.epoxy.views.HeaderViewModel_
import com.aurora.store.view.epoxy.views.app.NoAppAltViewModel_
import com.aurora.store.view.epoxy.views.details.AppDependentViewModel_
import com.aurora.store.view.epoxy.views.details.FileViewModel_
import com.aurora.store.view.epoxy.views.details.InfoViewModel_
import com.aurora.store.view.epoxy.views.details.MoreBadgeViewModel_
-import com.aurora.store.view.ui.commons.BaseActivity
+import com.aurora.store.view.ui.commons.BaseFragment
import nl.komponents.kovenant.task
import nl.komponents.kovenant.ui.failUi
import nl.komponents.kovenant.ui.successUi
-class DetailsMoreActivity : BaseActivity() {
+class DetailsMoreFragment : BaseFragment(R.layout.fragment_details_more) {
- private lateinit var B: ActivityDetailsMoreBinding
- private lateinit var app: App
+ private var _binding: FragmentDetailsMoreBinding? = null
+ private val binding: FragmentDetailsMoreBinding
+ get() = _binding!!
- override fun onConnected() {
+ private val args: DetailsMoreFragmentArgs by navArgs()
- }
+ override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
+ super.onViewCreated(view, savedInstanceState)
+ _binding = FragmentDetailsMoreBinding.bind(view)
- override fun onDisconnected() {
-
- }
-
- override fun onReconnected() {
-
- }
-
- override fun onCreate(savedInstanceState: Bundle?) {
- super.onCreate(savedInstanceState)
- B = ActivityDetailsMoreBinding.inflate(layoutInflater)
- setContentView(B.root)
-
- attachToolbar()
-
- val itemRaw: String? = intent.getStringExtra(Constants.STRING_EXTRA)
- if (itemRaw != null) {
- app = gson.fromJson(itemRaw, App::class.java)
- app.let {
- inflateDescription(app)
- inflateFiles(app)
- fetchDependentApps(app)
- }
+ // Toolbar
+ binding.layoutToolbarActionMore.toolbar.setOnClickListener {
+ findNavController().navigateUp()
}
+
+ inflateDescription(args.app)
+ inflateFiles(args.app)
+ fetchDependentApps(args.app)
}
- private fun attachToolbar() {
- B.layoutToolbarActionMore.toolbar.setOnClickListener {
- finishAfterTransition()
- }
+ override fun onDestroyView() {
+ super.onDestroyView()
+ _binding = null
}
private fun inflateDescription(app: App) {
- B.layoutToolbarActionMore.txtTitle.text = app.displayName
- B.txtDescription.text = HtmlCompat.fromHtml(
+ binding.layoutToolbarActionMore.txtTitle.text = app.displayName
+ binding.txtDescription.text = HtmlCompat.fromHtml(
app.description,
HtmlCompat.FROM_HTML_MODE_COMPACT
)
}
private fun inflateFiles(app: App) {
- B.recyclerMore.withModels {
+ binding.recyclerMore.withModels {
//Add dependent files
if (app.fileList.isNotEmpty()) {
add(
@@ -136,13 +124,13 @@ class DetailsMoreActivity : BaseActivity() {
}
}
- if (app.appInfo.appInfoMap.isNotEmpty()){
+ if (app.appInfo.appInfoMap.isNotEmpty()) {
add(
HeaderViewModel_()
.id("info_header")
.title("Info")
)
- app.appInfo.appInfoMap.forEach{
+ app.appInfo.appInfoMap.forEach {
add(
InfoViewModel_()
.id(it.key)
@@ -155,13 +143,13 @@ class DetailsMoreActivity : BaseActivity() {
private fun fetchDependentApps(app: App) {
val authData: AuthData = AuthProvider
- .with(this)
+ .with(requireContext())
.getAuthData()
task {
AppDetailsHelper(authData)
.getAppByPackageName(app.dependencies.dependentPackages)
} successUi {
- B.recyclerDependency.withModels {
+ binding.recyclerDependency.withModels {
if (it.isNotEmpty()) {
it.filter { it.displayName.isNotEmpty() }.forEach {
add(
@@ -180,7 +168,7 @@ class DetailsMoreActivity : BaseActivity() {
}
}
} failUi {
- B.recyclerDependency.withModels {
+ binding.recyclerDependency.withModels {
add(
NoAppAltViewModel_()
.id("no_app")
diff --git a/app/src/main/res/layout/activity_details_more.xml b/app/src/main/res/layout/fragment_details_more.xml
similarity index 97%
rename from app/src/main/res/layout/activity_details_more.xml
rename to app/src/main/res/layout/fragment_details_more.xml
index 04750a1b8..14f8fb846 100644
--- a/app/src/main/res/layout/activity_details_more.xml
+++ b/app/src/main/res/layout/fragment_details_more.xml
@@ -22,7 +22,8 @@
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
- android:orientation="vertical">
+ android:orientation="vertical"
+ tools:context=".view.ui.details.DetailsMoreFragment">
+
+
+
+