summaryrefslogtreecommitdiffhomepage
path: root/android
diff options
context:
space:
mode:
Diffstat (limited to 'android')
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/model/Device.kt6
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/DeviceListViewModel.kt13
2 files changed, 15 insertions, 4 deletions
diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/model/Device.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/model/Device.kt
index a9ad4ec874..b633920e7f 100644
--- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/model/Device.kt
+++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/model/Device.kt
@@ -1,7 +1,9 @@
package net.mullvad.mullvadvpn.model
import android.os.Parcelable
+import kotlinx.parcelize.IgnoredOnParcel
import kotlinx.parcelize.Parcelize
+import net.mullvad.mullvadvpn.util.parseAsDateTime
@Parcelize
data class Device(
@@ -11,6 +13,10 @@ data class Device(
val ports: ArrayList<DevicePort>,
val created: String
) : Parcelable {
+
+ @IgnoredOnParcel
+ val creationDate by lazy { created.parseAsDateTime() }
+
// Generated by Android Studio
override fun equals(other: Any?): Boolean {
if (this === other) return true
diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/DeviceListViewModel.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/DeviceListViewModel.kt
index 4a60508a38..4c051fcbeb 100644
--- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/DeviceListViewModel.kt
+++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/DeviceListViewModel.kt
@@ -51,15 +51,20 @@ class DeviceListViewModel(
} else {
cachedDeviceList
}
- val deviceUiItems = devices?.map { device ->
- DeviceListItemUiState(device, loadingDevices.any { device.id == it })
- } ?: emptyList()
+ val deviceUiItems = devices?.sortedBy { it.creationDate }?.map { device ->
+ DeviceListItemUiState(
+ device,
+ loadingDevices.any { loadingDevice ->
+ device.id == loadingDevice
+ }
+ )
+ }
val isLoading = devices == null
val stagedDevice = devices?.firstOrNull { device ->
device.id == stagedDeviceId
}
DeviceListUiState(
- deviceUiItems = deviceUiItems,
+ deviceUiItems = deviceUiItems ?: emptyList(),
isLoading = isLoading,
stagedDevice = stagedDevice
)