feat: add onStrippingFailed callback to upload orchestrators
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -60,6 +60,7 @@ class MultiOrchestrator(
|
|||||||
context: Context,
|
context: Context,
|
||||||
useH265: Boolean = false,
|
useH265: Boolean = false,
|
||||||
stripMetadata: Boolean = true,
|
stripMetadata: Boolean = true,
|
||||||
|
onStrippingFailed: suspend () -> Boolean = { true },
|
||||||
): Result {
|
): Result {
|
||||||
coroutineScope {
|
coroutineScope {
|
||||||
val jobs =
|
val jobs =
|
||||||
@@ -76,6 +77,7 @@ class MultiOrchestrator(
|
|||||||
context,
|
context,
|
||||||
useH265,
|
useH265,
|
||||||
stripMetadata,
|
stripMetadata,
|
||||||
|
onStrippingFailed,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -96,6 +98,7 @@ class MultiOrchestrator(
|
|||||||
context: Context,
|
context: Context,
|
||||||
useH265: Boolean = false,
|
useH265: Boolean = false,
|
||||||
stripMetadata: Boolean = true,
|
stripMetadata: Boolean = true,
|
||||||
|
onStrippingFailed: suspend () -> Boolean = { true },
|
||||||
): Result {
|
): Result {
|
||||||
coroutineScope {
|
coroutineScope {
|
||||||
val jobs =
|
val jobs =
|
||||||
@@ -113,6 +116,7 @@ class MultiOrchestrator(
|
|||||||
context,
|
context,
|
||||||
useH265,
|
useH265,
|
||||||
stripMetadata,
|
stripMetadata,
|
||||||
|
onStrippingFailed,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+16
@@ -320,8 +320,16 @@ class UploadOrchestrator {
|
|||||||
context: Context,
|
context: Context,
|
||||||
useH265: Boolean = false,
|
useH265: Boolean = false,
|
||||||
stripMetadata: Boolean = true,
|
stripMetadata: Boolean = true,
|
||||||
|
onStrippingFailed: suspend () -> Boolean = { true },
|
||||||
): UploadingFinalState {
|
): UploadingFinalState {
|
||||||
val strippingResult = stripMetadataIfNeeded(uri, mimeType, stripMetadata, compressionQuality, context)
|
val strippingResult = stripMetadataIfNeeded(uri, mimeType, stripMetadata, compressionQuality, context)
|
||||||
|
|
||||||
|
if (stripMetadata && !strippingResult.stripped) {
|
||||||
|
if (!onStrippingFailed()) {
|
||||||
|
return error(R.string.upload_cancelled)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
val compressed = compressIfNeeded(strippingResult.uri, mimeType, compressionQuality, context, useH265)
|
val compressed = compressIfNeeded(strippingResult.uri, mimeType, compressionQuality, context, useH265)
|
||||||
|
|
||||||
return when (server.type) {
|
return when (server.type) {
|
||||||
@@ -343,8 +351,16 @@ class UploadOrchestrator {
|
|||||||
context: Context,
|
context: Context,
|
||||||
useH265: Boolean = false,
|
useH265: Boolean = false,
|
||||||
stripMetadata: Boolean = true,
|
stripMetadata: Boolean = true,
|
||||||
|
onStrippingFailed: suspend () -> Boolean = { true },
|
||||||
): UploadingFinalState {
|
): UploadingFinalState {
|
||||||
val strippingResult = stripMetadataIfNeeded(uri, mimeType, stripMetadata, compressionQuality, context)
|
val strippingResult = stripMetadataIfNeeded(uri, mimeType, stripMetadata, compressionQuality, context)
|
||||||
|
|
||||||
|
if (stripMetadata && !strippingResult.stripped) {
|
||||||
|
if (!onStrippingFailed()) {
|
||||||
|
return error(R.string.upload_cancelled)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
val compressed = compressIfNeeded(strippingResult.uri, mimeType, compressionQuality, context, useH265)
|
val compressed = compressIfNeeded(strippingResult.uri, mimeType, compressionQuality, context, useH265)
|
||||||
val encrypted = EncryptFiles().encryptFile(context, compressed.uri, encrypt)
|
val encrypted = EncryptFiles().encryptFile(context, compressed.uri, encrypt)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user