switching to vector base activity and injecting epoxy controller for project consistency
This commit is contained in:
parent
440de9741b
commit
6c21ed8eab
@ -17,40 +17,36 @@
|
|||||||
package im.vector.app.features.debug.features
|
package im.vector.app.features.debug.features
|
||||||
|
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import androidx.appcompat.app.AppCompatActivity
|
|
||||||
import dagger.hilt.android.AndroidEntryPoint
|
import dagger.hilt.android.AndroidEntryPoint
|
||||||
import im.vector.app.core.extensions.cleanup
|
import im.vector.app.core.extensions.cleanup
|
||||||
import im.vector.app.core.extensions.configureWith
|
import im.vector.app.core.extensions.configureWith
|
||||||
|
import im.vector.app.core.platform.VectorBaseActivity
|
||||||
import im.vector.app.databinding.FragmentGenericRecyclerBinding
|
import im.vector.app.databinding.FragmentGenericRecyclerBinding
|
||||||
import im.vector.app.features.themes.ActivityOtherThemes
|
|
||||||
import im.vector.app.features.themes.ThemeUtils
|
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
@AndroidEntryPoint
|
@AndroidEntryPoint
|
||||||
class DebugFeaturesSettingsActivity : AppCompatActivity() {
|
class DebugFeaturesSettingsActivity : VectorBaseActivity<FragmentGenericRecyclerBinding>() {
|
||||||
|
|
||||||
@Inject lateinit var debugFeatures: DebugVectorFeatures
|
@Inject lateinit var debugFeatures: DebugVectorFeatures
|
||||||
@Inject lateinit var debugFeaturesStateFactory: DebugFeaturesStateFactory
|
@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?) {
|
override fun onCreate(savedInstanceState: Bundle?) {
|
||||||
super.onCreate(savedInstanceState)
|
super.onCreate(savedInstanceState)
|
||||||
ThemeUtils.setActivityTheme(this, ActivityOtherThemes.Default)
|
controller.listener = object : EnumFeatureItem.Listener {
|
||||||
views = FragmentGenericRecyclerBinding.inflate(layoutInflater)
|
|
||||||
setContentView(views.root)
|
|
||||||
val controller = FeaturesController(object : EnumFeatureItem.Listener {
|
|
||||||
|
|
||||||
@Suppress("UNCHECKED_CAST")
|
@Suppress("UNCHECKED_CAST")
|
||||||
override fun <T : Enum<T>> onOptionSelected(option: Any?, feature: Feature.EnumFeature<T>) {
|
override fun <T : Enum<T>> onOptionSelected(option: Any?, feature: Feature.EnumFeature<T>) {
|
||||||
debugFeatures.overrideEnum(option as? T, feature.type)
|
debugFeatures.overrideEnum(option as? T, feature.type)
|
||||||
}
|
}
|
||||||
})
|
}
|
||||||
views.genericRecyclerView.configureWith(controller)
|
views.genericRecyclerView.configureWith(controller)
|
||||||
controller.setData(debugFeaturesStateFactory.create())
|
controller.setData(debugFeaturesStateFactory.create())
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onDestroy() {
|
override fun onDestroy() {
|
||||||
|
controller.listener = null
|
||||||
views.genericRecyclerView.cleanup()
|
views.genericRecyclerView.cleanup()
|
||||||
super.onDestroy()
|
super.onDestroy()
|
||||||
}
|
}
|
||||||
|
@ -17,6 +17,7 @@
|
|||||||
package im.vector.app.features.debug.features
|
package im.vector.app.features.debug.features
|
||||||
|
|
||||||
import com.airbnb.epoxy.TypedEpoxyController
|
import com.airbnb.epoxy.TypedEpoxyController
|
||||||
|
import javax.inject.Inject
|
||||||
import kotlin.reflect.KClass
|
import kotlin.reflect.KClass
|
||||||
|
|
||||||
data class FeaturesState(
|
data class FeaturesState(
|
||||||
@ -34,7 +35,9 @@ sealed interface Feature {
|
|||||||
) : Feature
|
) : Feature
|
||||||
}
|
}
|
||||||
|
|
||||||
class FeaturesController(private val listener: EnumFeatureItem.Listener) : TypedEpoxyController<FeaturesState>() {
|
class FeaturesController @Inject constructor() : TypedEpoxyController<FeaturesState>() {
|
||||||
|
|
||||||
|
var listener: EnumFeatureItem.Listener? = null
|
||||||
|
|
||||||
override fun buildModels(data: FeaturesState?) {
|
override fun buildModels(data: FeaturesState?) {
|
||||||
if (data == null) return
|
if (data == null) return
|
||||||
|
Loading…
x
Reference in New Issue
Block a user