Migrate DetailsMoreActivity to fragment
Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
This commit is contained in:
@@ -94,7 +94,6 @@
|
|||||||
<nav-graph android:value="@navigation/mobile_navigation" />
|
<nav-graph android:value="@navigation/mobile_navigation" />
|
||||||
</activity>
|
</activity>
|
||||||
|
|
||||||
<activity android:name=".view.ui.details.DetailsMoreActivity" />
|
|
||||||
<activity android:name=".view.ui.details.DetailsReviewActivity" />
|
<activity android:name=".view.ui.details.DetailsReviewActivity" />
|
||||||
<activity android:name=".view.ui.account.GoogleActivity" />
|
<activity android:name=".view.ui.account.GoogleActivity" />
|
||||||
<activity android:name=".view.ui.details.DetailsExodusActivity" />
|
<activity android:name=".view.ui.details.DetailsExodusActivity" />
|
||||||
|
|||||||
@@ -56,13 +56,6 @@ abstract class BaseActivity : AppCompatActivity(), NetworkProvider.NetworkListen
|
|||||||
startActivity(intent, options.toBundle())
|
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) {
|
fun openDetailsReviewActivity(app: App) {
|
||||||
val intent = Intent(this, DetailsReviewActivity::class.java)
|
val intent = Intent(this, DetailsReviewActivity::class.java)
|
||||||
intent.putExtra(Constants.STRING_EXTRA, gson.toJson(app))
|
intent.putExtra(Constants.STRING_EXTRA, gson.toJson(app))
|
||||||
|
|||||||
@@ -922,7 +922,9 @@ class AppDetailsFragment : BaseFragment(R.layout.fragment_details) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
B.headerDescription.addClickListener {
|
B.headerDescription.addClickListener {
|
||||||
(activity as MainActivity).openDetailsMoreActivity(app)
|
findNavController().navigate(
|
||||||
|
AppDetailsFragmentDirections.actionAppDetailsFragmentToDetailsMoreFragment(app)
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
B.epoxyRecycler.withModels {
|
B.epoxyRecycler.withModels {
|
||||||
|
|||||||
@@ -20,76 +20,64 @@
|
|||||||
package com.aurora.store.view.ui.details
|
package com.aurora.store.view.ui.details
|
||||||
|
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
|
import android.view.View
|
||||||
import androidx.core.text.HtmlCompat
|
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.App
|
||||||
import com.aurora.gplayapi.data.models.AuthData
|
import com.aurora.gplayapi.data.models.AuthData
|
||||||
import com.aurora.gplayapi.helpers.AppDetailsHelper
|
import com.aurora.gplayapi.helpers.AppDetailsHelper
|
||||||
import com.aurora.store.R
|
import com.aurora.store.R
|
||||||
import com.aurora.store.data.providers.AuthProvider
|
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.HeaderViewModel_
|
||||||
import com.aurora.store.view.epoxy.views.app.NoAppAltViewModel_
|
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.AppDependentViewModel_
|
||||||
import com.aurora.store.view.epoxy.views.details.FileViewModel_
|
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.InfoViewModel_
|
||||||
import com.aurora.store.view.epoxy.views.details.MoreBadgeViewModel_
|
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.task
|
||||||
import nl.komponents.kovenant.ui.failUi
|
import nl.komponents.kovenant.ui.failUi
|
||||||
import nl.komponents.kovenant.ui.successUi
|
import nl.komponents.kovenant.ui.successUi
|
||||||
|
|
||||||
class DetailsMoreActivity : BaseActivity() {
|
class DetailsMoreFragment : BaseFragment(R.layout.fragment_details_more) {
|
||||||
|
|
||||||
private lateinit var B: ActivityDetailsMoreBinding
|
private var _binding: FragmentDetailsMoreBinding? = null
|
||||||
private lateinit var app: App
|
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() {
|
// Toolbar
|
||||||
|
binding.layoutToolbarActionMore.toolbar.setOnClickListener {
|
||||||
}
|
findNavController().navigateUp()
|
||||||
|
|
||||||
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)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
inflateDescription(args.app)
|
||||||
|
inflateFiles(args.app)
|
||||||
|
fetchDependentApps(args.app)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun attachToolbar() {
|
override fun onDestroyView() {
|
||||||
B.layoutToolbarActionMore.toolbar.setOnClickListener {
|
super.onDestroyView()
|
||||||
finishAfterTransition()
|
_binding = null
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun inflateDescription(app: App) {
|
private fun inflateDescription(app: App) {
|
||||||
B.layoutToolbarActionMore.txtTitle.text = app.displayName
|
binding.layoutToolbarActionMore.txtTitle.text = app.displayName
|
||||||
B.txtDescription.text = HtmlCompat.fromHtml(
|
binding.txtDescription.text = HtmlCompat.fromHtml(
|
||||||
app.description,
|
app.description,
|
||||||
HtmlCompat.FROM_HTML_MODE_COMPACT
|
HtmlCompat.FROM_HTML_MODE_COMPACT
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun inflateFiles(app: App) {
|
private fun inflateFiles(app: App) {
|
||||||
B.recyclerMore.withModels {
|
binding.recyclerMore.withModels {
|
||||||
//Add dependent files
|
//Add dependent files
|
||||||
if (app.fileList.isNotEmpty()) {
|
if (app.fileList.isNotEmpty()) {
|
||||||
add(
|
add(
|
||||||
@@ -136,13 +124,13 @@ class DetailsMoreActivity : BaseActivity() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (app.appInfo.appInfoMap.isNotEmpty()){
|
if (app.appInfo.appInfoMap.isNotEmpty()) {
|
||||||
add(
|
add(
|
||||||
HeaderViewModel_()
|
HeaderViewModel_()
|
||||||
.id("info_header")
|
.id("info_header")
|
||||||
.title("Info")
|
.title("Info")
|
||||||
)
|
)
|
||||||
app.appInfo.appInfoMap.forEach{
|
app.appInfo.appInfoMap.forEach {
|
||||||
add(
|
add(
|
||||||
InfoViewModel_()
|
InfoViewModel_()
|
||||||
.id(it.key)
|
.id(it.key)
|
||||||
@@ -155,13 +143,13 @@ class DetailsMoreActivity : BaseActivity() {
|
|||||||
|
|
||||||
private fun fetchDependentApps(app: App) {
|
private fun fetchDependentApps(app: App) {
|
||||||
val authData: AuthData = AuthProvider
|
val authData: AuthData = AuthProvider
|
||||||
.with(this)
|
.with(requireContext())
|
||||||
.getAuthData()
|
.getAuthData()
|
||||||
task {
|
task {
|
||||||
AppDetailsHelper(authData)
|
AppDetailsHelper(authData)
|
||||||
.getAppByPackageName(app.dependencies.dependentPackages)
|
.getAppByPackageName(app.dependencies.dependentPackages)
|
||||||
} successUi {
|
} successUi {
|
||||||
B.recyclerDependency.withModels {
|
binding.recyclerDependency.withModels {
|
||||||
if (it.isNotEmpty()) {
|
if (it.isNotEmpty()) {
|
||||||
it.filter { it.displayName.isNotEmpty() }.forEach {
|
it.filter { it.displayName.isNotEmpty() }.forEach {
|
||||||
add(
|
add(
|
||||||
@@ -180,7 +168,7 @@ class DetailsMoreActivity : BaseActivity() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
} failUi {
|
} failUi {
|
||||||
B.recyclerDependency.withModels {
|
binding.recyclerDependency.withModels {
|
||||||
add(
|
add(
|
||||||
NoAppAltViewModel_()
|
NoAppAltViewModel_()
|
||||||
.id("no_app")
|
.id("no_app")
|
||||||
@@ -22,7 +22,8 @@
|
|||||||
xmlns:tools="http://schemas.android.com/tools"
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
android:orientation="vertical">
|
android:orientation="vertical"
|
||||||
|
tools:context=".view.ui.details.DetailsMoreFragment">
|
||||||
|
|
||||||
<include
|
<include
|
||||||
android:id="@+id/layout_toolbar_action_more"
|
android:id="@+id/layout_toolbar_action_more"
|
||||||
@@ -111,6 +111,9 @@
|
|||||||
<action
|
<action
|
||||||
android:id="@+id/action_appDetailsFragment_to_devAppsFragment"
|
android:id="@+id/action_appDetailsFragment_to_devAppsFragment"
|
||||||
app:destination="@id/devAppsFragment" />
|
app:destination="@id/devAppsFragment" />
|
||||||
|
<action
|
||||||
|
android:id="@+id/action_appDetailsFragment_to_detailsMoreFragment"
|
||||||
|
app:destination="@id/detailsMoreFragment" />
|
||||||
</fragment>
|
</fragment>
|
||||||
<fragment
|
<fragment
|
||||||
android:id="@+id/categoryBrowseFragment"
|
android:id="@+id/categoryBrowseFragment"
|
||||||
@@ -190,6 +193,15 @@
|
|||||||
android:name="developerName"
|
android:name="developerName"
|
||||||
app:argType="string" />
|
app:argType="string" />
|
||||||
</fragment>
|
</fragment>
|
||||||
|
<fragment
|
||||||
|
android:id="@+id/detailsMoreFragment"
|
||||||
|
android:name="com.aurora.store.view.ui.details.DetailsMoreFragment"
|
||||||
|
android:label="fragment_details_more"
|
||||||
|
tools:layout="@layout/fragment_details_more" >
|
||||||
|
<argument
|
||||||
|
android:name="app"
|
||||||
|
app:argType="com.aurora.gplayapi.data.models.App" />
|
||||||
|
</fragment>
|
||||||
<action
|
<action
|
||||||
android:id="@+id/action_global_appDetailsFragment"
|
android:id="@+id/action_global_appDetailsFragment"
|
||||||
app:destination="@id/appDetailsFragment" />
|
app:destination="@id/appDetailsFragment" />
|
||||||
|
|||||||
Reference in New Issue
Block a user