Allow for larger input videos for sending.

This commit is contained in:
Cody Henthorne
2024-07-15 11:07:37 -04:00
committed by Greyson Parrelli
parent 58443c46be
commit 6daee5719b
5 changed files with 39 additions and 6 deletions

View File

@@ -62,7 +62,7 @@ public class PushMediaConstraints extends MediaConstraints {
@Override
public long getUncompressedVideoMaxSize(Context context) {
return isVideoTranscodeAvailable() ? 500 * MB
return isVideoTranscodeAvailable() ? RemoteConfig.maxSourceTranscodeVideoSizeBytes()
: getVideoMaxSize(context);
}

View File

@@ -18,6 +18,7 @@ import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers
import io.reactivex.rxjava3.kotlin.subscribeBy
import org.signal.core.util.Result
import org.signal.core.util.concurrent.LifecycleDisposable
import org.signal.core.util.concurrent.addTo
import org.signal.core.util.getParcelableArrayListCompat
import org.signal.core.util.getParcelableArrayListExtraCompat
import org.signal.core.util.getParcelableExtraCompat
@@ -25,6 +26,7 @@ import org.signal.core.util.logging.Log
import org.thoughtcrime.securesms.MainActivity
import org.thoughtcrime.securesms.PassphraseRequiredActivity
import org.thoughtcrime.securesms.R
import org.thoughtcrime.securesms.components.SignalProgressDialog
import org.thoughtcrime.securesms.contacts.paged.ContactSearchKey
import org.thoughtcrime.securesms.conversation.ConversationIntents
import org.thoughtcrime.securesms.conversation.MessageSendType
@@ -42,6 +44,7 @@ import org.thoughtcrime.securesms.util.ConversationUtil
import org.thoughtcrime.securesms.util.DynamicNoActionBarTheme
import org.thoughtcrime.securesms.util.visible
import java.util.Optional
import java.util.concurrent.TimeUnit
class ShareActivity : PassphraseRequiredActivity(), MultiselectForwardFragment.Callback {
@@ -123,6 +126,22 @@ class ShareActivity : PassphraseRequiredActivity(), MultiselectForwardFragment.C
}
}
var dialog: SignalProgressDialog? = null
viewModel
.state
.debounce(500, TimeUnit.MILLISECONDS)
.onErrorComplete()
.observeOn(AndroidSchedulers.mainThread())
.subscribeBy { state ->
if (state.loadState == ShareState.ShareDataLoadState.Init) {
dialog = SignalProgressDialog.show(this, indeterminate = true)
} else {
dialog?.dismiss()
dialog = null
}
}
.addTo(lifecycleDisposable)
lifecycleDisposable += viewModel.state.observeOn(AndroidSchedulers.mainThread()).subscribe { shareState ->
when (shareState.loadState) {
ShareState.ShareDataLoadState.Init -> Unit

View File

@@ -869,6 +869,15 @@ object RemoteConfig {
hotSwappable = true
)
/** Maximum input size when opening a video to send in bytes */
@JvmStatic
@get:JvmName("maxSourceTranscodeVideoSizeBytes")
val maxSourceTranscodeVideoSizeBytes: Long by remoteLong(
key = "android.media.sourceTranscodeVideo.maxBytes",
defaultValue = 500L.mebiBytes.inWholeBytes,
hotSwappable = true
)
const val PROMPT_FOR_NOTIFICATION_LOGS: String = "android.logs.promptNotifications"
@JvmStatic