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 --- .../pitchedapps/frost/activities/MainActivity.kt | 1 + .../frost/activities/SettingsActivity.kt | 1 + .../kotlin/com/pitchedapps/frost/enums/FeedSort.kt | 18 +++++ .../kotlin/com/pitchedapps/frost/enums/Support.kt | 26 ++++++ .../kotlin/com/pitchedapps/frost/enums/Theme.kt | 92 ++++++++++++++++++++++ .../com/pitchedapps/frost/facebook/FeedSort.kt | 18 ----- .../com/pitchedapps/frost/fragments/WebFragment.kt | 2 +- .../pitchedapps/frost/intro/IntroFragmentTheme.kt | 2 +- .../com/pitchedapps/frost/settings/Appearance.kt | 1 + .../kotlin/com/pitchedapps/frost/settings/Feed.kt | 2 +- .../kotlin/com/pitchedapps/frost/utils/Prefs.kt | 4 +- .../kotlin/com/pitchedapps/frost/utils/Support.kt | 25 ------ .../kotlin/com/pitchedapps/frost/utils/Theme.kt | 91 --------------------- .../com/pitchedapps/frost/web/FrostWebEnums.kt | 13 --- 14 files changed, 145 insertions(+), 151 deletions(-) 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 delete mode 100644 app/src/main/kotlin/com/pitchedapps/frost/facebook/FeedSort.kt delete mode 100644 app/src/main/kotlin/com/pitchedapps/frost/utils/Support.kt delete mode 100644 app/src/main/kotlin/com/pitchedapps/frost/utils/Theme.kt delete mode 100644 app/src/main/kotlin/com/pitchedapps/frost/web/FrostWebEnums.kt diff --git a/app/src/main/kotlin/com/pitchedapps/frost/activities/MainActivity.kt b/app/src/main/kotlin/com/pitchedapps/frost/activities/MainActivity.kt index 6d7f0aad..343829c0 100644 --- a/app/src/main/kotlin/com/pitchedapps/frost/activities/MainActivity.kt +++ b/app/src/main/kotlin/com/pitchedapps/frost/activities/MainActivity.kt @@ -48,6 +48,7 @@ import com.pitchedapps.frost.contracts.FileChooserContract import com.pitchedapps.frost.contracts.FileChooserDelegate import com.pitchedapps.frost.dbflow.loadFbCookie import com.pitchedapps.frost.dbflow.loadFbTabs +import com.pitchedapps.frost.enums.Theme import com.pitchedapps.frost.facebook.FbCookie import com.pitchedapps.frost.facebook.FbCookie.switchUser import com.pitchedapps.frost.facebook.FbItem diff --git a/app/src/main/kotlin/com/pitchedapps/frost/activities/SettingsActivity.kt b/app/src/main/kotlin/com/pitchedapps/frost/activities/SettingsActivity.kt index 196aa461..7023fbc2 100644 --- a/app/src/main/kotlin/com/pitchedapps/frost/activities/SettingsActivity.kt +++ b/app/src/main/kotlin/com/pitchedapps/frost/activities/SettingsActivity.kt @@ -17,6 +17,7 @@ import com.mikepenz.community_material_typeface_library.CommunityMaterial import com.mikepenz.google_material_typeface_library.GoogleMaterial import com.pitchedapps.frost.BuildConfig import com.pitchedapps.frost.R +import com.pitchedapps.frost.enums.Support import com.pitchedapps.frost.settings.* import com.pitchedapps.frost.utils.* import com.pitchedapps.frost.utils.iab.FrostBilling 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 diff --git a/app/src/main/kotlin/com/pitchedapps/frost/facebook/FeedSort.kt b/app/src/main/kotlin/com/pitchedapps/frost/facebook/FeedSort.kt deleted file mode 100644 index f3073f6d..00000000 --- a/app/src/main/kotlin/com/pitchedapps/frost/facebook/FeedSort.kt +++ /dev/null @@ -1,18 +0,0 @@ -package com.pitchedapps.frost.facebook - -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/fragments/WebFragment.kt b/app/src/main/kotlin/com/pitchedapps/frost/fragments/WebFragment.kt index 920052f9..1a640ba5 100644 --- a/app/src/main/kotlin/com/pitchedapps/frost/fragments/WebFragment.kt +++ b/app/src/main/kotlin/com/pitchedapps/frost/fragments/WebFragment.kt @@ -9,7 +9,7 @@ import android.view.ViewGroup import ca.allanwang.kau.utils.withArguments import com.pitchedapps.frost.activities.MainActivity import com.pitchedapps.frost.facebook.FbItem -import com.pitchedapps.frost.facebook.FeedSort +import com.pitchedapps.frost.enums.FeedSort import com.pitchedapps.frost.utils.Prefs import com.pitchedapps.frost.web.FrostWebView import com.pitchedapps.frost.web.FrostWebViewCore diff --git a/app/src/main/kotlin/com/pitchedapps/frost/intro/IntroFragmentTheme.kt b/app/src/main/kotlin/com/pitchedapps/frost/intro/IntroFragmentTheme.kt index d1d64712..3134ff11 100644 --- a/app/src/main/kotlin/com/pitchedapps/frost/intro/IntroFragmentTheme.kt +++ b/app/src/main/kotlin/com/pitchedapps/frost/intro/IntroFragmentTheme.kt @@ -7,7 +7,7 @@ import ca.allanwang.kau.utils.scaleXY import com.pitchedapps.frost.R import com.pitchedapps.frost.activities.IntroActivity import com.pitchedapps.frost.utils.Prefs -import com.pitchedapps.frost.utils.Theme +import com.pitchedapps.frost.enums.Theme /** * Created by Allan Wang on 2017-07-28. diff --git a/app/src/main/kotlin/com/pitchedapps/frost/settings/Appearance.kt b/app/src/main/kotlin/com/pitchedapps/frost/settings/Appearance.kt index 43a186db..0dd246da 100644 --- a/app/src/main/kotlin/com/pitchedapps/frost/settings/Appearance.kt +++ b/app/src/main/kotlin/com/pitchedapps/frost/settings/Appearance.kt @@ -9,6 +9,7 @@ import com.pitchedapps.frost.R import com.pitchedapps.frost.activities.MainActivity import com.pitchedapps.frost.activities.SettingsActivity import com.pitchedapps.frost.enums.MainActivityLayout +import com.pitchedapps.frost.enums.Theme import com.pitchedapps.frost.injectors.CssAssets import com.pitchedapps.frost.utils.* import com.pitchedapps.frost.utils.iab.IS_FROST_PRO diff --git a/app/src/main/kotlin/com/pitchedapps/frost/settings/Feed.kt b/app/src/main/kotlin/com/pitchedapps/frost/settings/Feed.kt index a80642bb..1487c969 100644 --- a/app/src/main/kotlin/com/pitchedapps/frost/settings/Feed.kt +++ b/app/src/main/kotlin/com/pitchedapps/frost/settings/Feed.kt @@ -5,7 +5,7 @@ import ca.allanwang.kau.utils.string import com.pitchedapps.frost.R import com.pitchedapps.frost.activities.MainActivity import com.pitchedapps.frost.activities.SettingsActivity -import com.pitchedapps.frost.facebook.FeedSort +import com.pitchedapps.frost.enums.FeedSort import com.pitchedapps.frost.utils.Prefs import com.pitchedapps.frost.utils.materialDialogThemed diff --git a/app/src/main/kotlin/com/pitchedapps/frost/utils/Prefs.kt b/app/src/main/kotlin/com/pitchedapps/frost/utils/Prefs.kt index 56c33b4b..3ad90652 100644 --- a/app/src/main/kotlin/com/pitchedapps/frost/utils/Prefs.kt +++ b/app/src/main/kotlin/com/pitchedapps/frost/utils/Prefs.kt @@ -6,8 +6,10 @@ import ca.allanwang.kau.kpref.KPref import ca.allanwang.kau.kpref.StringSet import ca.allanwang.kau.kpref.kpref import ca.allanwang.kau.utils.isColorVisibleOn +import com.pitchedapps.frost.enums.FACEBOOK_BLUE import com.pitchedapps.frost.enums.MainActivityLayout -import com.pitchedapps.frost.facebook.FeedSort +import com.pitchedapps.frost.enums.Theme +import com.pitchedapps.frost.enums.FeedSort import com.pitchedapps.frost.injectors.InjectorContract /** diff --git a/app/src/main/kotlin/com/pitchedapps/frost/utils/Support.kt b/app/src/main/kotlin/com/pitchedapps/frost/utils/Support.kt deleted file mode 100644 index 72df902c..00000000 --- a/app/src/main/kotlin/com/pitchedapps/frost/utils/Support.kt +++ /dev/null @@ -1,25 +0,0 @@ -package com.pitchedapps.frost.utils - -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 - -/** - * 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/utils/Theme.kt b/app/src/main/kotlin/com/pitchedapps/frost/utils/Theme.kt deleted file mode 100644 index 5cbb051d..00000000 --- a/app/src/main/kotlin/com/pitchedapps/frost/utils/Theme.kt +++ /dev/null @@ -1,91 +0,0 @@ -package com.pitchedapps.frost.utils - -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 - -/** - * 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 diff --git a/app/src/main/kotlin/com/pitchedapps/frost/web/FrostWebEnums.kt b/app/src/main/kotlin/com/pitchedapps/frost/web/FrostWebEnums.kt deleted file mode 100644 index 17e44785..00000000 --- a/app/src/main/kotlin/com/pitchedapps/frost/web/FrostWebEnums.kt +++ /dev/null @@ -1,13 +0,0 @@ -package com.pitchedapps.frost.web - -enum class FrostWebEnums { - LOADING, LOADED, ERROR -} - -enum class FrostWebOverlay(val match: String) { - STORY("story.php?story_fbid"); - - companion object { - val values = values() - } -} \ No newline at end of file -- cgit v1.2.3