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 53427cb012..dc611809fd 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationActivity.java +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationActivity.java @@ -340,6 +340,7 @@ public class ConversationActivity extends PassphraseRequiredActivity protected HidingLinearLayout inlineAttachmentToggle; private InputPanel inputPanel; private View panelParent; + private View noLongerMemberBanner; private LinkPreviewViewModel linkPreviewViewModel; private ConversationSearchViewModel searchViewModel; @@ -1419,7 +1420,10 @@ public class ConversationActivity extends PassphraseRequiredActivity private void initializeEnabledCheck() { groupViewModel.getGroupActiveState().observe(this, state -> { - boolean enabled = state == null || !(isPushGroupConversation() && !state.isActiveGroup()); + boolean inactivePushGroup = state != null && isPushGroupConversation() && !state.isActiveGroup(); + boolean enabled = !inactivePushGroup; + noLongerMemberBanner.setVisibility(enabled ? View.GONE : View.VISIBLE); + inputPanel.setVisibility(enabled ? View.VISIBLE : View.GONE); inputPanel.setEnabled(enabled); sendButton.setEnabled(enabled); attachButton.setEnabled(enabled); @@ -1701,6 +1705,8 @@ public class ConversationActivity extends PassphraseRequiredActivity ImageButton quickCameraToggle = ViewUtil.findById(this, R.id.quick_camera_toggle); ImageButton inlineAttachmentButton = ViewUtil.findById(this, R.id.inline_attachment_button); + noLongerMemberBanner = findViewById(R.id.conversation_no_longer_member_banner); + container.addOnKeyboardShownListener(this); inputPanel.setListener(this); inputPanel.setMediaListener(this); @@ -2145,7 +2151,8 @@ public class ConversationActivity extends PassphraseRequiredActivity makeDefaultSmsButton.setVisibility(View.VISIBLE); registerButton.setVisibility(View.GONE); } else { - inputPanel.setVisibility(View.VISIBLE); + boolean inactivePushGroup = isPushGroupConversation() && !recipient.isActiveGroup(); + inputPanel.setVisibility(inactivePushGroup ? View.GONE : View.VISIBLE); unblockButton.setVisibility(View.GONE); makeDefaultSmsButton.setVisibility(View.GONE); registerButton.setVisibility(View.GONE); diff --git a/app/src/main/res/layout/conversation_activity.xml b/app/src/main/res/layout/conversation_activity.xml index 9f7e653191..614b0705c2 100644 --- a/app/src/main/res/layout/conversation_activity.xml +++ b/app/src/main/res/layout/conversation_activity.xml @@ -83,6 +83,10 @@ android:clipChildren="false" android:clipToPadding="false"> + + diff --git a/app/src/main/res/layout/conversation_no_longer_a_member.xml b/app/src/main/res/layout/conversation_no_longer_a_member.xml new file mode 100644 index 0000000000..1813f34771 --- /dev/null +++ b/app/src/main/res/layout/conversation_no_longer_a_member.xml @@ -0,0 +1,13 @@ + + diff --git a/app/src/main/res/values/attrs.xml b/app/src/main/res/values/attrs.xml index d82a68160f..42a6470e0a 100644 --- a/app/src/main/res/values/attrs.xml +++ b/app/src/main/res/values/attrs.xml @@ -17,6 +17,8 @@ + + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index fa832ceed3..fe6850eeaa 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -244,6 +244,7 @@ Attachment exceeds size limits for the type of message you\'re sending. Camera unavailable Unable to record audio! + You can\'t send messages to this group because you\'re no longer a member. There is no app available to handle this link on your device. To send audio messages, allow Signal access to your microphone. diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml index 72ae22e0ca..0be62800f1 100644 --- a/app/src/main/res/values/themes.xml +++ b/app/src/main/res/values/themes.xml @@ -189,6 +189,7 @@ @color/core_ultramarine @color/white @null + @color/core_grey_02 @style/AppCompatAlertDialogStyleLight @style/AppCompatDialogStyleLight @drawable/ic_arrow_left_24 @@ -493,6 +494,7 @@ @color/core_ultramarine_light @color/core_grey_95 @null + @color/core_grey_90 @style/AppCompatAlertDialogStyleDark @style/AppCompatDialogStyleDark @drawable/ic_arrow_left_24