clean up settings and some other things
This commit is contained in:
@@ -0,0 +1,27 @@
|
||||
package com.meloda.app.fast.common
|
||||
|
||||
import com.meloda.app.fast.common.model.LongPollState
|
||||
import kotlinx.coroutines.flow.MutableStateFlow
|
||||
import kotlinx.coroutines.flow.StateFlow
|
||||
|
||||
interface LongPollController {
|
||||
val currentState: StateFlow<LongPollState>
|
||||
val stateToApply: StateFlow<LongPollState>
|
||||
|
||||
fun updateCurrentState(newState: LongPollState)
|
||||
fun setStateToApply(newState: LongPollState)
|
||||
}
|
||||
|
||||
class LongPollControllerImpl : LongPollController {
|
||||
|
||||
override val currentState = MutableStateFlow<LongPollState>(LongPollState.Stopped)
|
||||
override val stateToApply = MutableStateFlow<LongPollState>(LongPollState.Stopped)
|
||||
|
||||
override fun updateCurrentState(newState: LongPollState) {
|
||||
currentState.value = newState
|
||||
}
|
||||
|
||||
override fun setStateToApply(newState: LongPollState) {
|
||||
currentState.value = newState
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,12 @@
|
||||
package com.meloda.app.fast.common.di
|
||||
|
||||
import coil.ImageLoader
|
||||
import com.meloda.app.fast.common.LongPollController
|
||||
import com.meloda.app.fast.common.LongPollControllerImpl
|
||||
import com.meloda.app.fast.common.provider.ResourceProvider
|
||||
import com.meloda.app.fast.common.provider.ResourceProviderImpl
|
||||
import org.koin.core.module.dsl.singleOf
|
||||
import org.koin.dsl.bind
|
||||
import org.koin.dsl.module
|
||||
|
||||
val commonModule = module {
|
||||
@@ -9,4 +15,7 @@ val commonModule = module {
|
||||
.crossfade(true)
|
||||
.build()
|
||||
}
|
||||
|
||||
singleOf(::LongPollControllerImpl) bind LongPollController::class
|
||||
singleOf(::ResourceProviderImpl) bind ResourceProvider::class
|
||||
}
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package com.meloda.app.fast.common
|
||||
package com.meloda.app.fast.common.extensions
|
||||
|
||||
import android.os.Bundle
|
||||
import android.os.Parcelable
|
||||
+1
-1
@@ -1,3 +1,3 @@
|
||||
package com.meloda.app.fast.common
|
||||
package com.meloda.app.fast.common.model
|
||||
|
||||
data class ApiLanguage(val value: String)
|
||||
@@ -0,0 +1,19 @@
|
||||
package com.meloda.app.fast.common.model
|
||||
|
||||
private const val MODE_NIGHT_NO = 1
|
||||
private const val MODE_NIGHT_YES = 2
|
||||
private const val MODE_NIGHT_FOLLOW_SYSTEM = -1
|
||||
private const val MODE_NIGHT_AUTO_BATTERY = 3
|
||||
|
||||
enum class DarkMode(val value: Int) {
|
||||
DISABLED(MODE_NIGHT_NO),
|
||||
FOLLOW_SYSTEM(MODE_NIGHT_FOLLOW_SYSTEM),
|
||||
AUTO_BATTERY(MODE_NIGHT_AUTO_BATTERY),
|
||||
ENABLED(MODE_NIGHT_YES);
|
||||
|
||||
companion object {
|
||||
|
||||
fun parse(value: Int): DarkMode = entries.firstOrNull { it.value == value }
|
||||
?: throw IllegalArgumentException("Unknown dark mode with value: $value")
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
package com.meloda.app.fast.common.model
|
||||
sealed class LongPollState {
|
||||
data object Stopped : LongPollState()
|
||||
|
||||
// TODO: 15/07/2024, Danil Nikolaev: support for android 15
|
||||
// data object Terminated : LongPollState()
|
||||
data object InApp : LongPollState()
|
||||
data object Background : LongPollState()
|
||||
data object Exception : LongPollState()
|
||||
|
||||
|
||||
fun isLaunched(): Boolean = this in listOf(InApp, Background)
|
||||
}
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package com.meloda.app.fast.common
|
||||
package com.meloda.app.fast.common.model
|
||||
|
||||
import android.graphics.drawable.Drawable
|
||||
import androidx.annotation.ColorInt
|
||||
+3
-1
@@ -1,4 +1,4 @@
|
||||
package com.meloda.app.fast.common
|
||||
package com.meloda.app.fast.common.model
|
||||
|
||||
import android.content.res.Resources
|
||||
import androidx.annotation.PluralsRes
|
||||
@@ -18,6 +18,8 @@ sealed class UiText {
|
||||
data class Simple(val text: String) : UiText()
|
||||
|
||||
data class QuantityResource(@PluralsRes val resId: Int, val quantity: Int) : UiText()
|
||||
|
||||
|
||||
}
|
||||
|
||||
fun UiText?.parseString(resources: Resources): String? {
|
||||
@@ -0,0 +1,15 @@
|
||||
package com.meloda.app.fast.common.provider
|
||||
|
||||
import android.content.res.Resources
|
||||
|
||||
interface ResourceProvider {
|
||||
|
||||
fun getString(resId: Int): String
|
||||
}
|
||||
|
||||
class ResourceProviderImpl(private val resources: Resources) : ResourceProvider {
|
||||
|
||||
override fun getString(resId: Int): String {
|
||||
return resources.getString(resId)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user