mirror of
https://github.com/oxen-io/session-android.git
synced 2025-03-27 06:32:33 +00:00
Open group avatar DB record cleanup on deletion.
General cleanup.
This commit is contained in:
parent
70815e61d0
commit
2920e3e528
@ -340,20 +340,18 @@ class HomeActivity : PassphraseRequiredActionBarActivity, ConversationClickListe
|
||||
val threadID = thread.threadId
|
||||
val recipient = thread.recipient
|
||||
val threadDB = DatabaseFactory.getThreadDatabase(this)
|
||||
val deleteThread = object : Runnable {
|
||||
|
||||
override fun run() {
|
||||
AsyncTask.execute {
|
||||
val publicChat = DatabaseFactory.getLokiThreadDatabase(this@HomeActivity).getPublicChat(threadID)
|
||||
if (publicChat != null) {
|
||||
val apiDB = DatabaseFactory.getLokiAPIDatabase(this@HomeActivity)
|
||||
apiDB.removeLastMessageServerID(publicChat.channel, publicChat.server)
|
||||
apiDB.removeLastDeletionServerID(publicChat.channel, publicChat.server)
|
||||
ApplicationContext.getInstance(this@HomeActivity).publicChatAPI!!.leave(publicChat.channel, publicChat.server)
|
||||
}
|
||||
threadDB.deleteConversation(threadID)
|
||||
ApplicationContext.getInstance(this@HomeActivity).messageNotifier.updateNotification(this@HomeActivity)
|
||||
val deleteThread = Runnable {
|
||||
AsyncTask.execute {
|
||||
val publicChat = DatabaseFactory.getLokiThreadDatabase(this@HomeActivity).getPublicChat(threadID)
|
||||
if (publicChat != null) {
|
||||
val apiDB = DatabaseFactory.getLokiAPIDatabase(this@HomeActivity)
|
||||
apiDB.removeLastMessageServerID(publicChat.channel, publicChat.server)
|
||||
apiDB.removeLastDeletionServerID(publicChat.channel, publicChat.server)
|
||||
apiDB.clearOpenGroupAvatarURL(publicChat.channel, publicChat.server)
|
||||
ApplicationContext.getInstance(this@HomeActivity).publicChatAPI!!.leave(publicChat.channel, publicChat.server)
|
||||
}
|
||||
threadDB.deleteConversation(threadID)
|
||||
ApplicationContext.getInstance(this@HomeActivity).messageNotifier.updateNotification(this@HomeActivity)
|
||||
}
|
||||
}
|
||||
val dialogMessage = if (recipient.isGroupRecipient) R.string.activity_home_leave_group_dialog_message else R.string.activity_home_delete_conversation_dialog_message
|
||||
|
@ -355,13 +355,19 @@ class LokiAPIDatabase(context: Context, helper: SQLCipherOpenHelper) : Database(
|
||||
}?.toString()
|
||||
}
|
||||
|
||||
override fun setOpenGroupAvatarURL(url: String, group: Long, server: String) {
|
||||
override fun setOpenGroupAvatarURL(group: Long, server: String, url: String) {
|
||||
val database = databaseHelper.writableDatabase
|
||||
val index = "$server.$group"
|
||||
val row = wrap(mapOf(publicChatID to index, openGroupAvatar to url))
|
||||
database.insertOrUpdate(openGroupAvatarCacheTable, row, "$publicChatID = ?", wrap(index))
|
||||
}
|
||||
|
||||
fun clearOpenGroupAvatarURL(group: Long, server: String): Boolean {
|
||||
val database = databaseHelper.writableDatabase
|
||||
val index = "$server.$group"
|
||||
return database.delete(openGroupAvatarCacheTable, "$publicChatID == ?", arrayOf(index)) > 0
|
||||
}
|
||||
|
||||
// region Deprecated
|
||||
override fun getDeviceLinks(publicKey: String): Set<DeviceLink> {
|
||||
return setOf()
|
||||
|
@ -72,37 +72,27 @@ class ProfilePictureView : RelativeLayout {
|
||||
return recipient.isOpenGroupRecipient &&
|
||||
DatabaseFactory.getGroupDatabase(context).hasAvatar(recipient.address.toString())
|
||||
}
|
||||
if (recipient.isGroupRecipient) {
|
||||
if ("Session Public Chat" == recipient.name) {
|
||||
publicKey = ""
|
||||
displayName = ""
|
||||
additionalPublicKey = null
|
||||
isRSSFeed = true
|
||||
} else if (isOpenGroupWithAvatar(recipient)) {
|
||||
publicKey = recipient.address.toString()
|
||||
displayName = getUserDisplayName(publicKey)
|
||||
additionalPublicKey = null
|
||||
isRSSFeed = false
|
||||
} else {
|
||||
val users = MentionsManager.shared.userPublicKeyCache[threadID]?.toMutableList() ?: mutableListOf()
|
||||
users.remove(TextSecurePreferences.getLocalNumber(context))
|
||||
val masterPublicKey = TextSecurePreferences.getMasterHexEncodedPublicKey(context)
|
||||
if (masterPublicKey != null) {
|
||||
users.remove(masterPublicKey)
|
||||
}
|
||||
val randomUsers = users.sorted().toMutableList() // Sort to provide a level of stability
|
||||
if (users.count() == 1) {
|
||||
val userPublicKey = TextSecurePreferences.getLocalNumber(context)
|
||||
randomUsers.add(0, userPublicKey) // Ensure the current user is at the back visually
|
||||
}
|
||||
val pk = randomUsers.getOrNull(0) ?: ""
|
||||
publicKey = pk
|
||||
displayName = getUserDisplayName(pk)
|
||||
val apk = randomUsers.getOrNull(1) ?: ""
|
||||
additionalPublicKey = apk
|
||||
additionalDisplayName = getUserDisplayName(apk)
|
||||
isRSSFeed = recipient.name == "Loki News" || recipient.name == "Session Updates"
|
||||
if (recipient.isGroupRecipient && !isOpenGroupWithAvatar(recipient)) {
|
||||
val users = MentionsManager.shared.userPublicKeyCache[threadID]?.toMutableList() ?: mutableListOf()
|
||||
users.remove(TextSecurePreferences.getLocalNumber(context))
|
||||
val masterPublicKey = TextSecurePreferences.getMasterHexEncodedPublicKey(context)
|
||||
if (masterPublicKey != null) {
|
||||
users.remove(masterPublicKey)
|
||||
}
|
||||
val randomUsers = users.sorted().toMutableList() // Sort to provide a level of stability
|
||||
if (users.count() == 1) {
|
||||
val userPublicKey = TextSecurePreferences.getLocalNumber(context)
|
||||
randomUsers.add(0, userPublicKey) // Ensure the current user is at the back visually
|
||||
}
|
||||
val pk = randomUsers.getOrNull(0) ?: ""
|
||||
publicKey = pk
|
||||
displayName = getUserDisplayName(pk)
|
||||
val apk = randomUsers.getOrNull(1) ?: ""
|
||||
additionalPublicKey = apk
|
||||
additionalDisplayName = getUserDisplayName(apk)
|
||||
isRSSFeed = recipient.name == "Loki News" ||
|
||||
recipient.name == "Session Updates" ||
|
||||
recipient.name == "Session Public Chat"
|
||||
} else {
|
||||
publicKey = recipient.address.toString()
|
||||
displayName = getUserDisplayName(publicKey)
|
||||
|
Loading…
x
Reference in New Issue
Block a user