diff --git a/vector/src/debug/java/im/vector/app/features/debug/features/DebugFeaturesSettingsActivity.kt b/vector/src/debug/java/im/vector/app/features/debug/features/DebugFeaturesSettingsActivity.kt index 5e7a34856b..f4012ffd02 100644 --- a/vector/src/debug/java/im/vector/app/features/debug/features/DebugFeaturesSettingsActivity.kt +++ b/vector/src/debug/java/im/vector/app/features/debug/features/DebugFeaturesSettingsActivity.kt @@ -17,40 +17,36 @@ package im.vector.app.features.debug.features import android.os.Bundle -import androidx.appcompat.app.AppCompatActivity import dagger.hilt.android.AndroidEntryPoint import im.vector.app.core.extensions.cleanup import im.vector.app.core.extensions.configureWith +import im.vector.app.core.platform.VectorBaseActivity import im.vector.app.databinding.FragmentGenericRecyclerBinding -import im.vector.app.features.themes.ActivityOtherThemes -import im.vector.app.features.themes.ThemeUtils import javax.inject.Inject @AndroidEntryPoint -class DebugFeaturesSettingsActivity : AppCompatActivity() { +class DebugFeaturesSettingsActivity : VectorBaseActivity() { @Inject lateinit var debugFeatures: DebugVectorFeatures @Inject lateinit var debugFeaturesStateFactory: DebugFeaturesStateFactory + @Inject lateinit var controller: FeaturesController - private lateinit var views: FragmentGenericRecyclerBinding + override fun getBinding() = FragmentGenericRecyclerBinding.inflate(layoutInflater) override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - ThemeUtils.setActivityTheme(this, ActivityOtherThemes.Default) - views = FragmentGenericRecyclerBinding.inflate(layoutInflater) - setContentView(views.root) - val controller = FeaturesController(object : EnumFeatureItem.Listener { - + controller.listener = object : EnumFeatureItem.Listener { @Suppress("UNCHECKED_CAST") override fun > onOptionSelected(option: Any?, feature: Feature.EnumFeature) { debugFeatures.overrideEnum(option as? T, feature.type) } - }) + } views.genericRecyclerView.configureWith(controller) controller.setData(debugFeaturesStateFactory.create()) } override fun onDestroy() { + controller.listener = null views.genericRecyclerView.cleanup() super.onDestroy() } diff --git a/vector/src/debug/java/im/vector/app/features/debug/features/FeaturesController.kt b/vector/src/debug/java/im/vector/app/features/debug/features/FeaturesController.kt index 50897e6bba..0a05c76d69 100644 --- a/vector/src/debug/java/im/vector/app/features/debug/features/FeaturesController.kt +++ b/vector/src/debug/java/im/vector/app/features/debug/features/FeaturesController.kt @@ -17,6 +17,7 @@ package im.vector.app.features.debug.features import com.airbnb.epoxy.TypedEpoxyController +import javax.inject.Inject import kotlin.reflect.KClass data class FeaturesState( @@ -34,7 +35,9 @@ sealed interface Feature { ) : Feature } -class FeaturesController(private val listener: EnumFeatureItem.Listener) : TypedEpoxyController() { +class FeaturesController @Inject constructor() : TypedEpoxyController() { + + var listener: EnumFeatureItem.Listener? = null override fun buildModels(data: FeaturesState?) { if (data == null) return