diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationActivityV2.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationActivityV2.kt index e46c37d795..02d67f3520 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationActivityV2.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationActivityV2.kt @@ -214,6 +214,11 @@ class ConversationActivityV2 : PassphraseRequiredActionBarActivity(), InputBarDe threadID = DatabaseFactory.getThreadDatabase(this).getOrCreateThreadIdFor(recipient) } this.threadID = threadID + val thread = DatabaseFactory.getThreadDatabase(this).getRecipientForThreadId(threadID) + if (thread == null) { + Toast.makeText(this, "This thread has been deleted.", Toast.LENGTH_LONG).show() + return finish() + } setUpRecyclerView() setUpToolBar() setUpInputBar() @@ -233,6 +238,13 @@ class ConversationActivityV2 : PassphraseRequiredActionBarActivity(), InputBarDe scrollToFirstUnreadMessageIfNeeded() markAllAsRead() showOrHideInputIfNeeded() + if (this.thread.isOpenGroupRecipient) { + val openGroup = DatabaseFactory.getLokiThreadDatabase(this).getOpenGroupChat(threadID) + if (openGroup == null) { + Toast.makeText(this, "This thread has been deleted.", Toast.LENGTH_LONG).show() + return finish() + } + } } override fun onResume() { diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/messages/VisibleMessageView.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/messages/VisibleMessageView.kt index 02889ff956..afb2683b89 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/messages/VisibleMessageView.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/messages/VisibleMessageView.kt @@ -96,7 +96,7 @@ class VisibleMessageView : LinearLayout { profilePictureView.glide = glide profilePictureView.update() if (thread.isOpenGroupRecipient) { - val openGroup = DatabaseFactory.getLokiThreadDatabase(context).getOpenGroupChat(threadID)!! + val openGroup = DatabaseFactory.getLokiThreadDatabase(context).getOpenGroupChat(threadID) ?: return val isModerator = OpenGroupAPIV2.isUserModerator(senderSessionID, openGroup.room, openGroup.server) moderatorIconImageView.visibility = if (isModerator) View.VISIBLE else View.INVISIBLE } else { diff --git a/app/src/main/java/org/thoughtcrime/securesms/loki/activities/HomeActivity.kt b/app/src/main/java/org/thoughtcrime/securesms/loki/activities/HomeActivity.kt index a4b5e6437b..601820e5a0 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/loki/activities/HomeActivity.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/loki/activities/HomeActivity.kt @@ -154,16 +154,6 @@ class HomeActivity : PassphraseRequiredActionBarActivity(), ConversationClickLis } } EventBus.getDefault().register(this@HomeActivity) - testDateFormatting() - } - - private fun testDateFormatting() { - val timestamp = Date().time - Log.d("Test", getString(R.string.DateUtils_just_now)) - Log.d("Test", DateUtils.getFormattedDateTime(timestamp, DateUtils.getHourFormat(this), Locale.getDefault())) - Log.d("Test", DateUtils.getFormattedDateTime(timestamp, "EEE " + DateUtils.getHourFormat(this), Locale.getDefault())) - Log.d("Test", DateUtils.getFormattedDateTime(timestamp, "MMM d " + DateUtils.getHourFormat(this), Locale.getDefault())) - Log.d("Test", DateUtils.getFormattedDateTime(timestamp, "MMM d " + DateUtils.getHourFormat(this) + ", yyyy", Locale.getDefault())) } override fun onResume() { diff --git a/app/src/main/java/org/thoughtcrime/securesms/loki/api/OpenGroupManager.kt b/app/src/main/java/org/thoughtcrime/securesms/loki/api/OpenGroupManager.kt index a1b2b208f7..72afe11c6e 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/loki/api/OpenGroupManager.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/loki/api/OpenGroupManager.kt @@ -116,6 +116,7 @@ object OpenGroupManager { val lokiThreadDB = DatabaseFactory.getLokiThreadDatabase(context) lokiThreadDB.removeOpenGroupChat(threadID) ThreadUtils.queue { + threadDB.deleteConversation(threadID) // Must be invoked on a background thread GroupManager.deleteGroup(groupID, context) // Must be invoked on a background thread } }