From c1b76b9ab3a94817f5279852a1e3a79270792dab Mon Sep 17 00:00:00 2001 From: Vineyro Date: Sun, 12 Nov 2023 19:25:44 +0700 Subject: [PATCH] Add accelerometer descriptor --- app/build.gradle | 4 ++-- .../accelerometer/view/AcceleromterHistory.kt | 22 ++++++++++++------- .../llc/arma/ble/data/XlsxRepositoryImpl.kt | 12 +++++++--- .../ble/domain/repository/XlsxRepository.kt | 5 ++++- .../arma/ble/domain/usecase/ExportToXlsx.kt | 7 ++++-- 5 files changed, 34 insertions(+), 16 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 3cfef6a..1e955db 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -13,8 +13,8 @@ android { applicationId "llc.arma.ble" minSdk 26 targetSdk 33 - versionCode 12 - versionName "1.2.12" + versionCode 13 + versionName "1.2.13" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" vectorDrawables { diff --git a/app/src/main/java/llc/arma/ble/app/ui/screen/inspection/accelerometer/view/AcceleromterHistory.kt b/app/src/main/java/llc/arma/ble/app/ui/screen/inspection/accelerometer/view/AcceleromterHistory.kt index a31c832..5d80831 100644 --- a/app/src/main/java/llc/arma/ble/app/ui/screen/inspection/accelerometer/view/AcceleromterHistory.kt +++ b/app/src/main/java/llc/arma/ble/app/ui/screen/inspection/accelerometer/view/AcceleromterHistory.kt @@ -51,6 +51,7 @@ import llc.arma.ble.domain.usecase.FftAxis import llc.arma.ble.domain.usecase.FftFrequency import llc.arma.ble.domain.usecase.FftViewMode import llc.arma.ble.domain.usecase.GetAccelerometerHistoryBySerial +import llc.arma.ble.domain.usecase.GetBleBySerial import llc.arma.ble.domain.usecase.MeasureData import java.util.Date @@ -78,7 +79,7 @@ fun AccelerometerHistory( val state = viewModel.viewState.value LaunchedEffect(ble.serial) { - viewModel.setEvent(AccelerometerHistoryContract.Event.OnStart(ble.serial, accelScale, accelMode, fftAxis, fftMode, frequency)) + viewModel.setEvent(AccelerometerHistoryContract.Event.OnStart(ble.name, ble.serial, accelScale, accelMode, fftAxis, fftMode, frequency)) } /*DisposableEffect("ble") { @@ -130,7 +131,7 @@ fun AccelerometerHistory( IconButton( onClick = { - viewModel.setEvent(AccelerometerHistoryContract.Event.OnRefreshHistory(ble.serial, accelScale, accelMode, fftAxis, fftMode, frequency)) + viewModel.setEvent(AccelerometerHistoryContract.Event.OnRefreshHistory(ble.name, ble.serial, accelScale, accelMode, fftAxis, fftMode, frequency)) }, enabled = when(state){ is AccelerometerHistoryContract.State.Display -> state.loadingHistoryState is ProgressState.Finished @@ -425,6 +426,7 @@ class AccelerometerHistoryContract { object OnExport : Event() data class OnStart( + val bleName: String, val serial: String, val accelScale: AccelScale, val accelMode: AccelViewMode, @@ -434,6 +436,7 @@ class AccelerometerHistoryContract { ) : Event() data class OnRefreshHistory( + val bleName: String, val serial: String, val accelScale: AccelScale, val accelMode: AccelViewMode, @@ -447,6 +450,7 @@ class AccelerometerHistoryContract { sealed class State : ViewState { data class Display( + val bleName: String, val loadingHistoryState : ProgressState> ) : State() @@ -465,7 +469,8 @@ class AccelerometerHistoryContract { @HiltViewModel class AccelerometerHistoryViewModel @Inject constructor( private val getAccelerometerHistoryBySerial: GetAccelerometerHistoryBySerial, - private val exportToXlsx: ExportToXlsx + private val exportToXlsx: ExportToXlsx, + private val getBleBySerial: GetBleBySerial ) : BaseViewModel() { var measureJob: Job? = null @@ -473,6 +478,7 @@ class AccelerometerHistoryViewModel @Inject constructor( private var lastSerial: String? = null override fun setInitialState() = AccelerometerHistoryContract.State.Display( + "", ProgressState.Indeterminate ) @@ -492,7 +498,7 @@ class AccelerometerHistoryViewModel @Inject constructor( if(state is AccelerometerHistoryContract.State.Display){ if(state.loadingHistoryState is ProgressState.Finished){ - exportToXlsx.invoke(state.loadingHistoryState.data) + exportToXlsx.invoke(state.bleName, state.loadingHistoryState.data) } } @@ -526,7 +532,7 @@ class AccelerometerHistoryViewModel @Inject constructor( lastSerial = event.serial setState { - AccelerometerHistoryContract.State.Display(ProgressState.Indeterminate) + AccelerometerHistoryContract.State.Display(event.bleName, ProgressState.Indeterminate) } measureJob?.cancel() @@ -536,7 +542,7 @@ class AccelerometerHistoryViewModel @Inject constructor( it.fold( onSuccess = { setState { - AccelerometerHistoryContract.State.Display(it) + AccelerometerHistoryContract.State.Display(event.bleName, it) } }, onFailure = { @@ -562,7 +568,7 @@ class AccelerometerHistoryViewModel @Inject constructor( viewModelScope.launch { setState { - AccelerometerHistoryContract.State.Display(ProgressState.Indeterminate) + AccelerometerHistoryContract.State.Display("", ProgressState.Indeterminate) } measureJob?.cancel() @@ -572,7 +578,7 @@ class AccelerometerHistoryViewModel @Inject constructor( it.fold( onSuccess = { setState { - AccelerometerHistoryContract.State.Display(it) + AccelerometerHistoryContract.State.Display(event.bleName, it) } }, onFailure = { diff --git a/app/src/main/java/llc/arma/ble/data/XlsxRepositoryImpl.kt b/app/src/main/java/llc/arma/ble/data/XlsxRepositoryImpl.kt index 71f0a03..453907a 100644 --- a/app/src/main/java/llc/arma/ble/data/XlsxRepositoryImpl.kt +++ b/app/src/main/java/llc/arma/ble/data/XlsxRepositoryImpl.kt @@ -23,11 +23,17 @@ class XlsxRepositoryImpl @Inject constructor( private val application: Application ) : XlsxRepository { - override fun exportToXls(data: List): File { + override fun exportToXls( + bleName: String, + data: List + ): File { + + val fileNameDateFormat = SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS") + val fileName = "$bleName ${fileNameDateFormat.format(Date(System.currentTimeMillis()))}.xlsx" val formatter = SimpleDateFormat("dd.MM.yyyy HH:mm") - val mailFile = File(application.filesDir, "${UUID.randomUUID()}.xlsx") + val mailFile = File(application.filesDir, fileName) mailFile.createNewFile() when(data.firstOrNull()){ @@ -84,7 +90,7 @@ class XlsxRepositoryImpl @Inject constructor( workbook.write(saveFos) saveFos.close() - val sharedFile = File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS), "${UUID.randomUUID()}.xlsx") + val sharedFile = File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS), fileName) sharedFile.createNewFile() val sharedSaveFos = FileOutputStream(sharedFile) diff --git a/app/src/main/java/llc/arma/ble/domain/repository/XlsxRepository.kt b/app/src/main/java/llc/arma/ble/domain/repository/XlsxRepository.kt index 3d308b5..e839aab 100644 --- a/app/src/main/java/llc/arma/ble/domain/repository/XlsxRepository.kt +++ b/app/src/main/java/llc/arma/ble/domain/repository/XlsxRepository.kt @@ -6,6 +6,9 @@ import java.io.File interface XlsxRepository { - fun exportToXls(data: List): File + fun exportToXls( + bleName: String, + data: List + ): File } \ No newline at end of file diff --git a/app/src/main/java/llc/arma/ble/domain/usecase/ExportToXlsx.kt b/app/src/main/java/llc/arma/ble/domain/usecase/ExportToXlsx.kt index 1755a0d..6549c3e 100644 --- a/app/src/main/java/llc/arma/ble/domain/usecase/ExportToXlsx.kt +++ b/app/src/main/java/llc/arma/ble/domain/usecase/ExportToXlsx.kt @@ -24,9 +24,12 @@ class ExportToXlsx @Inject constructor( private val emailRepository: EmailRepository ) { - operator fun invoke(data: List){ + operator fun invoke( + bleName: String, + data: List + ){ - val file = xlsxRepository.exportToXls(data) + val file = xlsxRepository.exportToXls(bleName, data) emailRepository.sendFile(file) }