BaseFragment: Inject Gson using Hilt
* Make BaseFragment an abstract class, no reason to keep this open * This also fixes memory leak that happens after onboarding is finished Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
This commit is contained in:
23
app/src/main/java/com/aurora/store/module/CommonModule.kt
Normal file
23
app/src/main/java/com/aurora/store/module/CommonModule.kt
Normal file
@@ -0,0 +1,23 @@
|
||||
package com.aurora.store.module
|
||||
|
||||
import com.google.gson.Gson
|
||||
import com.google.gson.GsonBuilder
|
||||
import dagger.Module
|
||||
import dagger.Provides
|
||||
import dagger.hilt.InstallIn
|
||||
import dagger.hilt.components.SingletonComponent
|
||||
import java.lang.reflect.Modifier
|
||||
import javax.inject.Singleton
|
||||
|
||||
@Module
|
||||
@InstallIn(SingletonComponent::class)
|
||||
object CommonModule {
|
||||
|
||||
@Singleton
|
||||
@Provides
|
||||
fun providesGsonInstance(): Gson {
|
||||
return GsonBuilder()
|
||||
.excludeFieldsWithModifiers(Modifier.TRANSIENT)
|
||||
.create()
|
||||
}
|
||||
}
|
||||
@@ -26,18 +26,16 @@ import com.aurora.gplayapi.data.models.App
|
||||
import com.aurora.gplayapi.data.models.Category
|
||||
import com.aurora.store.MobileNavigationDirections
|
||||
import com.google.gson.Gson
|
||||
import com.google.gson.GsonBuilder
|
||||
import java.lang.reflect.Modifier
|
||||
import javax.inject.Inject
|
||||
|
||||
open class BaseFragment : Fragment {
|
||||
abstract class BaseFragment : Fragment {
|
||||
|
||||
constructor(): super()
|
||||
|
||||
constructor(@LayoutRes contentLayoutId: Int) : super(contentLayoutId)
|
||||
|
||||
var gson: Gson = GsonBuilder().excludeFieldsWithModifiers(
|
||||
Modifier.TRANSIENT
|
||||
).create()
|
||||
@Inject
|
||||
lateinit var gson: Gson
|
||||
|
||||
fun openDetailsFragment(packageName: String, app: App? = null) {
|
||||
findNavController().navigate(
|
||||
|
||||
@@ -39,10 +39,14 @@ import com.aurora.store.view.custom.preference.ListPreferenceMaterialDialogFragm
|
||||
import com.aurora.store.view.custom.preference.ListPreferenceMaterialDialogFragmentCompat.Companion.PREFERENCE_DIALOG_FRAGMENT_TAG
|
||||
import com.google.gson.Gson
|
||||
import dagger.hilt.android.AndroidEntryPoint
|
||||
import javax.inject.Inject
|
||||
|
||||
@AndroidEntryPoint
|
||||
class NetworkPreference : PreferenceFragmentCompat() {
|
||||
|
||||
@Inject
|
||||
lateinit var gson: Gson
|
||||
|
||||
override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
|
||||
setPreferencesFromResource(R.xml.preferences_network, rootKey)
|
||||
|
||||
@@ -81,7 +85,7 @@ class NetworkPreference : PreferenceFragmentCompat() {
|
||||
save(Preferences.PREFERENCE_PROXY_URL, newProxyUrl)
|
||||
save(
|
||||
Preferences.PREFERENCE_PROXY_INFO,
|
||||
Gson().toJson(newProxyInfo)
|
||||
gson.toJson(newProxyInfo)
|
||||
)
|
||||
|
||||
preference.summary = newProxyUrl
|
||||
|
||||
Reference in New Issue
Block a user