mirror of
https://github.com/SimpleMobileTools/Simple-Voice-Recorder.git
synced 2025-01-10 16:04:37 +01:00
1134819b25
- use SAF on SDK 30+ to give user a change to change the default location where recordings are stored - since we have requestLegacyExternalStorage="true" in the AndroidManifest, we can enable WRITE_EXTERNAL_STORAGE up to SDK 29 (Android 10) - modify methods to store recordings in RecorderService to use SAF for SDK 30+ and normal file paths for lower SDK versions. - at first installation, the app would not have SAF permissions, so we use the old method, using MediaStore and the app's cacheDir until the users decide to change; then we can switch to using SAF - modify methods to get all recordings in PlayerFragment - on SDK 30+, we need to combine recordings got from the MediaStore (getMediaStoreRecordings) and the ones from the recordings folder SAF (getSAFRecordings) - on SDK 29, we combine recordings got from the MediaStore (getMediaStoreRecordings) and the ones from direct file path (getLegacyRecordings) - on lower SDKs, we just use the file paths (getLegacyRecordings) - modify method for playing recordings in PlayerFragment - SDK 30+, when getting recordings with SAF, we store the string of the SAF URI of the file as the Recording#path field, we check if the path is a Document URI and pass that to the MediaPlayer#setDataSource method - if the Recording#path field is empty, we get the MediaStore URI using the ID and pass that to the MediaPlayer#setDataSource method - in other cases, the Recording#path field is a file path, so we use it. - in RecordingsAdapter, add support for changes to the paths used for in sharing the recordings - update the commons module
72 lines
2.0 KiB
Groovy
72 lines
2.0 KiB
Groovy
apply plugin: 'com.android.application'
|
|
apply plugin: 'kotlin-android'
|
|
apply plugin: 'kotlin-android-extensions'
|
|
|
|
def keystorePropertiesFile = rootProject.file("keystore.properties")
|
|
def keystoreProperties = new Properties()
|
|
if (keystorePropertiesFile.exists()) {
|
|
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
|
|
}
|
|
|
|
android {
|
|
compileSdkVersion 31
|
|
|
|
defaultConfig {
|
|
applicationId "com.simplemobiletools.voicerecorder"
|
|
minSdkVersion 21
|
|
targetSdkVersion 31
|
|
versionCode 20
|
|
versionName "5.7.0"
|
|
setProperty("archivesBaseName", "voice-recorder")
|
|
vectorDrawables.useSupportLibrary = true
|
|
}
|
|
|
|
signingConfigs {
|
|
if (keystorePropertiesFile.exists()) {
|
|
release {
|
|
keyAlias keystoreProperties['keyAlias']
|
|
keyPassword keystoreProperties['keyPassword']
|
|
storeFile file(keystoreProperties['storeFile'])
|
|
storePassword keystoreProperties['storePassword']
|
|
}
|
|
}
|
|
}
|
|
|
|
buildTypes {
|
|
debug {
|
|
applicationIdSuffix ".debug"
|
|
}
|
|
release {
|
|
minifyEnabled true
|
|
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
|
|
if (keystorePropertiesFile.exists()) {
|
|
signingConfig signingConfigs.release
|
|
}
|
|
}
|
|
}
|
|
|
|
flavorDimensions "variants"
|
|
productFlavors {
|
|
core {}
|
|
fdroid {}
|
|
}
|
|
|
|
sourceSets {
|
|
main.java.srcDirs += 'src/main/kotlin'
|
|
}
|
|
|
|
lintOptions {
|
|
checkReleaseBuilds false
|
|
abortOnError false
|
|
}
|
|
}
|
|
|
|
dependencies {
|
|
implementation 'com.github.SimpleMobileTools:Simple-Commons:202656a071'
|
|
implementation 'org.greenrobot:eventbus:3.2.0'
|
|
implementation 'com.github.Armen101:AudioRecordView:1.0.4'
|
|
implementation 'androidx.documentfile:documentfile:1.0.1'
|
|
implementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.1.0'
|
|
implementation 'androidx.constraintlayout:constraintlayout:2.1.3'
|
|
}
|