aboutsummaryrefslogtreecommitdiff
path: root/app/src/main/kotlin/com/pitchedapps/frost/utils/Theme.kt
blob: 1eff678023a601cd8867234fefa41c14d0e9ac42 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
package com.pitchedapps.frost.utils

import android.graphics.Color
import com.pitchedapps.frost.R
import com.pitchedapps.frost.injectors.CssAssets
import com.pitchedapps.frost.injectors.InjectorContract
import com.pitchedapps.frost.injectors.JsActions

/**
 * Created by Allan Wang on 2017-06-14.
 */
enum class Theme(val textRes: Int, val injector: InjectorContract,
                 private val textColorGetter: () -> Int, private val backgroundColorGetter: () -> Int,
                 private val headerColorGetter: () -> Int, private val iconColorGetter: () -> Int) {
    DEFAULT(R.string._default, JsActions.EMPTY, { Color.BLACK }, { 0xfffafafa.toInt() }, { 0xff3b5998.toInt() }, { Color.WHITE }),
    LIGHT(R.string.light, CssAssets.MATERIAL_LIGHT, { Color.BLACK }, { 0xfffafafa.toInt() }, { 0xff3b5998.toInt() }, { Color.WHITE }),
    DARK(R.string.dark, CssAssets.MATERIAL_DARK, { Color.WHITE }, { 0xff303030.toInt() }, { 0xff3b5998.toInt() }, { Color.WHITE }),
    AMOLED(R.string.amoled, CssAssets.MATERIAL_AMOLED, { Color.WHITE }, { Color.BLACK }, { Color.BLACK }, { Color.WHITE }),
    GLASS(R.string.glass, CssAssets.MATERIAL_GLASS, { Color.WHITE }, { 0x80000000.toInt() }, { 0xb3000000.toInt() }, { Color.WHITE }),
    CUSTOM(R.string.custom, JsActions.EMPTY, { Prefs.customTextColor }, { Prefs.customBackgroundColor }, { Prefs.customHeaderColor }, { Prefs.customIconColor });
    //todo create custom

    val textColor: Int
        get() = textColorGetter.invoke()

    val bgColor: Int
        get() = backgroundColorGetter.invoke()

    val headerColor: Int
        get() = headerColorGetter.invoke()

    val iconColor: Int
        get() = iconColorGetter.invoke()

    companion object {
        val values = values() //save one instance
        operator fun invoke(index: Int) = values[index]
    }
}