Coverage Summary for Class: SyncScopeKt (com.georgeci.moneysurfer.sync.api)
| Class |
Method, %
|
Branch, %
|
Line, %
|
Instruction, %
|
| SyncScopeKt |
100%
(2/2)
|
94.4%
(17/18)
|
100%
(15/15)
|
100%
(48/48)
|
| SyncScopeKt$WhenMappings |
|
| Total |
100%
(2/2)
|
94.4%
(17/18)
|
100%
(15/15)
|
100%
(48/48)
|
package com.georgeci.moneysurfer.sync.api
enum class SyncScope {
UploadOnly,
ActiveWorkspace,
AllUserData,
ChangedSinceLastSync,
}
fun SyncReason.toScope(): SyncScope = when (this) {
SyncReason.APP_START -> SyncScope.ActiveWorkspace
SyncReason.FOREGROUND -> SyncScope.ActiveWorkspace
SyncReason.SWIPE_REFRESH -> SyncScope.ActiveWorkspace
SyncReason.MANUAL -> SyncScope.AllUserData
SyncReason.LOCAL_CHANGE -> SyncScope.UploadOnly
SyncReason.BACKGROUND -> SyncScope.ChangedSinceLastSync
}
fun mergeScope(first: SyncScope, second: SyncScope): SyncScope = when {
first == SyncScope.AllUserData || second == SyncScope.AllUserData ->
SyncScope.AllUserData
first == SyncScope.ActiveWorkspace || second == SyncScope.ActiveWorkspace ->
SyncScope.ActiveWorkspace
first == SyncScope.ChangedSinceLastSync || second == SyncScope.ChangedSinceLastSync ->
SyncScope.ChangedSinceLastSync
else ->
SyncScope.UploadOnly
}