feat(ui): complete app experience redesign
This commit is contained in:
+3
@@ -16,4 +16,7 @@ interface ConfiguredDeviceDao {
|
||||
|
||||
@Query("DELETE FROM configured_devices WHERE profileId = :profileId AND deviceName = :deviceName")
|
||||
suspend fun remove(profileId: String, deviceName: String): Int
|
||||
|
||||
@Query("UPDATE configured_devices SET id = :newId, deviceName = :newName WHERE profileId = :profileId AND deviceName = :oldName")
|
||||
suspend fun rename(profileId: String, oldName: String, newName: String, newId: String): Int
|
||||
}
|
||||
|
||||
+13
@@ -15,6 +15,8 @@ interface ConfiguredDeviceRepository {
|
||||
fun observe(profileId: ProviderProfileId): Flow<DomainResult<List<DeviceDescriptor>>>
|
||||
suspend fun add(profileId: ProviderProfileId, name: DeviceName, type: DeviceType): DomainResult<DeviceDescriptor>
|
||||
suspend fun remove(profileId: ProviderProfileId, deviceName: DeviceName): DomainResult<Unit>
|
||||
suspend fun rename(profileId: ProviderProfileId, oldName: DeviceName, newName: DeviceName): DomainResult<Unit> =
|
||||
DomainResult.Failure(DomainError.InvalidRequest(detail = "Device rename is not supported"))
|
||||
}
|
||||
|
||||
class RoomConfiguredDeviceRepository(
|
||||
@@ -44,6 +46,17 @@ class RoomConfiguredDeviceRepository(
|
||||
} catch (error: Exception) {
|
||||
DomainResult.Failure(DomainError.Unknown(detail = error.message ?: "Unable to remove device"))
|
||||
}
|
||||
|
||||
override suspend fun rename(profileId: ProviderProfileId, oldName: DeviceName, newName: DeviceName): DomainResult<Unit> {
|
||||
if (newName.value.isBlank()) return DomainResult.Failure(DomainError.InvalidRequest(detail = "Device name is required"))
|
||||
return try {
|
||||
val changed = dao.rename(profileId.value, oldName.value, newName.value, "${profileId.value}:${newName.value}")
|
||||
if (changed == 1) DomainResult.Success(Unit)
|
||||
else DomainResult.Failure(DomainError.InvalidRequest(detail = "Device was not found"))
|
||||
} catch (error: Exception) {
|
||||
DomainResult.Failure(DomainError.InvalidRequest(detail = error.message ?: "Duplicate device name"))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private fun ConfiguredDeviceEntity.toDomain() = DeviceDescriptor(
|
||||
|
||||
Reference in New Issue
Block a user