mirror of
https://github.com/SchildiChat/SchildiChat-android.git
synced 2024-11-26 03:16:02 +03:00
Using VectorFeatures instead of VectorOverrides
This commit is contained in:
parent
e92a05abe7
commit
78b2ccb2b5
4 changed files with 17 additions and 7 deletions
|
@ -54,6 +54,11 @@ class DebugFeaturesStateFactory @Inject constructor(
|
|||
key = DebugFeatureKeys.onboardingPersonalize,
|
||||
factory = VectorFeatures::isOnboardingPersonalizeEnabled
|
||||
),
|
||||
createBooleanFeature(
|
||||
label = "Live location sharing",
|
||||
key = DebugFeatureKeys.liveLocationSharing,
|
||||
factory = VectorFeatures::isLiveLocationEnabled
|
||||
),
|
||||
))
|
||||
}
|
||||
|
||||
|
|
|
@ -54,6 +54,9 @@ class DebugVectorFeatures(
|
|||
override fun isOnboardingPersonalizeEnabled(): Boolean = read(DebugFeatureKeys.onboardingPersonalize)
|
||||
?: vectorFeatures.isOnboardingPersonalizeEnabled()
|
||||
|
||||
override fun isLiveLocationEnabled(): Boolean = read(DebugFeatureKeys.liveLocationSharing)
|
||||
?: vectorFeatures.isLiveLocationEnabled()
|
||||
|
||||
fun <T> override(value: T?, key: Preferences.Key<T>) = updatePreferences {
|
||||
if (value == null) {
|
||||
it.remove(key)
|
||||
|
@ -106,4 +109,5 @@ object DebugFeatureKeys {
|
|||
val onboardingSplashCarousel = booleanPreferencesKey("onboarding-splash-carousel")
|
||||
val onboardingUseCase = booleanPreferencesKey("onbboarding-splash-carousel")
|
||||
val onboardingPersonalize = booleanPreferencesKey("onbboarding-personalize")
|
||||
val liveLocationSharing = booleanPreferencesKey("live-location-sharing")
|
||||
}
|
||||
|
|
|
@ -25,6 +25,7 @@ interface VectorFeatures {
|
|||
fun isOnboardingSplashCarouselEnabled(): Boolean
|
||||
fun isOnboardingUseCaseEnabled(): Boolean
|
||||
fun isOnboardingPersonalizeEnabled(): Boolean
|
||||
fun isLiveLocationEnabled(): Boolean
|
||||
|
||||
enum class OnboardingVariant {
|
||||
LEGACY,
|
||||
|
@ -39,4 +40,5 @@ class DefaultVectorFeatures : VectorFeatures {
|
|||
override fun isOnboardingSplashCarouselEnabled() = true
|
||||
override fun isOnboardingUseCaseEnabled() = true
|
||||
override fun isOnboardingPersonalizeEnabled() = false
|
||||
override fun isLiveLocationEnabled(): Boolean = BuildConfig.ENABLE_LIVE_LOCATION_SHARING
|
||||
}
|
||||
|
|
|
@ -21,11 +21,10 @@ import com.airbnb.mvrx.MavericksViewModelFactory
|
|||
import dagger.assisted.Assisted
|
||||
import dagger.assisted.AssistedFactory
|
||||
import dagger.assisted.AssistedInject
|
||||
import im.vector.app.BuildConfig
|
||||
import im.vector.app.core.di.MavericksAssistedViewModelFactory
|
||||
import im.vector.app.core.di.hiltMavericksViewModelFactory
|
||||
import im.vector.app.core.platform.VectorViewModel
|
||||
import im.vector.app.features.VectorOverrides
|
||||
import im.vector.app.features.VectorFeatures
|
||||
import im.vector.app.features.home.room.detail.timeline.helper.LocationPinProvider
|
||||
import im.vector.app.features.location.domain.usecase.CompareLocationsUseCase
|
||||
import kotlinx.coroutines.flow.MutableSharedFlow
|
||||
|
@ -51,7 +50,7 @@ class LocationSharingViewModel @AssistedInject constructor(
|
|||
private val locationPinProvider: LocationPinProvider,
|
||||
private val session: Session,
|
||||
private val compareLocationsUseCase: CompareLocationsUseCase,
|
||||
private val vectorOverrides: VectorOverrides
|
||||
private val vectorFeatures: VectorFeatures,
|
||||
) : VectorViewModel<LocationSharingViewState, LocationSharingAction, LocationSharingViewEvents>(initialState), LocationTracker.Callback {
|
||||
|
||||
private val room = session.getRoom(initialState.roomId)!!
|
||||
|
@ -71,7 +70,7 @@ class LocationSharingViewModel @AssistedInject constructor(
|
|||
setUserItem()
|
||||
updatePin()
|
||||
compareTargetAndUserLocation()
|
||||
observeVectorOverrides()
|
||||
checkVectorFeatures()
|
||||
}
|
||||
|
||||
private fun setUserItem() {
|
||||
|
@ -113,9 +112,9 @@ class LocationSharingViewModel @AssistedInject constructor(
|
|||
?.let { userLocation -> compareLocationsUseCase.execute(userLocation, targetLocation) }
|
||||
}
|
||||
|
||||
private fun observeVectorOverrides() {
|
||||
vectorOverrides.forceEnableLiveLocationSharing.setOnEach { forceLiveLocation ->
|
||||
copy(isLiveLocationSharingEnabled = forceLiveLocation || BuildConfig.ENABLE_LIVE_LOCATION_SHARING)
|
||||
private fun checkVectorFeatures() {
|
||||
setState {
|
||||
copy(isLiveLocationSharingEnabled = vectorFeatures.isLiveLocationEnabled())
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue