summaryrefslogtreecommitdiffhomepage
path: root/android
diff options
context:
space:
mode:
Diffstat (limited to 'android')
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/ui/SettingsFragment.kt7
-rw-r--r--android/src/main/res/layout/settings.xml374
2 files changed, 206 insertions, 175 deletions
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/SettingsFragment.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/SettingsFragment.kt
index e4955a44d0..edc8bf518a 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/SettingsFragment.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/SettingsFragment.kt
@@ -22,6 +22,7 @@ class SettingsFragment : ServiceAwareFragment() {
private lateinit var preferencesMenu: View
private lateinit var advancedMenu: View
private lateinit var remainingTimeLabel: RemainingTimeLabel
+ private lateinit var titleController: CollapsibleTitleController
private var active = false
@@ -87,6 +88,7 @@ class SettingsFragment : ServiceAwareFragment() {
appVersionLabel = view.findViewById<TextView>(R.id.app_version_label)
appVersionFooter = view.findViewById(R.id.app_version_footer)
remainingTimeLabel = RemainingTimeLabel(parentActivity, view)
+ titleController = CollapsibleTitleController(view)
return view
}
@@ -110,6 +112,11 @@ class SettingsFragment : ServiceAwareFragment() {
super.onPause()
}
+ override fun onDestroyView() {
+ super.onDestroyView()
+ titleController.onDestroy()
+ }
+
private fun configureListeners() {
accountCache?.apply {
onAccountNumberChange.subscribe(this@SettingsFragment) { account ->
diff --git a/android/src/main/res/layout/settings.xml b/android/src/main/res/layout/settings.xml
index a516111dc5..13488a2b43 100644
--- a/android/src/main/res/layout/settings.xml
+++ b/android/src/main/res/layout/settings.xml
@@ -1,190 +1,214 @@
-<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="1dp">
- <ImageButton android:id="@+id/close"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:padding="12dp"
- android:background="?android:attr/selectableItemBackground"
- android:src="@drawable/icon_close" />
- <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="1dp">
+ <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" />
- <ScrollView android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_marginTop="12dp">
- <LinearLayout android:layout_width="match_parent"
+ <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">
+ <ImageButton android:id="@+id/close"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:padding="12dp"
+ android:background="?android:attr/selectableItemBackground"
+ android:src="@drawable/icon_close" />
+ <TextView android:id="@+id/collapsed_title"
+ android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:orientation="vertical">
- <LinearLayout android:id="@+id/account"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_marginTop="12dp"
- android:paddingHorizontal="16dp"
- android:background="@drawable/cell_button_background"
- android:clickable="true"
- android:gravity="center"
- android:visibility="gone">
- <TextView android:layout_width="wrap_content"
+ android:layout_marginHorizontal="4dp"
+ android:layout_gravity="center"
+ android:textColor="@color/white"
+ android:textSize="16sp"
+ android:textStyle="bold"
+ android:text="@string/settings" />
+ </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="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/settings_account" />
- <TextView android:id="@+id/remaining_time"
+ android:orientation="vertical">
+ <TextView android:id="@+id/expanded_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:layout_weight="1"
- android:paddingHorizontal="8dp"
- android:gravity="right"
- android:textColor="@color/white60"
- android:textSize="13sp"
- android:textStyle="bold"
- android:text=""
- android:textAllCaps="true" />
- <ImageView android:layout_width="14dp"
- android:layout_height="24dp"
- android:layout_weight="0"
- android:alpha="0.6"
- android:src="@drawable/icon_chevron" />
- </LinearLayout>
- <LinearLayout android:id="@+id/preferences"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_marginTop="1dp"
- android:paddingHorizontal="16dp"
- android:background="@drawable/cell_button_background"
- android:clickable="true"
- android:gravity="center"
- android:visibility="gone">
- <TextView android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_weight="1"
- android:paddingHorizontal="8dp"
- android:paddingVertical="17dp"
+ android:layout_marginTop="4dp"
+ android:layout_marginLeft="24dp"
android:textColor="@color/white"
- android:textSize="20sp"
+ android:textSize="32sp"
android:textStyle="bold"
- android:text="@string/settings_preferences" />
- <ImageView android:layout_width="14dp"
- android:layout_height="24dp"
- android:layout_weight="0"
- android:alpha="0.6"
- android:src="@drawable/icon_chevron" />
- </LinearLayout>
- <LinearLayout android:id="@+id/advanced"
+ android:text="@string/settings" />
+ <LinearLayout android:id="@+id/account"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="24dp"
+ android:paddingHorizontal="16dp"
+ android:background="@drawable/cell_button_background"
+ android:clickable="true"
+ android:gravity="center"
+ android:visibility="gone">
+ <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/settings_account" />
+ <TextView android:id="@+id/remaining_time"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:paddingHorizontal="8dp"
+ android:gravity="right"
+ android:textColor="@color/white60"
+ android:textSize="13sp"
+ android:textStyle="bold"
+ android:text=""
+ android:textAllCaps="true" />
+ <ImageView android:layout_width="14dp"
+ android:layout_height="24dp"
+ android:layout_weight="0"
+ android:alpha="0.6"
+ android:src="@drawable/icon_chevron" />
+ </LinearLayout>
+ <LinearLayout android:id="@+id/preferences"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="1dp"
+ android:paddingHorizontal="16dp"
+ android:background="@drawable/cell_button_background"
+ android:clickable="true"
+ android:gravity="center"
+ android:visibility="gone">
+ <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/settings_preferences" />
+ <ImageView android:layout_width="14dp"
+ android:layout_height="24dp"
+ android:layout_weight="0"
+ android:alpha="0.6"
+ android:src="@drawable/icon_chevron" />
+ </LinearLayout>
+ <LinearLayout android:id="@+id/advanced"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="1dp"
+ android:paddingHorizontal="16dp"
+ android:background="@drawable/cell_button_background"
+ android:clickable="true"
+ android:gravity="center"
+ android:visibility="gone">
+ <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/settings_advanced" />
+ <ImageView android:layout_width="14dp"
+ android:layout_height="24dp"
+ android:layout_weight="0"
+ android:alpha="0.6"
+ android:src="@drawable/icon_chevron" />
+ </LinearLayout>
+ <LinearLayout android:id="@+id/app_version"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="24dp"
+ android:paddingHorizontal="16dp"
+ android:background="@drawable/cell_button_background"
+ android:clickable="true"
+ android:gravity="center">
+ <ImageView android:id="@+id/app_version_warning"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_weight="0"
+ android:paddingLeft="8dp"
+ android:src="@drawable/icon_alert" />
+ <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/app_version" />
+ <TextView android:id="@+id/app_version_label"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:paddingHorizontal="8dp"
+ android:gravity="right"
+ android:textColor="@color/white60"
+ android:textSize="13sp"
+ android:textStyle="bold"
+ android:text="" />
+ <ImageView android:layout_width="16dp"
+ android:layout_height="16dp"
+ android:layout_weight="0"
+ android:alpha="0.6"
+ android:src="@drawable/icon_extlink" />
+ </LinearLayout>
+ <TextView android:id="@+id/app_version_footer"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:layout_marginTop="1dp"
- android:paddingHorizontal="16dp"
- android:background="@drawable/cell_button_background"
- android:clickable="true"
- android:gravity="center"
- android:visibility="gone">
- <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/settings_advanced" />
- <ImageView android:layout_width="14dp"
- android:layout_height="24dp"
- android:layout_weight="0"
- android:alpha="0.6"
- android:src="@drawable/icon_chevron" />
- </LinearLayout>
- <LinearLayout android:id="@+id/app_version"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_marginTop="24dp"
- android:paddingHorizontal="16dp"
- android:background="@drawable/cell_button_background"
- android:clickable="true"
- android:gravity="center">
- <ImageView android:id="@+id/app_version_warning"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_weight="0"
- android:paddingLeft="8dp"
- android:src="@drawable/icon_alert" />
- <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/app_version" />
- <TextView android:id="@+id/app_version_label"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_weight="1"
- android:paddingHorizontal="8dp"
- android:gravity="right"
+ android:paddingTop="8dp"
+ android:paddingHorizontal="24dp"
android:textColor="@color/white60"
android:textSize="13sp"
- android:textStyle="bold"
- android:text="" />
- <ImageView android:layout_width="16dp"
- android:layout_height="16dp"
- android:layout_weight="0"
- android:alpha="0.6"
- android:src="@drawable/icon_extlink" />
- </LinearLayout>
- <TextView android:id="@+id/app_version_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/update_available_footer" />
- <LinearLayout android:id="@+id/report_a_problem"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_marginTop="24dp"
- android:paddingHorizontal="16dp"
- android:background="@drawable/cell_button_background"
- android:clickable="true"
- 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/report_a_problem" />
- <ImageView android:layout_width="14dp"
- android:layout_height="24dp"
- android:layout_weight="0"
- android:alpha="0.6"
- android:src="@drawable/icon_chevron" />
+ android:text="@string/update_available_footer" />
+ <LinearLayout android:id="@+id/report_a_problem"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="24dp"
+ android:paddingHorizontal="16dp"
+ android:background="@drawable/cell_button_background"
+ android:clickable="true"
+ 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/report_a_problem" />
+ <ImageView android:layout_width="14dp"
+ android:layout_height="24dp"
+ android:layout_weight="0"
+ android:alpha="0.6"
+ android:src="@drawable/icon_chevron" />
+ </LinearLayout>
+ <Button android:id="@+id/quit_button"
+ android:layout_marginTop="24dp"
+ android:layout_marginLeft="24dp"
+ android:layout_marginRight="24dp"
+ android:layout_marginBottom="24dp"
+ android:text="@string/quit"
+ style="@style/RedButton" />
</LinearLayout>
- <Button android:id="@+id/quit_button"
- android:layout_marginTop="24dp"
- android:layout_marginLeft="24dp"
- android:layout_marginRight="24dp"
- android:layout_marginBottom="24dp"
- android:text="@string/quit"
- style="@style/RedButton" />
- </LinearLayout>
- </ScrollView>
-</LinearLayout>
+ </net.mullvad.mullvadvpn.ui.widget.ListenableScrollView>
+ </LinearLayout>
+</FrameLayout>