Skip to content

Commit

Permalink
split out FilesItem class into own file
Browse files Browse the repository at this point in the history
  • Loading branch information
grote committed Aug 2, 2024
1 parent 66836c8 commit 0a10db3
Show file tree
Hide file tree
Showing 2 changed files with 46 additions and 38 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -12,44 +12,6 @@ import kotlinx.coroutines.flow.asStateFlow
import org.calyxos.backup.storage.backup.BackupSnapshot
import org.calyxos.backup.storage.restore.RestorableFile

public sealed interface FilesItem {
public val name: String
public val dir: String
public val level: Int
public val selected: Boolean
public val size: Long
public val lastModified: Long?
}

public data class FileItem internal constructor(
internal val file: RestorableFile,
override val level: Int,
override val selected: Boolean,
) : FilesItem {
override val name: String get() = file.name
override val dir: String get() = file.dir
override val size: Long get() = file.size
override val lastModified: Long? get() = file.lastModified
}

public data class FolderItem(
override val dir: String,
override val name: String,
override val level: Int,
val numFiles: Int,
override val size: Long,
override val lastModified: Long?,
override val selected: Boolean,
val partiallySelected: Boolean,
val expanded: Boolean,
) : FilesItem {
init {
check(selected || !partiallySelected) {
"$dir was not selected, but partially selected"
}
}
}

public class FileSelectionManager {

private val allFolders = HashMap<String, FolderItem>()
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
/*
* SPDX-FileCopyrightText: 2024 The Calyx Institute
* SPDX-License-Identifier: Apache-2.0
*/

package org.calyxos.backup.storage.ui.restore

import org.calyxos.backup.storage.restore.RestorableFile

public sealed interface FilesItem {
public val name: String
public val dir: String
public val level: Int
public val selected: Boolean
public val size: Long
public val lastModified: Long?
}

public data class FileItem internal constructor(
internal val file: RestorableFile,
override val level: Int,
override val selected: Boolean,
) : FilesItem {
override val name: String get() = file.name
override val dir: String get() = file.dir
override val size: Long get() = file.size
override val lastModified: Long? get() = file.lastModified
}

public data class FolderItem(
override val dir: String,
override val name: String,
override val level: Int,
val numFiles: Int,
override val size: Long,
override val lastModified: Long?,
override val selected: Boolean,
val partiallySelected: Boolean,
val expanded: Boolean,
) : FilesItem {
init {
check(selected || !partiallySelected) {
"$dir was not selected, but partially selected"
}
}
}

0 comments on commit 0a10db3

Please sign in to comment.