summaryrefslogtreecommitdiffhomepage
path: root/android/src
diff options
context:
space:
mode:
authorJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2020-07-03 01:08:10 +0000
committerJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2020-07-15 12:52:17 +0000
commit28d02765ed6d0cb7111e6debea123d24d9d9f205 (patch)
treec4bfa3144e46a88e097ca97898174df0dd0c0bb0 /android/src
parent7ee745f779884571b9c89f906601800ced971c47 (diff)
downloadmullvadvpn-28d02765ed6d0cb7111e6debea123d24d9d9f205.tar.xz
mullvadvpn-28d02765ed6d0cb7111e6debea123d24d9d9f205.zip
Animate "Exclude applications" title
Diffstat (limited to 'android/src')
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/ui/SplitTunnellingFragment.kt26
1 files changed, 25 insertions, 1 deletions
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/SplitTunnellingFragment.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/SplitTunnellingFragment.kt
index 91cee326b8..de095b2fc0 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/SplitTunnellingFragment.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/SplitTunnellingFragment.kt
@@ -1,5 +1,8 @@
package net.mullvad.mullvadvpn.ui
+import android.animation.Animator
+import android.animation.Animator.AnimatorListener
+import android.animation.ObjectAnimator
import android.content.Context
import android.os.Bundle
import android.support.v7.widget.LinearLayoutManager
@@ -12,7 +15,21 @@ import net.mullvad.mullvadvpn.ui.widget.CustomRecyclerView
import net.mullvad.mullvadvpn.util.AdapterWithHeader
class SplitTunnellingFragment : ServiceDependentFragment(OnNoService.GoToLaunchScreen) {
+ private val excludeApplicationsFadeOutListener = object : AnimatorListener {
+ override fun onAnimationCancel(animation: Animator) {}
+ override fun onAnimationRepeat(animation: Animator) {}
+ override fun onAnimationStart(animation: Animator) {}
+
+ override fun onAnimationEnd(animation: Animator) {
+ if (!appListAdapter.enabled) {
+ excludeApplications.visibility = View.GONE
+ }
+ }
+ }
+
private lateinit var appListAdapter: AppListAdapter
+ private lateinit var excludeApplicationsFadeOut: ObjectAnimator
+
private lateinit var titleController: CollapsibleTitleController
private lateinit var excludeApplications: View
@@ -59,6 +76,12 @@ class SplitTunnellingFragment : ServiceDependentFragment(OnNoService.GoToLaunchS
private fun configureHeader(header: View) {
excludeApplications = header.findViewById(R.id.exclude_applications)
+ excludeApplicationsFadeOut =
+ ObjectAnimator.ofFloat(excludeApplications, "alpha", 1.0f, 0.0f).apply {
+ addListener(excludeApplicationsFadeOutListener)
+ setDuration(200)
+ }
+
header.findViewById<CellSwitch>(R.id.enabled_toggle).listener = { toggleState ->
when (toggleState) {
CellSwitch.State.ON -> enable()
@@ -70,10 +93,11 @@ class SplitTunnellingFragment : ServiceDependentFragment(OnNoService.GoToLaunchS
private fun enable() {
appListAdapter.enabled = true
excludeApplications.visibility = View.VISIBLE
+ excludeApplicationsFadeOut.reverse()
}
private fun disable() {
appListAdapter.enabled = false
- excludeApplications.visibility = View.GONE
+ excludeApplicationsFadeOut.start()
}
}