summaryrefslogtreecommitdiffhomepage
path: root/android
diff options
context:
space:
mode:
authorJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2020-05-29 14:54:25 +0000
committerJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2020-06-02 16:32:17 +0000
commitf6a30737bf8075dc403eca0dcca0063275f768f1 (patch)
tree6198041a52f1ac4ae0f21a527e34c5ee38bd490f /android
parentd6fb0eb227039a2e744e3a2329ee62a7f4b6bd7c (diff)
downloadmullvadvpn-f6a30737bf8075dc403eca0dcca0063275f768f1.tar.xz
mullvadvpn-f6a30737bf8075dc403eca0dcca0063275f768f1.zip
Add scroll animation to Preferences screen
Diffstat (limited to 'android')
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/ui/PreferencesFragment.kt4
-rw-r--r--android/src/main/res/layout/preferences.xml209
2 files changed, 125 insertions, 88 deletions
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/PreferencesFragment.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/PreferencesFragment.kt
index 787ddf4d9e..f996994e03 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/PreferencesFragment.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/PreferencesFragment.kt
@@ -10,6 +10,7 @@ import net.mullvad.mullvadvpn.model.Settings
class PreferencesFragment : ServiceDependentFragment(OnNoService.GoBack) {
private lateinit var allowLanToggle: CellSwitch
private lateinit var autoConnectToggle: CellSwitch
+ private lateinit var titleController: CollapsibleTitleController
override fun onSafelyCreateView(
inflater: LayoutInflater,
@@ -48,6 +49,8 @@ class PreferencesFragment : ServiceDependentFragment(OnNoService.GoBack) {
updateUi(settings)
}
+ titleController = CollapsibleTitleController(view)
+
return view
}
@@ -59,6 +62,7 @@ class PreferencesFragment : ServiceDependentFragment(OnNoService.GoBack) {
}
override fun onSafelyDestroyView() {
+ titleController.onDestroy()
settingsListener.unsubscribe(this)
}
diff --git a/android/src/main/res/layout/preferences.xml b/android/src/main/res/layout/preferences.xml
index 33845d4e09..ad51a62277 100644
--- a/android/src/main/res/layout/preferences.xml
+++ b/android/src/main/res/layout/preferences.xml
@@ -1,93 +1,126 @@
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:background="@color/darkBlue"
- android:orientation="vertical"
- android:gravity="left"
- android:elevation="2dp">
- <LinearLayout android:id="@+id/back"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:padding="12dp"
- android:orientation="horizontal"
- android:gravity="center_vertical | left"
- android:clickable="true"
- android:background="?android:attr/selectableItemBackground">
- <ImageView android:layout_width="24dp"
- android:layout_height="24dp"
- android:layout_marginRight="8dp"
- android:src="@drawable/icon_back" />
- <TextView android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:textColor="@color/white60"
- android:textSize="13sp"
- android:textStyle="bold"
- android:text="@string/settings" />
- </LinearLayout>
- <TextView android:layout_width="wrap_content"
+<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:background="@color/darkBlue"
+ android:gravity="left"
+ android:elevation="2dp">
+ <TextView android:id="@+id/title"
+ android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:layout_marginTop="4dp"
- android:layout_marginLeft="24dp"
android:textColor="@color/white"
- android:textSize="32sp"
+ android:textSize="16sp"
android:textStyle="bold"
android:text="@string/settings_preferences" />
- <LinearLayout android:id="@+id/auto_connect"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_marginTop="24dp"
- android:paddingHorizontal="16dp"
- android:background="@drawable/cell_button_background"
- android:gravity="center">
- <TextView android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_weight="1"
- android:paddingHorizontal="8dp"
- android:paddingVertical="17dp"
- android:textColor="@color/white"
- android:textSize="20sp"
- android:textStyle="bold"
- android:text="@string/auto_connect" />
- <net.mullvad.mullvadvpn.ui.CellSwitch android:id="@+id/auto_connect_toggle"
- android:layout_width="52dp"
- android:layout_height="32dp"
- android:layout_weight="0" />
- </LinearLayout>
- <TextView android:id="@+id/auto_connect_footer"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:paddingTop="8dp"
- android:paddingHorizontal="24dp"
- android:textColor="@color/white60"
- android:textSize="13sp"
- android:text="@string/auto_connect_footer" />
- <LinearLayout android:id="@+id/allow_lan"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_marginTop="24dp"
- android:paddingHorizontal="16dp"
- android:background="@drawable/cell_button_background"
- android:gravity="center">
- <TextView android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_weight="1"
- android:paddingHorizontal="8dp"
- android:paddingVertical="17dp"
- android:textColor="@color/white"
- android:textSize="20sp"
- android:textStyle="bold"
- android:text="@string/local_network_sharing" />
- <net.mullvad.mullvadvpn.ui.CellSwitch android:id="@+id/allow_lan_toggle"
- android:layout_width="52dp"
- android:layout_height="32dp"
- android:layout_weight="0" />
+ <LinearLayout android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:orientation="vertical">
+ <FrameLayout android:layout_width="match_parent"
+ android:layout_height="wrap_content">
+ <LinearLayout android:id="@+id/back"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:padding="12dp"
+ android:orientation="horizontal"
+ android:gravity="center_vertical | left"
+ android:clickable="true"
+ android:background="?android:attr/selectableItemBackground">
+ <ImageView android:layout_width="24dp"
+ android:layout_height="24dp"
+ android:layout_marginRight="8dp"
+ android:src="@drawable/icon_back" />
+ <TextView android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:textColor="@color/white60"
+ android:textSize="13sp"
+ android:textStyle="bold"
+ android:text="@string/settings" />
+ </LinearLayout>
+ <TextView android:id="@+id/collapsed_title"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginHorizontal="4dp"
+ android:layout_gravity="center"
+ android:textColor="@color/white"
+ android:textSize="16sp"
+ android:textStyle="bold"
+ android:text="@string/settings_preferences" />
+ </FrameLayout>
+ <net.mullvad.mullvadvpn.ui.widget.ListenableScrollView android:id="@+id/scroll_area"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent">
+
+ <LinearLayout android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:paddingBottom="24dp"
+ android:orientation="vertical">
+ <TextView android:id="@+id/expanded_title"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="4dp"
+ android:layout_marginLeft="24dp"
+ android:textColor="@color/white"
+ android:textSize="32sp"
+ android:textStyle="bold"
+ android:text="@string/settings_preferences" />
+ <LinearLayout android:id="@+id/auto_connect"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="24dp"
+ android:paddingHorizontal="16dp"
+ android:background="@drawable/cell_button_background"
+ android:gravity="center">
+ <TextView android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:paddingHorizontal="8dp"
+ android:paddingVertical="17dp"
+ android:textColor="@color/white"
+ android:textSize="20sp"
+ android:textStyle="bold"
+ android:text="@string/auto_connect" />
+ <net.mullvad.mullvadvpn.ui.CellSwitch android:id="@+id/auto_connect_toggle"
+ android:layout_width="52dp"
+ android:layout_height="32dp"
+ android:layout_weight="0" />
+ </LinearLayout>
+ <TextView android:id="@+id/auto_connect_footer"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:paddingTop="8dp"
+ android:paddingHorizontal="24dp"
+ android:textColor="@color/white60"
+ android:textSize="13sp"
+ android:text="@string/auto_connect_footer" />
+ <LinearLayout android:id="@+id/allow_lan"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="24dp"
+ android:paddingHorizontal="16dp"
+ android:background="@drawable/cell_button_background"
+ android:gravity="center">
+ <TextView android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:paddingHorizontal="8dp"
+ android:paddingVertical="17dp"
+ android:textColor="@color/white"
+ android:textSize="20sp"
+ android:textStyle="bold"
+ android:text="@string/local_network_sharing" />
+ <net.mullvad.mullvadvpn.ui.CellSwitch android:id="@+id/allow_lan_toggle"
+ android:layout_width="52dp"
+ android:layout_height="32dp"
+ android:layout_weight="0" />
+ </LinearLayout>
+ <TextView android:id="@+id/allow_lan_footer"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:paddingTop="8dp"
+ android:paddingHorizontal="24dp"
+ android:textColor="@color/white60"
+ android:textSize="13sp"
+ android:text="@string/allow_lan_footer" />
+ </LinearLayout>
+ </net.mullvad.mullvadvpn.ui.widget.ListenableScrollView>
</LinearLayout>
- <TextView android:id="@+id/allow_lan_footer"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:paddingTop="8dp"
- android:paddingHorizontal="24dp"
- android:textColor="@color/white60"
- android:textSize="13sp"
- android:text="@string/allow_lan_footer" />
-</LinearLayout>
+</FrameLayout>