diff --git a/src/org/thoughtcrime/securesms/database/Address.java b/src/org/thoughtcrime/securesms/database/Address.java index 1286b4b302..7cf4f221d5 100644 --- a/src/org/thoughtcrime/securesms/database/Address.java +++ b/src/org/thoughtcrime/securesms/database/Address.java @@ -111,7 +111,7 @@ public class Address implements Parcelable, Comparable
{ public boolean isGroup() { return GroupUtil.isEncodedGroup(address); } - public boolean isSignalGroup() { return !isPublicChat() && !isRSSFeed(); } + public boolean isSignalGroup() { return GroupUtil.isSignalGroup(address); } public boolean isPublicChat() { return GroupUtil.isPublicChat(address); } diff --git a/src/org/thoughtcrime/securesms/loki/redesign/activities/HomeActivity.kt b/src/org/thoughtcrime/securesms/loki/redesign/activities/HomeActivity.kt index 3993a93f10..44812f438d 100644 --- a/src/org/thoughtcrime/securesms/loki/redesign/activities/HomeActivity.kt +++ b/src/org/thoughtcrime/securesms/loki/redesign/activities/HomeActivity.kt @@ -194,7 +194,7 @@ class HomeActivity : PassphraseRequiredActionBarActivity, ConversationClickListe private fun openConversation(thread: ThreadRecord) { val intent = Intent(this, ConversationActivity::class.java) - intent.putExtra(ConversationActivity.ADDRESS_EXTRA, thread.recipient.getAddress()) + intent.putExtra(ConversationActivity.ADDRESS_EXTRA, thread.recipient.address) intent.putExtra(ConversationActivity.THREAD_ID_EXTRA, thread.threadId) intent.putExtra(ConversationActivity.DISTRIBUTION_TYPE_EXTRA, thread.distributionType) intent.putExtra(ConversationActivity.TIMING_EXTRA, System.currentTimeMillis()) @@ -255,9 +255,9 @@ class HomeActivity : PassphraseRequiredActionBarActivity, ConversationClickListe val dialog = AlertDialog.Builder(activity) dialog.setMessage(dialogMessage) dialog.setPositiveButton(R.string.yes) { _, _ -> - val isGroup = recipient.isGroupRecipient + val isClosedGroup = recipient.address.isSignalGroup // Send a leave group message if this is an active closed group - if (isGroup && DatabaseFactory.getGroupDatabase(activity).isActive(recipient.address.toGroupString())) { + if (isClosedGroup && DatabaseFactory.getGroupDatabase(activity).isActive(recipient.address.toGroupString())) { if (!GroupUtil.leaveGroup(activity, recipient)) { Toast.makeText(activity, "Couldn't leave group", Toast.LENGTH_LONG).show() clearView(activity.recyclerView, viewHolder) @@ -267,10 +267,11 @@ class HomeActivity : PassphraseRequiredActionBarActivity, ConversationClickListe // Archive the conversation and then delete it after 10 seconds (the case where the // app was closed before the conversation could be deleted is handled in onCreate) threadDatabase.archiveConversation(threadID) + val delay = if (isClosedGroup) 10000L else 1000L val handler = Handler() - handler.postDelayed(deleteThread, 10000) + handler.postDelayed(deleteThread, delay) // Notify the user - val toastMessage = if (isGroup) R.string.MessageRecord_left_group else R.string.activity_home_conversation_deleted_message + val toastMessage = if (recipient.isGroupRecipient) R.string.MessageRecord_left_group else R.string.activity_home_conversation_deleted_message Toast.makeText(activity, toastMessage, Toast.LENGTH_LONG).show() } dialog.setNegativeButton(R.string.no) { _, _ -> diff --git a/src/org/thoughtcrime/securesms/util/GroupUtil.java b/src/org/thoughtcrime/securesms/util/GroupUtil.java index 0e869da787..907a21217e 100644 --- a/src/org/thoughtcrime/securesms/util/GroupUtil.java +++ b/src/org/thoughtcrime/securesms/util/GroupUtil.java @@ -87,6 +87,10 @@ public class GroupUtil { return groupId.startsWith(ENCODED_RSS_FEED_GROUP_PREFIX); } + public static boolean isSignalGroup(@NonNull String groupId) { + return groupId.startsWith(ENCODED_SIGNAL_GROUP_PREFIX); + } + @WorkerThread public static Optional createGroupLeaveMessage(@NonNull Context context, @NonNull Recipient groupRecipient) { String encodedGroupId = groupRecipient.getAddress().toGroupString();