From 66dd55a0793513b45c885fdcb01bc4804b8bfd7a Mon Sep 17 00:00:00 2001 From: Allan Wang Date: Tue, 23 Jul 2019 00:22:48 -0700 Subject: Add intro panel --- .../pitchedapps/frost/intro/IntroMainFragments.kt | 40 ++++++++++++++++++++-- 1 file changed, 37 insertions(+), 3 deletions(-) (limited to 'app/src/main/kotlin/com/pitchedapps/frost/intro/IntroMainFragments.kt') diff --git a/app/src/main/kotlin/com/pitchedapps/frost/intro/IntroMainFragments.kt b/app/src/main/kotlin/com/pitchedapps/frost/intro/IntroMainFragments.kt index 8536dd1a..635bcfa5 100644 --- a/app/src/main/kotlin/com/pitchedapps/frost/intro/IntroMainFragments.kt +++ b/app/src/main/kotlin/com/pitchedapps/frost/intro/IntroMainFragments.kt @@ -30,10 +30,13 @@ import androidx.fragment.app.Fragment import ca.allanwang.kau.kotlin.LazyResettableRegistry import ca.allanwang.kau.utils.Kotterknife import ca.allanwang.kau.utils.bindViewResettable +import ca.allanwang.kau.utils.setIcon import ca.allanwang.kau.utils.setOnSingleTapListener +import com.mikepenz.google_material_typeface_library.GoogleMaterial import com.pitchedapps.frost.R import com.pitchedapps.frost.activities.IntroActivity import com.pitchedapps.frost.utils.Prefs +import kotlinx.android.synthetic.main.intro_analytics.* /** * Created by Allan Wang on 2017-07-28. @@ -56,7 +59,8 @@ abstract class BaseIntroFragment(val layoutRes: Int) : Fragment() { val increment = maxTranslation / views.size views.forEachIndexed { i, group -> group.forEach { - it.translationX = if (offset > 0) -maxTranslation + i * increment else -(i + 1) * increment + it.translationX = + if (offset > 0) -maxTranslation + i * increment else -(i + 1) * increment it.alpha = 1 - Math.abs(offset) } } @@ -73,9 +77,14 @@ abstract class BaseIntroFragment(val layoutRes: Int) : Fragment() { protected val image: ImageView by bindViewResettable(R.id.intro_image) protected val desc: TextView by bindViewResettable(R.id.intro_desc) - protected fun defaultViewArray(): Array> = arrayOf(arrayOf(title), arrayOf(image), arrayOf(desc)) + protected fun defaultViewArray(): Array> = + arrayOf(arrayOf(title), arrayOf(image), arrayOf(desc)) - override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { + override fun onCreateView( + inflater: LayoutInflater, + container: ViewGroup?, + savedInstanceState: Bundle? + ): View? { return inflater.inflate(layoutRes, container, false) } @@ -128,6 +137,31 @@ class IntroFragmentWelcome : BaseIntroFragment(R.layout.intro_welcome) { } } +class IntroFragmentAnalytics : BaseIntroFragment(R.layout.intro_analytics) { + + val container: ConstraintLayout by bindViewResettable(R.id.intro_end_container) + + override fun viewArray(): Array> = arrayOf( + arrayOf(title), arrayOf(image), + arrayOf(intro_switch), arrayOf(desc) + ) + + override fun themeFragmentImpl() { + super.themeFragmentImpl() + image.imageTintList = ColorStateList.valueOf(Prefs.textColor) + } + + @SuppressLint("ClickableViewAccessibility") + override fun onViewCreated(view: View, savedInstanceState: Bundle?) { + super.onViewCreated(view, savedInstanceState) + image.setIcon(GoogleMaterial.Icon.gmd_bug_report, 120) + intro_switch.isSelected = Prefs.analytics + intro_switch.setOnCheckedChangeListener { _, isChecked -> + Prefs.analytics = isChecked + } + } +} + class IntroFragmentEnd : BaseIntroFragment(R.layout.intro_end) { val container: ConstraintLayout by bindViewResettable(R.id.intro_end_container) -- cgit v1.2.3 From dd391481881683e7b58a69ef2b9b671fb6197208 Mon Sep 17 00:00:00 2001 From: Allan Wang Date: Sun, 4 Aug 2019 22:45:18 -0700 Subject: Switch theme when selected in intro --- .../com/pitchedapps/frost/activities/IntroActivity.kt | 2 ++ .../com/pitchedapps/frost/intro/IntroMainFragments.kt | 2 +- .../main/kotlin/com/pitchedapps/frost/utils/Utils.kt | 18 +++++++++++------- app/src/main/res/layout/intro_analytics.xml | 2 +- app/src/main/res/layout/intro_end.xml | 2 +- 5 files changed, 16 insertions(+), 10 deletions(-) (limited to 'app/src/main/kotlin/com/pitchedapps/frost/intro/IntroMainFragments.kt') diff --git a/app/src/main/kotlin/com/pitchedapps/frost/activities/IntroActivity.kt b/app/src/main/kotlin/com/pitchedapps/frost/activities/IntroActivity.kt index 2844d833..94f8d6c1 100644 --- a/app/src/main/kotlin/com/pitchedapps/frost/activities/IntroActivity.kt +++ b/app/src/main/kotlin/com/pitchedapps/frost/activities/IntroActivity.kt @@ -55,6 +55,7 @@ import com.pitchedapps.frost.utils.Prefs import com.pitchedapps.frost.utils.cookies import com.pitchedapps.frost.utils.launchNewTask import com.pitchedapps.frost.utils.loadAssets +import com.pitchedapps.frost.utils.setFrostTheme import com.pitchedapps.frost.widgets.NotificationWidget import kotlinx.coroutines.NonCancellable import kotlinx.coroutines.launch @@ -113,6 +114,7 @@ class IntroActivity : KauBaseActivity(), ViewPager.PageTransformer, ViewPager.On indicator.setColour(Prefs.textColor) indicator.invalidate() fragments.forEach { it.themeFragment() } + setFrostTheme(true) } /** diff --git a/app/src/main/kotlin/com/pitchedapps/frost/intro/IntroMainFragments.kt b/app/src/main/kotlin/com/pitchedapps/frost/intro/IntroMainFragments.kt index 635bcfa5..22dd086b 100644 --- a/app/src/main/kotlin/com/pitchedapps/frost/intro/IntroMainFragments.kt +++ b/app/src/main/kotlin/com/pitchedapps/frost/intro/IntroMainFragments.kt @@ -139,7 +139,7 @@ class IntroFragmentWelcome : BaseIntroFragment(R.layout.intro_welcome) { class IntroFragmentAnalytics : BaseIntroFragment(R.layout.intro_analytics) { - val container: ConstraintLayout by bindViewResettable(R.id.intro_end_container) + val container: ConstraintLayout by bindViewResettable(R.id.intro_analytics_container) override fun viewArray(): Array> = arrayOf( arrayOf(title), arrayOf(image), diff --git a/app/src/main/kotlin/com/pitchedapps/frost/utils/Utils.kt b/app/src/main/kotlin/com/pitchedapps/frost/utils/Utils.kt index 0574aeae..8544aac3 100644 --- a/app/src/main/kotlin/com/pitchedapps/frost/utils/Utils.kt +++ b/app/src/main/kotlin/com/pitchedapps/frost/utils/Utils.kt @@ -137,7 +137,8 @@ private inline fun Context.launchWebOverlay fun Context.launchWebOverlay(url: String) = launchWebOverlayImpl(url) -fun Context.launchWebOverlayDesktop(url: String) = launchWebOverlayImpl(url) +fun Context.launchWebOverlayDesktop(url: String) = + launchWebOverlayImpl(url) private fun Context.fadeBundle() = ActivityOptions.makeCustomAnimation( this, @@ -154,9 +155,11 @@ fun Context.launchImageActivity(imageUrl: String, text: String? = null, cookie: } fun Activity.launchTabCustomizerActivity() { - startActivityForResult(SettingsActivity.ACTIVITY_REQUEST_TABS, bundleBuilder = { - with(fadeBundle()) - }) + startActivityForResult( + SettingsActivity.ACTIVITY_REQUEST_TABS, + bundleBuilder = { + with(fadeBundle()) + }) } fun WebOverlayActivity.url(): String { @@ -165,11 +168,12 @@ fun WebOverlayActivity.url(): String { fun Activity.setFrostTheme(forceTransparent: Boolean = false) { val isTransparent = - (Color.alpha(Prefs.bgColor) != 255) || (Color.alpha(Prefs.headerColor) != 255) || forceTransparent - if (Prefs.bgColor.isColorDark) + forceTransparent || (Color.alpha(Prefs.bgColor) != 255) || (Color.alpha(Prefs.headerColor) != 255) + if (Prefs.bgColor.isColorDark) { setTheme(if (isTransparent) R.style.FrostTheme_Transparent else R.style.FrostTheme) - else + } else { setTheme(if (isTransparent) R.style.FrostTheme_Light_Transparent else R.style.FrostTheme_Light) + } } class ActivityThemeUtils { diff --git a/app/src/main/res/layout/intro_analytics.xml b/app/src/main/res/layout/intro_analytics.xml index e0998721..a62a0b0f 100644 --- a/app/src/main/res/layout/intro_analytics.xml +++ b/app/src/main/res/layout/intro_analytics.xml @@ -2,7 +2,7 @@ diff --git a/app/src/main/res/layout/intro_end.xml b/app/src/main/res/layout/intro_end.xml index 501cf1a9..fbaa2042 100644 --- a/app/src/main/res/layout/intro_end.xml +++ b/app/src/main/res/layout/intro_end.xml @@ -2,8 +2,8 @@