diff --git a/res/values/strings.xml b/res/values/strings.xml
index 6ef258862d..aca6b1c236 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -1662,13 +1662,12 @@
Dismiss
Restore
+
+
Copied to clipboard
-
-
-
- Conversation deleted
- Are you sure you want to leave the group?
- Are you sure you want to delete the conversation?
+ Are you sure you want to leave this group?
+ Are you sure you want to delete this conversation?
+ Conversation deleted
diff --git a/src/org/thoughtcrime/securesms/loki/redesign/activities/HomeActivity.kt b/src/org/thoughtcrime/securesms/loki/redesign/activities/HomeActivity.kt
index e1f46df634..3993a93f10 100644
--- a/src/org/thoughtcrime/securesms/loki/redesign/activities/HomeActivity.kt
+++ b/src/org/thoughtcrime/securesms/loki/redesign/activities/HomeActivity.kt
@@ -11,7 +11,6 @@ import android.graphics.Paint
import android.os.AsyncTask
import android.os.Bundle
import android.os.Handler
-import android.support.design.widget.Snackbar
import android.support.v4.app.LoaderManager
import android.support.v4.content.Loader
import android.support.v7.widget.LinearLayoutManager
@@ -232,8 +231,9 @@ class HomeActivity : PassphraseRequiredActionBarActivity, ConversationClickListe
@SuppressLint("StaticFieldLeak")
override fun onSwiped(viewHolder: RecyclerView.ViewHolder, direction: Int) {
- val threadID = (viewHolder as HomeAdapter.ViewHolder).view.thread!!.threadId
- val recipient = (viewHolder as HomeAdapter.ViewHolder).view.thread!!.recipient
+ viewHolder as HomeAdapter.ViewHolder
+ val threadID = viewHolder.view.thread!!.threadId
+ val recipient = viewHolder.view.thread!!.recipient
val threadDatabase = DatabaseFactory.getThreadDatabase(activity)
val deleteThread = object : Runnable {
@@ -246,44 +246,37 @@ class HomeActivity : PassphraseRequiredActionBarActivity, ConversationClickListe
apiDatabase.removeLastDeletionServerID(publicChat.channel, publicChat.server)
ApplicationContext.getInstance(activity).lokiPublicChatAPI!!.leave(publicChat.channel, publicChat.server)
}
-
threadDatabase.deleteConversation(threadID)
-
MessageNotifier.updateNotification(activity)
}
}
}
-
- val message = if (recipient.isGroupRecipient) R.string.activity_home_leave_group_title else R.string.activity_home_delete_conversation_title
- val alertDialogBuilder = AlertDialog.Builder(activity)
- alertDialogBuilder.setMessage(message)
- alertDialogBuilder.setPositiveButton(R.string.yes) { _, _ ->
+ val dialogMessage = if (recipient.isGroupRecipient) R.string.activity_home_leave_group_dialog_message else R.string.activity_home_delete_conversation_dialog_message
+ val dialog = AlertDialog.Builder(activity)
+ dialog.setMessage(dialogMessage)
+ dialog.setPositiveButton(R.string.yes) { _, _ ->
val isGroup = recipient.isGroupRecipient
-
- // If we are deleting a group and it's active
- // We need to send a leave message
+ // Send a leave group message if this is an active closed group
if (isGroup && DatabaseFactory.getGroupDatabase(activity).isActive(recipient.address.toGroupString())) {
if (!GroupUtil.leaveGroup(activity, recipient)) {
- Toast.makeText(activity, R.string.ConversationActivity_error_leaving_group, Toast.LENGTH_LONG).show()
+ Toast.makeText(activity, "Couldn't leave group", Toast.LENGTH_LONG).show()
clearView(activity.recyclerView, viewHolder)
return@setPositiveButton
}
}
-
- // Archive and forcefully delete the conversation in 10 seconds
+ // 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 handler = Handler()
handler.postDelayed(deleteThread, 10000)
-
// Notify the user
- val snackbarText = if (isGroup) R.string.MessageRecord_left_group else R.string.activity_home_conversation_deleted
- val snackbar = Snackbar.make(activity.contentView, snackbarText, Snackbar.LENGTH_LONG)
- snackbar.show()
+ val toastMessage = if (isGroup) R.string.MessageRecord_left_group else R.string.activity_home_conversation_deleted_message
+ Toast.makeText(activity, toastMessage, Toast.LENGTH_LONG).show()
}
- alertDialogBuilder.setNegativeButton(R.string.no) { _, _ ->
+ dialog.setNegativeButton(R.string.no) { _, _ ->
clearView(activity.recyclerView, viewHolder)
}
- alertDialogBuilder.show()
+ dialog.create().show()
}
override fun onChildDraw(c: Canvas, recyclerView: RecyclerView, viewHolder: RecyclerView.ViewHolder, dx: Float, dy: Float, actionState: Int, isCurrentlyActive: Boolean) {