From b698daa4cfe79904f575445791309879be8c2035 Mon Sep 17 00:00:00 2001 From: Alex Hart Date: Fri, 30 Jan 2026 16:16:56 -0400 Subject: [PATCH] Convert SentMediaQuality to kotlin. --- .../securesms/keyvalue/SettingsValues.java | 4 +- .../securesms/mediasend/MediaRepository.java | 2 +- .../mediasend/SentMediaQualityTransform.java | 2 +- .../securesms/mms/SentMediaQuality.java | 42 ------------------- .../securesms/mms/SentMediaQuality.kt | 28 +++++++++++++ .../securesms/mms/SlideFactory.java | 2 +- .../securesms/sharing/MultiShareSender.java | 2 +- 7 files changed, 34 insertions(+), 48 deletions(-) delete mode 100644 app/src/main/java/org/thoughtcrime/securesms/mms/SentMediaQuality.java create mode 100644 app/src/main/java/org/thoughtcrime/securesms/mms/SentMediaQuality.kt diff --git a/app/src/main/java/org/thoughtcrime/securesms/keyvalue/SettingsValues.java b/app/src/main/java/org/thoughtcrime/securesms/keyvalue/SettingsValues.java index 6616ad7115..42304a05db 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/keyvalue/SettingsValues.java +++ b/app/src/main/java/org/thoughtcrime/securesms/keyvalue/SettingsValues.java @@ -489,11 +489,11 @@ public final class SettingsValues extends SignalStoreValues { } public void setSentMediaQuality(@NonNull SentMediaQuality sentMediaQuality) { - putInteger(SENT_MEDIA_QUALITY, sentMediaQuality.getCode()); + putInteger(SENT_MEDIA_QUALITY, sentMediaQuality.code); } public @NonNull SentMediaQuality getSentMediaQuality() { - return SentMediaQuality.fromCode(getInteger(SENT_MEDIA_QUALITY, SentMediaQuality.STANDARD.getCode())); + return SentMediaQuality.fromCode(getInteger(SENT_MEDIA_QUALITY, SentMediaQuality.STANDARD.code)); } public @NonNull CensorshipCircumventionEnabled getCensorshipCircumventionEnabled() { diff --git a/app/src/main/java/org/thoughtcrime/securesms/mediasend/MediaRepository.java b/app/src/main/java/org/thoughtcrime/securesms/mediasend/MediaRepository.java index dac69d5bea..0102e01bbe 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/mediasend/MediaRepository.java +++ b/app/src/main/java/org/thoughtcrime/securesms/mediasend/MediaRepository.java @@ -283,7 +283,7 @@ public class MediaRepository { long size = cursor.getLong(cursor.getColumnIndexOrThrow(Images.Media.SIZE)); long duration = !isImage ? cursor.getInt(cursor.getColumnIndexOrThrow(Video.Media.DURATION)) : 0; - media.add(fixMimeType(context, new Media(uri, mimetype, date, width, height, size, duration, false, false, bucketId, null, TransformProperties.forSentMediaQuality(SignalStore.settings().getSentMediaQuality().getCode()), null))); + media.add(fixMimeType(context, new Media(uri, mimetype, date, width, height, size, duration, false, false, bucketId, null, TransformProperties.forSentMediaQuality(SignalStore.settings().getSentMediaQuality().code), null))); } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/mediasend/SentMediaQualityTransform.java b/app/src/main/java/org/thoughtcrime/securesms/mediasend/SentMediaQualityTransform.java index 4e54e41abe..2d7042a912 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/mediasend/SentMediaQualityTransform.java +++ b/app/src/main/java/org/thoughtcrime/securesms/mediasend/SentMediaQualityTransform.java @@ -15,7 +15,7 @@ import static org.thoughtcrime.securesms.database.TransformPropertiesUtilKt.tran /** - * Add a {@link SentMediaQuality} value for {@link TransformProperties#getSentMediaQuality()} on the + * Add a {@link SentMediaQuality} value for {@link TransformProperties#sentMediaQuality} on the * transformed media. Safe to use in a pipeline with other transforms. */ public final class SentMediaQualityTransform implements MediaTransform { diff --git a/app/src/main/java/org/thoughtcrime/securesms/mms/SentMediaQuality.java b/app/src/main/java/org/thoughtcrime/securesms/mms/SentMediaQuality.java deleted file mode 100644 index d2976b44b4..0000000000 --- a/app/src/main/java/org/thoughtcrime/securesms/mms/SentMediaQuality.java +++ /dev/null @@ -1,42 +0,0 @@ -package org.thoughtcrime.securesms.mms; - -import android.content.Context; - -import androidx.annotation.NonNull; -import androidx.annotation.StringRes; - -import org.thoughtcrime.securesms.R; - -import java.util.Arrays; - -/** - * Quality levels to send media at. - */ -public enum SentMediaQuality { - STANDARD(0, R.string.DataAndStorageSettingsFragment__standard), - HIGH(1, R.string.DataAndStorageSettingsFragment__high); - - - private final int code; - private final int label; - - SentMediaQuality(int code, @StringRes int label) { - this.code = code; - this.label = label; - } - - public static @NonNull SentMediaQuality fromCode(int code) { - if (HIGH.code == code) { - return HIGH; - } - return STANDARD; - } - - public static @NonNull String[] getLabels(@NonNull Context context) { - return Arrays.stream(values()).map(q -> context.getString(q.label)).toArray(String[]::new); - } - - public int getCode() { - return code; - } -} diff --git a/app/src/main/java/org/thoughtcrime/securesms/mms/SentMediaQuality.kt b/app/src/main/java/org/thoughtcrime/securesms/mms/SentMediaQuality.kt new file mode 100644 index 0000000000..fa5b3d5ba6 --- /dev/null +++ b/app/src/main/java/org/thoughtcrime/securesms/mms/SentMediaQuality.kt @@ -0,0 +1,28 @@ +package org.thoughtcrime.securesms.mms + +import android.content.Context +import androidx.annotation.StringRes +import org.thoughtcrime.securesms.R + +/** + * Quality levels to send media at. + */ +enum class SentMediaQuality(@JvmField val code: Int, @param:StringRes private val label: Int) { + STANDARD(0, R.string.DataAndStorageSettingsFragment__standard), + HIGH(1, R.string.DataAndStorageSettingsFragment__high); + + companion object { + @JvmStatic + fun fromCode(code: Int): SentMediaQuality { + return if (HIGH.code == code) { + HIGH + } else { + STANDARD + } + } + + fun getLabels(context: Context): Array { + return entries.map { context.getString(it.label) }.toTypedArray() + } + } +} diff --git a/app/src/main/java/org/thoughtcrime/securesms/mms/SlideFactory.java b/app/src/main/java/org/thoughtcrime/securesms/mms/SlideFactory.java index 95a2bd0a8d..024c416bdf 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/mms/SlideFactory.java +++ b/app/src/main/java/org/thoughtcrime/securesms/mms/SlideFactory.java @@ -173,7 +173,7 @@ public final class SlideFactory { case IMAGE: return new ImageSlide(context, uri, mimeType, dataSize, width, height, false, null, blurHash, transformProperties); case GIF: return new GifSlide(context, uri, dataSize, width, height); case AUDIO: return new AudioSlide(context, uri, dataSize, false); - case VIDEO: return new VideoSlide(context, uri, dataSize, gif, null, TransformProperties.forSentMediaQuality(transformProperties != null ? transformProperties.sentMediaQuality : SentMediaQuality.STANDARD.getCode())); + case VIDEO: return new VideoSlide(context, uri, dataSize, gif, null, TransformProperties.forSentMediaQuality(transformProperties != null ? transformProperties.sentMediaQuality : SentMediaQuality.STANDARD.code)); case VCARD: case DOCUMENT: return new DocumentSlide(context, uri, mimeType, dataSize, fileName); default: throw new AssertionError("unrecognized enum"); diff --git a/app/src/main/java/org/thoughtcrime/securesms/sharing/MultiShareSender.java b/app/src/main/java/org/thoughtcrime/securesms/sharing/MultiShareSender.java index 4803a114f2..12dbc8a7c7 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/sharing/MultiShareSender.java +++ b/app/src/main/java/org/thoughtcrime/securesms/sharing/MultiShareSender.java @@ -354,7 +354,7 @@ public final class MultiShareSender { private static Slide ensureDefaultQuality(@NonNull Context context, @NonNull ImageSlide imageSlide) { Attachment attachment = imageSlide.asAttachment(); final TransformProperties transformProperties = attachment.transformProperties; - if (transformProperties != null && transformProperties.sentMediaQuality == SentMediaQuality.HIGH.getCode()) { + if (transformProperties != null && transformProperties.sentMediaQuality == SentMediaQuality.HIGH.code) { return new ImageSlide( context, attachment.getUri(),