summaryrefslogtreecommitdiffhomepage
path: root/android
diff options
context:
space:
mode:
authorAleksandr Granin <aleksandr@mullvad.net>2021-02-12 14:22:45 +0100
committerAleksandr Granin <aleksandr@mullvad.net>2021-02-12 14:22:45 +0100
commit5511ed2aada2e542b470ce9c8ded00441038a103 (patch)
treecf70ed6584c36f8f53c021c1a6b85b614bc0a44d /android
parent1aa3055826fe670bad20fa069e70dfb1e1fcdd18 (diff)
parent783bcc46c4271d81037a796c94d6dbf775569846 (diff)
downloadmullvadvpn-5511ed2aada2e542b470ce9c8ded00441038a103.tar.xz
mullvadvpn-5511ed2aada2e542b470ce9c8ded00441038a103.zip
Merge branch 'android-improve-transition-animation'
Diffstat (limited to 'android')
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/ui/ProblemReportFragment.kt4
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/ui/ServiceAwareFragment.kt4
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/ui/ViewLogsFragment.kt4
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/ui/fragments/BaseFragment.kt27
-rw-r--r--android/src/main/res/anim/do_nothing.xml2
-rw-r--r--android/src/main/res/anim/fade_in.xml2
-rw-r--r--android/src/main/res/anim/fade_out.xml2
-rw-r--r--android/src/main/res/anim/fragment_enter_from_bottom.xml2
-rw-r--r--android/src/main/res/anim/fragment_enter_from_right.xml2
-rw-r--r--android/src/main/res/anim/fragment_exit_to_bottom.xml2
-rw-r--r--android/src/main/res/anim/fragment_exit_to_right.xml2
-rw-r--r--android/src/main/res/anim/fragment_half_enter_from_left.xml2
-rw-r--r--android/src/main/res/anim/fragment_half_exit_to_left.xml2
-rw-r--r--android/src/main/res/layout/account.xml3
-rw-r--r--android/src/main/res/layout/advanced.xml3
-rw-r--r--android/src/main/res/layout/confirm_no_email.xml3
-rw-r--r--android/src/main/res/layout/confirm_public_dns.xml3
-rw-r--r--android/src/main/res/layout/preferences.xml3
-rw-r--r--android/src/main/res/layout/problem_report.xml3
-rw-r--r--android/src/main/res/layout/redeem_voucher.xml3
-rw-r--r--android/src/main/res/layout/select_location.xml3
-rw-r--r--android/src/main/res/layout/settings.xml3
-rw-r--r--android/src/main/res/layout/split_tunneling.xml1
-rw-r--r--android/src/main/res/layout/view_logs.xml1
-rw-r--r--android/src/main/res/layout/wireguard_key.xml1
-rw-r--r--android/src/main/res/values/integers.xml4
26 files changed, 55 insertions, 36 deletions
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/ProblemReportFragment.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/ProblemReportFragment.kt
index ce99256e19..cd1a64e5ad 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/ProblemReportFragment.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/ProblemReportFragment.kt
@@ -17,14 +17,14 @@ import android.widget.EditText
import android.widget.ScrollView
import android.widget.TextView
import android.widget.ViewSwitcher
-import androidx.fragment.app.Fragment
import kotlin.properties.Delegates.observable
import kotlinx.coroutines.CompletableDeferred
import net.mullvad.mullvadvpn.R
import net.mullvad.mullvadvpn.dataproxy.MullvadProblemReport
+import net.mullvad.mullvadvpn.ui.fragments.BaseFragment
import net.mullvad.mullvadvpn.util.JobTracker
-class ProblemReportFragment : Fragment() {
+class ProblemReportFragment : BaseFragment() {
private val jobTracker = JobTracker()
private var showingEmail by observable(false) { _, oldValue, newValue ->
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/ServiceAwareFragment.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/ServiceAwareFragment.kt
index aa70bfd4ca..a1003f511d 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/ServiceAwareFragment.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/ServiceAwareFragment.kt
@@ -1,10 +1,10 @@
package net.mullvad.mullvadvpn.ui
import android.content.Context
-import androidx.fragment.app.Fragment
+import net.mullvad.mullvadvpn.ui.fragments.BaseFragment
import net.mullvad.mullvadvpn.util.JobTracker
-abstract class ServiceAwareFragment : Fragment() {
+abstract class ServiceAwareFragment : BaseFragment() {
val jobTracker = JobTracker()
open val isSecureScreen = false
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/ViewLogsFragment.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/ViewLogsFragment.kt
index 43a31ccfad..994f432a80 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/ViewLogsFragment.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/ViewLogsFragment.kt
@@ -6,12 +6,12 @@ import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.EditText
-import androidx.fragment.app.Fragment
import net.mullvad.mullvadvpn.R
import net.mullvad.mullvadvpn.dataproxy.MullvadProblemReport
+import net.mullvad.mullvadvpn.ui.fragments.BaseFragment
import net.mullvad.mullvadvpn.util.JobTracker
-class ViewLogsFragment : Fragment() {
+class ViewLogsFragment : BaseFragment() {
private val jobTracker = JobTracker()
private lateinit var problemReport: MullvadProblemReport
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/fragments/BaseFragment.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/fragments/BaseFragment.kt
new file mode 100644
index 0000000000..1d615dbde0
--- /dev/null
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/fragments/BaseFragment.kt
@@ -0,0 +1,27 @@
+package net.mullvad.mullvadvpn.ui.fragments
+
+import android.view.animation.Animation
+import androidx.core.view.ViewCompat
+import androidx.fragment.app.Fragment
+import net.mullvad.mullvadvpn.R
+
+abstract class BaseFragment : Fragment() {
+ override fun onCreateAnimation(transit: Int, enter: Boolean, nextAnim: Int): Animation? {
+ val zAdjustment = if (animationsToAdjustZorder.contains(nextAnim)) {
+ 1f
+ } else {
+ 0f
+ }
+ ViewCompat.setTranslationZ(requireView(), zAdjustment)
+ return super.onCreateAnimation(transit, enter, nextAnim)
+ }
+
+ companion object {
+ private val animationsToAdjustZorder = listOf(
+ R.anim.fragment_enter_from_right,
+ R.anim.fragment_exit_to_right,
+ R.anim.fragment_enter_from_bottom,
+ R.anim.fragment_exit_to_bottom
+ )
+ }
+}
diff --git a/android/src/main/res/anim/do_nothing.xml b/android/src/main/res/anim/do_nothing.xml
index 7c0037b9b7..8cb6866d6d 100644
--- a/android/src/main/res/anim/do_nothing.xml
+++ b/android/src/main/res/anim/do_nothing.xml
@@ -2,5 +2,5 @@
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate android:fromYDelta="0"
android:toYDelta="0"
- android:duration="450" />
+ android:duration="@integer/transition_animation_duration" />
</set>
diff --git a/android/src/main/res/anim/fade_in.xml b/android/src/main/res/anim/fade_in.xml
index 0bc6d1bdd6..d9b78f9197 100644
--- a/android/src/main/res/anim/fade_in.xml
+++ b/android/src/main/res/anim/fade_in.xml
@@ -2,5 +2,5 @@
<set xmlns:android="http://schemas.android.com/apk/res/android">
<alpha android:fromAlpha="0.0"
android:toAlpha="1.0"
- android:duration="450" />
+ android:duration="@integer/transition_animation_duration" />
</set>
diff --git a/android/src/main/res/anim/fade_out.xml b/android/src/main/res/anim/fade_out.xml
index 80e9c0fe92..7c164cb338 100644
--- a/android/src/main/res/anim/fade_out.xml
+++ b/android/src/main/res/anim/fade_out.xml
@@ -2,5 +2,5 @@
<set xmlns:android="http://schemas.android.com/apk/res/android">
<alpha android:fromAlpha="1.0"
android:toAlpha="0.0"
- android:duration="450" />
+ android:duration="@integer/transition_animation_duration" />
</set>
diff --git a/android/src/main/res/anim/fragment_enter_from_bottom.xml b/android/src/main/res/anim/fragment_enter_from_bottom.xml
index 783d5b5021..337392e881 100644
--- a/android/src/main/res/anim/fragment_enter_from_bottom.xml
+++ b/android/src/main/res/anim/fragment_enter_from_bottom.xml
@@ -2,5 +2,5 @@
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate android:fromYDelta="100%p"
android:toYDelta="0"
- android:duration="450" />
+ android:duration="@integer/transition_animation_duration" />
</set>
diff --git a/android/src/main/res/anim/fragment_enter_from_right.xml b/android/src/main/res/anim/fragment_enter_from_right.xml
index 654cfcbf02..5ba3b5c3f8 100644
--- a/android/src/main/res/anim/fragment_enter_from_right.xml
+++ b/android/src/main/res/anim/fragment_enter_from_right.xml
@@ -2,5 +2,5 @@
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate android:fromXDelta="100%p"
android:toXDelta="0"
- android:duration="450" />
+ android:duration="@integer/transition_animation_duration" />
</set>
diff --git a/android/src/main/res/anim/fragment_exit_to_bottom.xml b/android/src/main/res/anim/fragment_exit_to_bottom.xml
index 7c94e143d8..dc1261114a 100644
--- a/android/src/main/res/anim/fragment_exit_to_bottom.xml
+++ b/android/src/main/res/anim/fragment_exit_to_bottom.xml
@@ -2,5 +2,5 @@
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate android:fromYDelta="0"
android:toYDelta="100%p"
- android:duration="450" />
+ android:duration="@integer/transition_animation_duration" />
</set>
diff --git a/android/src/main/res/anim/fragment_exit_to_right.xml b/android/src/main/res/anim/fragment_exit_to_right.xml
index 6175e53215..d794200982 100644
--- a/android/src/main/res/anim/fragment_exit_to_right.xml
+++ b/android/src/main/res/anim/fragment_exit_to_right.xml
@@ -2,5 +2,5 @@
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate android:fromXDelta="0"
android:toXDelta="100%p"
- android:duration="450" />
+ android:duration="@integer/transition_animation_duration" />
</set>
diff --git a/android/src/main/res/anim/fragment_half_enter_from_left.xml b/android/src/main/res/anim/fragment_half_enter_from_left.xml
index d4e56b1e5d..67e7b7364e 100644
--- a/android/src/main/res/anim/fragment_half_enter_from_left.xml
+++ b/android/src/main/res/anim/fragment_half_enter_from_left.xml
@@ -2,5 +2,5 @@
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate android:fromXDelta="-50%p"
android:toXDelta="0"
- android:duration="450" />
+ android:duration="@integer/transition_animation_duration" />
</set>
diff --git a/android/src/main/res/anim/fragment_half_exit_to_left.xml b/android/src/main/res/anim/fragment_half_exit_to_left.xml
index c50c5e7ebc..bfac81df2e 100644
--- a/android/src/main/res/anim/fragment_half_exit_to_left.xml
+++ b/android/src/main/res/anim/fragment_half_exit_to_left.xml
@@ -2,5 +2,5 @@
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate android:fromXDelta="0%p"
android:toXDelta="-50%p"
- android:duration="450" />
+ android:duration="@integer/transition_animation_duration" />
</set>
diff --git a/android/src/main/res/layout/account.xml b/android/src/main/res/layout/account.xml
index 1437611f06..ac10c154be 100644
--- a/android/src/main/res/layout/account.xml
+++ b/android/src/main/res/layout/account.xml
@@ -3,8 +3,7 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/darkBlue"
- android:gravity="left"
- android:elevation="2dp">
+ android:gravity="left">
<TextView android:id="@+id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
diff --git a/android/src/main/res/layout/advanced.xml b/android/src/main/res/layout/advanced.xml
index 70359352e2..42f94b7b7f 100644
--- a/android/src/main/res/layout/advanced.xml
+++ b/android/src/main/res/layout/advanced.xml
@@ -3,8 +3,7 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/darkBlue"
- android:gravity="left"
- android:elevation="2dp">
+ android:gravity="left">
<TextView android:id="@+id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
diff --git a/android/src/main/res/layout/confirm_no_email.xml b/android/src/main/res/layout/confirm_no_email.xml
index 9b8986679b..ff538ff28b 100644
--- a/android/src/main/res/layout/confirm_no_email.xml
+++ b/android/src/main/res/layout/confirm_no_email.xml
@@ -7,8 +7,7 @@
android:padding="30dp"
android:background="@drawable/dialog_background"
android:orientation="vertical"
- android:gravity="left"
- android:elevation="2dp">
+ android:gravity="left">
<ImageView android:layout_width="44dp"
android:layout_height="44dp"
android:layout_marginTop="8dp"
diff --git a/android/src/main/res/layout/confirm_public_dns.xml b/android/src/main/res/layout/confirm_public_dns.xml
index 90d72e722b..90b1dfda08 100644
--- a/android/src/main/res/layout/confirm_public_dns.xml
+++ b/android/src/main/res/layout/confirm_public_dns.xml
@@ -7,8 +7,7 @@
android:padding="30dp"
android:background="@drawable/dialog_background"
android:orientation="vertical"
- android:gravity="left"
- android:elevation="2dp">
+ android:gravity="left">
<ImageView android:layout_width="44dp"
android:layout_height="44dp"
android:layout_marginTop="8dp"
diff --git a/android/src/main/res/layout/preferences.xml b/android/src/main/res/layout/preferences.xml
index b7423cb403..398a485567 100644
--- a/android/src/main/res/layout/preferences.xml
+++ b/android/src/main/res/layout/preferences.xml
@@ -3,8 +3,7 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/darkBlue"
- android:gravity="left"
- android:elevation="2dp">
+ android:gravity="left">
<TextView android:id="@+id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
diff --git a/android/src/main/res/layout/problem_report.xml b/android/src/main/res/layout/problem_report.xml
index fd0ce0864a..15176ecddf 100644
--- a/android/src/main/res/layout/problem_report.xml
+++ b/android/src/main/res/layout/problem_report.xml
@@ -3,8 +3,7 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/darkBlue"
- android:gravity="left"
- android:elevation="2dp">
+ android:gravity="left">
<TextView android:id="@+id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
diff --git a/android/src/main/res/layout/redeem_voucher.xml b/android/src/main/res/layout/redeem_voucher.xml
index eedd22ac11..c3e081196e 100644
--- a/android/src/main/res/layout/redeem_voucher.xml
+++ b/android/src/main/res/layout/redeem_voucher.xml
@@ -8,8 +8,7 @@
android:padding="30dp"
android:background="@drawable/dialog_background"
android:orientation="vertical"
- android:gravity="left"
- android:elevation="2dp">
+ android:gravity="left">
<TextView android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="0"
diff --git a/android/src/main/res/layout/select_location.xml b/android/src/main/res/layout/select_location.xml
index 1bd76268db..25eebf7648 100644
--- a/android/src/main/res/layout/select_location.xml
+++ b/android/src/main/res/layout/select_location.xml
@@ -2,8 +2,7 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/darkBlue"
- android:gravity="left"
- android:elevation="1dp">
+ android:gravity="left">
<TextView android:id="@+id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
diff --git a/android/src/main/res/layout/settings.xml b/android/src/main/res/layout/settings.xml
index 3478aaa3f5..4657b8cbf0 100644
--- a/android/src/main/res/layout/settings.xml
+++ b/android/src/main/res/layout/settings.xml
@@ -3,8 +3,7 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/darkBlue"
- android:gravity="left"
- android:elevation="1dp">
+ android:gravity="left">
<TextView android:id="@+id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
diff --git a/android/src/main/res/layout/split_tunneling.xml b/android/src/main/res/layout/split_tunneling.xml
index 7d080be09c..9875a25774 100644
--- a/android/src/main/res/layout/split_tunneling.xml
+++ b/android/src/main/res/layout/split_tunneling.xml
@@ -3,7 +3,6 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/darkBlue"
- android:elevation="3dp"
android:gravity="left">
<TextView android:id="@+id/title"
android:layout_width="wrap_content"
diff --git a/android/src/main/res/layout/view_logs.xml b/android/src/main/res/layout/view_logs.xml
index 1175e2da17..cadcb702e7 100644
--- a/android/src/main/res/layout/view_logs.xml
+++ b/android/src/main/res/layout/view_logs.xml
@@ -4,7 +4,6 @@
android:layout_height="match_parent"
android:background="@color/darkBlue"
android:gravity="left"
- android:elevation="3dp"
android:orientation="vertical">
<net.mullvad.mullvadvpn.ui.widget.BackButton android:id="@+id/back"
android:layout_width="wrap_content"
diff --git a/android/src/main/res/layout/wireguard_key.xml b/android/src/main/res/layout/wireguard_key.xml
index ca8c88a015..73ba9647bb 100644
--- a/android/src/main/res/layout/wireguard_key.xml
+++ b/android/src/main/res/layout/wireguard_key.xml
@@ -3,7 +3,6 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/darkBlue"
- android:elevation="3dp"
android:gravity="left">
<TextView android:id="@+id/title"
android:layout_width="wrap_content"
diff --git a/android/src/main/res/values/integers.xml b/android/src/main/res/values/integers.xml
new file mode 100644
index 0000000000..1ae43d4d23
--- /dev/null
+++ b/android/src/main/res/values/integers.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <integer name="transition_animation_duration">450</integer>
+</resources>