From 8c178bd82d75ef237c97863fae555ca0346e7352 Mon Sep 17 00:00:00 2001 From: Allan Wang Date: Sat, 19 Aug 2017 21:12:02 -0700 Subject: Refactor enums and optimize imports --- .../kotlin/com/pitchedapps/frost/enums/FeedSort.kt | 18 +++++ .../kotlin/com/pitchedapps/frost/enums/Support.kt | 26 ++++++ .../kotlin/com/pitchedapps/frost/enums/Theme.kt | 92 ++++++++++++++++++++++ 3 files changed, 136 insertions(+) create mode 100644 app/src/main/kotlin/com/pitchedapps/frost/enums/FeedSort.kt create mode 100644 app/src/main/kotlin/com/pitchedapps/frost/enums/Support.kt create mode 100644 app/src/main/kotlin/com/pitchedapps/frost/enums/Theme.kt (limited to 'app/src/main/kotlin/com/pitchedapps/frost/enums') diff --git a/app/src/main/kotlin/com/pitchedapps/frost/enums/FeedSort.kt b/app/src/main/kotlin/com/pitchedapps/frost/enums/FeedSort.kt new file mode 100644 index 00000000..65b3c101 --- /dev/null +++ b/app/src/main/kotlin/com/pitchedapps/frost/enums/FeedSort.kt @@ -0,0 +1,18 @@ +package com.pitchedapps.frost.enums + +import android.support.annotation.StringRes +import com.pitchedapps.frost.R + +/** + * Created by Allan Wang on 2017-06-23. + */ +enum class FeedSort(@StringRes val textRes: Int) { + DEFAULT(R.string.kau_default), + MOST_RECENT(R.string.most_recent), + TOP(R.string.top_stories); + + companion object { + val values = values() //save one instance + operator fun invoke(index: Int) = values[index] + } +} \ No newline at end of file diff --git a/app/src/main/kotlin/com/pitchedapps/frost/enums/Support.kt b/app/src/main/kotlin/com/pitchedapps/frost/enums/Support.kt new file mode 100644 index 00000000..85c8bc76 --- /dev/null +++ b/app/src/main/kotlin/com/pitchedapps/frost/enums/Support.kt @@ -0,0 +1,26 @@ +package com.pitchedapps.frost.enums + +import android.content.Context +import android.support.annotation.StringRes +import ca.allanwang.kau.email.sendEmail +import ca.allanwang.kau.utils.string +import com.pitchedapps.frost.R +import com.pitchedapps.frost.utils.Prefs + +/** + * Created by Allan Wang on 2017-06-29. + */ +enum class Support(@StringRes val title: Int) { + FEEDBACK(R.string.feedback), + BUG(R.string.bug_report), + THEME(R.string.theme_issue), + FEATURE(R.string.feature_request); + + fun sendEmail(context: Context) { + with(context) { + this.sendEmail(string(R.string.dev_email), "${string(R.string.frost_prefix)} ${string(title)}") { + addItem("Random Frost ID", Prefs.frostId) + } + } + } +} \ No newline at end of file diff --git a/app/src/main/kotlin/com/pitchedapps/frost/enums/Theme.kt b/app/src/main/kotlin/com/pitchedapps/frost/enums/Theme.kt new file mode 100644 index 00000000..ada0b456 --- /dev/null +++ b/app/src/main/kotlin/com/pitchedapps/frost/enums/Theme.kt @@ -0,0 +1,92 @@ +package com.pitchedapps.frost.enums + +import android.graphics.Color +import android.support.annotation.StringRes +import com.pitchedapps.frost.R +import com.pitchedapps.frost.injectors.CssAssets +import com.pitchedapps.frost.injectors.InjectorContract +import com.pitchedapps.frost.injectors.JsActions +import com.pitchedapps.frost.utils.Prefs + +/** + * Created by Allan Wang on 2017-06-14. + */ +const val FACEBOOK_BLUE = 0xff3b5998.toInt() +const val BLUE_LIGHT = 0xff5d86dd.toInt() + +enum class Theme(@StringRes val textRes: Int, + val injector: InjectorContract, + private val textColorGetter: () -> Int, + private val accentColorGetter: () -> Int, + private val backgroundColorGetter: () -> Int, + private val headerColorGetter: () -> Int, + private val iconColorGetter: () -> Int) { + + DEFAULT(R.string.kau_default, + JsActions.EMPTY, + { 0xde000000.toInt() }, + { FACEBOOK_BLUE }, + { 0xfffafafa.toInt() }, + { FACEBOOK_BLUE }, + { Color.WHITE }), + + LIGHT(R.string.kau_light, + CssAssets.MATERIAL_LIGHT, + { 0xde000000.toInt() }, + { FACEBOOK_BLUE }, + { 0xfffafafa.toInt() }, + { FACEBOOK_BLUE }, + { Color.WHITE }), + + DARK(R.string.kau_dark, + CssAssets.MATERIAL_DARK, + { Color.WHITE }, + { BLUE_LIGHT }, + { 0xff303030.toInt() }, + { 0xff2e4b86.toInt() }, + { Color.WHITE }), + + AMOLED(R.string.kau_amoled, + CssAssets.MATERIAL_AMOLED, + { Color.WHITE }, + { BLUE_LIGHT }, + { Color.BLACK }, + { Color.BLACK }, + { Color.WHITE }), + + GLASS(R.string.kau_glass, + CssAssets.MATERIAL_GLASS, + { Color.WHITE }, + { BLUE_LIGHT }, + { 0x80000000.toInt() }, + { 0xb3000000.toInt() }, + { Color.WHITE }), + + CUSTOM(R.string.kau_custom, + CssAssets.CUSTOM, + { Prefs.customTextColor }, + { Prefs.customAccentColor }, + { Prefs.customBackgroundColor }, + { Prefs.customHeaderColor }, + { Prefs.customIconColor }); + + val textColor: Int + get() = textColorGetter() + + val accentColor: Int + get() = accentColorGetter() + + val bgColor: Int + get() = backgroundColorGetter() + + val headerColor: Int + get() = headerColorGetter() + + val iconColor: Int + get() = iconColorGetter() + + companion object { + val values = values() //save one instance + operator fun invoke(index: Int) = values[index] + } +} \ No newline at end of file -- cgit v1.2.3