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:
Aayush Gupta
2023-12-04 11:22:26 +05:30
parent 7420c96b86
commit 52686adaba
3 changed files with 32 additions and 7 deletions

View 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()
}
}

View File

@@ -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(

View File

@@ -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