diff --git a/app/build.gradle b/app/build.gradle index 0459c7f7b1..47db31d2d4 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -158,8 +158,8 @@ dependencies { testImplementation 'org.robolectric:shadows-multidex:4.4' } -def canonicalVersionCode = 278 -def canonicalVersionName = "1.13.0" +def canonicalVersionCode = 279 +def canonicalVersionName = "1.13.1" def postFixSize = 10 def abiPostFix = ['armeabi-v7a' : 1, diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/input_bar/InputBar.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/input_bar/InputBar.kt index 260b5d2656..2db3561607 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/input_bar/InputBar.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/input_bar/InputBar.kt @@ -2,6 +2,7 @@ package org.thoughtcrime.securesms.conversation.v2.input_bar import android.content.Context import android.content.res.Resources +import android.graphics.PointF import android.net.Uri import android.text.InputType import android.text.TextWatcher @@ -22,6 +23,7 @@ import org.thoughtcrime.securesms.conversation.v2.messages.QuoteViewDelegate import org.thoughtcrime.securesms.database.model.MessageRecord import org.thoughtcrime.securesms.database.model.MmsMessageRecord import org.thoughtcrime.securesms.mms.GlideRequests +import org.thoughtcrime.securesms.util.contains import org.thoughtcrime.securesms.util.toDp import org.thoughtcrime.securesms.util.toPx @@ -77,7 +79,11 @@ class InputBar : RelativeLayout, InputBarEditTextDelegate, QuoteViewDelegate, Li binding.microphoneOrSendButtonContainer.addView(sendButton) sendButton.layoutParams = LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT) sendButton.isVisible = false - sendButton.onUp = { delegate?.sendMessage() } + sendButton.onUp = { e -> + if (sendButton.contains(PointF(e.x, e.y))) { + delegate?.sendMessage() + } + } // Edit text val incognitoFlag = if (TextSecurePreferences.isIncognitoKeyboardEnabled(context)) 16777216 else 0 binding.inputBarEditText.imeOptions = binding.inputBarEditText.imeOptions or incognitoFlag // Always use incognito keyboard if setting enabled diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/LokiAPIDatabase.kt b/app/src/main/java/org/thoughtcrime/securesms/database/LokiAPIDatabase.kt index 826c39ae8a..0f97a0e614 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/LokiAPIDatabase.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/database/LokiAPIDatabase.kt @@ -113,6 +113,9 @@ class LokiAPIDatabase(context: Context, helper: SQLCipherOpenHelper) : Database( INSERT INTO $lastMessageHashValueTable2($snode, $publicKey, $lastMessageHashValue) SELECT $snode, $publicKey, $lastMessageHashValue FROM $legacyLastMessageHashValueTable2); DROP TABLE $legacyLastMessageHashValueTable2; """ + const val INSERT_LAST_HASH_DATA = "INSERT OR IGNORE INTO $lastMessageHashValueTable2($snode, $publicKey, $lastMessageHashValue) SELECT $snode, $publicKey, $lastMessageHashValue FROM $legacyLastMessageHashValueTable2;" + const val DROP_LEGACY_LAST_HASH = "DROP TABLE $legacyLastMessageHashValueTable2;" + const val UPDATE_RECEIVED_INCLUDE_NAMESPACE_COMMAND = """ CREATE TABLE IF NOT EXISTS $receivedMessageHashValuesTable( $publicKey STRING, $receivedMessageHashValues TEXT, $receivedMessageHashNamespace INTEGER DEFAULT 0, PRIMARY KEY ($publicKey, $receivedMessageHashNamespace) @@ -122,6 +125,8 @@ class LokiAPIDatabase(context: Context, helper: SQLCipherOpenHelper) : Database( DROP TABLE $legacyReceivedMessageHashValuesTable3; """ + const val INSERT_RECEIVED_HASHES_DATA = "INSERT OR IGNORE INTO $receivedMessageHashValuesTable($publicKey, $receivedMessageHashValues) SELECT $publicKey, $receivedMessageHashValues FROM $legacyReceivedMessageHashValuesTable3;" + const val DROP_LEGACY_RECEIVED_HASHES = "DROP TABLE $legacyReceivedMessageHashValuesTable3;" // region Deprecated private val deviceLinkCache = "loki_pairing_authorisation_cache" diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/helpers/SQLCipherOpenHelper.java b/app/src/main/java/org/thoughtcrime/securesms/database/helpers/SQLCipherOpenHelper.java index 8d3fcb472a..94b9cf1598 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/helpers/SQLCipherOpenHelper.java +++ b/app/src/main/java/org/thoughtcrime/securesms/database/helpers/SQLCipherOpenHelper.java @@ -65,9 +65,10 @@ public class SQLCipherOpenHelper extends SQLiteOpenHelper { private static final int lokiV31 = 52; private static final int lokiV32 = 53; private static final int lokiV33 = 54; + private static final int lokiV34 = 55; // Loki - onUpgrade(...) must be updated to use Loki version numbers if Signal makes any database changes - private static final int DATABASE_VERSION = lokiV33; + private static final int DATABASE_VERSION = lokiV34; private static final String DATABASE_NAME = "signal.db"; private final Context context; @@ -148,6 +149,10 @@ public class SQLCipherOpenHelper extends SQLiteOpenHelper { db.execSQL(LokiAPIDatabase.CREATE_DEFAULT_FORK_INFO_COMMAND); db.execSQL(LokiAPIDatabase.UPDATE_HASHES_INCLUDE_NAMESPACE_COMMAND); db.execSQL(LokiAPIDatabase.UPDATE_RECEIVED_INCLUDE_NAMESPACE_COMMAND); + db.execSQL(LokiAPIDatabase.INSERT_LAST_HASH_DATA); + db.execSQL(LokiAPIDatabase.DROP_LEGACY_LAST_HASH); + db.execSQL(LokiAPIDatabase.INSERT_RECEIVED_HASHES_DATA); + db.execSQL(LokiAPIDatabase.DROP_LEGACY_RECEIVED_HASHES); executeStatements(db, SmsDatabase.CREATE_INDEXS); executeStatements(db, MmsDatabase.CREATE_INDEXS); @@ -349,6 +354,13 @@ public class SQLCipherOpenHelper extends SQLiteOpenHelper { db.execSQL(LokiAPIDatabase.UPDATE_RECEIVED_INCLUDE_NAMESPACE_COMMAND); } + if (oldVersion < lokiV34) { + db.execSQL(LokiAPIDatabase.INSERT_LAST_HASH_DATA); + db.execSQL(LokiAPIDatabase.DROP_LEGACY_LAST_HASH); + db.execSQL(LokiAPIDatabase.INSERT_RECEIVED_HASHES_DATA); + db.execSQL(LokiAPIDatabase.DROP_LEGACY_RECEIVED_HASHES); + } + db.setTransactionSuccessful(); } finally { db.endTransaction();