Migrate DevAppsActivity to fragment
Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
This commit is contained in:
@@ -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,
|
||||
|
||||
@@ -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})")
|
||||
|
||||
@@ -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 ->
|
||||
Reference in New Issue
Block a user