Fix crash

This commit is contained in:
Niels Andriesse
2019-06-25 09:28:37 +10:00
parent 169a7e609e
commit b27dfdf6ce
4 changed files with 23 additions and 9 deletions

View File

@@ -15,8 +15,8 @@ import org.whispersystems.signalservice.loki.messaging.LokiMessageFriendRequestS
class FriendRequestView(context: Context, attrs: AttributeSet?, defStyleAttr: Int) : LinearLayout(context, attrs, defStyleAttr) {
private var isUISetUp = false
var message: Any? = null
set(newValue) { field = newValue; handleMessageChanged() }
private var message: Any? = null
private var messageID: Long? = null
var delegate: FriendRequestViewDelegate? = null
// region Components
@@ -46,7 +46,9 @@ class FriendRequestView(context: Context, attrs: AttributeSet?, defStyleAttr: In
// endregion
// region Updating
private fun handleMessageChanged() {
fun update(message: Any, messageID: Long) {
this.message = message
this.messageID = messageID
setUpUIIfNeeded()
updateUI()
}
@@ -90,7 +92,7 @@ class FriendRequestView(context: Context, attrs: AttributeSet?, defStyleAttr: In
val database = DatabaseFactory.getLokiMessageFriendRequestDatabase(context)
if (message is IncomingTextMessage) {
val message = this.message as IncomingTextMessage
val friendRequestStatus = database.getFriendRequestStatus(0) // TODO: Message ID
val friendRequestStatus = database.getFriendRequestStatus(messageID!!)
buttonLinearLayout.visibility = if (friendRequestStatus != LokiMessageFriendRequestStatus.REQUEST_PENDING) View.GONE else View.VISIBLE
val formatID = when (friendRequestStatus) {
LokiMessageFriendRequestStatus.NONE, LokiMessageFriendRequestStatus.REQUEST_SENDING_OR_FAILED -> throw IllegalStateException()
@@ -103,7 +105,7 @@ class FriendRequestView(context: Context, attrs: AttributeSet?, defStyleAttr: In
label.text = resources.getString(formatID, contactID)
} else {
val message = this.message as OutgoingTextMessage
val friendRequestStatus = database.getFriendRequestStatus(0) // TODO: Message ID
val friendRequestStatus = database.getFriendRequestStatus(messageID!!)
buttonLinearLayout.visibility = View.GONE
val formatID = when (friendRequestStatus) {
LokiMessageFriendRequestStatus.NONE -> throw IllegalStateException()
@@ -114,7 +116,7 @@ class FriendRequestView(context: Context, attrs: AttributeSet?, defStyleAttr: In
LokiMessageFriendRequestStatus.REQUEST_EXPIRED -> R.string.view_friend_request_outgoing_expired_message
}
if (formatID != null) {
val threadID = DatabaseFactory.getSmsDatabase(context).getThreadIdForMessage(0)
val threadID = DatabaseFactory.getSmsDatabase(context).getThreadIdForMessage(messageID!!)
val contactID = DatabaseFactory.getThreadDatabase(context).getRecipientForThreadId(threadID)!!.address.toString()
label.text = resources.getString(formatID, contactID)
}
@@ -128,14 +130,14 @@ class FriendRequestView(context: Context, attrs: AttributeSet?, defStyleAttr: In
private fun accept() {
val message = this.message as IncomingTextMessage
val database = DatabaseFactory.getLokiMessageFriendRequestDatabase(context)
database.setFriendRequestStatus(0, LokiMessageFriendRequestStatus.REQUEST_ACCEPTED)
database.setFriendRequestStatus(messageID!!, LokiMessageFriendRequestStatus.REQUEST_ACCEPTED)
delegate?.acceptFriendRequest(message)
}
private fun reject() {
val message = this.message as IncomingTextMessage
val database = DatabaseFactory.getLokiMessageFriendRequestDatabase(context)
database.setFriendRequestStatus(0, LokiMessageFriendRequestStatus.REQUEST_REJECTED)
database.setFriendRequestStatus(messageID!!, LokiMessageFriendRequestStatus.REQUEST_REJECTED)
delegate?.rejectFriendRequest(message)
}
// endregion

View File

@@ -91,7 +91,7 @@ class KeyPairActivity : BaseActionBarActivity() {
val publicKey = keyPair!!.publicKey
val hexEncodedPublicKey = keyPair!!.hexEncodedPublicKey
DatabaseFactory.getIdentityDatabase(this).saveIdentity(Address.fromSerialized(hexEncodedPublicKey), publicKey,
IdentityDatabase.VerifiedStatus.VERIFIED, true, System.currentTimeMillis(), true)
IdentityDatabase.VerifiedStatus.VERIFIED, true, System.currentTimeMillis(), true)
TextSecurePreferences.setLocalNumber(this, hexEncodedPublicKey)
TextSecurePreferences.setPromptedPushRegistration(this, true)
val application = ApplicationContext.getInstance(this)