Simple-Voice-Recorder/app/build.gradle
darthpaul 1134819b25 allow users to customise recording folder
- 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
2022-04-17 16:13:51 +01:00

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'
}