mirror of
https://github.com/oxen-io/session-android.git
synced 2025-02-19 19:18:27 +00:00
WIP complete storage protocol
This commit is contained in:
parent
5b585c993a
commit
9df6bb11d1
@ -315,7 +315,9 @@ class Storage(context: Context, helper: SQLCipherOpenHelper) : Database(context,
|
||||
}
|
||||
|
||||
override fun isClosedGroup(publicKey: String): Boolean {
|
||||
TODO("Not yet implemented")
|
||||
val isSSKBasedClosedGroup = DatabaseFactory.getSSKDatabase(context).isSSKBasedClosedGroup(publicKey)
|
||||
val address = Address.fromSerialized(publicKey)
|
||||
return address.isClosedGroup || isSSKBasedClosedGroup
|
||||
}
|
||||
|
||||
override fun getClosedGroupEncryptionKeyPairs(groupPublicKey: String): MutableList<ECKeyPair> {
|
||||
@ -336,14 +338,17 @@ class Storage(context: Context, helper: SQLCipherOpenHelper) : Database(context,
|
||||
return DatabaseFactory.getThreadDatabase(context).getOrCreateThreadIdFor(recipient)
|
||||
}
|
||||
|
||||
override fun getOrCreateThreadIdFor(publicKey: String, groupPublicKey: String?, openGroupID: String?): Long? {
|
||||
TODO("Not yet implemented")
|
||||
override fun getOrCreateThreadIdFor(publicKey: String, groupPublicKey: String?, openGroupID: String?): Long {
|
||||
val database = DatabaseFactory.getThreadDatabase(context)
|
||||
if (!openGroupID.isNullOrEmpty()) {
|
||||
|
||||
val recipient = Recipient.from(context, Address.fromSerialized(openGroupID), false)
|
||||
return database.getOrCreateThreadIdFor(recipient)
|
||||
} else if (!groupPublicKey.isNullOrEmpty()) {
|
||||
|
||||
val recipient = Recipient.from(context, Address.fromSerialized(groupPublicKey), false)
|
||||
return database.getOrCreateThreadIdFor(recipient)
|
||||
} else {
|
||||
|
||||
val recipient = Recipient.from(context, Address.fromSerialized(publicKey), false)
|
||||
return database.getOrCreateThreadIdFor(recipient)
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -102,7 +102,7 @@ interface StorageProtocol {
|
||||
name: String, members: Collection<String>, admins: Collection<String>)
|
||||
fun insertOutgoingInfoMessage(context: Context, groupID: String, type: SignalServiceProtos.GroupContext.Type, name: String,
|
||||
members: Collection<String>, admins: Collection<String>, threadID: Long)
|
||||
fun isClosedGroup(publicKey: String): Boolean //TODO
|
||||
fun isClosedGroup(publicKey: String): Boolean
|
||||
fun getClosedGroupEncryptionKeyPairs(groupPublicKey: String): MutableList<ECKeyPair> //TODO
|
||||
fun getLatestClosedGroupEncryptionKeyPair(groupPublicKey: String): ECKeyPair //TODO
|
||||
|
||||
@ -111,7 +111,7 @@ interface StorageProtocol {
|
||||
|
||||
// Thread
|
||||
fun getOrCreateThreadIdFor(address: Address): Long
|
||||
fun getOrCreateThreadIdFor(publicKey: String, groupPublicKey: String?, openGroupID: String?): Long?
|
||||
fun getOrCreateThreadIdFor(publicKey: String, groupPublicKey: String?, openGroupID: String?): Long
|
||||
fun getThreadIdFor(address: Address): Long?
|
||||
|
||||
// Session Request
|
||||
|
@ -146,7 +146,7 @@ fun MessageReceiver.handleVisibleMessage(message: VisibleMessage, proto: SignalS
|
||||
}
|
||||
}
|
||||
// Get or create thread
|
||||
val threadID = storage.getOrCreateThreadIdFor(message.sender!!, message.groupPublicKey, openGroupID) ?: throw MessageSender.Error.NoThread
|
||||
val threadID = storage.getOrCreateThreadIdFor(message.sender!!, message.groupPublicKey, openGroupID)
|
||||
// Parse quote if needed
|
||||
var quoteModel: QuoteModel? = null
|
||||
if (message.quote != null && proto.dataMessage.hasQuote()) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user