diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationActivity.java b/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationActivity.java index 421848b75..31a6dcde5 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationActivity.java +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationActivity.java @@ -257,7 +257,6 @@ import org.thoughtcrime.securesms.util.DrawableUtil; import org.thoughtcrime.securesms.util.DynamicLanguage; import org.thoughtcrime.securesms.util.DynamicNoActionBarTheme; import org.thoughtcrime.securesms.util.DynamicTheme; -import org.thoughtcrime.securesms.util.FeatureFlags; import org.thoughtcrime.securesms.util.FullscreenHelper; import org.thoughtcrime.securesms.util.IdentityUtil; import org.thoughtcrime.securesms.util.MediaUtil; @@ -865,7 +864,7 @@ public class ConversationActivity extends PassphraseRequiredActivity if (isSecureText) inflater.inflate(R.menu.conversation_callable_secure, menu); else inflater.inflate(R.menu.conversation_callable_insecure, menu); } else if (isGroupConversation()) { - if (isActiveV2Group && FeatureFlags.groupCalling()) { + if (isActiveV2Group && Build.VERSION.SDK_INT > 19) { inflater.inflate(R.menu.conversation_callable_groupv2, menu); if (groupCallViewModel != null && Boolean.TRUE.equals(groupCallViewModel.hasActiveGroupCall().getValue())) { hideMenuItem(menu, R.id.menu_video_secure); @@ -2223,7 +2222,7 @@ public class ConversationActivity extends PassphraseRequiredActivity } private void showGroupCallingTooltip() { - if (!FeatureFlags.groupCalling() || !SignalStore.tooltips().shouldShowGroupCallingTooltip() || callingTooltipShown) { + if (Build.VERSION.SDK_INT == 19 || !SignalStore.tooltips().shouldShowGroupCallingTooltip() || callingTooltipShown) { return; } diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/ui/groupcall/GroupCallViewModel.java b/app/src/main/java/org/thoughtcrime/securesms/conversation/ui/groupcall/GroupCallViewModel.java index e795a2533..b19795c09 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/ui/groupcall/GroupCallViewModel.java +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/ui/groupcall/GroupCallViewModel.java @@ -2,6 +2,7 @@ package org.thoughtcrime.securesms.conversation.ui.groupcall; import android.content.Context; import android.content.Intent; +import android.os.Build; import androidx.annotation.NonNull; import androidx.annotation.Nullable; @@ -15,7 +16,6 @@ import org.thoughtcrime.securesms.events.GroupCallPeekEvent; import org.thoughtcrime.securesms.recipients.Recipient; import org.thoughtcrime.securesms.ringrtc.RemotePeer; import org.thoughtcrime.securesms.service.WebRtcCallService; -import org.thoughtcrime.securesms.util.FeatureFlags; import org.thoughtcrime.securesms.util.livedata.LiveDataUtil; import java.util.Objects; @@ -84,7 +84,7 @@ public class GroupCallViewModel extends ViewModel { } private static boolean isGroupCallCapable(@Nullable Recipient recipient) { - return recipient != null && recipient.isActiveGroup() && recipient.isPushV2Group() && FeatureFlags.groupCalling(); + return recipient != null && recipient.isActiveGroup() && recipient.isPushV2Group() && Build.VERSION.SDK_INT > 19; } public static final class Factory implements ViewModelProvider.Factory { diff --git a/app/src/main/java/org/thoughtcrime/securesms/megaphone/Megaphones.java b/app/src/main/java/org/thoughtcrime/securesms/megaphone/Megaphones.java index 57651a606..341f980b2 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/megaphone/Megaphones.java +++ b/app/src/main/java/org/thoughtcrime/securesms/megaphone/Megaphones.java @@ -320,7 +320,7 @@ public final class Megaphones { } private static boolean shouldShowGroupCallingMegaphone() { - return FeatureFlags.groupCalling(); + return Build.VERSION.SDK_INT > 19; } private static boolean shouldShowOnboardingMegaphone(@NonNull Context context) { diff --git a/app/src/main/java/org/thoughtcrime/securesms/messages/MessageContentProcessor.java b/app/src/main/java/org/thoughtcrime/securesms/messages/MessageContentProcessor.java index e7aa17d83..aea03c622 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/messages/MessageContentProcessor.java +++ b/app/src/main/java/org/thoughtcrime/securesms/messages/MessageContentProcessor.java @@ -229,15 +229,15 @@ public final class MessageContentProcessor { } } - if (isInvalidMessage(message)) handleInvalidMessage(content.getSender(), content.getSenderDevice(), groupId, content.getTimestamp(), smsMessageId); - else if (message.isEndSession()) handleEndSessionMessage(content, smsMessageId); - else if (message.isGroupV1Update()) handleGroupV1Message(content, message, smsMessageId, groupId.get().requireV1()); - else if (message.isExpirationUpdate()) handleExpirationUpdate(content, message, smsMessageId, groupId); - else if (message.getReaction().isPresent()) handleReaction(content, message); - else if (message.getRemoteDelete().isPresent()) handleRemoteDelete(content, message); - else if (isMediaMessage) handleMediaMessage(content, message, smsMessageId); - else if (message.getBody().isPresent()) handleTextMessage(content, message, smsMessageId, groupId); - else if (FeatureFlags.groupCalling() && message.getGroupCallUpdate().isPresent()) handleGroupCallUpdateMessage(content, message, groupId); + if (isInvalidMessage(message)) handleInvalidMessage(content.getSender(), content.getSenderDevice(), groupId, content.getTimestamp(), smsMessageId); + else if (message.isEndSession()) handleEndSessionMessage(content, smsMessageId); + else if (message.isGroupV1Update()) handleGroupV1Message(content, message, smsMessageId, groupId.get().requireV1()); + else if (message.isExpirationUpdate()) handleExpirationUpdate(content, message, smsMessageId, groupId); + else if (message.getReaction().isPresent()) handleReaction(content, message); + else if (message.getRemoteDelete().isPresent()) handleRemoteDelete(content, message); + else if (isMediaMessage) handleMediaMessage(content, message, smsMessageId); + else if (message.getBody().isPresent()) handleTextMessage(content, message, smsMessageId, groupId); + else if (Build.VERSION.SDK_INT > 19 && message.getGroupCallUpdate().isPresent()) handleGroupCallUpdateMessage(content, message, groupId); if (groupId.isPresent() && groupDatabase.isUnknownGroup(groupId.get())) { handleUnknownGroupMessage(content, message.getGroupContext().get()); @@ -858,7 +858,7 @@ public final class MessageContentProcessor { } else if (message.getMessage().isGroupV2Update()) { handleSynchronizeSentGv2Update(content, message); threadId = DatabaseFactory.getThreadDatabase(context).getThreadIdFor(getSyncMessageDestination(message)); - } else if (FeatureFlags.groupCalling() && message.getMessage().getGroupCallUpdate().isPresent()) { + } else if (Build.VERSION.SDK_INT > 19 && message.getMessage().getGroupCallUpdate().isPresent()) { handleGroupCallUpdateMessage(content, message.getMessage(), GroupUtil.idFromGroupContext(message.getMessage().getGroupContext())); } else if (message.getMessage().isEmptyGroupV2Message()) { // Do nothing diff --git a/app/src/main/java/org/thoughtcrime/securesms/util/FeatureFlags.java b/app/src/main/java/org/thoughtcrime/securesms/util/FeatureFlags.java index e263fce4d..c646332f8 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/util/FeatureFlags.java +++ b/app/src/main/java/org/thoughtcrime/securesms/util/FeatureFlags.java @@ -60,7 +60,6 @@ public final class FeatureFlags { private static final String CLIENT_EXPIRATION = "android.clientExpiration"; public static final String DONATE_MEGAPHONE = "android.donate"; private static final String VIEWED_RECEIPTS = "android.viewed.receipts"; - private static final String GROUP_CALLING = "android.groupsv2.calling.2"; private static final String GV1_FORCED_MIGRATE = "android.groupsV1Migration.forced"; private static final String SEND_VIEWED_RECEIPTS = "android.sendViewedReceipts"; private static final String CUSTOM_VIDEO_MUXER = "android.customVideoMuxer"; @@ -91,7 +90,6 @@ public final class FeatureFlags { DONATE_MEGAPHONE, VIEWED_RECEIPTS, GV1_FORCED_MIGRATE, - GROUP_CALLING, SEND_VIEWED_RECEIPTS, CUSTOM_VIDEO_MUXER, CDS_REFRESH_INTERVAL, @@ -135,7 +133,6 @@ public final class FeatureFlags { static final Set HOT_SWAPPABLE = SetUtil.newHashSet( VERIFY_V2, CLIENT_EXPIRATION, - GROUP_CALLING, CUSTOM_VIDEO_MUXER, CDS_REFRESH_INTERVAL, GROUP_NAME_MAX_LENGTH, @@ -265,11 +262,6 @@ public final class FeatureFlags { return getBoolean(VIEWED_RECEIPTS, false); } - /** Whether or not group calling is enabled. */ - public static boolean groupCalling() { - return Build.VERSION.SDK_INT > 19 && getBoolean(GROUP_CALLING, false); - } - /** Whether or not forced migration from GV1->GV2 is enabled. */ public static boolean groupsV1ForcedMigration() { return getBoolean(GV1_FORCED_MIGRATE, false);