From 15d8a70a6c7596bb9f59a4383df7dccbba3a7012 Mon Sep 17 00:00:00 2001 From: Allan Wang Date: Thu, 15 Jun 2017 16:19:56 -0700 Subject: Tint more things --- app/src/main/kotlin/com/pitchedapps/frost/BaseActivity.kt | 11 +++++++++-- .../main/kotlin/com/pitchedapps/frost/SettingsActivity.kt | 11 +++++------ .../kotlin/com/pitchedapps/frost/utils/ContextUtils.kt | 14 +++++++++++++- .../main/kotlin/com/pitchedapps/frost/web/FrostWebView.kt | 6 ++++++ 4 files changed, 33 insertions(+), 9 deletions(-) (limited to 'app/src/main/kotlin/com') diff --git a/app/src/main/kotlin/com/pitchedapps/frost/BaseActivity.kt b/app/src/main/kotlin/com/pitchedapps/frost/BaseActivity.kt index 6c638618..0e1caa9d 100644 --- a/app/src/main/kotlin/com/pitchedapps/frost/BaseActivity.kt +++ b/app/src/main/kotlin/com/pitchedapps/frost/BaseActivity.kt @@ -1,8 +1,10 @@ package com.pitchedapps.frost +import android.os.Bundle import android.support.v7.app.AppCompatActivity import com.pitchedapps.frost.utils.Prefs -import com.pitchedapps.frost.utils.materialDialog +import com.pitchedapps.frost.utils.materialDialogThemed +import com.pitchedapps.frost.utils.setFrostTheme /** * Created by Allan Wang on 2017-06-12. @@ -10,7 +12,7 @@ import com.pitchedapps.frost.utils.materialDialog open class BaseActivity : AppCompatActivity() { override fun onBackPressed() { if (isTaskRoot && Prefs.exitConfirmation) { - materialDialog { + materialDialogThemed { title(R.string.exit) content(R.string.exit_confirmation) positiveText(android.R.string.yes) @@ -21,4 +23,9 @@ open class BaseActivity : AppCompatActivity() { } } else super.onBackPressed() } + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + setFrostTheme() + } } \ No newline at end of file diff --git a/app/src/main/kotlin/com/pitchedapps/frost/SettingsActivity.kt b/app/src/main/kotlin/com/pitchedapps/frost/SettingsActivity.kt index 4543074e..554a2771 100644 --- a/app/src/main/kotlin/com/pitchedapps/frost/SettingsActivity.kt +++ b/app/src/main/kotlin/com/pitchedapps/frost/SettingsActivity.kt @@ -5,10 +5,7 @@ import ca.allanwang.kau.kpref.KPrefActivity import ca.allanwang.kau.kpref.KPrefAdapterBuilder import ca.allanwang.kau.utils.* import ca.allanwang.kau.views.RippleCanvas -import com.pitchedapps.frost.utils.EXTRA_COOKIES -import com.pitchedapps.frost.utils.Prefs -import com.pitchedapps.frost.utils.Theme -import com.pitchedapps.frost.utils.cookies +import com.pitchedapps.frost.utils.* /** * Created by Allan Wang on 2017-06-06. @@ -20,15 +17,17 @@ class SettingsActivity : KPrefActivity() { header(R.string.settings) text(title = R.string.theme, itemBuilder = { onClick = { - itemView, innerContent, item -> - this@SettingsActivity.materialDialog { + _, _, item -> + this@SettingsActivity.materialDialogThemed { title(R.string.theme) items(Theme.values().map { this@SettingsActivity.string(it.textRes) }) + itemsDisabledIndices(Theme.CUSTOM.ordinal) itemsCallbackSingleChoice(item.pref, { _, _, which, _ -> if (item.pref != which) { item.pref = which reload() + setFrostTheme() themeExterior() } true diff --git a/app/src/main/kotlin/com/pitchedapps/frost/utils/ContextUtils.kt b/app/src/main/kotlin/com/pitchedapps/frost/utils/ContextUtils.kt index 2053a6bf..c2bcc2ab 100644 --- a/app/src/main/kotlin/com/pitchedapps/frost/utils/ContextUtils.kt +++ b/app/src/main/kotlin/com/pitchedapps/frost/utils/ContextUtils.kt @@ -3,9 +3,11 @@ package com.pitchedapps.frost.utils import android.app.Activity import android.content.Context import android.content.Intent +import android.graphics.Color import android.support.v4.app.ActivityOptionsCompat import android.support.v4.content.ContextCompat import ca.allanwang.kau.utils.adjustAlpha +import ca.allanwang.kau.utils.isColorDark import ca.allanwang.kau.utils.lighten import ca.allanwang.kau.utils.startActivity import com.afollestad.materialdialogs.MaterialDialog @@ -43,7 +45,8 @@ fun WebOverlayActivity.url(): String { return intent.extras?.getString(ARG_URL) ?: FbTab.FEED.url } -fun Activity.materialDialog(action: MaterialDialog.Builder.() -> Unit) { + +fun Activity.materialDialogThemed(action: MaterialDialog.Builder.() -> Unit): MaterialDialog { val builder = MaterialDialog.Builder(this) val dimmerTextColor = Prefs.textColor.adjustAlpha(0.8f) builder.titleColor(Prefs.textColor) @@ -54,4 +57,13 @@ fun Activity.materialDialog(action: MaterialDialog.Builder.() -> Unit) { .negativeColor(Prefs.textColor) .neutralColor(Prefs.textColor) builder.action() + return builder.show() +} + +fun Activity.setFrostTheme() { + val isTransparent = Color.alpha(Prefs.bgColor) != 255 + if (Prefs.bgColor.isColorDark()) + setTheme(if (isTransparent) R.style.FrostTheme_Transparent else R.style.FrostTheme) + else + setTheme(if (isTransparent) R.style.FrostTheme_Light_Transparent else R.style.FrostTheme_Light) } \ No newline at end of file diff --git a/app/src/main/kotlin/com/pitchedapps/frost/web/FrostWebView.kt b/app/src/main/kotlin/com/pitchedapps/frost/web/FrostWebView.kt index 167661a4..c99feaf5 100644 --- a/app/src/main/kotlin/com/pitchedapps/frost/web/FrostWebView.kt +++ b/app/src/main/kotlin/com/pitchedapps/frost/web/FrostWebView.kt @@ -8,8 +8,11 @@ import android.view.View import android.widget.FrameLayout import android.widget.ProgressBar import ca.allanwang.kau.utils.bindView +import ca.allanwang.kau.utils.tint +import ca.allanwang.kau.utils.withAlpha import com.pitchedapps.frost.R import com.pitchedapps.frost.facebook.FbTab +import com.pitchedapps.frost.utils.Prefs import io.reactivex.android.schedulers.AndroidSchedulers /** @@ -23,6 +26,9 @@ class FrostWebView @JvmOverloads constructor(context: Context, attrs: AttributeS init { inflate(getContext(), R.layout.swipe_webview, this) + progress.tint(Prefs.iconColor.withAlpha(180)) + refresh.setColorSchemeColors(Prefs.iconColor) + refresh.setProgressBackgroundColorSchemeColor(Prefs.headerColor.withAlpha(255)) web.progressObservable.observeOn(AndroidSchedulers.mainThread()).subscribe { progress.visibility = if (it == 100) View.INVISIBLE else View.VISIBLE if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) progress.setProgress(it, true) -- cgit v1.2.3