diff --git a/profile_dfu/src/main/java/no/nordicsemi/dfu/data/DFUData.kt b/profile_dfu/src/main/java/no/nordicsemi/dfu/data/DFUData.kt
index bc21534a..085d7684 100644
--- a/profile_dfu/src/main/java/no/nordicsemi/dfu/data/DFUData.kt
+++ b/profile_dfu/src/main/java/no/nordicsemi/dfu/data/DFUData.kt
@@ -9,15 +9,10 @@ internal data class NoFileSelectedState(
) : DFUData()
internal data class FileReadyState(
- val file: DFUFile,
+ val file: ZipFile,
val device: DiscoveredBluetoothDevice
) : DFUData()
-internal data class HexFileLoadedState(
- val file: PartialHexFile,
- val isDatFileError: Boolean = false
-) : DFUData()
-
internal data class FileInstallingState(
val status: DFUServiceStatus = Idle
) : DFUData()
diff --git a/profile_dfu/src/main/java/no/nordicsemi/dfu/data/DFUFile.kt b/profile_dfu/src/main/java/no/nordicsemi/dfu/data/DFUFile.kt
index 45cf23ce..b2c33005 100644
--- a/profile_dfu/src/main/java/no/nordicsemi/dfu/data/DFUFile.kt
+++ b/profile_dfu/src/main/java/no/nordicsemi/dfu/data/DFUFile.kt
@@ -2,26 +2,7 @@ package no.nordicsemi.dfu.data
import android.net.Uri
-sealed class DFUFile {
- abstract val fileType: DFUFileType
-}
-
-data class ZipFile(val data: FileData) : DFUFile() {
- override val fileType: DFUFileType = DFUFileType.TYPE_AUTO
-}
-
-data class PartialHexFile(
- val data: FileData,
- val fileType: DFUFileType
-)
-
-data class FullHexFile(
- val data: FileData,
- val datFileData: FileData,
- override val fileType: DFUFileType
-) : DFUFile()
-
-data class FileData(
+data class ZipFile(
val uri: Uri,
val name: String,
val path: String?,
diff --git a/profile_dfu/src/main/java/no/nordicsemi/dfu/data/DFUFileManager.kt b/profile_dfu/src/main/java/no/nordicsemi/dfu/data/DFUFileManager.kt
index 427bda54..7ad99841 100644
--- a/profile_dfu/src/main/java/no/nordicsemi/dfu/data/DFUFileManager.kt
+++ b/profile_dfu/src/main/java/no/nordicsemi/dfu/data/DFUFileManager.kt
@@ -15,7 +15,7 @@ class DFUFileManager @Inject constructor(
private val TAG = "DFU_FILE_MANAGER"
- fun createFile(uri: Uri): FileData? {
+ fun createFile(uri: Uri): ZipFile? {
return try {
createFromFile(uri)
} catch (e: Exception) {
@@ -29,12 +29,12 @@ class DFUFileManager @Inject constructor(
}
}
- private fun createFromFile(uri: Uri): FileData {
+ private fun createFromFile(uri: Uri): ZipFile {
val file = uri.toFile()
- return FileData(uri, file.name, file.path, file.length())
+ return ZipFile(uri, file.name, file.path, file.length())
}
- private fun createFromContentResolver(uri: Uri): FileData? {
+ private fun createFromContentResolver(uri: Uri): ZipFile? {
val data = context.contentResolver.query(uri, null, null, null, null)
return if (data != null && data.moveToNext()) {
@@ -53,7 +53,7 @@ class DFUFileManager @Inject constructor(
data.close()
- FileData(uri, fileName, filePath, fileSize.toLong())
+ ZipFile(uri, fileName, filePath, fileSize.toLong())
} else {
Log.d(TAG, "Data loaded from ContentResolver is empty.")
null
diff --git a/profile_dfu/src/main/java/no/nordicsemi/dfu/data/DFUFileType.kt b/profile_dfu/src/main/java/no/nordicsemi/dfu/data/DFUFileType.kt
deleted file mode 100644
index 196b6143..00000000
--- a/profile_dfu/src/main/java/no/nordicsemi/dfu/data/DFUFileType.kt
+++ /dev/null
@@ -1,16 +0,0 @@
-package no.nordicsemi.dfu.data
-
-import no.nordicsemi.android.dfu.DfuBaseService
-
-enum class DFUFileType(val id: Int) {
- TYPE_AUTO(DfuBaseService.TYPE_AUTO),
- TYPE_SOFT_DEVICE(DfuBaseService.TYPE_SOFT_DEVICE),
- TYPE_BOOTLOADER(DfuBaseService.TYPE_BOOTLOADER),
- TYPE_APPLICATION(DfuBaseService.TYPE_APPLICATION);
-
- companion object {
- fun create(id: Int): DFUFileType? {
- return values().find { it.id == id }
- }
- }
-}
diff --git a/profile_dfu/src/main/java/no/nordicsemi/dfu/data/DFUManager.kt b/profile_dfu/src/main/java/no/nordicsemi/dfu/data/DFUManager.kt
index f0e9a753..beb77178 100644
--- a/profile_dfu/src/main/java/no/nordicsemi/dfu/data/DFUManager.kt
+++ b/profile_dfu/src/main/java/no/nordicsemi/dfu/data/DFUManager.kt
@@ -5,7 +5,6 @@ import dagger.hilt.android.qualifiers.ApplicationContext
import no.nordicsemi.android.dfu.DfuServiceInitiator
import no.nordicsemi.android.service.SelectedBluetoothDeviceHolder
import no.nordicsemi.dfu.repository.DFUService
-import no.nordicsemi.ui.scanner.ui.exhaustive
import javax.inject.Inject
class DFUManager @Inject constructor(
@@ -14,7 +13,7 @@ class DFUManager @Inject constructor(
private val deviceHolder: SelectedBluetoothDeviceHolder
) {
- fun install(file: DFUFile) {
+ fun install(file: ZipFile) {
val device = deviceHolder.device!!
val starter = DfuServiceInitiator(device.address())
@@ -26,12 +25,7 @@ class DFUManager @Inject constructor(
.setPrepareDataObjectDelay(400)
.setUnsafeExperimentalButtonlessServiceInSecureDfuEnabled(true)
- when (file) {
- is ZipFile -> starter.setZip(file.data.uri, file.data.path)
- is FullHexFile -> starter.setBinOrHex(file.fileType.id, file.data.uri, file.data.path)
- .setInitFile(file.datFileData.uri, file.datFileData.path)
- }.exhaustive
-
+ starter.setZip(file.uri, file.path)
starter.start(context, DFUService::class.java)
}
}
diff --git a/profile_dfu/src/main/java/no/nordicsemi/dfu/data/DFURepository.kt b/profile_dfu/src/main/java/no/nordicsemi/dfu/data/DFURepository.kt
index dda65262..952a27cc 100644
--- a/profile_dfu/src/main/java/no/nordicsemi/dfu/data/DFURepository.kt
+++ b/profile_dfu/src/main/java/no/nordicsemi/dfu/data/DFURepository.kt
@@ -20,24 +20,10 @@ internal class DFURepository @Inject constructor(
fun setZipFile(file: Uri) {
val currentState = _data.value as NoFileSelectedState
_data.value = fileManger.createFile(file)?.let {
- FileReadyState(ZipFile(it), requireNotNull(deviceHolder.device))
+ FileReadyState(it, requireNotNull(deviceHolder.device))
} ?: currentState.copy(isError = true)
}
- fun setHexFile(file: Uri) {
- val currentState = _data.value as NoFileSelectedState
- _data.value = fileManger.createFile(file)?.let {
- HexFileLoadedState(PartialHexFile(it, DFUFileType.TYPE_APPLICATION))
- } ?: currentState.copy(isError = true)
- }
-
- fun setDatFile(file: Uri) {
- val currentState = _data.value as HexFileLoadedState
- _data.value = fileManger.createFile(file)?.let {
- FileReadyState(FullHexFile(it, currentState.file.data, DFUFileType.TYPE_APPLICATION), requireNotNull(deviceHolder.device))
- } ?: currentState.copy(isDatFileError = true)
- }
-
fun setSuccess() {
_data.value = UploadSuccessState
}
diff --git a/profile_dfu/src/main/java/no/nordicsemi/dfu/view/DFUContentView.kt b/profile_dfu/src/main/java/no/nordicsemi/dfu/view/DFUContentView.kt
index 2cec133c..62fd8284 100644
--- a/profile_dfu/src/main/java/no/nordicsemi/dfu/view/DFUContentView.kt
+++ b/profile_dfu/src/main/java/no/nordicsemi/dfu/view/DFUContentView.kt
@@ -14,7 +14,6 @@ internal fun DFUContentView(state: DFUData, onEvent: (DFUViewEvent) -> Unit) {
when (state) {
is NoFileSelectedState -> DFUSelectMainFileView(state, onEvent)
is FileReadyState -> DFUSummaryView(state, onEvent)
- is HexFileLoadedState -> DFUSelectDatFileView(state, onEvent)
UploadSuccessState -> DFUSuccessView(onEvent)
is UploadFailureState -> DFUErrorView(state, onEvent)
is FileInstallingState -> DFUInstallingView(state, onEvent)
diff --git a/profile_dfu/src/main/java/no/nordicsemi/dfu/view/DFUErrorView.kt b/profile_dfu/src/main/java/no/nordicsemi/dfu/view/DFUErrorView.kt
index f2e2809e..fd70bf97 100644
--- a/profile_dfu/src/main/java/no/nordicsemi/dfu/view/DFUErrorView.kt
+++ b/profile_dfu/src/main/java/no/nordicsemi/dfu/view/DFUErrorView.kt
@@ -21,18 +21,22 @@ import no.nordicsemi.dfu.data.UploadFailureState
internal fun DFUErrorView(state: UploadFailureState, onEvent: (DFUViewEvent) -> Unit) {
Column(horizontalAlignment = Alignment.CenterHorizontally) {
ScreenSection {
+ val errorColor = MaterialTheme.colorScheme.error
+
Icon(
painter = painterResource(id = R.drawable.ic_fail_circle),
contentDescription = stringResource(id = R.string.dfu_failure_icon_description),
- tint = MaterialTheme.colorScheme.error
+ tint = errorColor
)
- Spacer(modifier = Modifier.size(16.dp))
+
+ Spacer(modifier = Modifier.size(8.dp))
val error = state.message ?: stringResource(id = R.string.dfu_unknown_error)
Text(
text = error,
- color = MaterialTheme.colorScheme.error
+ color = errorColor,
+ style = MaterialTheme.typography.titleLarge
)
Spacer(modifier = Modifier.size(16.dp))
diff --git a/profile_dfu/src/main/java/no/nordicsemi/dfu/view/DFUInstallingView.kt b/profile_dfu/src/main/java/no/nordicsemi/dfu/view/DFUInstallingView.kt
index 20111c55..990085c3 100644
--- a/profile_dfu/src/main/java/no/nordicsemi/dfu/view/DFUInstallingView.kt
+++ b/profile_dfu/src/main/java/no/nordicsemi/dfu/view/DFUInstallingView.kt
@@ -1,19 +1,13 @@
package no.nordicsemi.dfu.view
-import androidx.compose.foundation.layout.Arrangement
-import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.height
-import androidx.compose.foundation.layout.size
-import androidx.compose.material3.Button
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
-import androidx.compose.ui.res.stringResource
import androidx.compose.ui.unit.dp
import no.nordicsemi.android.material.you.CircularProgressIndicator
import no.nordicsemi.android.theme.view.ScreenSection
-import no.nordicsemi.dfu.R
import no.nordicsemi.dfu.data.FileInstallingState
@Composable
@@ -24,19 +18,5 @@ internal fun DFUInstallingView(state: FileInstallingState, onEvent: (DFUViewEven
Spacer(modifier = Modifier.height(16.dp))
Text(text = state.status.toDisplayString())
-
- Spacer(modifier = Modifier.height(16.dp))
-
- Row(horizontalArrangement = Arrangement.SpaceEvenly) {
- Button(onClick = { onEvent(OnPauseButtonClick) }) {
- Text(text = stringResource(id = R.string.dfu_pause))
- }
-
- Spacer(modifier = Modifier.size(16.dp))
-
- Button(onClick = { onEvent(OnPauseButtonClick) }) {
- Text(text = stringResource(id = R.string.dfu_stop))
- }
- }
}
}
diff --git a/profile_dfu/src/main/java/no/nordicsemi/dfu/view/DFUSelectDatFileView.kt b/profile_dfu/src/main/java/no/nordicsemi/dfu/view/DFUSelectDatFileView.kt
deleted file mode 100644
index a92c19cd..00000000
--- a/profile_dfu/src/main/java/no/nordicsemi/dfu/view/DFUSelectDatFileView.kt
+++ /dev/null
@@ -1,58 +0,0 @@
-package no.nordicsemi.dfu.view
-
-import androidx.activity.compose.rememberLauncherForActivityResult
-import androidx.activity.result.contract.ActivityResultContracts
-import androidx.compose.foundation.layout.Spacer
-import androidx.compose.foundation.layout.padding
-import androidx.compose.foundation.layout.size
-import androidx.compose.material.icons.Icons
-import androidx.compose.material.icons.filled.Settings
-import androidx.compose.material3.Button
-import androidx.compose.material3.MaterialTheme
-import androidx.compose.material3.Text
-import androidx.compose.runtime.Composable
-import androidx.compose.ui.Modifier
-import androidx.compose.ui.res.stringResource
-import androidx.compose.ui.unit.dp
-import no.nordicsemi.android.dfu.DfuBaseService
-import no.nordicsemi.android.theme.view.ScreenSection
-import no.nordicsemi.android.theme.view.SectionTitle
-import no.nordicsemi.dfu.R
-import no.nordicsemi.dfu.data.HexFileLoadedState
-
-@Composable
-internal fun DFUSelectDatFileView(state: HexFileLoadedState, onEvent: (DFUViewEvent) -> Unit) {
- ScreenSection {
- SectionTitle(
- icon = Icons.Default.Settings,
- title = stringResource(id = R.string.dfu_choose_file)
- )
-
- Spacer(modifier = Modifier.size(8.dp))
-
- Text(
- text = stringResource(id = R.string.dfu_choose_dat_info),
- style = MaterialTheme.typography.bodyMedium
- )
-
- if (state.isDatFileError) {
- Spacer(modifier = Modifier.size(8.dp))
-
- Text(
- text = stringResource(id = R.string.dfu_load_file_error),
- style = MaterialTheme.typography.bodyMedium,
- color = MaterialTheme.colorScheme.error
- )
- }
-
- Spacer(modifier = Modifier.size(8.dp))
-
- val launcher = rememberLauncherForActivityResult(ActivityResultContracts.GetContent()) { uri ->
- uri?.let { onEvent(OnDatFileSelected(it)) }
- }
-
- Button(onClick = { launcher.launch(DfuBaseService.MIME_TYPE_OCTET_STREAM) }) {
- Text(text = stringResource(id = R.string.dfu_select_dat))
- }
- }
-}
diff --git a/profile_dfu/src/main/java/no/nordicsemi/dfu/view/DFUSelectMainFileView.kt b/profile_dfu/src/main/java/no/nordicsemi/dfu/view/DFUSelectMainFileView.kt
index fa3b8de6..324a0468 100644
--- a/profile_dfu/src/main/java/no/nordicsemi/dfu/view/DFUSelectMainFileView.kt
+++ b/profile_dfu/src/main/java/no/nordicsemi/dfu/view/DFUSelectMainFileView.kt
@@ -2,11 +2,7 @@ package no.nordicsemi.dfu.view
import androidx.activity.compose.rememberLauncherForActivityResult
import androidx.activity.result.contract.ActivityResultContracts
-import androidx.compose.foundation.layout.Arrangement
-import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.Spacer
-import androidx.compose.foundation.layout.fillMaxWidth
-import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.size
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.Settings
@@ -62,31 +58,13 @@ private fun ButtonsRow(onEvent: (DFUViewEvent) -> Unit) {
val fileType = rememberSaveable { mutableStateOf(DfuBaseService.MIME_TYPE_ZIP) }
val launcher = rememberLauncherForActivityResult(ActivityResultContracts.GetContent()) { uri ->
- uri?.let {
- if (fileType.value == DfuBaseService.MIME_TYPE_ZIP) {
- onEvent(OnZipFileSelected(it))
- } else {
- onEvent(OnHexFileSelected(it))
- }
- }
+ uri?.let { onEvent(OnZipFileSelected(it)) }
}
- Row(
- horizontalArrangement = Arrangement.SpaceEvenly,
- modifier = Modifier.fillMaxWidth()
- ) {
- Button(onClick = {
- fileType.value = DfuBaseService.MIME_TYPE_ZIP
- launcher.launch(fileType.value)
- }) {
- Text(text = stringResource(id = R.string.dfu_select_zip))
- }
-
- Button(onClick = {
- fileType.value = DfuBaseService.MIME_TYPE_OCTET_STREAM
- launcher.launch(fileType.value)
- }) {
- Text(text = stringResource(id = R.string.dfu_select_hex))
- }
+ Button(onClick = {
+ fileType.value = DfuBaseService.MIME_TYPE_ZIP
+ launcher.launch(fileType.value)
+ }) {
+ Text(text = stringResource(id = R.string.dfu_select_zip))
}
}
diff --git a/profile_dfu/src/main/java/no/nordicsemi/dfu/view/DFUSuccessView.kt b/profile_dfu/src/main/java/no/nordicsemi/dfu/view/DFUSuccessView.kt
index 187db34e..996c1731 100644
--- a/profile_dfu/src/main/java/no/nordicsemi/dfu/view/DFUSuccessView.kt
+++ b/profile_dfu/src/main/java/no/nordicsemi/dfu/view/DFUSuccessView.kt
@@ -21,22 +21,25 @@ import no.nordicsemi.dfu.R
internal fun DFUSuccessView(onEvent: (DFUViewEvent) -> Unit) {
Column(horizontalAlignment = Alignment.CenterHorizontally) {
ScreenSection {
+ val successColor = colorResource(id = no.nordicsemi.android.material.you.R.color.nordicGrass)
+
Icon(
painter = painterResource(id = R.drawable.ic_success_circle),
contentDescription = stringResource(id = R.string.dfu_success_icon_description),
- tint = colorResource(id = no.nordicsemi.android.material.you.R.color.nordicGrass)
+ tint = successColor
+ )
+
+ Spacer(modifier = Modifier.size(8.dp))
+
+ Text(
+ text = stringResource(id = R.string.dfu_success),
+ color = successColor,
+ style = MaterialTheme.typography.titleLarge
)
}
Spacer(modifier = Modifier.size(16.dp))
- Text(
- text = stringResource(id = R.string.dfu_success),
- color = MaterialTheme.colorScheme.error
- )
-
- Spacer(modifier = Modifier.size(16.dp))
-
Button(onClick = { onEvent(OnPauseButtonClick) }) {
Text(text = stringResource(id = R.string.dfu_done))
}
diff --git a/profile_dfu/src/main/java/no/nordicsemi/dfu/view/DFUSummaryView.kt b/profile_dfu/src/main/java/no/nordicsemi/dfu/view/DFUSummaryView.kt
index 870af747..50eb077b 100644
--- a/profile_dfu/src/main/java/no/nordicsemi/dfu/view/DFUSummaryView.kt
+++ b/profile_dfu/src/main/java/no/nordicsemi/dfu/view/DFUSummaryView.kt
@@ -27,22 +27,17 @@ import no.nordicsemi.android.theme.view.ScreenSection
import no.nordicsemi.android.theme.view.SectionTitle
import no.nordicsemi.dfu.R
import no.nordicsemi.dfu.data.FileReadyState
-import no.nordicsemi.dfu.data.FullHexFile
import no.nordicsemi.dfu.data.ZipFile
import no.nordicsemi.ui.scanner.DiscoveredBluetoothDevice
-import no.nordicsemi.ui.scanner.ui.exhaustive
@Composable
internal fun DFUSummaryView(state: FileReadyState, onEvent: (DFUViewEvent) -> Unit) {
Column(horizontalAlignment = Alignment.CenterHorizontally) {
DeviceDetailsView(state.device)
-
+
Spacer(modifier = Modifier.height(16.dp))
- when (state.file) {
- is FullHexFile -> FileDetailsView(state.file)
- is ZipFile -> FileDetailsView(state.file)
- }.exhaustive
+ FileDetailsView(state.file)
Spacer(modifier = Modifier.height(16.dp))
@@ -73,9 +68,11 @@ internal fun DeviceDetailsView(device: DiscoveredBluetoothDevice) {
Spacer(modifier = Modifier.size(8.dp))
- Column(modifier = Modifier
- .fillMaxWidth()
- .weight(1f)) {
+ Column(
+ modifier = Modifier
+ .fillMaxWidth()
+ .weight(1f)
+ ) {
Text(
text = device.displayName(),
style = MaterialTheme.typography.titleMedium
@@ -88,36 +85,26 @@ internal fun DeviceDetailsView(device: DiscoveredBluetoothDevice) {
@Composable
private fun FileDetailsView(file: ZipFile) {
- val fileName = file.data.name
- val fileLength = file.data.size
+ val fileName = file.name
+ val fileLength = file.size
ScreenSection {
- SectionTitle(icon = Icons.Default.Notifications, title = stringResource(id = R.string.dfu_zip_file_details))
+ SectionTitle(
+ icon = Icons.Default.Notifications,
+ title = stringResource(id = R.string.dfu_zip_file_details)
+ )
Spacer(modifier = Modifier.size(16.dp))
- Text(text = fileName)
+ Column(
+ modifier = Modifier.fillMaxWidth(),
+ horizontalAlignment = Alignment.Start
+ ) {
+ Text(text = stringResource(id = R.string.dfu_file_name, fileName))
- Spacer(modifier = Modifier.size(4.dp))
-
- Text(text = stringResource(id = R.string.dfu_file_size, fileLength))
- }
-}
-
-@Composable
-private fun FileDetailsView(file: FullHexFile) {
- val fileName = file.data.name
- val fileLength = file.data.size
-
- ScreenSection {
- SectionTitle(icon = Icons.Default.Notifications, title = stringResource(id = R.string.dfu_hex_file_details))
-
- Spacer(modifier = Modifier.size(16.dp))
-
- Text(text = fileName)
-
- Spacer(modifier = Modifier.size(4.dp))
-
- Text(text = stringResource(id = R.string.dfu_file_size, fileLength))
+ Spacer(modifier = Modifier.size(4.dp))
+
+ Text(text = stringResource(id = R.string.dfu_file_size, fileLength))
+ }
}
}
diff --git a/profile_dfu/src/main/java/no/nordicsemi/dfu/view/DFUViewEvent.kt b/profile_dfu/src/main/java/no/nordicsemi/dfu/view/DFUViewEvent.kt
index 21af155a..69c779e3 100644
--- a/profile_dfu/src/main/java/no/nordicsemi/dfu/view/DFUViewEvent.kt
+++ b/profile_dfu/src/main/java/no/nordicsemi/dfu/view/DFUViewEvent.kt
@@ -5,8 +5,6 @@ import android.net.Uri
internal sealed class DFUViewEvent
internal data class OnZipFileSelected(val file: Uri) : DFUViewEvent()
-internal data class OnHexFileSelected(val file: Uri) : DFUViewEvent()
-internal data class OnDatFileSelected(val file: Uri) : DFUViewEvent()
internal object OnInstallButtonClick : DFUViewEvent()
diff --git a/profile_dfu/src/main/java/no/nordicsemi/dfu/viewmodel/DFUViewModel.kt b/profile_dfu/src/main/java/no/nordicsemi/dfu/viewmodel/DFUViewModel.kt
index 2bf3f57a..f6413a4e 100644
--- a/profile_dfu/src/main/java/no/nordicsemi/dfu/viewmodel/DFUViewModel.kt
+++ b/profile_dfu/src/main/java/no/nordicsemi/dfu/viewmodel/DFUViewModel.kt
@@ -9,7 +9,6 @@ import no.nordicsemi.android.service.SelectedBluetoothDeviceHolder
import no.nordicsemi.android.theme.viewmodel.CloseableViewModel
import no.nordicsemi.android.utils.exhaustive
import no.nordicsemi.dfu.data.Completed
-import no.nordicsemi.dfu.data.DFUFile
import no.nordicsemi.dfu.data.DFUManager
import no.nordicsemi.dfu.data.DFUProgressManager
import no.nordicsemi.dfu.data.DFURepository
@@ -18,10 +17,9 @@ import no.nordicsemi.dfu.data.Error
import no.nordicsemi.dfu.data.FileInstallingState
import no.nordicsemi.dfu.data.FileReadyState
import no.nordicsemi.dfu.data.NoFileSelectedState
+import no.nordicsemi.dfu.data.ZipFile
import no.nordicsemi.dfu.view.DFUViewEvent
-import no.nordicsemi.dfu.view.OnDatFileSelected
import no.nordicsemi.dfu.view.OnDisconnectButtonClick
-import no.nordicsemi.dfu.view.OnHexFileSelected
import no.nordicsemi.dfu.view.OnInstallButtonClick
import no.nordicsemi.dfu.view.OnPauseButtonClick
import no.nordicsemi.dfu.view.OnStopButtonClick
@@ -55,9 +53,7 @@ internal class DFUViewModel @Inject constructor(
}
OnPauseButtonClick -> closeScreen()
OnStopButtonClick -> closeScreen()
- is OnHexFileSelected -> repository.setHexFile(event.file)
is OnZipFileSelected -> repository.setZipFile(event.file)
- is OnDatFileSelected -> repository.setDatFile(event.file)
}.exhaustive
}
@@ -67,7 +63,7 @@ internal class DFUViewModel @Inject constructor(
finish()
}
- private fun requireFile(): DFUFile {
+ private fun requireFile(): ZipFile {
return (repository.data.value as FileReadyState).file
}
diff --git a/profile_dfu/src/main/res/values/strings.xml b/profile_dfu/src/main/res/values/strings.xml
index 4a43bd02..702ba669 100644
--- a/profile_dfu/src/main/res/values/strings.xml
+++ b/profile_dfu/src/main/res/values/strings.xml
@@ -17,7 +17,6 @@
Zip file details
Hex file details
- %d bytes
Distribution packet (ZIP)
Soft Device
Bootloader
@@ -52,4 +51,7 @@
Success!
Unknown error.
+
+ File name: %s
+ File size: %d bytes