diff options
| author | Albin <albin@mullvad.net> | 2022-09-12 13:34:27 +0200 |
|---|---|---|
| committer | Albin <albin@mullvad.net> | 2022-09-12 16:09:50 +0200 |
| commit | cdd6481caadaf841caccb807fb7e5278a40e27ff (patch) | |
| tree | 7263cfb97415eac5c5549d76c0863fcefaeb8808 | |
| parent | b0b903e356c589c555a5c38386bf414b15fc9242 (diff) | |
| download | mullvadvpn-cdd6481caadaf841caccb807fb7e5278a40e27ff.tar.xz mullvadvpn-cdd6481caadaf841caccb807fb7e5278a40e27ff.zip | |
Sort device list by creation date
| -rw-r--r-- | android/app/src/main/kotlin/net/mullvad/mullvadvpn/model/Device.kt | 6 | ||||
| -rw-r--r-- | android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/DeviceListViewModel.kt | 13 |
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 ) |
