Экспорт
This commit is contained in:
parent
bc569581ad
commit
fb616a9f29
|
|
@ -13,8 +13,8 @@ android {
|
|||
applicationId "llc.arma.ble"
|
||||
minSdk 26
|
||||
targetSdk 33
|
||||
versionCode 10
|
||||
versionName "1.2.10"
|
||||
versionCode 12
|
||||
versionName "1.2.12"
|
||||
|
||||
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
||||
vectorDrawables {
|
||||
|
|
@ -24,7 +24,7 @@ android {
|
|||
|
||||
buildTypes {
|
||||
release {
|
||||
minifyEnabled true
|
||||
minifyEnabled false
|
||||
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -18,6 +18,13 @@
|
|||
<uses-feature android:name="android.hardware.location.gps" />
|
||||
<uses-feature android:name="android.hardware.bluetooth_le" android:required="true"/>
|
||||
|
||||
<uses-permission android:name="android.permission.READ_MEDIA_VIDEO" />
|
||||
<uses-permission android:name="android.permission.READ_MEDIA_IMAGES" />
|
||||
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"
|
||||
android:maxSdkVersion="29" />
|
||||
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"
|
||||
android:maxSdkVersion="32" />
|
||||
|
||||
<application
|
||||
android:allowBackup="true"
|
||||
android:dataExtractionRules="@xml/data_extraction_rules"
|
||||
|
|
@ -27,7 +34,8 @@
|
|||
android:supportsRtl="true"
|
||||
android:theme="@style/Theme.App.Starting"
|
||||
tools:targetApi="31"
|
||||
android:name=".app.framework.App">
|
||||
android:name=".app.framework.App"
|
||||
android:requestLegacyExternalStorage="true">
|
||||
|
||||
<provider
|
||||
android:name="androidx.core.content.FileProvider"
|
||||
|
|
|
|||
|
|
@ -135,9 +135,23 @@ class MainActivity : ComponentActivity() {
|
|||
) {
|
||||
|
||||
val multiplePermissionsState =
|
||||
|
||||
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
|
||||
|
||||
rememberMultiplePermissionsState(
|
||||
listOf(
|
||||
Manifest.permission.READ_MEDIA_VIDEO,
|
||||
Manifest.permission.READ_MEDIA_IMAGES,
|
||||
Manifest.permission.BLUETOOTH_SCAN,
|
||||
Manifest.permission.BLUETOOTH_CONNECT
|
||||
)
|
||||
)
|
||||
|
||||
}else{
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
|
||||
rememberMultiplePermissionsState(
|
||||
listOf(
|
||||
Manifest.permission.READ_EXTERNAL_STORAGE,
|
||||
Manifest.permission.BLUETOOTH_SCAN,
|
||||
Manifest.permission.BLUETOOTH_CONNECT
|
||||
)
|
||||
|
|
@ -145,11 +159,14 @@ class MainActivity : ComponentActivity() {
|
|||
} else {
|
||||
rememberMultiplePermissionsState(
|
||||
listOf(
|
||||
Manifest.permission.WRITE_EXTERNAL_STORAGE,
|
||||
Manifest.permission.READ_EXTERNAL_STORAGE,
|
||||
Manifest.permission.ACCESS_FINE_LOCATION,
|
||||
Manifest.permission.ACCESS_COARSE_LOCATION
|
||||
)
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
if (multiplePermissionsState.allPermissionsGranted) {
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,10 @@
|
|||
package llc.arma.ble.data
|
||||
|
||||
import android.R.attr.src
|
||||
import android.app.Application
|
||||
import android.icu.text.SimpleDateFormat
|
||||
import android.os.Environment
|
||||
import android.os.FileUtils
|
||||
import llc.arma.ble.R
|
||||
import llc.arma.ble.domain.model.Ble
|
||||
import llc.arma.ble.domain.repository.XlsxRepository
|
||||
|
|
@ -15,29 +18,28 @@ import java.util.Date
|
|||
import java.util.UUID
|
||||
import javax.inject.Inject
|
||||
|
||||
|
||||
class XlsxRepositoryImpl @Inject constructor(
|
||||
private val application: Application
|
||||
) : XlsxRepository {
|
||||
|
||||
|
||||
|
||||
override fun exportToXls(data: List<Ble.Accelerometer.HistoryPoint>): File {
|
||||
|
||||
val formatter = SimpleDateFormat("dd.MM.yyyy HH:mm")
|
||||
|
||||
val file = File(application.filesDir, "${UUID.randomUUID()}.xlsx")
|
||||
file.createNewFile()
|
||||
val mailFile = File(application.filesDir, "${UUID.randomUUID()}.xlsx")
|
||||
mailFile.createNewFile()
|
||||
|
||||
when(data.firstOrNull()){
|
||||
is Ble.Accelerometer.HistoryPoint.Vibration -> {
|
||||
IOUtils.copy(application.resources.openRawResource(R.raw.measure_single_axis), FileOutputStream(file))
|
||||
IOUtils.copy(application.resources.openRawResource(R.raw.measure_single_axis), FileOutputStream(mailFile))
|
||||
}
|
||||
else -> {
|
||||
IOUtils.copy(application.resources.openRawResource(R.raw.measure_multiple_axis), FileOutputStream(file))
|
||||
IOUtils.copy(application.resources.openRawResource(R.raw.measure_multiple_axis), FileOutputStream(mailFile))
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
val fileIn = FileInputStream(file)
|
||||
val fileIn = FileInputStream(mailFile)
|
||||
val workbook = WorkbookFactory.create(fileIn)
|
||||
val worksheet = workbook.getSheetAt(0) as XSSFSheet
|
||||
|
||||
|
|
@ -78,11 +80,20 @@ class XlsxRepositoryImpl @Inject constructor(
|
|||
}
|
||||
|
||||
fileIn.close()
|
||||
val saveFos = FileOutputStream(file)
|
||||
val saveFos = FileOutputStream(mailFile)
|
||||
workbook.write(saveFos)
|
||||
workbook.close()
|
||||
saveFos.close()
|
||||
return file
|
||||
|
||||
val sharedFile = File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS), "${UUID.randomUUID()}.xlsx")
|
||||
sharedFile.createNewFile()
|
||||
|
||||
val sharedSaveFos = FileOutputStream(sharedFile)
|
||||
workbook.write(sharedSaveFos)
|
||||
sharedSaveFos.close()
|
||||
|
||||
workbook.close()
|
||||
|
||||
return mailFile
|
||||
}
|
||||
|
||||
}
|
||||
Loading…
Reference in New Issue