Skip to content

Commit

Permalink
Merge pull request #121 from Myzel394/fix-name
Browse files Browse the repository at this point in the history
Fix empty file
  • Loading branch information
Myzel394 committed Sep 7, 2024
2 parents d915f41 + c8de600 commit 193ecd1
Show file tree
Hide file tree
Showing 8 changed files with 47 additions and 56 deletions.
10 changes: 5 additions & 5 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -35,8 +35,8 @@ android {
applicationId "app.myzel394.alibi"
minSdk 24
targetSdk 34
versionCode 15
versionName "0.5.2"
versionCode 16
versionName "0.5.3"

testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
vectorDrawables {
Expand Down Expand Up @@ -97,7 +97,7 @@ dependencies {
implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.8.4'
implementation 'androidx.activity:activity-compose:1.9.1'
implementation 'androidx.activity:activity-ktx:1.9.1'
implementation platform('androidx.compose:compose-bom:2024.06.00')
implementation platform('androidx.compose:compose-bom:2024.09.00')
implementation 'androidx.compose.ui:ui'
implementation 'androidx.compose.ui:ui-graphics'
implementation 'androidx.compose.ui:ui-tooling-preview'
Expand All @@ -110,7 +110,7 @@ dependencies {
testImplementation 'junit:junit:4.13.2'
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 platform('androidx.compose:compose-bom:2024.09.00')
androidTestImplementation 'androidx.compose.ui:ui-test-junit4'
debugImplementation 'androidx.compose.ui:ui-tooling'
debugImplementation 'androidx.compose.ui:ui-test-manifest'
Expand All @@ -121,7 +121,7 @@ dependencies {
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'
coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:2.1.1'

implementation 'com.arthenica:ffmpeg-kit-full-gpl:5.1'

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,26 +40,25 @@ class AudioBatchesFolder(
override fun getOutputFileForFFmpeg(
date: LocalDateTime,
extension: String,
fileName: String,
): String {
return when (type) {
BatchType.INTERNAL -> asInternalGetOutputFile(date, extension).absolutePath
BatchType.INTERNAL -> asInternalGetOutputFile(fileName).absolutePath

BatchType.CUSTOM -> {
val name = getName(date, extension)

FFmpegKitConfig.getSafParameterForWrite(
context,
(customFolder!!.findFile(name) ?: customFolder.createFile(
(customFolder!!.findFile(fileName) ?: customFolder.createFile(
"audio/${extension}",
getName(date, extension),
fileName,
)!!).uri
)!!
}

BatchType.MEDIA -> {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
val mediaUri = getOrCreateMediaFile(
name = getName(date, extension),
name = fileName,
mimeType = "audio/$extension",
relativePath = BASE_SCOPED_STORAGE_RELATIVE_PATH + "/" + MEDIA_SUBFOLDER_NAME,
)
Expand All @@ -72,7 +71,7 @@ class AudioBatchesFolder(
val path = arrayOf(
Environment.getExternalStoragePublicDirectory(BASE_LEGACY_STORAGE_FOLDER),
MEDIA_SUBFOLDER_NAME,
getName(date, extension)
fileName,
).joinToString("/")
return File(path)
.apply {
Expand Down Expand Up @@ -143,7 +142,7 @@ class AudioBatchesFolder(
}

val BASE_LEGACY_STORAGE_FOLDER = Environment.DIRECTORY_PODCASTS
val MEDIA_RECORDINGS_SUBFOLDER = MEDIA_SUBFOLDER_NAME + "/audio_recordings"
val MEDIA_RECORDINGS_SUBFOLDER = MEDIA_SUBFOLDER_NAME + "/.audio_recordings"
val BASE_SCOPED_STORAGE_RELATIVE_PATH =
(if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S)
Environment.DIRECTORY_RECORDINGS
Expand Down
23 changes: 8 additions & 15 deletions app/src/main/java/app/myzel394/alibi/helpers/BatchesFolder.kt
Original file line number Diff line number Diff line change
Expand Up @@ -191,8 +191,8 @@ abstract class BatchesFolder(
return "$name.$extension"
}

fun asInternalGetOutputFile(date: LocalDateTime, extension: String): File {
return File(getInternalFolder(), getName(date, extension))
fun asInternalGetOutputFile(fileName: String): File {
return File(getInternalFolder(), fileName)
}

fun asMediaGetLegacyFile(name: String): File = File(
Expand All @@ -203,16 +203,8 @@ abstract class BatchesFolder(
}

fun checkIfOutputAlreadyExists(
date: LocalDateTime,
extension: String
fileName: String,
): Boolean {
val stem = date
.format(DateTimeFormatter.ISO_DATE_TIME)
.toString()
.replace(":", "-")
.replace(".", "_")
val fileName = "$stem.$extension"

return when (type) {
BatchType.INTERNAL -> File(getInternalFolder(), fileName).exists()

Expand Down Expand Up @@ -245,6 +237,7 @@ abstract class BatchesFolder(
abstract fun getOutputFileForFFmpeg(
date: LocalDateTime,
extension: String,
fileName: String,
): String

abstract fun cleanup()
Expand All @@ -255,18 +248,17 @@ abstract class BatchesFolder(
disableCache: Boolean? = null,
onNextParameterTry: (String) -> Unit = {},
onProgress: (Float?) -> Unit = {},
fileName: String,
): String {
val disableCache = disableCache ?: (type != BatchType.INTERNAL)
val date = recording.getStartDateForFilename(filenameFormat)

if (!disableCache && checkIfOutputAlreadyExists(
recording.recordingStart,
recording.fileExtension
)
if (!disableCache && checkIfOutputAlreadyExists(fileName)
) {
return getOutputFileForFFmpeg(
date = recording.recordingStart,
extension = recording.fileExtension,
fileName = fileName,
)
}

Expand All @@ -282,6 +274,7 @@ abstract class BatchesFolder(
val outputFile = getOutputFileForFFmpeg(
date = date,
extension = recording.fileExtension,
fileName = fileName,
)

concatenationFunction(
Expand Down
20 changes: 11 additions & 9 deletions app/src/main/java/app/myzel394/alibi/helpers/VideoBatchesFolder.kt
Original file line number Diff line number Diff line change
Expand Up @@ -39,26 +39,28 @@ class VideoBatchesFolder(

private var customParcelFileDescriptor: ParcelFileDescriptor? = null

override fun getOutputFileForFFmpeg(date: LocalDateTime, extension: String): String {
override fun getOutputFileForFFmpeg(
date: LocalDateTime,
extension: String,
fileName: String,
): String {
return when (type) {
BatchType.INTERNAL -> asInternalGetOutputFile(date, extension).absolutePath
BatchType.INTERNAL -> asInternalGetOutputFile(fileName).absolutePath

BatchType.CUSTOM -> {
val name = getName(date, extension)

FFmpegKitConfig.getSafParameterForWrite(
context,
(customFolder!!.findFile(name) ?: customFolder.createFile(
(customFolder!!.findFile(fileName) ?: customFolder.createFile(
"video/${extension}",
getName(date, extension),
fileName,
)!!).uri
)!!
}

BatchType.MEDIA -> {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
val mediaUri = getOrCreateMediaFile(
name = getName(date, extension),
name = fileName,
mimeType = "video/$extension",
relativePath = BASE_SCOPED_STORAGE_RELATIVE_PATH + "/" + MEDIA_SUBFOLDER_NAME,
)
Expand All @@ -71,7 +73,7 @@ class VideoBatchesFolder(
val path = arrayOf(
Environment.getExternalStoragePublicDirectory(BASE_LEGACY_STORAGE_FOLDER),
MEDIA_SUBFOLDER_NAME,
getName(date, extension)
fileName,
).joinToString("/")
return File(path)
.apply {
Expand Down Expand Up @@ -146,7 +148,7 @@ class VideoBatchesFolder(
}

val BASE_LEGACY_STORAGE_FOLDER = Environment.DIRECTORY_DCIM
val MEDIA_RECORDINGS_SUBFOLDER = MEDIA_SUBFOLDER_NAME + "/video_recordings"
val MEDIA_RECORDINGS_SUBFOLDER = MEDIA_SUBFOLDER_NAME + "/.video_recordings"
val BASE_SCOPED_STORAGE_RELATIVE_PATH = Environment.DIRECTORY_DCIM
val SCOPED_STORAGE_RELATIVE_PATH =
BASE_SCOPED_STORAGE_RELATIVE_PATH + "/" + MEDIA_RECORDINGS_SUBFOLDER
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,11 @@ import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.height
import androidx.compose.foundation.layout.size
import androidx.compose.foundation.shape.CircleShape
import androidx.compose.material.ripple.rememberRipple
import androidx.compose.material3.ButtonDefaults
import androidx.compose.material3.Icon
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Text
import androidx.compose.material3.ripple
import androidx.compose.runtime.Composable
import androidx.compose.runtime.remember
import androidx.compose.ui.Alignment
Expand All @@ -40,8 +40,8 @@ fun BigButton(
val orientation = LocalConfiguration.current.orientation

BoxWithConstraints {
val isLarge = if (isBig == null)
maxWidth > 250.dp && maxHeight > 600.dp && orientation == Configuration.ORIENTATION_PORTRAIT else isBig
val isLarge = isBig
?: (maxWidth > 250.dp && maxHeight > 600.dp && orientation == Configuration.ORIENTATION_PORTRAIT)

Column(
modifier = Modifier
Expand All @@ -52,7 +52,7 @@ fun BigButton(
}
.combinedClickable(
interactionSource = remember { MutableInteractionSource() },
indication = rememberRipple(color = MaterialTheme.colorScheme.primary),
indication = ripple(color = MaterialTheme.colorScheme.primary),
onClick = onClick,
onLongClick = onLongClick,
),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,10 @@ import androidx.compose.foundation.interaction.MutableInteractionSource
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.padding
import androidx.compose.material.ripple.rememberRipple
import androidx.compose.material3.ButtonDefaults
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Text
import androidx.compose.material3.ripple
import androidx.compose.runtime.Composable
import androidx.compose.runtime.remember
import androidx.compose.ui.Alignment
Expand Down Expand Up @@ -39,7 +39,7 @@ fun SaveButton(
}
.combinedClickable(
interactionSource = remember { MutableInteractionSource() },
indication = rememberRipple(color = MaterialTheme.colorScheme.primary),
indication = ripple(color = MaterialTheme.colorScheme.primary),
onClick = onSave,
onLongClick = onLongClick,
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,8 @@ fun RecordingStatus(
LinearProgressIndicator(
progress = { progress },
modifier = progressModifier,
drawStopIndicator = { },
gapSize = 0.dp,
)
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -177,38 +177,33 @@ fun RecorderEventsHandler(
else -> throw Exception("Unknown recorder type")
}

val fileName = batchesFolder.getName(
recording.recordingStart,
recording.fileExtension,
)

batchesFolder.concatenate(
recording,
filenameFormat = settings.filenameFormat,
fileName = fileName,
onProgress = { percentage ->
processingProgress = percentage
}
)

// Save file
val name = batchesFolder.getName(
recording.recordingStart,
recording.fileExtension,
)

when (batchesFolder.type) {
BatchesFolder.BatchType.INTERNAL -> {
when (batchesFolder) {
is AudioBatchesFolder -> {
saveAudioFile(
batchesFolder.asInternalGetOutputFile(
recording.recordingStart,
recording.fileExtension,
), name
batchesFolder.asInternalGetOutputFile(fileName), fileName
)
}

is VideoBatchesFolder -> {
saveVideoFile(
batchesFolder.asInternalGetOutputFile(
recording.recordingStart,
recording.fileExtension,
), name
batchesFolder.asInternalGetOutputFile(fileName), fileName
)
}
}
Expand Down

0 comments on commit 193ecd1

Please sign in to comment.