diff options
| author | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2020-10-30 15:02:49 +0000 |
|---|---|---|
| committer | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2020-12-10 12:55:06 +0000 |
| commit | 92a92998c16758e5e426d5d97b66d9b397fc107c (patch) | |
| tree | 10bd60407fe556b5deee9bef2a7548f345173eab /android/src | |
| parent | 13b9bc10eb909875220e1a8127c98dea80312b1d (diff) | |
| download | mullvadvpn-92a92998c16758e5e426d5d97b66d9b397fc107c.tar.xz mullvadvpn-92a92998c16758e5e426d5d97b66d9b397fc107c.zip | |
Use a `RecyclerView` in `AdvancedFragment`
Diffstat (limited to 'android/src')
| -rw-r--r-- | android/src/main/kotlin/net/mullvad/mullvadvpn/ui/AdvancedFragment.kt | 37 | ||||
| -rw-r--r-- | android/src/main/res/layout/advanced.xml | 36 | ||||
| -rw-r--r-- | android/src/main/res/layout/advanced_header.xml | 30 |
3 files changed, 62 insertions, 41 deletions
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/AdvancedFragment.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/AdvancedFragment.kt index 28ee558585..b7b374c4dc 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/AdvancedFragment.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/AdvancedFragment.kt @@ -1,15 +1,21 @@ package net.mullvad.mullvadvpn.ui import android.os.Bundle +import android.support.v7.widget.LinearLayoutManager import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import net.mullvad.mullvadvpn.R import net.mullvad.mullvadvpn.model.Settings +import net.mullvad.mullvadvpn.ui.customdns.CustomDnsAdapter +import net.mullvad.mullvadvpn.ui.widget.CustomRecyclerView import net.mullvad.mullvadvpn.ui.widget.MtuCell import net.mullvad.mullvadvpn.ui.widget.NavigateCell +import net.mullvad.mullvadvpn.util.AdapterWithHeader class AdvancedFragment : ServiceDependentFragment(OnNoService.GoBack) { + private val customDnsAdapter = CustomDnsAdapter() + private lateinit var wireguardMtuInput: MtuCell private lateinit var titleController: CollapsibleTitleController @@ -24,6 +30,28 @@ class AdvancedFragment : ServiceDependentFragment(OnNoService.GoBack) { parentActivity.onBackPressed() } + titleController = CollapsibleTitleController(view, R.id.contents) + + view.findViewById<CustomRecyclerView>(R.id.contents).apply { + layoutManager = LinearLayoutManager(parentActivity) + + adapter = AdapterWithHeader(customDnsAdapter, R.layout.advanced_header).apply { + onHeaderAvailable = { headerView -> + configureHeader(headerView) + titleController.expandedTitleView = headerView.findViewById(R.id.expanded_title) + } + } + } + + return view + } + + override fun onSafelyDestroyView() { + titleController.onDestroy() + settingsListener.unsubscribe(this) + } + + private fun configureHeader(view: View) { wireguardMtuInput = view.findViewById<MtuCell>(R.id.wireguard_mtu).apply { onSubmit = { mtu -> jobTracker.newBackgroundJob("updateMtu") { @@ -43,15 +71,6 @@ class AdvancedFragment : ServiceDependentFragment(OnNoService.GoBack) { settingsListener.subscribe(this) { settings -> updateUi(settings) } - - titleController = CollapsibleTitleController(view) - - return view - } - - override fun onSafelyDestroyView() { - titleController.onDestroy() - settingsListener.unsubscribe(this) } private fun updateUi(settings: Settings) { diff --git a/android/src/main/res/layout/advanced.xml b/android/src/main/res/layout/advanced.xml index c96c1b3d03..70359352e2 100644 --- a/android/src/main/res/layout/advanced.xml +++ b/android/src/main/res/layout/advanced.xml @@ -27,37 +27,9 @@ android:text="@string/settings_advanced" style="@style/SettingsCollapsedHeader" /> </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="@dimen/screen_vertical_margin" - android:orientation="vertical"> - <TextView android:id="@+id/expanded_title" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_marginTop="2dp" - android:layout_marginLeft="@dimen/side_margin" - android:text="@string/settings_advanced" - style="@style/SettingsExpandedHeader" /> - <net.mullvad.mullvadvpn.ui.widget.MtuCell android:id="@+id/wireguard_mtu" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:layout_marginTop="@dimen/vertical_space" - mullvad:text="@string/wireguard_mtu" /> - <net.mullvad.mullvadvpn.ui.widget.NavigateCell android:id="@+id/wireguard_keys" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:layout_marginTop="@dimen/vertical_space" - mullvad:text="@string/wireguard_key" /> - <net.mullvad.mullvadvpn.ui.widget.NavigateCell android:id="@+id/split_tunneling" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:layout_marginTop="1dp" - mullvad:text="@string/split_tunneling" /> - </LinearLayout> - </net.mullvad.mullvadvpn.ui.widget.ListenableScrollView> + <net.mullvad.mullvadvpn.ui.widget.CustomRecyclerView android:id="@+id/contents" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:scrollbars="vertical" /> </LinearLayout> </FrameLayout> diff --git a/android/src/main/res/layout/advanced_header.xml b/android/src/main/res/layout/advanced_header.xml new file mode 100644 index 0000000000..5711e0df0a --- /dev/null +++ b/android/src/main/res/layout/advanced_header.xml @@ -0,0 +1,30 @@ +<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:mullvad="http://schemas.android.com/apk/res-auto" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:paddingBottom="@dimen/screen_vertical_margin" + android:orientation="vertical" + android:gravity="left"> + <TextView android:id="@+id/expanded_title" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_marginTop="2dp" + android:layout_marginLeft="@dimen/side_margin" + android:text="@string/settings_advanced" + style="@style/SettingsExpandedHeader" /> + <net.mullvad.mullvadvpn.ui.widget.MtuCell android:id="@+id/wireguard_mtu" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginTop="@dimen/vertical_space" + mullvad:text="@string/wireguard_mtu" /> + <net.mullvad.mullvadvpn.ui.widget.NavigateCell android:id="@+id/wireguard_keys" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginTop="@dimen/vertical_space" + mullvad:text="@string/wireguard_key" /> + <net.mullvad.mullvadvpn.ui.widget.NavigateCell android:id="@+id/split_tunneling" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginTop="1dp" + mullvad:text="@string/split_tunneling" /> +</LinearLayout> |
