summaryrefslogtreecommitdiffhomepage
path: root/android
diff options
context:
space:
mode:
authorJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2019-06-13 22:43:22 +0000
committerJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2019-06-17 14:42:59 +0000
commitfe24e89a06d4441e9e0c916a977357006e86d966 (patch)
treec854f1b291afbdb3bf903b7700520a0d88e1fce1 /android
parentc2f14fb16aeb6b830af95a823c5018761e760f8f (diff)
downloadmullvadvpn-fe24e89a06d4441e9e0c916a977357006e86d966.tar.xz
mullvadvpn-fe24e89a06d4441e9e0c916a977357006e86d966.zip
Show spinner while relay list is loading
Diffstat (limited to 'android')
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/SelectLocationFragment.kt12
-rw-r--r--android/src/main/res/layout/select_location.xml21
2 files changed, 30 insertions, 3 deletions
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/SelectLocationFragment.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/SelectLocationFragment.kt
index a545e088f5..4255dc3060 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/SelectLocationFragment.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/SelectLocationFragment.kt
@@ -14,6 +14,7 @@ import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.ImageButton
+import android.widget.ViewSwitcher
import net.mullvad.mullvadvpn.model.Constraint
import net.mullvad.mullvadvpn.model.LocationConstraint
@@ -28,6 +29,8 @@ class SelectLocationFragment : Fragment() {
private lateinit var parentActivity: MainActivity
private lateinit var relayListListener: RelayListListener
+ private lateinit var relayListContainer: ViewSwitcher
+
private val relayListAdapter = RelayListAdapter()
private var updateRelayListJob: Job? = null
@@ -60,6 +63,9 @@ class SelectLocationFragment : Fragment() {
view.findViewById<ImageButton>(R.id.close).setOnClickListener { close() }
+ relayListContainer = view.findViewById<ViewSwitcher>(R.id.relay_list_container)
+ relayListContainer.showNext()
+
configureRelayList(view.findViewById<RecyclerView>(R.id.relay_list))
return view
@@ -95,5 +101,11 @@ class SelectLocationFragment : Fragment() {
private fun updateRelayList(relayList: RelayList, selectedItem: RelayItem?) =
GlobalScope.launch(Dispatchers.Main) {
relayListAdapter.onRelayListChange(relayList, selectedItem)
+
+ if (relayList.countries.isEmpty()) {
+ relayListContainer.showPrevious()
+ } else if (relayListContainer.displayedChild == 0) {
+ relayListContainer.showNext()
+ }
}
}
diff --git a/android/src/main/res/layout/select_location.xml b/android/src/main/res/layout/select_location.xml
index a372b32a9f..52cd369729 100644
--- a/android/src/main/res/layout/select_location.xml
+++ b/android/src/main/res/layout/select_location.xml
@@ -37,10 +37,25 @@
android:textSize="13sp"
android:text="@string/select_location_description"
/>
- <android.support.v7.widget.RecyclerView android:id="@+id/relay_list"
+ <ViewSwitcher android:id="@+id/relay_list_container"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
- android:scrollbars="vertical"
- />
+ >
+ <ProgressBar
+ android:layout_width="60dp"
+ android:layout_height="60dp"
+ android:layout_gravity="center"
+ android:indeterminate="true"
+ android:indeterminateOnly="true"
+ android:indeterminateDuration="600"
+ android:indeterminateDrawable="@drawable/icon_spinner"
+ android:visibility="invisible"
+ />
+ <android.support.v7.widget.RecyclerView android:id="@+id/relay_list"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:scrollbars="vertical"
+ />
+ </ViewSwitcher>
</LinearLayout>