diff options
Diffstat (limited to 'android/src')
| -rw-r--r-- | android/src/main/kotlin/net/mullvad/mullvadvpn/ui/SettingsFragment.kt | 7 | ||||
| -rw-r--r-- | android/src/main/res/layout/settings.xml | 374 |
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> |
