diff options
| author | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2019-06-13 22:43:22 +0000 |
|---|---|---|
| committer | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2019-06-17 14:42:59 +0000 |
| commit | fe24e89a06d4441e9e0c916a977357006e86d966 (patch) | |
| tree | c854f1b291afbdb3bf903b7700520a0d88e1fce1 /android/src | |
| parent | c2f14fb16aeb6b830af95a823c5018761e760f8f (diff) | |
| download | mullvadvpn-fe24e89a06d4441e9e0c916a977357006e86d966.tar.xz mullvadvpn-fe24e89a06d4441e9e0c916a977357006e86d966.zip | |
Show spinner while relay list is loading
Diffstat (limited to 'android/src')
| -rw-r--r-- | android/src/main/kotlin/net/mullvad/mullvadvpn/SelectLocationFragment.kt | 12 | ||||
| -rw-r--r-- | android/src/main/res/layout/select_location.xml | 21 |
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> |
