diff options
Diffstat (limited to 'app/src/main')
6 files changed, 61 insertions, 23 deletions
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index fab2d2a3..3e2c0bee 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -20,12 +20,12 @@ android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" - android:theme="@style/AppTheme"> + android:theme="@style/FrostThemeBase"> <activity android:name=".StartActivity" android:configChanges="orientation|screenSize|locale" android:label="@string/app_name" - android:theme="@style/Theme.Splash"> + android:theme="@style/FrostTheme.Splash"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> @@ -36,10 +36,10 @@ android:configChanges="orientation|screenSize|locale" android:hardwareAccelerated="true" android:label="@string/app_name" - android:theme="@style/AppTheme.NoActionBar" /> + android:theme="@style/FrostTheme" /> <activity android:name=".WebOverlayActivity" - android:theme="@style/AppTheme.Overlay"> + android:theme="@style/FrostTheme.Overlay"> <intent-filter> <action android:name="android.intent.action.VIEW" /> @@ -92,13 +92,13 @@ </activity> <activity android:name=".LoginActivity" - android:theme="@style/AppTheme.NoActionBar" /> + android:theme="@style/FrostTheme" /> <activity android:name=".SelectorActivity" - android:theme="@style/AppTheme.NoActionBar" /> + android:theme="@style/FrostTheme" /> <activity android:name=".SettingsActivity" - android:theme="@style/AppTheme.NoActionBar" /> + android:theme="@style/FrostTheme" /> <service android:name=".services.NotificationService" 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<Int>(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) diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index 75060d86..2bd93838 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -1,17 +1,31 @@ <resources> - <!-- Base application theme. --> - <style name="AppTheme" parent="MaterialDrawerTheme.Light.DarkToolbar.ActionBar"> - <item name="android:windowShowWallpaper">true</item> - <item name="android:windowBackground">@android:color/transparent</item> + <style name="FrostThemeBase" parent="MaterialDrawerTheme.ActionBar"> + <item name="colorPrimary">@color/facebook_blue</item> + <item name="colorPrimaryDark">@color/facebook_blue_dark</item> </style> - <style name="AppTheme.NoActionBar"> + <style name="FrostTheme" parent="@style/FrostThemeBase"> <item name="windowActionBar">false</item> <item name="windowNoTitle">true</item> </style> - <style name="AppTheme.Overlay" parent="AppTheme.NoActionBar"> + <style name="FrostTheme.Light" parent="MaterialDrawerTheme.Light.DarkToolbar"> + <item name="colorPrimary">@color/facebook_blue</item> + <item name="colorPrimaryDark">@color/facebook_blue_dark</item> + </style> + + <style name="FrostTheme.Transparent"> + <item name="android:windowShowWallpaper">true</item> + <item name="android:windowBackground">@android:color/transparent</item> + </style> + + <style name="FrostTheme.Light.Transparent"> + <item name="android:windowShowWallpaper">true</item> + <item name="android:windowBackground">@android:color/transparent</item> + </style> + + <style name="FrostTheme.Overlay"> <item name="android:windowIsTranslucent">true</item> <item name="android:activityOpenEnterAnimation">@anim/slide_in_right</item> <item name="android:activityOpenExitAnimation">@anim/slide_out_right</item> @@ -23,7 +37,7 @@ <style name="AppTheme.PopupOverlay" parent="ThemeOverlay.AppCompat.Dark" /> - <style name="Theme.Splash" parent="Theme.AppCompat.NoActionBar"> + <style name="FrostTheme.Splash" parent="Theme.AppCompat.NoActionBar"> <item name="android:windowBackground">@drawable/splash_screen</item> <item name="android:navigationBarColor">@color/splashBackground</item> <item name="colorPrimaryDark">@color/splashBackground</item> |