ExodusDataProvider: Migrate to hilt

Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
This commit is contained in:
Aayush Gupta
2024-07-09 13:02:55 +07:00
parent b7f2eaa7e3
commit a702f4f24c
2 changed files with 20 additions and 35 deletions

View File

@@ -20,34 +20,23 @@
package com.aurora.store.data.providers
import android.content.Context
import com.aurora.store.data.SingletonHolder
import dagger.Module
import dagger.Provides
import dagger.hilt.InstallIn
import dagger.hilt.android.qualifiers.ApplicationContext
import dagger.hilt.components.SingletonComponent
import org.json.JSONArray
import org.json.JSONObject
import java.nio.charset.StandardCharsets
import javax.inject.Singleton
class ExodusDataProvider private constructor(val context: Context) {
@Module
@InstallIn(SingletonComponent::class)
object ExodusDataProvider {
companion object : SingletonHolder<ExodusDataProvider, Context>(::ExodusDataProvider)
private val exodusTrackers: JSONObject
init {
exodusTrackers = loadLocalTrackers()
}
fun getLocalTrackers(): JSONObject {
return exodusTrackers
}
fun getFilteredTrackers(trackerIds: List<Int>): List<JSONObject> {
return trackerIds.map {
exodusTrackers.getJSONObject(
it.toString()
)
}.toList()
}
private fun loadLocalTrackers(): JSONObject {
@Provides
@Singleton
fun providesLocalTrackersInfo(@ApplicationContext context: Context): JSONObject {
val inputStream = context.assets.open("exodus_trackers.json")
val bytes = ByteArray(inputStream.available())
inputStream.read(bytes)

View File

@@ -29,12 +29,12 @@ import com.aurora.extensions.browse
import com.aurora.store.R
import com.aurora.store.data.model.ExodusTracker
import com.aurora.store.data.model.Report
import com.aurora.store.data.providers.ExodusDataProvider
import com.aurora.store.databinding.ActivityGenericRecyclerBinding
import com.aurora.store.view.epoxy.views.HeaderViewModel_
import com.aurora.store.view.epoxy.views.details.ExodusViewModel_
import dagger.hilt.android.AndroidEntryPoint
import org.json.JSONObject
import javax.inject.Inject
@AndroidEntryPoint
class DetailsExodusFragment : Fragment(R.layout.activity_generic_recycler) {
@@ -45,6 +45,9 @@ class DetailsExodusFragment : Fragment(R.layout.activity_generic_recycler) {
private val args: DetailsExodusFragmentArgs by navArgs()
@Inject
lateinit var exodusTrackers: JSONObject
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
_binding = ActivityGenericRecyclerBinding.bind(view)
@@ -88,7 +91,10 @@ class DetailsExodusFragment : Fragment(R.layout.activity_generic_recycler) {
}
private fun getExodusTrackersFromReport(report: Report): List<ExodusTracker> {
val trackerObjects: List<JSONObject> = fetchLocalTrackers(report.trackers)
val trackerObjects = report.trackers.map {
exodusTrackers.getJSONObject(it.toString())
}.toList()
return trackerObjects.map {
ExodusTracker().apply {
id = it.getInt("id")
@@ -103,14 +109,4 @@ class DetailsExodusFragment : Fragment(R.layout.activity_generic_recycler) {
}
}.toList()
}
private fun fetchLocalTrackers(trackerIds: List<Int>): List<JSONObject> {
return try {
ExodusDataProvider
.with(requireContext())
.getFilteredTrackers(trackerIds)
} catch (e: Exception) {
emptyList()
}
}
}