Update ktlint and gradle plugin.
This commit is contained in:
parent
65255121de
commit
c17d62aeab
69 changed files with 447 additions and 176 deletions
|
@ -1,5 +1,8 @@
|
||||||
root = true
|
root = true
|
||||||
|
|
||||||
[*.kt]
|
[*.{kt,kts}]
|
||||||
indent_size = 2
|
indent_size = 2
|
||||||
|
ij_kotlin_allow_trailing_comma_on_call_site = false
|
||||||
|
ij_kotlin_allow_trailing_comma = false
|
||||||
|
ktlint_code_style = intellij_idea
|
||||||
twitter_compose_allowed_composition_locals=LocalExtendedColors
|
twitter_compose_allowed_composition_locals=LocalExtendedColors
|
|
@ -42,8 +42,7 @@ wire {
|
||||||
}
|
}
|
||||||
|
|
||||||
ktlint {
|
ktlint {
|
||||||
// Use a newer version to resolve https://github.com/JLLeitschuh/ktlint-gradle/issues/507
|
version = "0.49.1"
|
||||||
version = "0.47.1"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
def canonicalVersionCode = 1283
|
def canonicalVersionCode = 1283
|
||||||
|
|
|
@ -47,6 +47,7 @@ import org.whispersystems.signalservice.api.push.ServiceId
|
||||||
import java.util.Optional
|
import java.util.Optional
|
||||||
import java.util.UUID
|
import java.util.UUID
|
||||||
|
|
||||||
|
@Suppress("ClassName")
|
||||||
@RunWith(AndroidJUnit4::class)
|
@RunWith(AndroidJUnit4::class)
|
||||||
class RecipientTableTest_getAndPossiblyMerge {
|
class RecipientTableTest_getAndPossiblyMerge {
|
||||||
|
|
||||||
|
|
|
@ -23,6 +23,6 @@ data class GiftFlowState(
|
||||||
RECIPIENT_VERIFICATION,
|
RECIPIENT_VERIFICATION,
|
||||||
TOKEN_REQUEST,
|
TOKEN_REQUEST,
|
||||||
PAYMENT_PIPELINE,
|
PAYMENT_PIPELINE,
|
||||||
FAILURE;
|
FAILURE
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1188,7 +1188,8 @@ class ConversationFragment :
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun updateLinkPreviewState() {
|
private fun updateLinkPreviewState() {
|
||||||
if (/* TODO [cfv2] -- viewModel.isPushAvailable && */ !attachmentManager.isAttachmentPresent && context != null) {
|
// TODO [cfv2] include viewModel.isPushAvailable && in check
|
||||||
|
if (!attachmentManager.isAttachmentPresent && context != null) {
|
||||||
linkPreviewViewModel.onEnabled()
|
linkPreviewViewModel.onEnabled()
|
||||||
linkPreviewViewModel.onTextChanged(composeText.textTrimmed.toString(), composeText.selectionStart, composeText.selectionEnd)
|
linkPreviewViewModel.onTextChanged(composeText.textTrimmed.toString(), composeText.selectionStart, composeText.selectionEnd)
|
||||||
} else {
|
} else {
|
||||||
|
@ -2185,7 +2186,7 @@ class ConversationFragment :
|
||||||
}
|
}
|
||||||
|
|
||||||
val conversationItem: ConversationItem = itemView
|
val conversationItem: ConversationItem = itemView
|
||||||
val isAttachmentKeyboardOpen = false /* TODO [cfv2] -- isAttachmentKeyboardOpen */
|
val isAttachmentKeyboardOpen = false // TODO [cfv2] -- isAttachmentKeyboardOpen
|
||||||
handleReaction(
|
handleReaction(
|
||||||
item.conversationMessage,
|
item.conversationMessage,
|
||||||
ReactionsToolbarListener(item.conversationMessage),
|
ReactionsToolbarListener(item.conversationMessage),
|
||||||
|
|
|
@ -6,5 +6,5 @@ package org.thoughtcrime.securesms.conversationlist
|
||||||
*/
|
*/
|
||||||
enum class ConversationFilterLatch {
|
enum class ConversationFilterLatch {
|
||||||
SET,
|
SET,
|
||||||
RESET;
|
RESET
|
||||||
}
|
}
|
||||||
|
|
|
@ -40,5 +40,5 @@ enum class FilterPullState {
|
||||||
/**
|
/**
|
||||||
* The filter is being removed and the animation is running
|
* The filter is being removed and the animation is running
|
||||||
*/
|
*/
|
||||||
CLOSING;
|
CLOSING
|
||||||
}
|
}
|
||||||
|
|
|
@ -1428,7 +1428,7 @@ class GroupTable(context: Context?, databaseHelper: SignalDatabase?) : DatabaseT
|
||||||
}
|
}
|
||||||
|
|
||||||
enum class MemberSet(val includeSelf: Boolean, val includePending: Boolean) {
|
enum class MemberSet(val includeSelf: Boolean, val includePending: Boolean) {
|
||||||
FULL_MEMBERS_INCLUDING_SELF(true, false), FULL_MEMBERS_EXCLUDING_SELF(false, false), FULL_MEMBERS_AND_PENDING_INCLUDING_SELF(true, true), FULL_MEMBERS_AND_PENDING_EXCLUDING_SELF(false, true);
|
FULL_MEMBERS_INCLUDING_SELF(true, false), FULL_MEMBERS_EXCLUDING_SELF(false, false), FULL_MEMBERS_AND_PENDING_INCLUDING_SELF(true, true), FULL_MEMBERS_AND_PENDING_EXCLUDING_SELF(false, true)
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -4929,7 +4929,7 @@ open class MessageTable(context: Context?, databaseHelper: SignalDatabase) : Dat
|
||||||
protected enum class ReceiptType(val columnName: String, val groupStatus: Int) {
|
protected enum class ReceiptType(val columnName: String, val groupStatus: Int) {
|
||||||
READ(READ_RECEIPT_COUNT, GroupReceiptTable.STATUS_READ),
|
READ(READ_RECEIPT_COUNT, GroupReceiptTable.STATUS_READ),
|
||||||
DELIVERY(DELIVERY_RECEIPT_COUNT, GroupReceiptTable.STATUS_DELIVERED),
|
DELIVERY(DELIVERY_RECEIPT_COUNT, GroupReceiptTable.STATUS_DELIVERED),
|
||||||
VIEWED(VIEWED_RECEIPT_COUNT, GroupReceiptTable.STATUS_VIEWED);
|
VIEWED(VIEWED_RECEIPT_COUNT, GroupReceiptTable.STATUS_VIEWED)
|
||||||
}
|
}
|
||||||
|
|
||||||
data class SyncMessageId(
|
data class SyncMessageId(
|
||||||
|
|
|
@ -16,6 +16,7 @@ import java.util.concurrent.atomic.AtomicReference
|
||||||
/**
|
/**
|
||||||
* The default error handler wipes the file. This one instead prints some diagnostics and then crashes so the original corrupt file isn't lost.
|
* The default error handler wipes the file. This one instead prints some diagnostics and then crashes so the original corrupt file isn't lost.
|
||||||
*/
|
*/
|
||||||
|
@Suppress("ClassName")
|
||||||
class SqlCipherErrorHandler(private val databaseName: String) : DatabaseErrorHandler {
|
class SqlCipherErrorHandler(private val databaseName: String) : DatabaseErrorHandler {
|
||||||
|
|
||||||
override fun onCorruption(db: SQLiteDatabase, message: String) {
|
override fun onCorruption(db: SQLiteDatabase, message: String) {
|
||||||
|
|
|
@ -7,6 +7,7 @@ import net.zetetic.database.sqlcipher.SQLiteDatabase
|
||||||
* Adding an urgent flag to message envelopes to help with notifications. Need to track flag in
|
* Adding an urgent flag to message envelopes to help with notifications. Need to track flag in
|
||||||
* MSL table so can be resent with the correct urgency.
|
* MSL table so can be resent with the correct urgency.
|
||||||
*/
|
*/
|
||||||
|
@Suppress("ClassName")
|
||||||
object V150_UrgentMslFlagMigration : SignalDatabaseMigration {
|
object V150_UrgentMslFlagMigration : SignalDatabaseMigration {
|
||||||
override fun migrate(context: Application, db: SQLiteDatabase, oldVersion: Int, newVersion: Int) {
|
override fun migrate(context: Application, db: SQLiteDatabase, oldVersion: Int, newVersion: Int) {
|
||||||
db.execSQL("ALTER TABLE msl_payload ADD COLUMN urgent INTEGER NOT NULL DEFAULT 1")
|
db.execSQL("ALTER TABLE msl_payload ADD COLUMN urgent INTEGER NOT NULL DEFAULT 1")
|
||||||
|
|
|
@ -13,6 +13,7 @@ import org.thoughtcrime.securesms.util.Base64
|
||||||
/**
|
/**
|
||||||
* Performs a check and ensures that MyStory exists at the correct distribution list id and correct distribution id.
|
* Performs a check and ensures that MyStory exists at the correct distribution list id and correct distribution id.
|
||||||
*/
|
*/
|
||||||
|
@Suppress("ClassName")
|
||||||
object V151_MyStoryMigration : SignalDatabaseMigration {
|
object V151_MyStoryMigration : SignalDatabaseMigration {
|
||||||
|
|
||||||
private val TAG = Log.tag(V151_MyStoryMigration::class.java)
|
private val TAG = Log.tag(V151_MyStoryMigration::class.java)
|
||||||
|
|
|
@ -6,6 +6,7 @@ import net.zetetic.database.sqlcipher.SQLiteDatabase
|
||||||
/**
|
/**
|
||||||
* Marks story recipients with a new group type constant.
|
* Marks story recipients with a new group type constant.
|
||||||
*/
|
*/
|
||||||
|
@Suppress("ClassName")
|
||||||
object V152_StoryGroupTypesMigration : SignalDatabaseMigration {
|
object V152_StoryGroupTypesMigration : SignalDatabaseMigration {
|
||||||
override fun migrate(context: Application, db: SQLiteDatabase, oldVersion: Int, newVersion: Int) {
|
override fun migrate(context: Application, db: SQLiteDatabase, oldVersion: Int, newVersion: Int) {
|
||||||
db.execSQL(
|
db.execSQL(
|
||||||
|
|
|
@ -13,6 +13,7 @@ import org.thoughtcrime.securesms.util.Base64
|
||||||
/**
|
/**
|
||||||
* Performs a check and ensures that MyStory exists at the correct distribution list id and correct distribution id.
|
* Performs a check and ensures that MyStory exists at the correct distribution list id and correct distribution id.
|
||||||
*/
|
*/
|
||||||
|
@Suppress("ClassName")
|
||||||
object V153_MyStoryMigration : SignalDatabaseMigration {
|
object V153_MyStoryMigration : SignalDatabaseMigration {
|
||||||
|
|
||||||
private val TAG = Log.tag(V153_MyStoryMigration::class.java)
|
private val TAG = Log.tag(V153_MyStoryMigration::class.java)
|
||||||
|
|
|
@ -6,6 +6,7 @@ import net.zetetic.database.sqlcipher.SQLiteDatabase
|
||||||
/**
|
/**
|
||||||
* Introduces the tables and fields required to keep track of whether we need to send a PNI signature message and if the ones we've sent out have been received.
|
* Introduces the tables and fields required to keep track of whether we need to send a PNI signature message and if the ones we've sent out have been received.
|
||||||
*/
|
*/
|
||||||
|
@Suppress("ClassName")
|
||||||
object V154_PniSignaturesMigration : SignalDatabaseMigration {
|
object V154_PniSignaturesMigration : SignalDatabaseMigration {
|
||||||
|
|
||||||
override fun migrate(context: Application, db: SQLiteDatabase, oldVersion: Int, newVersion: Int) {
|
override fun migrate(context: Application, db: SQLiteDatabase, oldVersion: Int, newVersion: Int) {
|
||||||
|
|
|
@ -6,6 +6,7 @@ import net.zetetic.database.sqlcipher.SQLiteDatabase
|
||||||
/**
|
/**
|
||||||
* Adds necessary book-keeping columns to SMS and MMS tables for SMS export.
|
* Adds necessary book-keeping columns to SMS and MMS tables for SMS export.
|
||||||
*/
|
*/
|
||||||
|
@Suppress("ClassName")
|
||||||
object V155_SmsExporterMigration : SignalDatabaseMigration {
|
object V155_SmsExporterMigration : SignalDatabaseMigration {
|
||||||
override fun migrate(context: Application, db: SQLiteDatabase, oldVersion: Int, newVersion: Int) {
|
override fun migrate(context: Application, db: SQLiteDatabase, oldVersion: Int, newVersion: Int) {
|
||||||
db.execSQL("ALTER TABLE mms ADD COLUMN export_state BLOB DEFAULT NULL")
|
db.execSQL("ALTER TABLE mms ADD COLUMN export_state BLOB DEFAULT NULL")
|
||||||
|
|
|
@ -9,6 +9,7 @@ import java.util.concurrent.TimeUnit
|
||||||
* Adds an 'unregistered timestamp' on a recipient to keep track of when they became unregistered.
|
* Adds an 'unregistered timestamp' on a recipient to keep track of when they became unregistered.
|
||||||
* Also updates all currently-unregistered users to have an unregistered time of "now".
|
* Also updates all currently-unregistered users to have an unregistered time of "now".
|
||||||
*/
|
*/
|
||||||
|
@Suppress("ClassName")
|
||||||
object V156_RecipientUnregisteredTimestampMigration : SignalDatabaseMigration {
|
object V156_RecipientUnregisteredTimestampMigration : SignalDatabaseMigration {
|
||||||
|
|
||||||
const val UNREGISTERED = 2
|
const val UNREGISTERED = 2
|
||||||
|
|
|
@ -3,6 +3,7 @@ package org.thoughtcrime.securesms.database.helpers.migration
|
||||||
import android.app.Application
|
import android.app.Application
|
||||||
import net.zetetic.database.sqlcipher.SQLiteDatabase
|
import net.zetetic.database.sqlcipher.SQLiteDatabase
|
||||||
|
|
||||||
|
@Suppress("ClassName")
|
||||||
object V157_RecipeintHiddenMigration : SignalDatabaseMigration {
|
object V157_RecipeintHiddenMigration : SignalDatabaseMigration {
|
||||||
override fun migrate(context: Application, db: SQLiteDatabase, oldVersion: Int, newVersion: Int) {
|
override fun migrate(context: Application, db: SQLiteDatabase, oldVersion: Int, newVersion: Int) {
|
||||||
db.execSQL("ALTER TABLE recipient ADD COLUMN hidden INTEGER DEFAULT 0")
|
db.execSQL("ALTER TABLE recipient ADD COLUMN hidden INTEGER DEFAULT 0")
|
||||||
|
|
|
@ -6,6 +6,7 @@ import net.zetetic.database.sqlcipher.SQLiteDatabase
|
||||||
/**
|
/**
|
||||||
* Track last time we did a forced sanity check for this group with the server.
|
* Track last time we did a forced sanity check for this group with the server.
|
||||||
*/
|
*/
|
||||||
|
@Suppress("ClassName")
|
||||||
object V158_GroupsLastForceUpdateTimestampMigration : SignalDatabaseMigration {
|
object V158_GroupsLastForceUpdateTimestampMigration : SignalDatabaseMigration {
|
||||||
override fun migrate(context: Application, db: SQLiteDatabase, oldVersion: Int, newVersion: Int) {
|
override fun migrate(context: Application, db: SQLiteDatabase, oldVersion: Int, newVersion: Int) {
|
||||||
db.execSQL("ALTER TABLE groups ADD COLUMN last_force_update_timestamp INTEGER DEFAULT 0")
|
db.execSQL("ALTER TABLE groups ADD COLUMN last_force_update_timestamp INTEGER DEFAULT 0")
|
||||||
|
|
|
@ -3,6 +3,7 @@ package org.thoughtcrime.securesms.database.helpers.migration
|
||||||
import android.app.Application
|
import android.app.Application
|
||||||
import net.zetetic.database.sqlcipher.SQLiteDatabase
|
import net.zetetic.database.sqlcipher.SQLiteDatabase
|
||||||
|
|
||||||
|
@Suppress("ClassName")
|
||||||
object V159_ThreadUnreadSelfMentionCount : SignalDatabaseMigration {
|
object V159_ThreadUnreadSelfMentionCount : SignalDatabaseMigration {
|
||||||
override fun migrate(context: Application, db: SQLiteDatabase, oldVersion: Int, newVersion: Int) {
|
override fun migrate(context: Application, db: SQLiteDatabase, oldVersion: Int, newVersion: Int) {
|
||||||
db.execSQL("ALTER TABLE thread ADD COLUMN unread_self_mention_count INTEGER DEFAULT 0")
|
db.execSQL("ALTER TABLE thread ADD COLUMN unread_self_mention_count INTEGER DEFAULT 0")
|
||||||
|
|
|
@ -3,6 +3,7 @@ package org.thoughtcrime.securesms.database.helpers.migration
|
||||||
import android.app.Application
|
import android.app.Application
|
||||||
import net.zetetic.database.sqlcipher.SQLiteDatabase
|
import net.zetetic.database.sqlcipher.SQLiteDatabase
|
||||||
|
|
||||||
|
@Suppress("ClassName")
|
||||||
object V160_SmsMmsExportedIndexMigration : SignalDatabaseMigration {
|
object V160_SmsMmsExportedIndexMigration : SignalDatabaseMigration {
|
||||||
override fun migrate(context: Application, db: SQLiteDatabase, oldVersion: Int, newVersion: Int) {
|
override fun migrate(context: Application, db: SQLiteDatabase, oldVersion: Int, newVersion: Int) {
|
||||||
db.execSQL("CREATE INDEX IF NOT EXISTS sms_exported_index ON sms (exported)")
|
db.execSQL("CREATE INDEX IF NOT EXISTS sms_exported_index ON sms (exported)")
|
||||||
|
|
|
@ -6,6 +6,7 @@ import net.zetetic.database.sqlcipher.SQLiteDatabase
|
||||||
/**
|
/**
|
||||||
* Adds an index to the story sends table to help with a new common query.
|
* Adds an index to the story sends table to help with a new common query.
|
||||||
*/
|
*/
|
||||||
|
@Suppress("ClassName")
|
||||||
object V161_StorySendMessageIdIndex : SignalDatabaseMigration {
|
object V161_StorySendMessageIdIndex : SignalDatabaseMigration {
|
||||||
override fun migrate(context: Application, db: SQLiteDatabase, oldVersion: Int, newVersion: Int) {
|
override fun migrate(context: Application, db: SQLiteDatabase, oldVersion: Int, newVersion: Int) {
|
||||||
db.execSQL("CREATE INDEX IF NOT EXISTS story_sends_message_id_distribution_id_index ON story_sends (message_id, distribution_id)")
|
db.execSQL("CREATE INDEX IF NOT EXISTS story_sends_message_id_distribution_id_index ON story_sends (message_id, distribution_id)")
|
||||||
|
|
|
@ -10,6 +10,7 @@ import org.thoughtcrime.securesms.database.helpers.SignalDatabaseMigrations
|
||||||
* A bad cherry-pick for a database change requires us to attempt to alter the table again
|
* A bad cherry-pick for a database change requires us to attempt to alter the table again
|
||||||
* to fix it.
|
* to fix it.
|
||||||
*/
|
*/
|
||||||
|
@Suppress("ClassName")
|
||||||
object V162_ThreadUnreadSelfMentionCountFixup : SignalDatabaseMigration {
|
object V162_ThreadUnreadSelfMentionCountFixup : SignalDatabaseMigration {
|
||||||
|
|
||||||
override fun migrate(context: Application, db: SQLiteDatabase, oldVersion: Int, newVersion: Int) {
|
override fun migrate(context: Application, db: SQLiteDatabase, oldVersion: Int, newVersion: Int) {
|
||||||
|
|
|
@ -7,6 +7,7 @@ import net.zetetic.database.sqlcipher.SQLiteDatabase
|
||||||
/**
|
/**
|
||||||
* Add columns needed to track remote megaphone specific snooze rates.
|
* Add columns needed to track remote megaphone specific snooze rates.
|
||||||
*/
|
*/
|
||||||
|
@Suppress("ClassName")
|
||||||
object V163_RemoteMegaphoneSnoozeSupportMigration : SignalDatabaseMigration {
|
object V163_RemoteMegaphoneSnoozeSupportMigration : SignalDatabaseMigration {
|
||||||
override fun migrate(context: Application, db: SQLiteDatabase, oldVersion: Int, newVersion: Int) {
|
override fun migrate(context: Application, db: SQLiteDatabase, oldVersion: Int, newVersion: Int) {
|
||||||
if (columnMissing(db, "primary_action_data")) {
|
if (columnMissing(db, "primary_action_data")) {
|
||||||
|
|
|
@ -3,6 +3,7 @@ package org.thoughtcrime.securesms.database.helpers.migration
|
||||||
import android.app.Application
|
import android.app.Application
|
||||||
import net.zetetic.database.sqlcipher.SQLiteDatabase
|
import net.zetetic.database.sqlcipher.SQLiteDatabase
|
||||||
|
|
||||||
|
@Suppress("ClassName")
|
||||||
object V164_ThreadDatabaseReadIndexMigration : SignalDatabaseMigration {
|
object V164_ThreadDatabaseReadIndexMigration : SignalDatabaseMigration {
|
||||||
override fun migrate(context: Application, db: SQLiteDatabase, oldVersion: Int, newVersion: Int) {
|
override fun migrate(context: Application, db: SQLiteDatabase, oldVersion: Int, newVersion: Int) {
|
||||||
db.execSQL("CREATE INDEX IF NOT EXISTS thread_read ON thread (read);")
|
db.execSQL("CREATE INDEX IF NOT EXISTS thread_read ON thread (read);")
|
||||||
|
|
|
@ -14,6 +14,7 @@ import org.signal.core.util.update
|
||||||
* This one's a doozy. We want to add additional foreign key constraints between the thread, recipient, and message tables. This will let us know for sure
|
* This one's a doozy. We want to add additional foreign key constraints between the thread, recipient, and message tables. This will let us know for sure
|
||||||
* that there aren't threads with invalid recipients, or messages with invalid threads, or multiple threads for the same recipient.
|
* that there aren't threads with invalid recipients, or messages with invalid threads, or multiple threads for the same recipient.
|
||||||
*/
|
*/
|
||||||
|
@Suppress("ClassName")
|
||||||
object V166_ThreadAndMessageForeignKeys : SignalDatabaseMigration {
|
object V166_ThreadAndMessageForeignKeys : SignalDatabaseMigration {
|
||||||
|
|
||||||
private val TAG = Log.tag(V166_ThreadAndMessageForeignKeys::class.java)
|
private val TAG = Log.tag(V166_ThreadAndMessageForeignKeys::class.java)
|
||||||
|
|
|
@ -6,6 +6,7 @@ import net.zetetic.database.sqlcipher.SQLiteDatabase
|
||||||
/**
|
/**
|
||||||
* Forgot to recreate the triggers for the reactions table in [V166_ThreadAndMessageForeignKeys]. So we gotta fix stuff up and do it here.
|
* Forgot to recreate the triggers for the reactions table in [V166_ThreadAndMessageForeignKeys]. So we gotta fix stuff up and do it here.
|
||||||
*/
|
*/
|
||||||
|
@Suppress("ClassName")
|
||||||
object V167_RecreateReactionTriggers : SignalDatabaseMigration {
|
object V167_RecreateReactionTriggers : SignalDatabaseMigration {
|
||||||
override fun migrate(context: Application, db: SQLiteDatabase, oldVersion: Int, newVersion: Int) {
|
override fun migrate(context: Application, db: SQLiteDatabase, oldVersion: Int, newVersion: Int) {
|
||||||
db.execSQL(
|
db.execSQL(
|
||||||
|
|
|
@ -7,6 +7,7 @@ import org.signal.core.util.Stopwatch
|
||||||
import org.signal.core.util.logging.Log
|
import org.signal.core.util.logging.Log
|
||||||
import org.thoughtcrime.securesms.keyvalue.SignalStore
|
import org.thoughtcrime.securesms.keyvalue.SignalStore
|
||||||
|
|
||||||
|
@Suppress("ClassName")
|
||||||
object V168_SingleMessageTableMigration : SignalDatabaseMigration {
|
object V168_SingleMessageTableMigration : SignalDatabaseMigration {
|
||||||
private val TAG = Log.tag(V168_SingleMessageTableMigration::class.java)
|
private val TAG = Log.tag(V168_SingleMessageTableMigration::class.java)
|
||||||
|
|
||||||
|
|
|
@ -7,6 +7,7 @@ import net.zetetic.database.sqlcipher.SQLiteDatabase
|
||||||
* We want to add a new `rank` column to the emoji_search table, and we no longer use it as an FTS
|
* We want to add a new `rank` column to the emoji_search table, and we no longer use it as an FTS
|
||||||
* table, so we can get rid of that too.
|
* table, so we can get rid of that too.
|
||||||
*/
|
*/
|
||||||
|
@Suppress("ClassName")
|
||||||
object V169_EmojiSearchIndexRank : SignalDatabaseMigration {
|
object V169_EmojiSearchIndexRank : SignalDatabaseMigration {
|
||||||
override fun migrate(context: Application, db: SQLiteDatabase, oldVersion: Int, newVersion: Int) {
|
override fun migrate(context: Application, db: SQLiteDatabase, oldVersion: Int, newVersion: Int) {
|
||||||
db.execSQL(
|
db.execSQL(
|
||||||
|
|
|
@ -13,6 +13,7 @@ import org.signal.core.util.update
|
||||||
* When we ran [V166_ThreadAndMessageForeignKeys], we forgot to update the actual table definition in [ThreadTable].
|
* When we ran [V166_ThreadAndMessageForeignKeys], we forgot to update the actual table definition in [ThreadTable].
|
||||||
* We could make this conditional, but I'd rather run it on everyone just so it's more predictable.
|
* We could make this conditional, but I'd rather run it on everyone just so it's more predictable.
|
||||||
*/
|
*/
|
||||||
|
@Suppress("ClassName")
|
||||||
object V171_ThreadForeignKeyFix : SignalDatabaseMigration {
|
object V171_ThreadForeignKeyFix : SignalDatabaseMigration {
|
||||||
|
|
||||||
private val TAG = Log.tag(V171_ThreadForeignKeyFix::class.java)
|
private val TAG = Log.tag(V171_ThreadForeignKeyFix::class.java)
|
||||||
|
|
|
@ -7,6 +7,7 @@ import net.zetetic.database.sqlcipher.SQLiteDatabase
|
||||||
* In order to support scheduled sending, we need to add another column to keep track of when to send the message. We also use this
|
* In order to support scheduled sending, we need to add another column to keep track of when to send the message. We also use this
|
||||||
* column to hide future scheduled messages from views.
|
* column to hide future scheduled messages from views.
|
||||||
*/
|
*/
|
||||||
|
@Suppress("ClassName")
|
||||||
object V173_ScheduledMessagesMigration : SignalDatabaseMigration {
|
object V173_ScheduledMessagesMigration : SignalDatabaseMigration {
|
||||||
override fun migrate(context: Application, db: SQLiteDatabase, oldVersion: Int, newVersion: Int) {
|
override fun migrate(context: Application, db: SQLiteDatabase, oldVersion: Int, newVersion: Int) {
|
||||||
db.execSQL("ALTER TABLE mms ADD COLUMN scheduled_date INTEGER DEFAULT -1")
|
db.execSQL("ALTER TABLE mms ADD COLUMN scheduled_date INTEGER DEFAULT -1")
|
||||||
|
|
|
@ -6,6 +6,7 @@ import net.zetetic.database.sqlcipher.SQLiteDatabase
|
||||||
/**
|
/**
|
||||||
* Expand quote index to included scheduled date so they can be excluded.
|
* Expand quote index to included scheduled date so they can be excluded.
|
||||||
*/
|
*/
|
||||||
|
@Suppress("ClassName")
|
||||||
object V176_AddScheduledDateToQuoteIndex : SignalDatabaseMigration {
|
object V176_AddScheduledDateToQuoteIndex : SignalDatabaseMigration {
|
||||||
override fun migrate(context: Application, db: SQLiteDatabase, oldVersion: Int, newVersion: Int) {
|
override fun migrate(context: Application, db: SQLiteDatabase, oldVersion: Int, newVersion: Int) {
|
||||||
db.execSQL("DROP INDEX IF EXISTS mms_quote_id_quote_author_index")
|
db.execSQL("DROP INDEX IF EXISTS mms_quote_id_quote_author_index")
|
||||||
|
|
|
@ -6,6 +6,7 @@ import net.zetetic.database.sqlcipher.SQLiteDatabase
|
||||||
/**
|
/**
|
||||||
* This adds a column to the Recipients table to store a spam reporting token.
|
* This adds a column to the Recipients table to store a spam reporting token.
|
||||||
*/
|
*/
|
||||||
|
@Suppress("ClassName")
|
||||||
object V178_ReportingTokenColumnMigration : SignalDatabaseMigration {
|
object V178_ReportingTokenColumnMigration : SignalDatabaseMigration {
|
||||||
override fun migrate(context: Application, db: SQLiteDatabase, oldVersion: Int, newVersion: Int) {
|
override fun migrate(context: Application, db: SQLiteDatabase, oldVersion: Int, newVersion: Int) {
|
||||||
db.execSQL("ALTER TABLE recipient ADD COLUMN reporting_token BLOB DEFAULT NULL")
|
db.execSQL("ALTER TABLE recipient ADD COLUMN reporting_token BLOB DEFAULT NULL")
|
||||||
|
|
|
@ -6,6 +6,7 @@ import net.zetetic.database.sqlcipher.SQLiteDatabase
|
||||||
/**
|
/**
|
||||||
* This cleans up some MSL entries that we left behind during a bad past migration.
|
* This cleans up some MSL entries that we left behind during a bad past migration.
|
||||||
*/
|
*/
|
||||||
|
@Suppress("ClassName")
|
||||||
object V179_CleanupDanglingMessageSendLogMigration : SignalDatabaseMigration {
|
object V179_CleanupDanglingMessageSendLogMigration : SignalDatabaseMigration {
|
||||||
override fun migrate(context: Application, db: SQLiteDatabase, oldVersion: Int, newVersion: Int) {
|
override fun migrate(context: Application, db: SQLiteDatabase, oldVersion: Int, newVersion: Int) {
|
||||||
db.execSQL("DELETE FROM msl_message WHERE payload_id NOT IN (SELECT _id FROM msl_payload)")
|
db.execSQL("DELETE FROM msl_message WHERE payload_id NOT IN (SELECT _id FROM msl_payload)")
|
||||||
|
|
|
@ -6,6 +6,7 @@ import net.zetetic.database.sqlcipher.SQLiteDatabase
|
||||||
/**
|
/**
|
||||||
* Adds support for storing the systemNickname from storage service.
|
* Adds support for storing the systemNickname from storage service.
|
||||||
*/
|
*/
|
||||||
|
@Suppress("ClassName")
|
||||||
object V180_RecipientNicknameMigration : SignalDatabaseMigration {
|
object V180_RecipientNicknameMigration : SignalDatabaseMigration {
|
||||||
override fun migrate(context: Application, db: SQLiteDatabase, oldVersion: Int, newVersion: Int) {
|
override fun migrate(context: Application, db: SQLiteDatabase, oldVersion: Int, newVersion: Int) {
|
||||||
db.execSQL("ALTER TABLE recipient ADD COLUMN system_nickname TEXT DEFAULT NULL")
|
db.execSQL("ALTER TABLE recipient ADD COLUMN system_nickname TEXT DEFAULT NULL")
|
||||||
|
|
|
@ -9,6 +9,7 @@ import org.signal.core.util.logging.Log
|
||||||
* We saw evidence (via failed backup restores) that some people have recipients in their thread table that do not exist in the recipient table.
|
* We saw evidence (via failed backup restores) that some people have recipients in their thread table that do not exist in the recipient table.
|
||||||
* This is likely the result of a bad past migration, since a foreign key is in place. Cleaning it up now.
|
* This is likely the result of a bad past migration, since a foreign key is in place. Cleaning it up now.
|
||||||
*/
|
*/
|
||||||
|
@Suppress("ClassName")
|
||||||
object V181_ThreadTableForeignKeyCleanup : SignalDatabaseMigration {
|
object V181_ThreadTableForeignKeyCleanup : SignalDatabaseMigration {
|
||||||
|
|
||||||
val TAG = Log.tag(V181_ThreadTableForeignKeyCleanup::class.java)
|
val TAG = Log.tag(V181_ThreadTableForeignKeyCleanup::class.java)
|
||||||
|
|
|
@ -16,6 +16,7 @@ import org.thoughtcrime.securesms.database.RecipientTable
|
||||||
* Removes the 'NOT NULL' condition on message_id and peer, as with ad-hoc calling in place, these
|
* Removes the 'NOT NULL' condition on message_id and peer, as with ad-hoc calling in place, these
|
||||||
* can now be null.
|
* can now be null.
|
||||||
*/
|
*/
|
||||||
|
@Suppress("ClassName")
|
||||||
object V182_CallTableMigration : SignalDatabaseMigration {
|
object V182_CallTableMigration : SignalDatabaseMigration {
|
||||||
override fun migrate(context: Application, db: SQLiteDatabase, oldVersion: Int, newVersion: Int) {
|
override fun migrate(context: Application, db: SQLiteDatabase, oldVersion: Int, newVersion: Int) {
|
||||||
db.execSQL(
|
db.execSQL(
|
||||||
|
|
|
@ -6,6 +6,7 @@ import net.zetetic.database.sqlcipher.SQLiteDatabase
|
||||||
/**
|
/**
|
||||||
* Adds the CallLinkTable and modifies the CallTable to include an FK into it.
|
* Adds the CallLinkTable and modifies the CallTable to include an FK into it.
|
||||||
*/
|
*/
|
||||||
|
@Suppress("ClassName")
|
||||||
object V183_CallLinkTableMigration : SignalDatabaseMigration {
|
object V183_CallLinkTableMigration : SignalDatabaseMigration {
|
||||||
override fun migrate(context: Application, db: SQLiteDatabase, oldVersion: Int, newVersion: Int) {
|
override fun migrate(context: Application, db: SQLiteDatabase, oldVersion: Int, newVersion: Int) {
|
||||||
db.execSQL("CREATE TABLE call_link (_id INTEGER PRIMARY KEY)")
|
db.execSQL("CREATE TABLE call_link (_id INTEGER PRIMARY KEY)")
|
||||||
|
|
|
@ -6,6 +6,7 @@ import net.zetetic.database.sqlcipher.SQLiteDatabase
|
||||||
/**
|
/**
|
||||||
* [V183_CallLinkTableMigration] accidentally setup a unique constraint incorrectly and missed an index. This fixes it.
|
* [V183_CallLinkTableMigration] accidentally setup a unique constraint incorrectly and missed an index. This fixes it.
|
||||||
*/
|
*/
|
||||||
|
@Suppress("ClassName")
|
||||||
object V184_CallLinkReplaceIndexMigration : SignalDatabaseMigration {
|
object V184_CallLinkReplaceIndexMigration : SignalDatabaseMigration {
|
||||||
override fun migrate(context: Application, db: SQLiteDatabase, oldVersion: Int, newVersion: Int) {
|
override fun migrate(context: Application, db: SQLiteDatabase, oldVersion: Int, newVersion: Int) {
|
||||||
db.execSQL(
|
db.execSQL(
|
||||||
|
|
|
@ -30,6 +30,7 @@ import org.whispersystems.signalservice.api.push.ACI
|
||||||
* Changes needed for edit message. New foreign keys require recreating the table.
|
* Changes needed for edit message. New foreign keys require recreating the table.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
@Suppress("ClassName")
|
||||||
object V185_MessageRecipientsAndEditMessageMigration : SignalDatabaseMigration {
|
object V185_MessageRecipientsAndEditMessageMigration : SignalDatabaseMigration {
|
||||||
|
|
||||||
private val TAG = Log.tag(V185_MessageRecipientsAndEditMessageMigration::class.java)
|
private val TAG = Log.tag(V185_MessageRecipientsAndEditMessageMigration::class.java)
|
||||||
|
|
|
@ -19,6 +19,7 @@ import org.signal.core.util.requireNonNullString
|
||||||
*
|
*
|
||||||
* While I was at it, I looked at other columns that would need indices as well.
|
* While I was at it, I looked at other columns that would need indices as well.
|
||||||
*/
|
*/
|
||||||
|
@Suppress("ClassName")
|
||||||
object V186_ForeignKeyIndicesMigration : SignalDatabaseMigration {
|
object V186_ForeignKeyIndicesMigration : SignalDatabaseMigration {
|
||||||
|
|
||||||
private val TAG = Log.tag(V186_ForeignKeyIndicesMigration::class.java)
|
private val TAG = Log.tag(V186_ForeignKeyIndicesMigration::class.java)
|
||||||
|
|
|
@ -8,6 +8,7 @@ import org.signal.core.util.logging.Log
|
||||||
/**
|
/**
|
||||||
* I found some other tables that didn't have the proper indexes setup to correspond with their foreign keys.
|
* I found some other tables that didn't have the proper indexes setup to correspond with their foreign keys.
|
||||||
*/
|
*/
|
||||||
|
@Suppress("ClassName")
|
||||||
object V187_MoreForeignKeyIndexesMigration : SignalDatabaseMigration {
|
object V187_MoreForeignKeyIndexesMigration : SignalDatabaseMigration {
|
||||||
|
|
||||||
private val TAG = Log.tag(V187_MoreForeignKeyIndexesMigration::class.java)
|
private val TAG = Log.tag(V187_MoreForeignKeyIndexesMigration::class.java)
|
||||||
|
|
|
@ -34,6 +34,7 @@ import org.whispersystems.signalservice.api.push.ACI
|
||||||
* the concept of a self. To do that, we're going to create a placeholder for self with a special ID (-2), and then
|
* the concept of a self. To do that, we're going to create a placeholder for self with a special ID (-2), and then
|
||||||
* we're going to replace that ID with the true self after it's been created.
|
* we're going to replace that ID with the true self after it's been created.
|
||||||
*/
|
*/
|
||||||
|
@Suppress("ClassName")
|
||||||
object V188_FixMessageRecipientsAndEditMessageMigration : SignalDatabaseMigration {
|
object V188_FixMessageRecipientsAndEditMessageMigration : SignalDatabaseMigration {
|
||||||
|
|
||||||
private val TAG = Log.tag(V188_FixMessageRecipientsAndEditMessageMigration::class.java)
|
private val TAG = Log.tag(V188_FixMessageRecipientsAndEditMessageMigration::class.java)
|
||||||
|
|
|
@ -12,6 +12,7 @@ import net.zetetic.database.sqlcipher.SQLiteDatabase
|
||||||
* Fleshes out the call link table and rebuilds the call event table.
|
* Fleshes out the call link table and rebuilds the call event table.
|
||||||
* At this point, there should be no records in the call link database.
|
* At this point, there should be no records in the call link database.
|
||||||
*/
|
*/
|
||||||
|
@Suppress("ClassName")
|
||||||
object V189_CreateCallLinkTableColumnsAndRebuildFKReference : SignalDatabaseMigration {
|
object V189_CreateCallLinkTableColumnsAndRebuildFKReference : SignalDatabaseMigration {
|
||||||
override fun migrate(context: Application, db: SQLiteDatabase, oldVersion: Int, newVersion: Int) {
|
override fun migrate(context: Application, db: SQLiteDatabase, oldVersion: Int, newVersion: Int) {
|
||||||
db.execSQL(
|
db.execSQL(
|
||||||
|
|
|
@ -7,6 +7,7 @@ import net.zetetic.database.sqlcipher.SQLiteDatabase
|
||||||
* This migration used to do what [V191_UniqueMessageMigrationV2] does. However, due to bugs, the migration was abandoned.
|
* This migration used to do what [V191_UniqueMessageMigrationV2] does. However, due to bugs, the migration was abandoned.
|
||||||
* We now re-do the migration in V191.
|
* We now re-do the migration in V191.
|
||||||
*/
|
*/
|
||||||
|
@Suppress("ClassName")
|
||||||
object V190_UniqueMessageMigration : SignalDatabaseMigration {
|
object V190_UniqueMessageMigration : SignalDatabaseMigration {
|
||||||
override fun migrate(context: Application, db: SQLiteDatabase, oldVersion: Int, newVersion: Int) = Unit
|
override fun migrate(context: Application, db: SQLiteDatabase, oldVersion: Int, newVersion: Int) = Unit
|
||||||
}
|
}
|
||||||
|
|
|
@ -15,6 +15,7 @@ import org.signal.core.util.requireLong
|
||||||
*
|
*
|
||||||
* This migration safely removes those dupes, and then adds the desired unique constraint.
|
* This migration safely removes those dupes, and then adds the desired unique constraint.
|
||||||
*/
|
*/
|
||||||
|
@Suppress("ClassName")
|
||||||
object V191_UniqueMessageMigrationV2 : SignalDatabaseMigration {
|
object V191_UniqueMessageMigrationV2 : SignalDatabaseMigration {
|
||||||
|
|
||||||
private val TAG = Log.tag(V191_UniqueMessageMigrationV2::class.java)
|
private val TAG = Log.tag(V191_UniqueMessageMigrationV2::class.java)
|
||||||
|
|
|
@ -13,6 +13,7 @@ import org.signal.core.util.logging.Log
|
||||||
/**
|
/**
|
||||||
* Allow ROOT_KEY in CallLinkTable to be null.
|
* Allow ROOT_KEY in CallLinkTable to be null.
|
||||||
*/
|
*/
|
||||||
|
@Suppress("ClassName")
|
||||||
object V192_CallLinkTableNullableRootKeys : SignalDatabaseMigration {
|
object V192_CallLinkTableNullableRootKeys : SignalDatabaseMigration {
|
||||||
|
|
||||||
private val TAG = Log.tag(V192_CallLinkTableNullableRootKeys::class.java)
|
private val TAG = Log.tag(V192_CallLinkTableNullableRootKeys::class.java)
|
||||||
|
|
|
@ -11,6 +11,7 @@ import net.zetetic.database.sqlcipher.SQLiteDatabase
|
||||||
/**
|
/**
|
||||||
* Due to a bug, this has been replaced by [V196_BackCallLinksWithRecipientV2]
|
* Due to a bug, this has been replaced by [V196_BackCallLinksWithRecipientV2]
|
||||||
*/
|
*/
|
||||||
|
@Suppress("ClassName")
|
||||||
object V193_BackCallLinksWithRecipient : SignalDatabaseMigration {
|
object V193_BackCallLinksWithRecipient : SignalDatabaseMigration {
|
||||||
|
|
||||||
override fun migrate(context: Application, db: SQLiteDatabase, oldVersion: Int, newVersion: Int) = Unit
|
override fun migrate(context: Application, db: SQLiteDatabase, oldVersion: Int, newVersion: Int) = Unit
|
||||||
|
|
|
@ -11,6 +11,7 @@ import net.zetetic.database.sqlcipher.SQLiteDatabase
|
||||||
/**
|
/**
|
||||||
* Introduces [org.thoughtcrime.securesms.database.KyberPreKeyTable].
|
* Introduces [org.thoughtcrime.securesms.database.KyberPreKeyTable].
|
||||||
*/
|
*/
|
||||||
|
@Suppress("ClassName")
|
||||||
object V194_KyberPreKeyMigration : SignalDatabaseMigration {
|
object V194_KyberPreKeyMigration : SignalDatabaseMigration {
|
||||||
override fun migrate(context: Application, db: SQLiteDatabase, oldVersion: Int, newVersion: Int) {
|
override fun migrate(context: Application, db: SQLiteDatabase, oldVersion: Int, newVersion: Int) {
|
||||||
db.execSQL(
|
db.execSQL(
|
||||||
|
|
|
@ -17,6 +17,7 @@ import org.signal.core.util.requireLong
|
||||||
* Back CallLinks with a Recipient to ease integration and ensure we can support
|
* Back CallLinks with a Recipient to ease integration and ensure we can support
|
||||||
* different features which would require that relation in the future.
|
* different features which would require that relation in the future.
|
||||||
*/
|
*/
|
||||||
|
@Suppress("ClassName")
|
||||||
object V195_GroupMemberForeignKeyMigration : SignalDatabaseMigration {
|
object V195_GroupMemberForeignKeyMigration : SignalDatabaseMigration {
|
||||||
|
|
||||||
private val TAG = Log.tag(V195_GroupMemberForeignKeyMigration::class.java)
|
private val TAG = Log.tag(V195_GroupMemberForeignKeyMigration::class.java)
|
||||||
|
|
|
@ -13,6 +13,7 @@ import org.signal.core.util.logging.Log
|
||||||
/**
|
/**
|
||||||
* Cleans up the call events table and restricts peer to non-null.
|
* Cleans up the call events table and restricts peer to non-null.
|
||||||
*/
|
*/
|
||||||
|
@Suppress("ClassName")
|
||||||
object V196_BackCallLinksWithRecipientV2 : SignalDatabaseMigration {
|
object V196_BackCallLinksWithRecipientV2 : SignalDatabaseMigration {
|
||||||
|
|
||||||
private val TAG = Log.tag(V196_BackCallLinksWithRecipientV2::class.java)
|
private val TAG = Log.tag(V196_BackCallLinksWithRecipientV2::class.java)
|
||||||
|
|
|
@ -11,6 +11,7 @@ import net.zetetic.database.sqlcipher.SQLiteDatabase
|
||||||
/**
|
/**
|
||||||
* Because getting the color is a simple modulo operation, there is no need to store it in the database.
|
* Because getting the color is a simple modulo operation, there is no need to store it in the database.
|
||||||
*/
|
*/
|
||||||
|
@Suppress("ClassName")
|
||||||
object V197_DropAvatarColorFromCallLinks : SignalDatabaseMigration {
|
object V197_DropAvatarColorFromCallLinks : SignalDatabaseMigration {
|
||||||
override fun migrate(context: Application, db: SQLiteDatabase, oldVersion: Int, newVersion: Int) {
|
override fun migrate(context: Application, db: SQLiteDatabase, oldVersion: Int, newVersion: Int) {
|
||||||
db.execSQL("ALTER TABLE call_link DROP COLUMN avatar_color")
|
db.execSQL("ALTER TABLE call_link DROP COLUMN avatar_color")
|
||||||
|
|
|
@ -7,5 +7,5 @@ import org.thoughtcrime.securesms.R
|
||||||
enum class TextAlignment(val gravity: Int, @DrawableRes val icon: Int) {
|
enum class TextAlignment(val gravity: Int, @DrawableRes val icon: Int) {
|
||||||
START(Gravity.START or Gravity.CENTER_VERTICAL, R.drawable.ic_text_start),
|
START(Gravity.START or Gravity.CENTER_VERTICAL, R.drawable.ic_text_start),
|
||||||
CENTER(Gravity.CENTER, R.drawable.ic_text_center),
|
CENTER(Gravity.CENTER, R.drawable.ic_text_center),
|
||||||
END(Gravity.END or Gravity.CENTER_VERTICAL, R.drawable.ic_text_end);
|
END(Gravity.END or Gravity.CENTER_VERTICAL, R.drawable.ic_text_end)
|
||||||
}
|
}
|
||||||
|
|
|
@ -17,5 +17,5 @@ enum class TextColorStyle(@DrawableRes val icon: Int) {
|
||||||
/**
|
/**
|
||||||
* textColor background with white foreground.
|
* textColor background with white foreground.
|
||||||
*/
|
*/
|
||||||
INVERT(R.drawable.ic_text_effect);
|
INVERT(R.drawable.ic_text_effect)
|
||||||
}
|
}
|
||||||
|
|
|
@ -205,7 +205,7 @@ class VerifyAccountRepository(private val context: Application) {
|
||||||
enum class Mode(val isSmsRetrieverSupported: Boolean) {
|
enum class Mode(val isSmsRetrieverSupported: Boolean) {
|
||||||
SMS_WITH_LISTENER(true),
|
SMS_WITH_LISTENER(true),
|
||||||
SMS_WITHOUT_LISTENER(false),
|
SMS_WITHOUT_LISTENER(false),
|
||||||
PHONE_CALL(false);
|
PHONE_CALL(false)
|
||||||
}
|
}
|
||||||
|
|
||||||
private class PushTokenChallengeSubscriber {
|
private class PushTokenChallengeSubscriber {
|
||||||
|
|
|
@ -9,6 +9,7 @@ import java.util.Collection;
|
||||||
|
|
||||||
import static junit.framework.TestCase.assertEquals;
|
import static junit.framework.TestCase.assertEquals;
|
||||||
|
|
||||||
|
@SuppressWarnings("NewClassNamingConvention")
|
||||||
@RunWith(Parameterized.class)
|
@RunWith(Parameterized.class)
|
||||||
public class LinkUtilTest_isLegal {
|
public class LinkUtilTest_isLegal {
|
||||||
|
|
||||||
|
|
|
@ -5,6 +5,7 @@ import org.junit.Test
|
||||||
import org.junit.runner.RunWith
|
import org.junit.runner.RunWith
|
||||||
import org.junit.runners.Parameterized
|
import org.junit.runners.Parameterized
|
||||||
|
|
||||||
|
@Suppress("ClassName")
|
||||||
@RunWith(Parameterized::class)
|
@RunWith(Parameterized::class)
|
||||||
class LinkUtilTest_isValidPreviewUrl(private val input: String, private val output: Boolean) {
|
class LinkUtilTest_isValidPreviewUrl(private val input: String, private val output: Boolean) {
|
||||||
|
|
||||||
|
|
|
@ -7,6 +7,7 @@ import org.junit.runner.RunWith
|
||||||
import org.robolectric.ParameterizedRobolectricTestRunner
|
import org.robolectric.ParameterizedRobolectricTestRunner
|
||||||
import org.robolectric.annotation.Config
|
import org.robolectric.annotation.Config
|
||||||
|
|
||||||
|
@Suppress("ClassName")
|
||||||
@RunWith(value = ParameterizedRobolectricTestRunner::class)
|
@RunWith(value = ParameterizedRobolectricTestRunner::class)
|
||||||
@Config(manifest = Config.NONE, application = Application::class)
|
@Config(manifest = Config.NONE, application = Application::class)
|
||||||
class NameUtil_getAbbreviation(
|
class NameUtil_getAbbreviation(
|
||||||
|
|
|
@ -1,34 +1,34 @@
|
||||||
plugins {
|
plugins {
|
||||||
`kotlin-dsl`
|
`kotlin-dsl`
|
||||||
id("groovy-gradle-plugin")
|
id("groovy-gradle-plugin")
|
||||||
id("org.jlleitschuh.gradle.ktlint") version "11.1.0"
|
id("org.jlleitschuh.gradle.ktlint") version "11.4.2"
|
||||||
}
|
}
|
||||||
|
|
||||||
java {
|
java {
|
||||||
sourceCompatibility = JavaVersion.VERSION_11
|
sourceCompatibility = JavaVersion.VERSION_11
|
||||||
targetCompatibility = JavaVersion.VERSION_11
|
targetCompatibility = JavaVersion.VERSION_11
|
||||||
}
|
}
|
||||||
|
|
||||||
kotlinDslPluginOptions {
|
kotlinDslPluginOptions {
|
||||||
jvmTarget.set("11")
|
jvmTarget.set("11")
|
||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
implementation(libs.kotlin.gradle.plugin)
|
implementation(libs.kotlin.gradle.plugin)
|
||||||
implementation(libs.android.library)
|
implementation(libs.android.library)
|
||||||
implementation(libs.android.application)
|
implementation(libs.android.application)
|
||||||
implementation(project(":tools"))
|
implementation(project(":tools"))
|
||||||
implementation(libs.ktlint)
|
implementation(libs.ktlint)
|
||||||
|
|
||||||
// These allow us to reference the dependency catalog inside of our compiled plugins
|
// These allow us to reference the dependency catalog inside of our compiled plugins
|
||||||
implementation(files(libs.javaClass.superclass.protectionDomain.codeSource.location))
|
implementation(files(libs.javaClass.superclass.protectionDomain.codeSource.location))
|
||||||
implementation(files(testLibs.javaClass.superclass.protectionDomain.codeSource.location))
|
implementation(files(testLibs.javaClass.superclass.protectionDomain.codeSource.location))
|
||||||
}
|
}
|
||||||
|
|
||||||
ktlint {
|
ktlint {
|
||||||
filter {
|
filter {
|
||||||
exclude { element ->
|
exclude { element ->
|
||||||
element.file.path.contains("/build/generated-sources")
|
element.file.path.contains("/build/generated-sources")
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,8 +1,7 @@
|
||||||
plugins {
|
plugins {
|
||||||
id("org.jlleitschuh.gradle.ktlint")
|
id("org.jlleitschuh.gradle.ktlint")
|
||||||
}
|
}
|
||||||
|
|
||||||
ktlint {
|
ktlint {
|
||||||
// Use a newer version to resolve https://github.com/JLLeitschuh/ktlint-gradle/issues/507
|
version.set("0.49.1")
|
||||||
version.set("0.47.1")
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -15,59 +15,59 @@ val signalMinSdkVersion: Int by extra
|
||||||
val signalJavaVersion: JavaVersion by extra
|
val signalJavaVersion: JavaVersion by extra
|
||||||
|
|
||||||
plugins {
|
plugins {
|
||||||
id("com.android.library")
|
id("com.android.library")
|
||||||
id("kotlin-android")
|
id("kotlin-android")
|
||||||
id("android-constants")
|
id("android-constants")
|
||||||
id("ktlint")
|
id("ktlint")
|
||||||
}
|
}
|
||||||
|
|
||||||
android {
|
android {
|
||||||
buildToolsVersion = signalBuildToolsVersion
|
buildToolsVersion = signalBuildToolsVersion
|
||||||
compileSdkVersion = signalCompileSdkVersion
|
compileSdkVersion = signalCompileSdkVersion
|
||||||
|
|
||||||
defaultConfig {
|
defaultConfig {
|
||||||
minSdk = signalMinSdkVersion
|
minSdk = signalMinSdkVersion
|
||||||
targetSdk = signalTargetSdkVersion
|
targetSdk = signalTargetSdkVersion
|
||||||
multiDexEnabled = true
|
multiDexEnabled = true
|
||||||
}
|
}
|
||||||
|
|
||||||
compileOptions {
|
compileOptions {
|
||||||
isCoreLibraryDesugaringEnabled = true
|
isCoreLibraryDesugaringEnabled = true
|
||||||
sourceCompatibility = signalJavaVersion
|
sourceCompatibility = signalJavaVersion
|
||||||
targetCompatibility = signalJavaVersion
|
targetCompatibility = signalJavaVersion
|
||||||
}
|
}
|
||||||
|
|
||||||
kotlinOptions {
|
kotlinOptions {
|
||||||
jvmTarget = "11"
|
jvmTarget = "11"
|
||||||
}
|
}
|
||||||
|
|
||||||
lint {
|
lint {
|
||||||
disable += "InvalidVectorPath"
|
disable += "InvalidVectorPath"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
lintChecks(project(":lintchecks"))
|
lintChecks(project(":lintchecks"))
|
||||||
|
|
||||||
coreLibraryDesugaring(libs.android.tools.desugar)
|
coreLibraryDesugaring(libs.android.tools.desugar)
|
||||||
|
|
||||||
implementation(libs.androidx.core.ktx)
|
implementation(libs.androidx.core.ktx)
|
||||||
implementation(libs.androidx.fragment.ktx)
|
implementation(libs.androidx.fragment.ktx)
|
||||||
implementation(libs.androidx.annotation)
|
implementation(libs.androidx.annotation)
|
||||||
implementation(libs.androidx.appcompat)
|
implementation(libs.androidx.appcompat)
|
||||||
implementation(libs.rxjava3.rxandroid)
|
implementation(libs.rxjava3.rxandroid)
|
||||||
implementation(libs.rxjava3.rxjava)
|
implementation(libs.rxjava3.rxjava)
|
||||||
implementation(libs.rxjava3.rxkotlin)
|
implementation(libs.rxjava3.rxkotlin)
|
||||||
implementation(libs.androidx.multidex)
|
implementation(libs.androidx.multidex)
|
||||||
implementation(libs.kotlin.stdlib.jdk8)
|
implementation(libs.kotlin.stdlib.jdk8)
|
||||||
|
|
||||||
ktlintRuleset(libs.ktlint.twitter.compose)
|
ktlintRuleset(libs.ktlint.twitter.compose)
|
||||||
|
|
||||||
testImplementation(testLibs.junit.junit)
|
testImplementation(testLibs.junit.junit)
|
||||||
testImplementation(testLibs.mockito.core)
|
testImplementation(testLibs.mockito.core)
|
||||||
testImplementation(testLibs.mockito.android)
|
testImplementation(testLibs.mockito.android)
|
||||||
testImplementation(testLibs.mockito.kotlin)
|
testImplementation(testLibs.mockito.kotlin)
|
||||||
testImplementation(testLibs.robolectric.robolectric)
|
testImplementation(testLibs.robolectric.robolectric)
|
||||||
testImplementation(testLibs.androidx.test.core)
|
testImplementation(testLibs.androidx.test.core)
|
||||||
testImplementation(testLibs.androidx.test.core.ktx)
|
testImplementation(testLibs.androidx.test.core.ktx)
|
||||||
}
|
}
|
||||||
|
|
|
@ -17,62 +17,62 @@ val signalMinSdkVersion: Int by extra
|
||||||
val signalJavaVersion: JavaVersion by extra
|
val signalJavaVersion: JavaVersion by extra
|
||||||
|
|
||||||
plugins {
|
plugins {
|
||||||
id("com.android.application")
|
id("com.android.application")
|
||||||
id("kotlin-android")
|
id("kotlin-android")
|
||||||
id("ktlint")
|
id("ktlint")
|
||||||
id("android-constants")
|
id("android-constants")
|
||||||
}
|
}
|
||||||
|
|
||||||
android {
|
android {
|
||||||
buildToolsVersion = signalBuildToolsVersion
|
buildToolsVersion = signalBuildToolsVersion
|
||||||
compileSdkVersion = signalCompileSdkVersion
|
compileSdkVersion = signalCompileSdkVersion
|
||||||
|
|
||||||
defaultConfig {
|
defaultConfig {
|
||||||
versionCode = 1
|
versionCode = 1
|
||||||
versionName = "1.0"
|
versionName = "1.0"
|
||||||
|
|
||||||
minSdk = signalMinSdkVersion
|
minSdk = signalMinSdkVersion
|
||||||
targetSdk = signalTargetSdkVersion
|
targetSdk = signalTargetSdkVersion
|
||||||
multiDexEnabled = true
|
multiDexEnabled = true
|
||||||
}
|
}
|
||||||
|
|
||||||
compileOptions {
|
compileOptions {
|
||||||
isCoreLibraryDesugaringEnabled = true
|
isCoreLibraryDesugaringEnabled = true
|
||||||
sourceCompatibility = signalJavaVersion
|
sourceCompatibility = signalJavaVersion
|
||||||
targetCompatibility = signalJavaVersion
|
targetCompatibility = signalJavaVersion
|
||||||
}
|
}
|
||||||
|
|
||||||
kotlinOptions {
|
kotlinOptions {
|
||||||
jvmTarget = "11"
|
jvmTarget = "11"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
coreLibraryDesugaring(libs.android.tools.desugar)
|
coreLibraryDesugaring(libs.android.tools.desugar)
|
||||||
|
|
||||||
implementation(project(":core-util"))
|
implementation(project(":core-util"))
|
||||||
|
|
||||||
coreLibraryDesugaring(libs.android.tools.desugar)
|
coreLibraryDesugaring(libs.android.tools.desugar)
|
||||||
|
|
||||||
implementation(libs.androidx.core.ktx)
|
implementation(libs.androidx.core.ktx)
|
||||||
implementation(libs.androidx.fragment.ktx)
|
implementation(libs.androidx.fragment.ktx)
|
||||||
implementation(libs.androidx.annotation)
|
implementation(libs.androidx.annotation)
|
||||||
implementation(libs.androidx.appcompat)
|
implementation(libs.androidx.appcompat)
|
||||||
implementation(libs.rxjava3.rxandroid)
|
implementation(libs.rxjava3.rxandroid)
|
||||||
implementation(libs.rxjava3.rxjava)
|
implementation(libs.rxjava3.rxjava)
|
||||||
implementation(libs.rxjava3.rxkotlin)
|
implementation(libs.rxjava3.rxkotlin)
|
||||||
implementation(libs.androidx.multidex)
|
implementation(libs.androidx.multidex)
|
||||||
implementation(libs.material.material)
|
implementation(libs.material.material)
|
||||||
implementation(libs.androidx.constraintlayout)
|
implementation(libs.androidx.constraintlayout)
|
||||||
implementation(libs.kotlin.stdlib.jdk8)
|
implementation(libs.kotlin.stdlib.jdk8)
|
||||||
|
|
||||||
ktlintRuleset(libs.ktlint.twitter.compose)
|
ktlintRuleset(libs.ktlint.twitter.compose)
|
||||||
|
|
||||||
testImplementation(testLibs.junit.junit)
|
testImplementation(testLibs.junit.junit)
|
||||||
testImplementation(testLibs.mockito.core)
|
testImplementation(testLibs.mockito.core)
|
||||||
testImplementation(testLibs.mockito.android)
|
testImplementation(testLibs.mockito.android)
|
||||||
testImplementation(testLibs.mockito.kotlin)
|
testImplementation(testLibs.mockito.kotlin)
|
||||||
testImplementation(testLibs.robolectric.robolectric)
|
testImplementation(testLibs.robolectric.robolectric)
|
||||||
testImplementation(testLibs.androidx.test.core)
|
testImplementation(testLibs.androidx.test.core)
|
||||||
testImplementation(testLibs.androidx.test.core.ktx)
|
testImplementation(testLibs.androidx.test.core.ktx)
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,23 +1,22 @@
|
||||||
plugins {
|
plugins {
|
||||||
id("org.jetbrains.kotlin.jvm")
|
id("org.jetbrains.kotlin.jvm")
|
||||||
id("java-library")
|
id("java-library")
|
||||||
id("org.jlleitschuh.gradle.ktlint") version "11.1.0"
|
id("org.jlleitschuh.gradle.ktlint") version "11.4.2"
|
||||||
}
|
}
|
||||||
|
|
||||||
java {
|
java {
|
||||||
sourceCompatibility = JavaVersion.VERSION_11
|
sourceCompatibility = JavaVersion.VERSION_11
|
||||||
targetCompatibility = JavaVersion.VERSION_11
|
targetCompatibility = JavaVersion.VERSION_11
|
||||||
}
|
}
|
||||||
|
|
||||||
// NOTE: For now, in order to run ktlint on this project, you have to manually run ./gradlew :build-logic:tools:ktlintFormat
|
// NOTE: For now, in order to run ktlint on this project, you have to manually run ./gradlew :build-logic:tools:ktlintFormat
|
||||||
// Gotta figure out how to get it auto-included in the normal ./gradlew ktlintFormat
|
// Gotta figure out how to get it auto-included in the normal ./gradlew ktlintFormat
|
||||||
ktlint {
|
ktlint {
|
||||||
// Use a newer version to resolve https://github.com/JLLeitschuh/ktlint-gradle/issues/507
|
version.set("0.49.1")
|
||||||
version.set("0.47.1")
|
|
||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
implementation(libs.dnsjava)
|
implementation(libs.dnsjava)
|
||||||
testImplementation(testLibs.junit.junit)
|
testImplementation(testLibs.junit.junit)
|
||||||
testImplementation(testLibs.mockk)
|
testImplementation(testLibs.mockk)
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,6 +5,7 @@ import org.junit.Test
|
||||||
import org.junit.runner.RunWith
|
import org.junit.runner.RunWith
|
||||||
import org.junit.runners.Parameterized
|
import org.junit.runners.Parameterized
|
||||||
|
|
||||||
|
@Suppress("ClassName")
|
||||||
@RunWith(Parameterized::class)
|
@RunWith(Parameterized::class)
|
||||||
class StringExtensions_asListContains(
|
class StringExtensions_asListContains(
|
||||||
private val model: String,
|
private val model: String,
|
||||||
|
|
|
@ -42,7 +42,7 @@ dependencyResolutionManagement {
|
||||||
library('kotlin-stdlib-jdk8', 'org.jetbrains.kotlin', 'kotlin-stdlib-jdk8').versionRef('kotlin')
|
library('kotlin-stdlib-jdk8', 'org.jetbrains.kotlin', 'kotlin-stdlib-jdk8').versionRef('kotlin')
|
||||||
library('kotlin-reflect', 'org.jetbrains.kotlin', 'kotlin-reflect').versionRef('kotlin')
|
library('kotlin-reflect', 'org.jetbrains.kotlin', 'kotlin-reflect').versionRef('kotlin')
|
||||||
library('kotlin-gradle-plugin', 'org.jetbrains.kotlin', 'kotlin-gradle-plugin').versionRef('kotlin')
|
library('kotlin-gradle-plugin', 'org.jetbrains.kotlin', 'kotlin-gradle-plugin').versionRef('kotlin')
|
||||||
library('ktlint', 'org.jlleitschuh.gradle:ktlint-gradle:11.1.0')
|
library('ktlint', 'org.jlleitschuh.gradle:ktlint-gradle:11.4.2')
|
||||||
|
|
||||||
// Android X
|
// Android X
|
||||||
library('androidx-activity-ktx', 'androidx.activity', 'activity-ktx').versionRef('androidx-activity')
|
library('androidx-activity-ktx', 'androidx.activity', 'activity-ktx').versionRef('androidx-activity')
|
||||||
|
|
|
@ -1481,11 +1481,21 @@ https://docs.gradle.org/current/userguide/dependency_verification.html
|
||||||
<sha256 value="5b3aba6ecd8b69223f4e1a0f596d488ef59fa56c62b5fa76c477bcddeecb5fcc" origin="Generated by Gradle"/>
|
<sha256 value="5b3aba6ecd8b69223f4e1a0f596d488ef59fa56c62b5fa76c477bcddeecb5fcc" origin="Generated by Gradle"/>
|
||||||
</artifact>
|
</artifact>
|
||||||
</component>
|
</component>
|
||||||
|
<component group="ch.qos.logback" name="logback-classic" version="1.3.5">
|
||||||
|
<artifact name="logback-classic-1.3.5.jar">
|
||||||
|
<sha256 value="9d68b9daf2fbb98a09b0445e0c64ac309d9d0e156b68510b63791397c97e32e4" origin="Generated by Gradle"/>
|
||||||
|
</artifact>
|
||||||
|
</component>
|
||||||
<component group="ch.qos.logback" name="logback-core" version="1.3.0">
|
<component group="ch.qos.logback" name="logback-core" version="1.3.0">
|
||||||
<artifact name="logback-core-1.3.0.jar">
|
<artifact name="logback-core-1.3.0.jar">
|
||||||
<sha256 value="824fd0313b2f797698f9df66c55a968b589414f43d6cab21916a2cac0ea13efd" origin="Generated by Gradle"/>
|
<sha256 value="824fd0313b2f797698f9df66c55a968b589414f43d6cab21916a2cac0ea13efd" origin="Generated by Gradle"/>
|
||||||
</artifact>
|
</artifact>
|
||||||
</component>
|
</component>
|
||||||
|
<component group="ch.qos.logback" name="logback-core" version="1.3.5">
|
||||||
|
<artifact name="logback-core-1.3.5.jar">
|
||||||
|
<sha256 value="b1f0ec393f2f5bbaf1decb61624de18386634c3197e9eed69d1c1234ddd756f3" origin="Generated by Gradle"/>
|
||||||
|
</artifact>
|
||||||
|
</component>
|
||||||
<component group="com.airbnb.android" name="lottie" version="5.2.0">
|
<component group="com.airbnb.android" name="lottie" version="5.2.0">
|
||||||
<artifact name="lottie-5.2.0.aar">
|
<artifact name="lottie-5.2.0.aar">
|
||||||
<sha256 value="aceed32e8b716d0883bbe6e09f20e338c3fc2b6a348dba43be894f66f5f42cb2" origin="Generated by Gradle"/>
|
<sha256 value="aceed32e8b716d0883bbe6e09f20e338c3fc2b6a348dba43be894f66f5f42cb2" origin="Generated by Gradle"/>
|
||||||
|
@ -2864,6 +2874,30 @@ https://docs.gradle.org/current/userguide/dependency_verification.html
|
||||||
<sha256 value="a75215351113d24d88069d48f511e2b33bebd357984b535b29dca34971fb6c17" origin="Generated by Gradle"/>
|
<sha256 value="a75215351113d24d88069d48f511e2b33bebd357984b535b29dca34971fb6c17" origin="Generated by Gradle"/>
|
||||||
</artifact>
|
</artifact>
|
||||||
</component>
|
</component>
|
||||||
|
<component group="com.pinterest" name="ktlint" version="0.49.1">
|
||||||
|
<artifact name="ktlint-0.49.1.jar">
|
||||||
|
<sha256 value="0797a26b7e43004e27cbab0b5775d8b74cef38c6fe492cbdc721fee6e3d2a51d" origin="Generated by Gradle"/>
|
||||||
|
</artifact>
|
||||||
|
<artifact name="ktlint-0.49.1.module">
|
||||||
|
<sha256 value="073121922d2b231e58cd02e010f48b02996180bff609865523c64bf78b489e94" origin="Generated by Gradle"/>
|
||||||
|
</artifact>
|
||||||
|
</component>
|
||||||
|
<component group="com.pinterest.ktlint" name="ktlint-cli-reporter" version="0.49.1">
|
||||||
|
<artifact name="ktlint-cli-reporter-0.49.1.jar">
|
||||||
|
<sha256 value="1ff38b245dfdfdf3a16424441a9f5315f6c60079a14cb6fa88b677682ab395f6" origin="Generated by Gradle"/>
|
||||||
|
</artifact>
|
||||||
|
<artifact name="ktlint-cli-reporter-0.49.1.module">
|
||||||
|
<sha256 value="9aa896aa57a058f2b7e1cd3ac1c15bd4fa4a2d977b4f647e504e706e33a03849" origin="Generated by Gradle"/>
|
||||||
|
</artifact>
|
||||||
|
</component>
|
||||||
|
<component group="com.pinterest.ktlint" name="ktlint-cli-ruleset-core" version="0.49.1">
|
||||||
|
<artifact name="ktlint-cli-ruleset-core-0.49.1.jar">
|
||||||
|
<sha256 value="2c6889c1b5a65a9a88dac09ddc5e6397356f0122bb6023c055e57e1d361d4095" origin="Generated by Gradle"/>
|
||||||
|
</artifact>
|
||||||
|
<artifact name="ktlint-cli-ruleset-core-0.49.1.module">
|
||||||
|
<sha256 value="8e73bd327ccc7f0d5fd473f88c979c66edcdd114c2b5af2ef8ab4626ff36afe1" origin="Generated by Gradle"/>
|
||||||
|
</artifact>
|
||||||
|
</component>
|
||||||
<component group="com.pinterest.ktlint" name="ktlint-core" version="0.43.2">
|
<component group="com.pinterest.ktlint" name="ktlint-core" version="0.43.2">
|
||||||
<artifact name="ktlint-core-0.43.2.jar">
|
<artifact name="ktlint-core-0.43.2.jar">
|
||||||
<sha256 value="401515a76b780a32ef9dfeaf69f77316934c4bb90f339488638311789eca7a1a" origin="Generated by Gradle"/>
|
<sha256 value="401515a76b780a32ef9dfeaf69f77316934c4bb90f339488638311789eca7a1a" origin="Generated by Gradle"/>
|
||||||
|
@ -2880,6 +2914,22 @@ https://docs.gradle.org/current/userguide/dependency_verification.html
|
||||||
<sha256 value="8ecf195778f9ee6494773cb4a0d5becb530b442088985ea7fc460624e04ad1a3" origin="Generated by Gradle"/>
|
<sha256 value="8ecf195778f9ee6494773cb4a0d5becb530b442088985ea7fc460624e04ad1a3" origin="Generated by Gradle"/>
|
||||||
</artifact>
|
</artifact>
|
||||||
</component>
|
</component>
|
||||||
|
<component group="com.pinterest.ktlint" name="ktlint-core" version="0.49.1">
|
||||||
|
<artifact name="ktlint-core-0.49.1.jar">
|
||||||
|
<sha256 value="69b69646c27b8b36d9eb34192e3219f39092ca3a1ba4c07e862c0a9452be514c" origin="Generated by Gradle"/>
|
||||||
|
</artifact>
|
||||||
|
<artifact name="ktlint-core-0.49.1.module">
|
||||||
|
<sha256 value="36ae696ff23ebd6e8ed4e22555286fee3c4cd15527f708ba05f6c8fd76454efa" origin="Generated by Gradle"/>
|
||||||
|
</artifact>
|
||||||
|
</component>
|
||||||
|
<component group="com.pinterest.ktlint" name="ktlint-logger" version="0.49.1">
|
||||||
|
<artifact name="ktlint-logger-0.49.1.jar">
|
||||||
|
<sha256 value="c706457f5d17b645169b247a89665e7d43191962a8dd6742ff508be6d87bcfce" origin="Generated by Gradle"/>
|
||||||
|
</artifact>
|
||||||
|
<artifact name="ktlint-logger-0.49.1.module">
|
||||||
|
<sha256 value="4bac3caffe62adf63023fe934020f728274c4d567d39936bf0392933811b7f45" origin="Generated by Gradle"/>
|
||||||
|
</artifact>
|
||||||
|
</component>
|
||||||
<component group="com.pinterest.ktlint" name="ktlint-reporter-baseline" version="0.43.2">
|
<component group="com.pinterest.ktlint" name="ktlint-reporter-baseline" version="0.43.2">
|
||||||
<artifact name="ktlint-reporter-baseline-0.43.2.jar">
|
<artifact name="ktlint-reporter-baseline-0.43.2.jar">
|
||||||
<sha256 value="733ee7e2cadb321d6597b3501c70c7da73117adaa0c6bc084dfc16c455d68806" origin="Generated by Gradle"/>
|
<sha256 value="733ee7e2cadb321d6597b3501c70c7da73117adaa0c6bc084dfc16c455d68806" origin="Generated by Gradle"/>
|
||||||
|
@ -2896,6 +2946,14 @@ https://docs.gradle.org/current/userguide/dependency_verification.html
|
||||||
<sha256 value="15dd48383c72a01c25018f4321e1128df61e514be27d3ce8e1975e6f1ddeffce" origin="Generated by Gradle"/>
|
<sha256 value="15dd48383c72a01c25018f4321e1128df61e514be27d3ce8e1975e6f1ddeffce" origin="Generated by Gradle"/>
|
||||||
</artifact>
|
</artifact>
|
||||||
</component>
|
</component>
|
||||||
|
<component group="com.pinterest.ktlint" name="ktlint-reporter-baseline" version="0.49.1">
|
||||||
|
<artifact name="ktlint-reporter-baseline-0.49.1.jar">
|
||||||
|
<sha256 value="f9355d4863533281ab673c4265431e699690d7b7c99bbe2fef8959151fa678b2" origin="Generated by Gradle"/>
|
||||||
|
</artifact>
|
||||||
|
<artifact name="ktlint-reporter-baseline-0.49.1.module">
|
||||||
|
<sha256 value="1259539e22d29d0ca9e3b113d2cc3772f73277d10c7223a200adabdbd1d4a864" origin="Generated by Gradle"/>
|
||||||
|
</artifact>
|
||||||
|
</component>
|
||||||
<component group="com.pinterest.ktlint" name="ktlint-reporter-checkstyle" version="0.43.2">
|
<component group="com.pinterest.ktlint" name="ktlint-reporter-checkstyle" version="0.43.2">
|
||||||
<artifact name="ktlint-reporter-checkstyle-0.43.2.jar">
|
<artifact name="ktlint-reporter-checkstyle-0.43.2.jar">
|
||||||
<sha256 value="becafb4006b9f2e82c99749864a1a8de340ee84ac7271631a68981a44f51e808" origin="Generated by Gradle"/>
|
<sha256 value="becafb4006b9f2e82c99749864a1a8de340ee84ac7271631a68981a44f51e808" origin="Generated by Gradle"/>
|
||||||
|
@ -2912,6 +2970,14 @@ https://docs.gradle.org/current/userguide/dependency_verification.html
|
||||||
<sha256 value="c184fcbf50f1bc370a63c9f5a84d89200dfb6cb04344f51565a544518a7749f3" origin="Generated by Gradle"/>
|
<sha256 value="c184fcbf50f1bc370a63c9f5a84d89200dfb6cb04344f51565a544518a7749f3" origin="Generated by Gradle"/>
|
||||||
</artifact>
|
</artifact>
|
||||||
</component>
|
</component>
|
||||||
|
<component group="com.pinterest.ktlint" name="ktlint-reporter-checkstyle" version="0.49.1">
|
||||||
|
<artifact name="ktlint-reporter-checkstyle-0.49.1.jar">
|
||||||
|
<sha256 value="5106ee621182bf3733cf2ecbac3211c444dbb981fabc1e8d149f09959c8add63" origin="Generated by Gradle"/>
|
||||||
|
</artifact>
|
||||||
|
<artifact name="ktlint-reporter-checkstyle-0.49.1.module">
|
||||||
|
<sha256 value="f086cb5102f316dbea42b2c2452d50b4b12be3ff9f0097a14dabb53d5beffca1" origin="Generated by Gradle"/>
|
||||||
|
</artifact>
|
||||||
|
</component>
|
||||||
<component group="com.pinterest.ktlint" name="ktlint-reporter-format" version="0.47.1">
|
<component group="com.pinterest.ktlint" name="ktlint-reporter-format" version="0.47.1">
|
||||||
<artifact name="ktlint-reporter-format-0.47.1.jar">
|
<artifact name="ktlint-reporter-format-0.47.1.jar">
|
||||||
<sha256 value="06a5ff8956c62ddaab72e1d01b98140bda0131659fde42d547fa86ed80dbaa9b" origin="Generated by Gradle"/>
|
<sha256 value="06a5ff8956c62ddaab72e1d01b98140bda0131659fde42d547fa86ed80dbaa9b" origin="Generated by Gradle"/>
|
||||||
|
@ -2920,6 +2986,14 @@ https://docs.gradle.org/current/userguide/dependency_verification.html
|
||||||
<sha256 value="e03bee9b86236d47c5ff0c49a26ebe8399a77265ac15614380e0017c15e3a7f5" origin="Generated by Gradle"/>
|
<sha256 value="e03bee9b86236d47c5ff0c49a26ebe8399a77265ac15614380e0017c15e3a7f5" origin="Generated by Gradle"/>
|
||||||
</artifact>
|
</artifact>
|
||||||
</component>
|
</component>
|
||||||
|
<component group="com.pinterest.ktlint" name="ktlint-reporter-format" version="0.49.1">
|
||||||
|
<artifact name="ktlint-reporter-format-0.49.1.jar">
|
||||||
|
<sha256 value="c8590d4aba55958b3747e0036ccccb90f956bb1dd502e2e18169bb812cd563c3" origin="Generated by Gradle"/>
|
||||||
|
</artifact>
|
||||||
|
<artifact name="ktlint-reporter-format-0.49.1.module">
|
||||||
|
<sha256 value="116e8af6eee2096d518ac81d57cb05b8ec414847aac843b69ac20d84fd74741c" origin="Generated by Gradle"/>
|
||||||
|
</artifact>
|
||||||
|
</component>
|
||||||
<component group="com.pinterest.ktlint" name="ktlint-reporter-html" version="0.43.2">
|
<component group="com.pinterest.ktlint" name="ktlint-reporter-html" version="0.43.2">
|
||||||
<artifact name="ktlint-reporter-html-0.43.2.jar">
|
<artifact name="ktlint-reporter-html-0.43.2.jar">
|
||||||
<sha256 value="800392e150d3266e72ca53c6ccca3136d4e26445dd9216c6ac6cfc1ba3afafe5" origin="Generated by Gradle"/>
|
<sha256 value="800392e150d3266e72ca53c6ccca3136d4e26445dd9216c6ac6cfc1ba3afafe5" origin="Generated by Gradle"/>
|
||||||
|
@ -2936,6 +3010,14 @@ https://docs.gradle.org/current/userguide/dependency_verification.html
|
||||||
<sha256 value="b6c48fe8ff0d5ffb7873829f237b79d1cfa35f3300bf6ba119589432173c1d96" origin="Generated by Gradle"/>
|
<sha256 value="b6c48fe8ff0d5ffb7873829f237b79d1cfa35f3300bf6ba119589432173c1d96" origin="Generated by Gradle"/>
|
||||||
</artifact>
|
</artifact>
|
||||||
</component>
|
</component>
|
||||||
|
<component group="com.pinterest.ktlint" name="ktlint-reporter-html" version="0.49.1">
|
||||||
|
<artifact name="ktlint-reporter-html-0.49.1.jar">
|
||||||
|
<sha256 value="31e28fb152f3b8d21a6f87936bffdb58b1be50bbcb03c06814f17bf48bd544ae" origin="Generated by Gradle"/>
|
||||||
|
</artifact>
|
||||||
|
<artifact name="ktlint-reporter-html-0.49.1.module">
|
||||||
|
<sha256 value="e859acf0aacd84cae9bd3712c7b71bbd3f9f29936ab16198fa52a82a0d91963f" origin="Generated by Gradle"/>
|
||||||
|
</artifact>
|
||||||
|
</component>
|
||||||
<component group="com.pinterest.ktlint" name="ktlint-reporter-json" version="0.43.2">
|
<component group="com.pinterest.ktlint" name="ktlint-reporter-json" version="0.43.2">
|
||||||
<artifact name="ktlint-reporter-json-0.43.2.jar">
|
<artifact name="ktlint-reporter-json-0.43.2.jar">
|
||||||
<sha256 value="9d4a94190d96d671000a06a50c9d1ce111d0dcf629bef8b4f0221a9e3f3699a0" origin="Generated by Gradle"/>
|
<sha256 value="9d4a94190d96d671000a06a50c9d1ce111d0dcf629bef8b4f0221a9e3f3699a0" origin="Generated by Gradle"/>
|
||||||
|
@ -2952,6 +3034,14 @@ https://docs.gradle.org/current/userguide/dependency_verification.html
|
||||||
<sha256 value="3737d6ce9e38077ccdf171e17480ac7f61712ee20f44b1a2caf84e547abef477" origin="Generated by Gradle"/>
|
<sha256 value="3737d6ce9e38077ccdf171e17480ac7f61712ee20f44b1a2caf84e547abef477" origin="Generated by Gradle"/>
|
||||||
</artifact>
|
</artifact>
|
||||||
</component>
|
</component>
|
||||||
|
<component group="com.pinterest.ktlint" name="ktlint-reporter-json" version="0.49.1">
|
||||||
|
<artifact name="ktlint-reporter-json-0.49.1.jar">
|
||||||
|
<sha256 value="840f393574b7c3394351de7f2b635e6bb0e12053aacf148160490225d2ace70d" origin="Generated by Gradle"/>
|
||||||
|
</artifact>
|
||||||
|
<artifact name="ktlint-reporter-json-0.49.1.module">
|
||||||
|
<sha256 value="3bf94c3cc89641d54d84adb9a3dacac954beda5cfdac75f9c67a014c25e48095" origin="Generated by Gradle"/>
|
||||||
|
</artifact>
|
||||||
|
</component>
|
||||||
<component group="com.pinterest.ktlint" name="ktlint-reporter-plain" version="0.43.2">
|
<component group="com.pinterest.ktlint" name="ktlint-reporter-plain" version="0.43.2">
|
||||||
<artifact name="ktlint-reporter-plain-0.43.2.jar">
|
<artifact name="ktlint-reporter-plain-0.43.2.jar">
|
||||||
<sha256 value="1cab63f431ec4e9463df7a767f131ccfa8d76259c01fecc63a4c000063e8ee43" origin="Generated by Gradle"/>
|
<sha256 value="1cab63f431ec4e9463df7a767f131ccfa8d76259c01fecc63a4c000063e8ee43" origin="Generated by Gradle"/>
|
||||||
|
@ -2968,6 +3058,22 @@ https://docs.gradle.org/current/userguide/dependency_verification.html
|
||||||
<sha256 value="74239d709ca80ade6d7bd1bd5055667988956dfcb78040775672803f51d45864" origin="Generated by Gradle"/>
|
<sha256 value="74239d709ca80ade6d7bd1bd5055667988956dfcb78040775672803f51d45864" origin="Generated by Gradle"/>
|
||||||
</artifact>
|
</artifact>
|
||||||
</component>
|
</component>
|
||||||
|
<component group="com.pinterest.ktlint" name="ktlint-reporter-plain" version="0.49.1">
|
||||||
|
<artifact name="ktlint-reporter-plain-0.49.1.jar">
|
||||||
|
<sha256 value="c8e65476eaa750d3dcf8e85b8408609c0e10bd0f9672b4915ad9e0f0bbc665e4" origin="Generated by Gradle"/>
|
||||||
|
</artifact>
|
||||||
|
<artifact name="ktlint-reporter-plain-0.49.1.module">
|
||||||
|
<sha256 value="d64f88e4c76ea9a4791c7ba9d76519a2de18d27f0ac56e9ca3a06ca41169b135" origin="Generated by Gradle"/>
|
||||||
|
</artifact>
|
||||||
|
</component>
|
||||||
|
<component group="com.pinterest.ktlint" name="ktlint-reporter-plain-summary" version="0.49.1">
|
||||||
|
<artifact name="ktlint-reporter-plain-summary-0.49.1.jar">
|
||||||
|
<sha256 value="0896f23e4798277a2bd1969477c47dc9e8230367dd86f14d19e1f8248fc2a116" origin="Generated by Gradle"/>
|
||||||
|
</artifact>
|
||||||
|
<artifact name="ktlint-reporter-plain-summary-0.49.1.module">
|
||||||
|
<sha256 value="4788fdfc4c8b42418ebbd2bee52ae94403619ac383a4e4cec0a20121adac0c08" origin="Generated by Gradle"/>
|
||||||
|
</artifact>
|
||||||
|
</component>
|
||||||
<component group="com.pinterest.ktlint" name="ktlint-reporter-sarif" version="0.43.2">
|
<component group="com.pinterest.ktlint" name="ktlint-reporter-sarif" version="0.43.2">
|
||||||
<artifact name="ktlint-reporter-sarif-0.43.2.jar">
|
<artifact name="ktlint-reporter-sarif-0.43.2.jar">
|
||||||
<sha256 value="ed0046aaa4a2e4544197bfdccf88d472ef413a55ad05b6dc8aae41338e9d3748" origin="Generated by Gradle"/>
|
<sha256 value="ed0046aaa4a2e4544197bfdccf88d472ef413a55ad05b6dc8aae41338e9d3748" origin="Generated by Gradle"/>
|
||||||
|
@ -2984,6 +3090,30 @@ https://docs.gradle.org/current/userguide/dependency_verification.html
|
||||||
<sha256 value="33ccebebf566143cbd75208ac435b8f5dcbc0c5297edc6966c7f02d491910da1" origin="Generated by Gradle"/>
|
<sha256 value="33ccebebf566143cbd75208ac435b8f5dcbc0c5297edc6966c7f02d491910da1" origin="Generated by Gradle"/>
|
||||||
</artifact>
|
</artifact>
|
||||||
</component>
|
</component>
|
||||||
|
<component group="com.pinterest.ktlint" name="ktlint-reporter-sarif" version="0.49.1">
|
||||||
|
<artifact name="ktlint-reporter-sarif-0.49.1.jar">
|
||||||
|
<sha256 value="a520dc742c64564c45c87768b48db5e7971e253ba85c9b727a27d8fcb0a3b18e" origin="Generated by Gradle"/>
|
||||||
|
</artifact>
|
||||||
|
<artifact name="ktlint-reporter-sarif-0.49.1.module">
|
||||||
|
<sha256 value="7fd881cb31863f96a6ed3e80467baaba58467b87762c44e229aae889595967e0" origin="Generated by Gradle"/>
|
||||||
|
</artifact>
|
||||||
|
</component>
|
||||||
|
<component group="com.pinterest.ktlint" name="ktlint-rule-engine" version="0.49.1">
|
||||||
|
<artifact name="ktlint-rule-engine-0.49.1.jar">
|
||||||
|
<sha256 value="df5a2e1bd92894152d07c3200735e8a9cd953460978d9ae1d7618b45aa60ec8c" origin="Generated by Gradle"/>
|
||||||
|
</artifact>
|
||||||
|
<artifact name="ktlint-rule-engine-0.49.1.module">
|
||||||
|
<sha256 value="9de9030fa2d16f84e02a7f33299c8c6538916202949ee46725d81ace1b4c856a" origin="Generated by Gradle"/>
|
||||||
|
</artifact>
|
||||||
|
</component>
|
||||||
|
<component group="com.pinterest.ktlint" name="ktlint-rule-engine-core" version="0.49.1">
|
||||||
|
<artifact name="ktlint-rule-engine-core-0.49.1.jar">
|
||||||
|
<sha256 value="89967a53e3f0cf3a714b5d860f070ca6df3830924ff94c8e9013dd1dcc3db561" origin="Generated by Gradle"/>
|
||||||
|
</artifact>
|
||||||
|
<artifact name="ktlint-rule-engine-core-0.49.1.module">
|
||||||
|
<sha256 value="09a7017262a86a7d1c2d49df77caa8ab1d6ffdbbc729072a59597ee2f2e299ea" origin="Generated by Gradle"/>
|
||||||
|
</artifact>
|
||||||
|
</component>
|
||||||
<component group="com.pinterest.ktlint" name="ktlint-ruleset-experimental" version="0.43.2">
|
<component group="com.pinterest.ktlint" name="ktlint-ruleset-experimental" version="0.43.2">
|
||||||
<artifact name="ktlint-ruleset-experimental-0.43.2.jar">
|
<artifact name="ktlint-ruleset-experimental-0.43.2.jar">
|
||||||
<sha256 value="d89e0edcdca0ae375c090565e323520ab5d424d82fd6ac6290ea986d360f0b11" origin="Generated by Gradle"/>
|
<sha256 value="d89e0edcdca0ae375c090565e323520ab5d424d82fd6ac6290ea986d360f0b11" origin="Generated by Gradle"/>
|
||||||
|
@ -3016,6 +3146,14 @@ https://docs.gradle.org/current/userguide/dependency_verification.html
|
||||||
<sha256 value="3b45a64fa5982bd6b84c1e08ebfa1027948a26d655381c4fb66907a1271ba9db" origin="Generated by Gradle"/>
|
<sha256 value="3b45a64fa5982bd6b84c1e08ebfa1027948a26d655381c4fb66907a1271ba9db" origin="Generated by Gradle"/>
|
||||||
</artifact>
|
</artifact>
|
||||||
</component>
|
</component>
|
||||||
|
<component group="com.pinterest.ktlint" name="ktlint-ruleset-standard" version="0.49.1">
|
||||||
|
<artifact name="ktlint-ruleset-standard-0.49.1.jar">
|
||||||
|
<sha256 value="144261afa91fa47381c87667ba46a107345ab07d1cb934c7f67d39a238e80258" origin="Generated by Gradle"/>
|
||||||
|
</artifact>
|
||||||
|
<artifact name="ktlint-ruleset-standard-0.49.1.module">
|
||||||
|
<sha256 value="3f23852712c978a1b771eb1defd84b6cee9bca80f75de9b19e649250bdaecc4d" origin="Generated by Gradle"/>
|
||||||
|
</artifact>
|
||||||
|
</component>
|
||||||
<component group="com.pinterest.ktlint" name="ktlint-ruleset-test" version="0.43.2">
|
<component group="com.pinterest.ktlint" name="ktlint-ruleset-test" version="0.43.2">
|
||||||
<artifact name="ktlint-ruleset-test-0.43.2.jar">
|
<artifact name="ktlint-ruleset-test-0.43.2.jar">
|
||||||
<sha256 value="7270c4d98b2cda268c25397a02b7dea0ab8cb923958cb3853121e0d9366ce797" origin="Generated by Gradle"/>
|
<sha256 value="7270c4d98b2cda268c25397a02b7dea0ab8cb923958cb3853121e0d9366ce797" origin="Generated by Gradle"/>
|
||||||
|
@ -3368,6 +3506,11 @@ https://docs.gradle.org/current/userguide/dependency_verification.html
|
||||||
<sha256 value="b0a5159e926de8084ff066025142270443533656bc599b8bb31d14d11fd138a4" origin="Generated by Gradle"/>
|
<sha256 value="b0a5159e926de8084ff066025142270443533656bc599b8bb31d14d11fd138a4" origin="Generated by Gradle"/>
|
||||||
</artifact>
|
</artifact>
|
||||||
</component>
|
</component>
|
||||||
|
<component group="info.picocli" name="picocli" version="4.7.1">
|
||||||
|
<artifact name="picocli-4.7.1.jar">
|
||||||
|
<sha256 value="0e7191fbe324fb9df8d2d207c07b666b8dc25bbbe26f53a4c52e2fece624a976" origin="Generated by Gradle"/>
|
||||||
|
</artifact>
|
||||||
|
</component>
|
||||||
<component group="io.github.aakira" name="napier" version="1.4.1">
|
<component group="io.github.aakira" name="napier" version="1.4.1">
|
||||||
<artifact name="napier-1.4.1.module">
|
<artifact name="napier-1.4.1.module">
|
||||||
<sha256 value="10296ebb83b6812d87b4d3c9f965eafcf5c7b2c8f737c5a044bbd987c4221970" origin="Generated by Gradle"/>
|
<sha256 value="10296ebb83b6812d87b4d3c9f965eafcf5c7b2c8f737c5a044bbd987c4221970" origin="Generated by Gradle"/>
|
||||||
|
@ -3397,6 +3540,14 @@ https://docs.gradle.org/current/userguide/dependency_verification.html
|
||||||
<sha256 value="1256ce1616f6efb1594b172e667f0efa5e12b005e88f0e28aa2eaa3bf3af74b8" origin="Generated by Gradle"/>
|
<sha256 value="1256ce1616f6efb1594b172e667f0efa5e12b005e88f0e28aa2eaa3bf3af74b8" origin="Generated by Gradle"/>
|
||||||
</artifact>
|
</artifact>
|
||||||
</component>
|
</component>
|
||||||
|
<component group="io.github.detekt.sarif4k" name="sarif4k" version="0.2.0">
|
||||||
|
<artifact name="sarif4k-0.2.0.jar">
|
||||||
|
<sha256 value="f1e9f4ddb7e16de287681e28444830398e101c0c5af9a318b6c528d135c7f4ba" origin="Generated by Gradle"/>
|
||||||
|
</artifact>
|
||||||
|
<artifact name="sarif4k-0.2.0.module">
|
||||||
|
<sha256 value="fc9db13ba22cb1101af1ce89c7a073f02f7d23308d0b4c680ece1eec7d80868c" origin="Generated by Gradle"/>
|
||||||
|
</artifact>
|
||||||
|
</component>
|
||||||
<component group="io.github.microutils" name="kotlin-logging-jvm" version="2.1.23">
|
<component group="io.github.microutils" name="kotlin-logging-jvm" version="2.1.23">
|
||||||
<artifact name="kotlin-logging-jvm-2.1.23.jar">
|
<artifact name="kotlin-logging-jvm-2.1.23.jar">
|
||||||
<sha256 value="e00e75d6b5cc3d24bed2c9542cc65a080435986fe6ecc569da72a4fb6dfd91c8" origin="Generated by Gradle"/>
|
<sha256 value="e00e75d6b5cc3d24bed2c9542cc65a080435986fe6ecc569da72a4fb6dfd91c8" origin="Generated by Gradle"/>
|
||||||
|
@ -3405,6 +3556,14 @@ https://docs.gradle.org/current/userguide/dependency_verification.html
|
||||||
<sha256 value="7a80086bf6abc67663e11a84bb9183ac603e43f88148300ba8010ee681c53893" origin="Generated by Gradle"/>
|
<sha256 value="7a80086bf6abc67663e11a84bb9183ac603e43f88148300ba8010ee681c53893" origin="Generated by Gradle"/>
|
||||||
</artifact>
|
</artifact>
|
||||||
</component>
|
</component>
|
||||||
|
<component group="io.github.microutils" name="kotlin-logging-jvm" version="3.0.5">
|
||||||
|
<artifact name="kotlin-logging-jvm-3.0.5.jar">
|
||||||
|
<sha256 value="2a9477a4138487bb7fbb057ee3ac0f455b58f8d4bed94c885fa64260de59e4dc" origin="Generated by Gradle"/>
|
||||||
|
</artifact>
|
||||||
|
<artifact name="kotlin-logging-jvm-3.0.5.module">
|
||||||
|
<sha256 value="5472ae04eed460a71718a52fefcf1dec59d2dd5ea0c7aba6c957d5e0bb60a098" origin="Generated by Gradle"/>
|
||||||
|
</artifact>
|
||||||
|
</component>
|
||||||
<component group="io.grpc" name="grpc-api" version="1.39.0">
|
<component group="io.grpc" name="grpc-api" version="1.39.0">
|
||||||
<artifact name="grpc-api-1.39.0.jar">
|
<artifact name="grpc-api-1.39.0.jar">
|
||||||
<sha256 value="4e80074dc2c627372044599cf873bf644450a218c58af48c03d5bb086cced484" origin="Generated by Gradle"/>
|
<sha256 value="4e80074dc2c627372044599cf873bf644450a218c58af48c03d5bb086cced484" origin="Generated by Gradle"/>
|
||||||
|
@ -4096,6 +4255,11 @@ https://docs.gradle.org/current/userguide/dependency_verification.html
|
||||||
<sha256 value="654efc89ae1d464a300af2a2aaf48c86ae6fb4b61be70c75b8fa54e186fd0c1b" origin="Generated by Gradle"/>
|
<sha256 value="654efc89ae1d464a300af2a2aaf48c86ae6fb4b61be70c75b8fa54e186fd0c1b" origin="Generated by Gradle"/>
|
||||||
</artifact>
|
</artifact>
|
||||||
</component>
|
</component>
|
||||||
|
<component group="org.jetbrains.kotlin" name="kotlin-compiler-embeddable" version="1.8.20">
|
||||||
|
<artifact name="kotlin-compiler-embeddable-1.8.20.jar">
|
||||||
|
<sha256 value="5655386be55d45a78d887372bbd59d03e06750f7756108d14139e8d7e4b2e179" origin="Generated by Gradle"/>
|
||||||
|
</artifact>
|
||||||
|
</component>
|
||||||
<component group="org.jetbrains.kotlin" name="kotlin-compiler-runner" version="1.8.10">
|
<component group="org.jetbrains.kotlin" name="kotlin-compiler-runner" version="1.8.10">
|
||||||
<artifact name="kotlin-compiler-runner-1.8.10.jar">
|
<artifact name="kotlin-compiler-runner-1.8.10.jar">
|
||||||
<sha256 value="e4af2a17b476a889b6179b4de811f14033072671f4c828de52d0092d53bf2677" origin="Generated by Gradle"/>
|
<sha256 value="e4af2a17b476a889b6179b4de811f14033072671f4c828de52d0092d53bf2677" origin="Generated by Gradle"/>
|
||||||
|
@ -4121,6 +4285,11 @@ https://docs.gradle.org/current/userguide/dependency_verification.html
|
||||||
<sha256 value="e2a697e6ec0d2686089da48ee09695490626d4a1d24266c272f481ac86d09a4c" origin="Generated by Gradle"/>
|
<sha256 value="e2a697e6ec0d2686089da48ee09695490626d4a1d24266c272f481ac86d09a4c" origin="Generated by Gradle"/>
|
||||||
</artifact>
|
</artifact>
|
||||||
</component>
|
</component>
|
||||||
|
<component group="org.jetbrains.kotlin" name="kotlin-daemon-embeddable" version="1.8.20">
|
||||||
|
<artifact name="kotlin-daemon-embeddable-1.8.20.jar">
|
||||||
|
<sha256 value="4602bd521a708f32deced0921d06c7977056c5887359cdabfc7070e9732cb353" origin="Generated by Gradle"/>
|
||||||
|
</artifact>
|
||||||
|
</component>
|
||||||
<component group="org.jetbrains.kotlin" name="kotlin-gradle-plugin" version="1.8.10">
|
<component group="org.jetbrains.kotlin" name="kotlin-gradle-plugin" version="1.8.10">
|
||||||
<artifact name="kotlin-gradle-plugin-1.8.10-gradle76.jar">
|
<artifact name="kotlin-gradle-plugin-1.8.10-gradle76.jar">
|
||||||
<sha256 value="a677e78283e988dfb0baed88dc20e8ed70ae65e9b958e398804035931e1b0a72" origin="Generated by Gradle"/>
|
<sha256 value="a677e78283e988dfb0baed88dc20e8ed70ae65e9b958e398804035931e1b0a72" origin="Generated by Gradle"/>
|
||||||
|
@ -4239,6 +4408,11 @@ https://docs.gradle.org/current/userguide/dependency_verification.html
|
||||||
<sha256 value="43248a1f7f271c022731cf83db6ae4290ab40f882c741030d986c03535fadb81" origin="Generated by Gradle"/>
|
<sha256 value="43248a1f7f271c022731cf83db6ae4290ab40f882c741030d986c03535fadb81" origin="Generated by Gradle"/>
|
||||||
</artifact>
|
</artifact>
|
||||||
</component>
|
</component>
|
||||||
|
<component group="org.jetbrains.kotlin" name="kotlin-script-runtime" version="1.8.20">
|
||||||
|
<artifact name="kotlin-script-runtime-1.8.20.jar">
|
||||||
|
<sha256 value="4bddc06cad20bb843fbd24094b1dc3c31f55508c6918885e8b548f2ebaa8a93e" origin="Generated by Gradle"/>
|
||||||
|
</artifact>
|
||||||
|
</component>
|
||||||
<component group="org.jetbrains.kotlin" name="kotlin-scripting-common" version="1.8.10">
|
<component group="org.jetbrains.kotlin" name="kotlin-scripting-common" version="1.8.10">
|
||||||
<artifact name="kotlin-scripting-common-1.8.10.jar">
|
<artifact name="kotlin-scripting-common-1.8.10.jar">
|
||||||
<sha256 value="5f60cb1dfd5d5df171d2bc8f0e782b4bb46f986dadc8452f85e9995c6df9d0d9" origin="Generated by Gradle"/>
|
<sha256 value="5f60cb1dfd5d5df171d2bc8f0e782b4bb46f986dadc8452f85e9995c6df9d0d9" origin="Generated by Gradle"/>
|
||||||
|
@ -4349,6 +4523,11 @@ https://docs.gradle.org/current/userguide/dependency_verification.html
|
||||||
<sha256 value="a843aae0b7232448afc6af05747cd4de416b9c2b76e100a1b07b1f788337b2ed" origin="Generated by Gradle"/>
|
<sha256 value="a843aae0b7232448afc6af05747cd4de416b9c2b76e100a1b07b1f788337b2ed" origin="Generated by Gradle"/>
|
||||||
</artifact>
|
</artifact>
|
||||||
</component>
|
</component>
|
||||||
|
<component group="org.jetbrains.kotlin" name="kotlin-stdlib-jdk7" version="1.8.20">
|
||||||
|
<artifact name="kotlin-stdlib-jdk7-1.8.20.jar">
|
||||||
|
<sha256 value="af1ec40c3b951afdcc0c2a0173c7b81763c5281c2d5bafbf0a8544a24c5dcc0c" origin="Generated by Gradle"/>
|
||||||
|
</artifact>
|
||||||
|
</component>
|
||||||
<component group="org.jetbrains.kotlin" name="kotlin-stdlib-jdk8" version="1.4.10">
|
<component group="org.jetbrains.kotlin" name="kotlin-stdlib-jdk8" version="1.4.10">
|
||||||
<artifact name="kotlin-stdlib-jdk8-1.4.10.jar">
|
<artifact name="kotlin-stdlib-jdk8-1.4.10.jar">
|
||||||
<sha256 value="39b7a9442d7a3865e0f4a732c56c1d5da0e11ffb3bb82a461d32deb0c0ca7673" origin="Generated by Gradle"/>
|
<sha256 value="39b7a9442d7a3865e0f4a732c56c1d5da0e11ffb3bb82a461d32deb0c0ca7673" origin="Generated by Gradle"/>
|
||||||
|
@ -4374,6 +4553,11 @@ https://docs.gradle.org/current/userguide/dependency_verification.html
|
||||||
<sha256 value="9622f67cbe41e88ad257c1b8018054dd021a6044162474a78b1becd44f15a169" origin="Generated by Gradle"/>
|
<sha256 value="9622f67cbe41e88ad257c1b8018054dd021a6044162474a78b1becd44f15a169" origin="Generated by Gradle"/>
|
||||||
</artifact>
|
</artifact>
|
||||||
</component>
|
</component>
|
||||||
|
<component group="org.jetbrains.kotlin" name="kotlin-stdlib-jdk8" version="1.8.20">
|
||||||
|
<artifact name="kotlin-stdlib-jdk8-1.8.20.jar">
|
||||||
|
<sha256 value="e398b67977622718bf18ff99b739c7d9da060f33fb458a2e25203221c16af010" origin="Generated by Gradle"/>
|
||||||
|
</artifact>
|
||||||
|
</component>
|
||||||
<component group="org.jetbrains.kotlin" name="kotlin-tooling-core" version="1.8.10">
|
<component group="org.jetbrains.kotlin" name="kotlin-tooling-core" version="1.8.10">
|
||||||
<artifact name="kotlin-tooling-core-1.8.10.jar">
|
<artifact name="kotlin-tooling-core-1.8.10.jar">
|
||||||
<sha256 value="c8958d94e1c1210936c131d388c3237c9ccf2e6189d236c9e07a6946e50f66b3" origin="Generated by Gradle"/>
|
<sha256 value="c8958d94e1c1210936c131d388c3237c9ccf2e6189d236c9e07a6946e50f66b3" origin="Generated by Gradle"/>
|
||||||
|
@ -4478,6 +4662,11 @@ https://docs.gradle.org/current/userguide/dependency_verification.html
|
||||||
<sha256 value="a21890616c068b55580ca3cf008b3d5d7f9613c980b754b4ad5a5bf74e8babf5" origin="Generated by Gradle"/>
|
<sha256 value="a21890616c068b55580ca3cf008b3d5d7f9613c980b754b4ad5a5bf74e8babf5" origin="Generated by Gradle"/>
|
||||||
</artifact>
|
</artifact>
|
||||||
</component>
|
</component>
|
||||||
|
<component group="org.jetbrains.kotlinx" name="kotlinx-serialization-core" version="1.4.1">
|
||||||
|
<artifact name="kotlinx-serialization-core-1.4.1.module">
|
||||||
|
<sha256 value="60e581c397ddb9461ec1f1dee5bbb4a23bb7ec7d09b296024196220022aa7090" origin="Generated by Gradle"/>
|
||||||
|
</artifact>
|
||||||
|
</component>
|
||||||
<component group="org.jetbrains.kotlinx" name="kotlinx-serialization-core-jvm" version="1.0.1">
|
<component group="org.jetbrains.kotlinx" name="kotlinx-serialization-core-jvm" version="1.0.1">
|
||||||
<artifact name="kotlinx-serialization-core-jvm-1.0.1.jar">
|
<artifact name="kotlinx-serialization-core-jvm-1.0.1.jar">
|
||||||
<sha256 value="16dd687a3c4b8ac09eb20859da8c80372dca494d321e2c64823848ccd7f23651" origin="Generated by Gradle"/>
|
<sha256 value="16dd687a3c4b8ac09eb20859da8c80372dca494d321e2c64823848ccd7f23651" origin="Generated by Gradle"/>
|
||||||
|
@ -4494,11 +4683,24 @@ https://docs.gradle.org/current/userguide/dependency_verification.html
|
||||||
<sha256 value="717848769dd22e377f9b757423c4ba9d6bda1e88eb280f69076b0eeed76c22b5" origin="Generated by Gradle"/>
|
<sha256 value="717848769dd22e377f9b757423c4ba9d6bda1e88eb280f69076b0eeed76c22b5" origin="Generated by Gradle"/>
|
||||||
</artifact>
|
</artifact>
|
||||||
</component>
|
</component>
|
||||||
|
<component group="org.jetbrains.kotlinx" name="kotlinx-serialization-core-jvm" version="1.4.1">
|
||||||
|
<artifact name="kotlinx-serialization-core-jvm-1.4.1.jar">
|
||||||
|
<sha256 value="eba7f1c854296e4ce1418fb01360f8f10c5683e7c45aa3472018417a067636f3" origin="Generated by Gradle"/>
|
||||||
|
</artifact>
|
||||||
|
<artifact name="kotlinx-serialization-core-jvm-1.4.1.module">
|
||||||
|
<sha256 value="73bc94bdd5fc86621509a6715c3fe344904ee7db5806a0c61792ce2356089ee9" origin="Generated by Gradle"/>
|
||||||
|
</artifact>
|
||||||
|
</component>
|
||||||
<component group="org.jetbrains.kotlinx" name="kotlinx-serialization-json" version="1.1.0">
|
<component group="org.jetbrains.kotlinx" name="kotlinx-serialization-json" version="1.1.0">
|
||||||
<artifact name="kotlinx-serialization-json-1.1.0.module">
|
<artifact name="kotlinx-serialization-json-1.1.0.module">
|
||||||
<sha256 value="199470decb8a86c0fefd7bd52eb6e49bac251f2bc213628be0e2f6393fbde82d" origin="Generated by Gradle"/>
|
<sha256 value="199470decb8a86c0fefd7bd52eb6e49bac251f2bc213628be0e2f6393fbde82d" origin="Generated by Gradle"/>
|
||||||
</artifact>
|
</artifact>
|
||||||
</component>
|
</component>
|
||||||
|
<component group="org.jetbrains.kotlinx" name="kotlinx-serialization-json" version="1.4.1">
|
||||||
|
<artifact name="kotlinx-serialization-json-1.4.1.module">
|
||||||
|
<sha256 value="e9922300aff663e55ecef7d3fca305cb60a14755b1f980d94039e3c1cab645cc" origin="Generated by Gradle"/>
|
||||||
|
</artifact>
|
||||||
|
</component>
|
||||||
<component group="org.jetbrains.kotlinx" name="kotlinx-serialization-json-jvm" version="1.1.0">
|
<component group="org.jetbrains.kotlinx" name="kotlinx-serialization-json-jvm" version="1.1.0">
|
||||||
<artifact name="kotlinx-serialization-json-jvm-1.1.0.jar">
|
<artifact name="kotlinx-serialization-json-jvm-1.1.0.jar">
|
||||||
<sha256 value="cea6836d3a3990b7ac59f61a9534a0bf1c8d3932bd206080a3a13622ec7587d1" origin="Generated by Gradle"/>
|
<sha256 value="cea6836d3a3990b7ac59f61a9534a0bf1c8d3932bd206080a3a13622ec7587d1" origin="Generated by Gradle"/>
|
||||||
|
@ -4507,6 +4709,14 @@ https://docs.gradle.org/current/userguide/dependency_verification.html
|
||||||
<sha256 value="c30d0af4fcd3b614a68e89e7a31a47ead7a2ab4aa0c2138fa734bb6b574ab0e8" origin="Generated by Gradle"/>
|
<sha256 value="c30d0af4fcd3b614a68e89e7a31a47ead7a2ab4aa0c2138fa734bb6b574ab0e8" origin="Generated by Gradle"/>
|
||||||
</artifact>
|
</artifact>
|
||||||
</component>
|
</component>
|
||||||
|
<component group="org.jetbrains.kotlinx" name="kotlinx-serialization-json-jvm" version="1.4.1">
|
||||||
|
<artifact name="kotlinx-serialization-json-jvm-1.4.1.jar">
|
||||||
|
<sha256 value="af604c46737121d4225fdb60ef0e17766a3c94b7c1c9ef76b4e3a5c7733d557e" origin="Generated by Gradle"/>
|
||||||
|
</artifact>
|
||||||
|
<artifact name="kotlinx-serialization-json-jvm-1.4.1.module">
|
||||||
|
<sha256 value="c8fbfde4b5ee1e41a69175165e839991d1501665a7590e23162326501ac6122c" origin="Generated by Gradle"/>
|
||||||
|
</artifact>
|
||||||
|
</component>
|
||||||
<component group="org.jlleitschuh.gradle" name="ktlint-gradle" version="11.1.0">
|
<component group="org.jlleitschuh.gradle" name="ktlint-gradle" version="11.1.0">
|
||||||
<artifact name="ktlint-gradle-11.1.0.jar">
|
<artifact name="ktlint-gradle-11.1.0.jar">
|
||||||
<sha256 value="f2114379e18faca0f9bd90bdf4936e6484d0b4a85a3a94bcd12d5c102a339281" origin="Generated by Gradle"/>
|
<sha256 value="f2114379e18faca0f9bd90bdf4936e6484d0b4a85a3a94bcd12d5c102a339281" origin="Generated by Gradle"/>
|
||||||
|
@ -4515,6 +4725,14 @@ https://docs.gradle.org/current/userguide/dependency_verification.html
|
||||||
<sha256 value="114a189716231982ddd840f98629622e1b0fecba0d850b712dd020874eb1bc59" origin="Generated by Gradle"/>
|
<sha256 value="114a189716231982ddd840f98629622e1b0fecba0d850b712dd020874eb1bc59" origin="Generated by Gradle"/>
|
||||||
</artifact>
|
</artifact>
|
||||||
</component>
|
</component>
|
||||||
|
<component group="org.jlleitschuh.gradle" name="ktlint-gradle" version="11.4.2">
|
||||||
|
<artifact name="ktlint-gradle-11.4.2.jar">
|
||||||
|
<sha256 value="044582ea69475b563dff04656c23a4b2b895c4698ccf92a5e1249ffd8a190481" origin="Generated by Gradle"/>
|
||||||
|
</artifact>
|
||||||
|
<artifact name="ktlint-gradle-11.4.2.module">
|
||||||
|
<sha256 value="3c6ce9f9f0b2d21efb3e89f6d753bdee05c969b9b2b8bceb89561692f23b4d61" origin="Generated by Gradle"/>
|
||||||
|
</artifact>
|
||||||
|
</component>
|
||||||
<component group="org.json" name="json" version="20180813">
|
<component group="org.json" name="json" version="20180813">
|
||||||
<artifact name="json-20180813.jar">
|
<artifact name="json-20180813.jar">
|
||||||
<sha256 value="518080049ba83181914419d11a25d9bc9833a2d729b6a6e7469fa52851356da8" origin="Generated by Gradle"/>
|
<sha256 value="518080049ba83181914419d11a25d9bc9833a2d729b6a6e7469fa52851356da8" origin="Generated by Gradle"/>
|
||||||
|
@ -4866,6 +5084,11 @@ https://docs.gradle.org/current/userguide/dependency_verification.html
|
||||||
<sha256 value="a223e6df91b84f19d49c5ebc5f5f97c7f4438419f84a52fa05e1cfc6eed38aa9" origin="Generated by Gradle"/>
|
<sha256 value="a223e6df91b84f19d49c5ebc5f5f97c7f4438419f84a52fa05e1cfc6eed38aa9" origin="Generated by Gradle"/>
|
||||||
</artifact>
|
</artifact>
|
||||||
</component>
|
</component>
|
||||||
|
<component group="org.slf4j" name="slf4j-api" version="2.0.4">
|
||||||
|
<artifact name="slf4j-api-2.0.4.jar">
|
||||||
|
<sha256 value="57fa874599ace9259286b99253d7a877afdd2db4b07a6827ac6c847ca5d601a2" origin="Generated by Gradle"/>
|
||||||
|
</artifact>
|
||||||
|
</component>
|
||||||
<component group="org.snakeyaml" name="snakeyaml-engine" version="2.1">
|
<component group="org.snakeyaml" name="snakeyaml-engine" version="2.1">
|
||||||
<artifact name="snakeyaml-engine-2.1.jar">
|
<artifact name="snakeyaml-engine-2.1.jar">
|
||||||
<sha256 value="7007cb15171fb188e0e2abc5ea6f4f97b39cd1f86db6c2cd1b7300d0db67b021" origin="Generated by Gradle"/>
|
<sha256 value="7007cb15171fb188e0e2abc5ea6f4f97b39cd1f86db6c2cd1b7300d0db67b021" origin="Generated by Gradle"/>
|
||||||
|
|
|
@ -43,8 +43,7 @@ afterEvaluate {
|
||||||
}
|
}
|
||||||
|
|
||||||
ktlint {
|
ktlint {
|
||||||
// Use a newer version to resolve https://github.com/JLLeitschuh/ktlint-gradle/issues/507
|
version.set("0.49.1")
|
||||||
version.set("0.47.1")
|
|
||||||
|
|
||||||
filter {
|
filter {
|
||||||
exclude { entry ->
|
exclude { entry ->
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
@file:Suppress("UnstableApiUsage")
|
@file:Suppress("UnstableApiUsage")
|
||||||
|
|
||||||
plugins {
|
plugins {
|
||||||
id("com.android.library")
|
id("com.android.library")
|
||||||
id("androidx.benchmark")
|
id("androidx.benchmark")
|
||||||
id("org.jetbrains.kotlin.android")
|
id("org.jetbrains.kotlin.android")
|
||||||
id("android-constants")
|
id("android-constants")
|
||||||
id("ktlint")
|
id("ktlint")
|
||||||
}
|
}
|
||||||
|
|
||||||
val signalBuildToolsVersion: String by extra
|
val signalBuildToolsVersion: String by extra
|
||||||
|
@ -15,49 +15,49 @@ val signalMinSdkVersion: Int by extra
|
||||||
val signalJavaVersion: JavaVersion by extra
|
val signalJavaVersion: JavaVersion by extra
|
||||||
|
|
||||||
android {
|
android {
|
||||||
namespace = "org.signal.microbenchmark"
|
namespace = "org.signal.microbenchmark"
|
||||||
compileSdkVersion = signalCompileSdkVersion
|
compileSdkVersion = signalCompileSdkVersion
|
||||||
|
|
||||||
compileOptions {
|
compileOptions {
|
||||||
sourceCompatibility = signalJavaVersion
|
sourceCompatibility = signalJavaVersion
|
||||||
targetCompatibility = signalJavaVersion
|
targetCompatibility = signalJavaVersion
|
||||||
|
}
|
||||||
|
|
||||||
|
kotlinOptions {
|
||||||
|
jvmTarget = "11"
|
||||||
|
}
|
||||||
|
|
||||||
|
defaultConfig {
|
||||||
|
minSdk = signalMinSdkVersion
|
||||||
|
targetSdk = signalTargetSdkVersion
|
||||||
|
|
||||||
|
testInstrumentationRunner = "androidx.benchmark.junit4.AndroidBenchmarkRunner"
|
||||||
|
}
|
||||||
|
|
||||||
|
testBuildType = "release"
|
||||||
|
buildTypes {
|
||||||
|
debug {
|
||||||
|
// Since isDebuggable can't be modified by gradle for library modules,
|
||||||
|
// it must be done in a manifest - see src/androidTest/AndroidManifest.xml
|
||||||
|
isMinifyEnabled = true
|
||||||
|
proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"), "benchmark-proguard-rules.pro")
|
||||||
}
|
}
|
||||||
|
release {
|
||||||
kotlinOptions {
|
isDefault = true
|
||||||
jvmTarget = "11"
|
|
||||||
}
|
|
||||||
|
|
||||||
defaultConfig {
|
|
||||||
minSdk = signalMinSdkVersion
|
|
||||||
targetSdk = signalTargetSdkVersion
|
|
||||||
|
|
||||||
testInstrumentationRunner = "androidx.benchmark.junit4.AndroidBenchmarkRunner"
|
|
||||||
}
|
|
||||||
|
|
||||||
testBuildType = "release"
|
|
||||||
buildTypes {
|
|
||||||
debug {
|
|
||||||
// Since isDebuggable can't be modified by gradle for library modules,
|
|
||||||
// it must be done in a manifest - see src/androidTest/AndroidManifest.xml
|
|
||||||
isMinifyEnabled = true
|
|
||||||
proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"), "benchmark-proguard-rules.pro")
|
|
||||||
}
|
|
||||||
release {
|
|
||||||
isDefault = true
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
lintChecks(project(":lintchecks"))
|
lintChecks(project(":lintchecks"))
|
||||||
|
|
||||||
// Base dependencies
|
// Base dependencies
|
||||||
androidTestImplementation(testLibs.junit.junit)
|
androidTestImplementation(testLibs.junit.junit)
|
||||||
androidTestImplementation(benchmarkLibs.androidx.test.ext.junit)
|
androidTestImplementation(benchmarkLibs.androidx.test.ext.junit)
|
||||||
androidTestImplementation(benchmarkLibs.androidx.benchmark.micro)
|
androidTestImplementation(benchmarkLibs.androidx.benchmark.micro)
|
||||||
|
|
||||||
// Dependencies of modules being tested
|
// Dependencies of modules being tested
|
||||||
androidTestImplementation(project(":libsignal-service"))
|
androidTestImplementation(project(":libsignal-service"))
|
||||||
androidTestImplementation(libs.libsignal.android)
|
androidTestImplementation(libs.libsignal.android)
|
||||||
androidTestImplementation(libs.google.protobuf.javalite)
|
androidTestImplementation(libs.google.protobuf.javalite)
|
||||||
}
|
}
|
||||||
|
|
|
@ -235,9 +235,9 @@ abstract class SmsExportService : Service() {
|
||||||
onMessageExportSucceeded(sms)
|
onMessageExportSucceeded(sms)
|
||||||
true
|
true
|
||||||
}, onFailure = {
|
}, onFailure = {
|
||||||
onMessageExportFailed(sms)
|
onMessageExportFailed(sms)
|
||||||
false
|
false
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun exportMms(smsExportState: SmsExportState, mms: ExportableMessage.Mms<*>): Boolean {
|
private fun exportMms(smsExportState: SmsExportState, mms: ExportableMessage.Mms<*>): Boolean {
|
||||||
|
|
Loading…
Add table
Reference in a new issue