Skip to content

Commit 4bf7542

Browse files
committed
address PR comments
1 parent e0d0793 commit 4bf7542

File tree

3 files changed

+52
-30
lines changed

3 files changed

+52
-30
lines changed

app/src/main/java/com/google/jetpackcamera/JcaFilePathGenerator.kt

Lines changed: 14 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ package com.google.jetpackcamera
1717

1818
import android.os.Environment
1919
import com.google.jetpackcamera.core.common.FilePathGenerator
20+
import com.google.jetpackcamera.core.common.FilePathGenerator.Companion.constructFilename
2021
import java.io.File
2122
import java.util.Date
2223

@@ -32,26 +33,24 @@ class JcaFilePathGenerator : FilePathGenerator {
3233
get() = Environment.getExternalStoragePublicDirectory(
3334
Environment.DIRECTORY_MOVIES
3435
)?.path ?: ""
35-
private fun createTimestamp() = Date().time
3636

37-
private fun generateFilename(
38-
prefix: String,
39-
suffixText: String?,
40-
fileExtension: String?
41-
): String {
42-
val timestamp = createTimestamp()
43-
return buildString {
44-
append("$prefix-$timestamp")
45-
suffixText?.let { append("-$it") }
46-
fileExtension?.let { append(it) }
47-
}
48-
}
37+
private fun createTimestamp() = Date().time
4938

5039
override fun generateImageFilename(suffixText: String?, fileExtension: String?): String {
51-
return generateFilename("JCA-photo", suffixText, fileExtension)
40+
return constructFilename(
41+
"JCA-photo",
42+
createTimestamp().toString(),
43+
suffixText,
44+
fileExtension
45+
)
5246
}
5347

5448
override fun generateVideoFilename(suffixText: String?, fileExtension: String?): String {
55-
return generateFilename("JCA-recording", suffixText, fileExtension)
49+
return constructFilename(
50+
"JCA-recording",
51+
createTimestamp().toString(),
52+
suffixText,
53+
fileExtension
54+
)
5655
}
5756
}

core/common/src/main/java/com/google/jetpackcamera/core/common/FakeFilePathGenerator.kt

Lines changed: 13 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
package com.google.jetpackcamera.core.common
1717

1818
import android.os.Environment
19+
import com.google.jetpackcamera.core.common.FilePathGenerator.Companion.constructFilename
1920
import java.io.File
2021
import java.util.Date
2122

@@ -34,24 +35,21 @@ class FakeFilePathGenerator : FilePathGenerator {
3435

3536
private fun createTimestamp() = Date().time
3637

37-
private fun generateFilename(
38-
prefix: String,
39-
suffixText: String?,
40-
fileExtension: String?
41-
): String {
42-
val timestamp = createTimestamp()
43-
return buildString {
44-
append("$prefix-$timestamp")
45-
suffixText?.let { append("-$it") }
46-
fileExtension?.let { append(it) }
47-
}
48-
}
49-
5038
override fun generateImageFilename(suffixText: String?, fileExtension: String?): String {
51-
return generateFilename("JCA-test-photo", suffixText, fileExtension)
39+
return constructFilename(
40+
"JCA-test-photo",
41+
createTimestamp().toString(),
42+
suffixText,
43+
fileExtension
44+
)
5245
}
5346

5447
override fun generateVideoFilename(suffixText: String?, fileExtension: String?): String {
55-
return generateFilename("JCA-test-recording", suffixText, fileExtension)
48+
return constructFilename(
49+
"JCA-test-recording",
50+
createTimestamp().toString(),
51+
suffixText,
52+
fileExtension
53+
)
5654
}
5755
}

core/common/src/main/java/com/google/jetpackcamera/core/common/FilePathGenerator.kt

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,4 +56,29 @@ interface FilePathGenerator {
5656
* @param fileExtension the extension to be appended at the end of the generated filename
5757
*/
5858
fun generateVideoFilename(suffixText: String? = null, fileExtension: String? = ".mp4"): String
59+
60+
companion object {
61+
/**
62+
* constructs a filename based on the provided values
63+
*
64+
* @param prefix the first portion of the filename's text
65+
* @param timestamp a unique string to prevent subsequently created files from overwriting
66+
* each other. i.e. a timestamp
67+
* @param suffixText additional text to append to the end of the generated filename, before
68+
* the file extension.
69+
* @param fileExtension the extension to be appended at the end of the generated filename (i.e. `.mp4``.jpg`)
70+
*/
71+
fun constructFilename(
72+
prefix: String,
73+
timestamp: String,
74+
suffixText: String?,
75+
fileExtension: String?
76+
): String {
77+
return buildString {
78+
append("$prefix-$timestamp")
79+
suffixText?.let { append("-$it") }
80+
fileExtension?.let { append(it) }
81+
}
82+
}
83+
}
5984
}

0 commit comments

Comments
 (0)