diff --git a/app/build.gradle b/app/build.gradle index 1c8442ca..9ae6af4e 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -35,8 +35,8 @@ android { applicationId "app.myzel394.alibi" minSdk 24 targetSdk 34 - versionCode 13 - versionName "0.5.0" + versionCode 14 + versionName "0.5.1" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" vectorDrawables { @@ -92,25 +92,25 @@ android { } dependencies { - implementation 'androidx.core:core-ktx:1.12.0' + implementation 'androidx.core:core-ktx:1.13.1' implementation platform('org.jetbrains.kotlin:kotlin-bom:1.8.0') - implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.7.0' - implementation 'androidx.activity:activity-compose:1.8.2' - implementation 'androidx.activity:activity-ktx:1.8.2' - implementation platform('androidx.compose:compose-bom:2024.03.00') + implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.8.3' + implementation 'androidx.activity:activity-compose:1.9.0' + implementation 'androidx.activity:activity-ktx:1.9.0' + implementation platform('androidx.compose:compose-bom:2024.06.00') implementation 'androidx.compose.ui:ui' implementation 'androidx.compose.ui:ui-graphics' implementation 'androidx.compose.ui:ui-tooling-preview' implementation 'androidx.compose.material3:material3:1.2.1' - implementation "androidx.compose.material:material-icons-extended:1.6.4" - implementation 'androidx.appcompat:appcompat:1.6.1' + implementation "androidx.compose.material:material-icons-extended:1.6.8" + implementation 'androidx.appcompat:appcompat:1.7.0' implementation 'androidx.documentfile:documentfile:1.0.1' - implementation 'androidx.lifecycle:lifecycle-service:2.7.0' + implementation 'androidx.lifecycle:lifecycle-service:2.8.3' testImplementation 'junit:junit:4.13.2' - androidTestImplementation 'androidx.test.ext:junit:1.1.5' - androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1' - androidTestImplementation platform('androidx.compose:compose-bom:2024.03.00') + androidTestImplementation 'androidx.test.ext:junit:1.2.1' + androidTestImplementation 'androidx.test.espresso:espresso-core:3.6.1' + androidTestImplementation platform('androidx.compose:compose-bom:2024.06.00') androidTestImplementation 'androidx.compose.ui:ui-test-junit4' debugImplementation 'androidx.compose.ui:ui-tooling' debugImplementation 'androidx.compose.ui:ui-test-manifest' @@ -118,14 +118,14 @@ dependencies { implementation "androidx.navigation:navigation-compose:2.7.7" implementation 'com.google.dagger:hilt-android:2.49' - annotationProcessor 'com.google.dagger:hilt-compiler:2.46.1' + annotationProcessor 'com.google.dagger:hilt-compiler:2.49' implementation "androidx.hilt:hilt-navigation-compose:1.2.0" coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:2.0.4' implementation 'com.arthenica:ffmpeg-kit-full-gpl:5.1' - implementation "androidx.datastore:datastore-preferences:1.0.0" + implementation "androidx.datastore:datastore-preferences:1.1.1" implementation "org.jetbrains.kotlinx:kotlinx-serialization-json:1.5.1" @@ -135,7 +135,7 @@ dependencies { implementation 'com.maxkeppeler.sheets-compose-dialogs:list:1.2.0' implementation 'com.maxkeppeler.sheets-compose-dialogs:input:1.2.0' - def camerax_version = "1.3.2" + def camerax_version = "1.3.4" implementation "androidx.camera:camera-core:${camerax_version}" implementation "androidx.camera:camera-camera2:${camerax_version}" implementation "androidx.camera:camera-lifecycle:${camerax_version}" diff --git a/app/src/main/java/app/myzel394/alibi/helpers/BatchesFolder.kt b/app/src/main/java/app/myzel394/alibi/helpers/BatchesFolder.kt index ba394ef2..873ca2ca 100644 --- a/app/src/main/java/app/myzel394/alibi/helpers/BatchesFolder.kt +++ b/app/src/main/java/app/myzel394/alibi/helpers/BatchesFolder.kt @@ -419,11 +419,25 @@ abstract class BatchesFolder( } } - context.contentResolver.delete( - scopedMediaContentUri, - "${MediaStore.MediaColumns.DISPLAY_NAME} IN (${deletableNames.joinToString(",")})", - null, - ) + try { + context.contentResolver.delete( + scopedMediaContentUri, + "${MediaStore.MediaColumns.DISPLAY_NAME} IN (${ + deletableNames.joinToString( + "," + ) { "'$it'" } + })", + null, + ) + // This is unfortunate if the files can't be deleted, but let's just + // ignore it since we can't do anything about it + } catch (e: RuntimeException) { + // Probably file not found + e.printStackTrace() + } catch (e: IllegalArgumentException) { + // Strange filename, should not happen + e.printStackTrace() + } } else { // TODO: Fix "would you like to try saving" -> Save button legacyMediaFolder.listFiles()?.forEach {