Upgrade kotlin to 1.6.21

Also fix a collection of warnings.
This commit is contained in:
Cody Henthorne
2022-05-18 14:05:17 -04:00
committed by GitHub
parent 42b0842aab
commit db4d072bd9
85 changed files with 250 additions and 474 deletions

View File

@@ -183,7 +183,7 @@ sealed class AvatarPickerViewModel(private val repository: AvatarPickerRepositor
private val isNewGroup: Boolean,
private val groupAvatarMedia: Media?
) : ViewModelProvider.Factory {
override fun <T : ViewModel?> create(modelClass: Class<T>): T {
override fun <T : ViewModel> create(modelClass: Class<T>): T {
val viewModel = if (groupId == null && !isNewGroup) {
SelfAvatarPickerViewModel(repository)
} else if (groupId == null) {

View File

@@ -33,7 +33,7 @@ class TextAvatarCreationViewModel(initialText: Avatar.Text) : ViewModel() {
}
class Factory(private val initialText: Avatar.Text) : ViewModelProvider.Factory {
override fun <T : ViewModel?> create(modelClass: Class<T>): T {
override fun <T : ViewModel> create(modelClass: Class<T>): T {
return requireNotNull(modelClass.cast(TextAvatarCreationViewModel(initialText)))
}
}

View File

@@ -20,7 +20,7 @@ class VectorAvatarCreationViewModel(initialAvatar: Avatar.Vector) : ViewModel()
fun getCurrentAvatar() = store.state.currentAvatar
class Factory(private val initialAvatar: Avatar.Vector) : ViewModelProvider.Factory {
override fun <T : ViewModel?> create(modelClass: Class<T>): T {
override fun <T : ViewModel> create(modelClass: Class<T>): T {
return requireNotNull(modelClass.cast(VectorAvatarCreationViewModel(initialAvatar)))
}
}

View File

@@ -239,7 +239,7 @@ class GiftFlowViewModel(
private val repository: GiftFlowRepository,
private val donationPaymentRepository: DonationPaymentRepository
) : ViewModelProvider.Factory {
override fun <T : ViewModel?> create(modelClass: Class<T>): T {
override fun <T : ViewModel> create(modelClass: Class<T>): T {
return modelClass.cast(
GiftFlowViewModel(
repository,

View File

@@ -143,7 +143,7 @@ class ViewReceivedGiftViewModel(
private val repository: ViewGiftRepository,
private val badgeRepository: BadgeRepository
) : ViewModelProvider.Factory {
override fun <T : ViewModel?> create(modelClass: Class<T>): T {
override fun <T : ViewModel> create(modelClass: Class<T>): T {
return modelClass.cast(ViewReceivedGiftViewModel(sentFrom, messageId, repository, badgeRepository)) as T
}
}

View File

@@ -45,7 +45,7 @@ class ViewSentGiftViewModel(
private val giftBadge: GiftBadge,
private val repository: ViewGiftRepository
) : ViewModelProvider.Factory {
override fun <T : ViewModel?> create(modelClass: Class<T>): T {
override fun <T : ViewModel> create(modelClass: Class<T>): T {
return modelClass.cast(ViewSentGiftViewModel(sentFrom, giftBadge, repository)) as T
}
}

View File

@@ -66,7 +66,7 @@ class SelectFeaturedBadgeViewModel(private val repository: BadgeRepository) : Vi
}
class Factory(private val badgeRepository: BadgeRepository) : ViewModelProvider.Factory {
override fun <T : ViewModel?> create(modelClass: Class<T>): T {
override fun <T : ViewModel> create(modelClass: Class<T>): T {
return requireNotNull(modelClass.cast(SelectFeaturedBadgeViewModel(badgeRepository)))
}
}

View File

@@ -38,7 +38,7 @@ class BecomeASustainerViewModel(subscriptionsRepository: SubscriptionsRepository
}
class Factory(private val subscriptionsRepository: SubscriptionsRepository) : ViewModelProvider.Factory {
override fun <T : ViewModel?> create(modelClass: Class<T>): T {
override fun <T : ViewModel> create(modelClass: Class<T>): T {
return modelClass.cast(BecomeASustainerViewModel(subscriptionsRepository))!!
}
}

View File

@@ -91,7 +91,7 @@ class BadgesOverviewViewModel(
private val badgeRepository: BadgeRepository,
private val subscriptionsRepository: SubscriptionsRepository
) : ViewModelProvider.Factory {
override fun <T : ViewModel?> create(modelClass: Class<T>): T {
override fun <T : ViewModel> create(modelClass: Class<T>): T {
return requireNotNull(modelClass.cast(BadgesOverviewViewModel(badgeRepository, subscriptionsRepository)))
}
}

View File

@@ -52,7 +52,7 @@ class ViewBadgeViewModel(
private val recipientId: RecipientId,
private val repository: BadgeRepository
) : ViewModelProvider.Factory {
override fun <T : ViewModel?> create(modelClass: Class<T>): T {
override fun <T : ViewModel> create(modelClass: Class<T>): T {
return requireNotNull(modelClass.cast(ViewBadgeViewModel(startBadge, recipientId, repository)))
}
}

View File

@@ -165,7 +165,7 @@ class ChangeNumberViewModel(
class Factory(owner: SavedStateRegistryOwner) : AbstractSavedStateViewModelFactory(owner, null) {
override fun <T : ViewModel?> create(key: String, modelClass: Class<T>, handle: SavedStateHandle): T {
override fun <T : ViewModel> create(key: String, modelClass: Class<T>, handle: SavedStateHandle): T {
val context: Application = ApplicationDependencies.getApplication()
val localNumber: String = SignalStore.account().e164!!
val password: String = SignalStore.account().servicePassword!!

View File

@@ -57,7 +57,7 @@ class ChatsSettingsViewModel(private val repository: ChatsSettingsRepository) :
}
class Factory(private val repository: ChatsSettingsRepository) : ViewModelProvider.Factory {
override fun <T : ViewModel?> create(modelClass: Class<T>): T {
override fun <T : ViewModel> create(modelClass: Class<T>): T {
return requireNotNull(modelClass.cast(ChatsSettingsViewModel(repository)))
}
}

View File

@@ -77,7 +77,7 @@ class DataAndStorageSettingsViewModel(
private val repository: DataAndStorageSettingsRepository
) :
ViewModelProvider.Factory {
override fun <T : ViewModel?> create(modelClass: Class<T>): T {
override fun <T : ViewModel> create(modelClass: Class<T>): T {
return requireNotNull(modelClass.cast(DataAndStorageSettingsViewModel(sharedPreferences, repository)))
}
}

View File

@@ -143,7 +143,7 @@ class InternalSettingsViewModel(private val repository: InternalSettingsReposito
)
class Factory(private val repository: InternalSettingsRepository) : ViewModelProvider.Factory {
override fun <T : ViewModel?> create(modelClass: Class<T>): T {
override fun <T : ViewModel> create(modelClass: Class<T>): T {
return requireNotNull(modelClass.cast(InternalSettingsViewModel(repository)))
}
}

View File

@@ -115,7 +115,7 @@ class NotificationsSettingsViewModel(private val sharedPreferences: SharedPrefer
)
class Factory(private val sharedPreferences: SharedPreferences) : ViewModelProvider.Factory {
override fun <T : ViewModel?> create(modelClass: Class<T>): T {
override fun <T : ViewModel> create(modelClass: Class<T>): T {
return requireNotNull(modelClass.cast(NotificationsSettingsViewModel(sharedPreferences)))
}
}

View File

@@ -78,7 +78,7 @@ class NotificationProfileSelectionViewModel(private val repository: Notification
}
class Factory(private val notificationProfilesRepository: NotificationProfilesRepository) : ViewModelProvider.Factory {
override fun <T : ViewModel?> create(modelClass: Class<T>): T {
override fun <T : ViewModel> create(modelClass: Class<T>): T {
return modelClass.cast(NotificationProfileSelectionViewModel(notificationProfilesRepository))!!
}
}

View File

@@ -126,7 +126,7 @@ class PrivacySettingsViewModel(
private val sharedPreferences: SharedPreferences,
private val repository: PrivacySettingsRepository
) : ViewModelProvider.Factory {
override fun <T : ViewModel?> create(modelClass: Class<T>): T {
override fun <T : ViewModel> create(modelClass: Class<T>): T {
return requireNotNull(modelClass.cast(PrivacySettingsViewModel(sharedPreferences, repository)))
}
}

View File

@@ -160,7 +160,7 @@ class AdvancedPrivacySettingsViewModel(
private val sharedPreferences: SharedPreferences,
private val repository: AdvancedPrivacySettingsRepository
) : ViewModelProvider.Factory {
override fun <T : ViewModel?> create(modelClass: Class<T>): T {
override fun <T : ViewModel> create(modelClass: Class<T>): T {
return requireNotNull(
modelClass.cast(
AdvancedPrivacySettingsViewModel(

View File

@@ -58,7 +58,7 @@ class ExpireTimerSettingsViewModel(val config: Config, private val repository: E
class Factory(context: Context, private val config: Config) : ViewModelProvider.Factory {
val repository = ExpireTimerSettingsRepository(context.applicationContext)
override fun <T : ViewModel?> create(modelClass: Class<T>): T {
override fun <T : ViewModel> create(modelClass: Class<T>): T {
return requireNotNull(modelClass.cast(ExpireTimerSettingsViewModel(config, repository)))
}
}

View File

@@ -213,7 +213,7 @@ class DonationPaymentRepository(activity: Activity) : StripeApi.PaymentIntentFet
DonationReceiptRecord.createForGift(price)
}
val donationTypeLabel = donationReceiptRecord.type.code.capitalize(Locale.US)
val donationTypeLabel = donationReceiptRecord.type.code.replaceFirstChar { c -> if (c.isLowerCase()) c.titlecase(Locale.US) else c.toString() }
Log.d(TAG, "Confirmed payment intent. Recording $donationTypeLabel receipt and submitting badge reimbursement job chain.", true)
SignalDatabase.donationReceipts.addReceipt(donationReceiptRecord)

View File

@@ -233,7 +233,7 @@ class BoostViewModel(
private val donationPaymentRepository: DonationPaymentRepository,
private val fetchTokenRequestCode: Int
) : ViewModelProvider.Factory {
override fun <T : ViewModel?> create(modelClass: Class<T>): T {
override fun <T : ViewModel> create(modelClass: Class<T>): T {
return modelClass.cast(BoostViewModel(boostRepository, donationPaymentRepository, fetchTokenRequestCode))!!
}
}

View File

@@ -84,7 +84,7 @@ class SetCurrencyViewModel(
}
class Factory(private val isOneTime: Boolean, private val supportedCurrencyCodes: List<String>) : ViewModelProvider.Factory {
override fun <T : ViewModel?> create(modelClass: Class<T>): T {
override fun <T : ViewModel> create(modelClass: Class<T>): T {
return modelClass.cast(SetCurrencyViewModel(isOneTime, supportedCurrencyCodes))!!
}
}

View File

@@ -22,13 +22,8 @@ object DonationErrorDialogs {
val params = DonationErrorParams.create(context, throwable, callback)
if (params.title != null) {
builder.setTitle(params.title)
}
if (params.message != null) {
builder.setMessage(params.message)
}
builder.setTitle(params.title)
.setMessage(params.message)
if (params.positiveAction != null) {
builder.setPositiveButton(params.positiveAction.label) { _, _ -> params.positiveAction.action() }

View File

@@ -110,7 +110,7 @@ class ManageDonationsViewModel(
class Factory(
private val subscriptionsRepository: SubscriptionsRepository
) : ViewModelProvider.Factory {
override fun <T : ViewModel?> create(modelClass: Class<T>): T {
override fun <T : ViewModel> create(modelClass: Class<T>): T {
return modelClass.cast(ManageDonationsViewModel(subscriptionsRepository))!!
}
}

View File

@@ -63,7 +63,7 @@ class DonationReceiptDetailViewModel(id: Long, private val repository: DonationR
}
class Factory(private val id: Long, private val repository: DonationReceiptDetailRepository) : ViewModelProvider.Factory {
override fun <T : ViewModel?> create(modelClass: Class<T>): T {
override fun <T : ViewModel> create(modelClass: Class<T>): T {
return modelClass.cast(DonationReceiptDetailViewModel(id, repository)) as T
}
}

View File

@@ -32,7 +32,7 @@ class DonationReceiptListPageViewModel(type: DonationReceiptRecord.Type?, reposi
}
class Factory(private val type: DonationReceiptRecord.Type?, private val repository: DonationReceiptListPageRepository) : ViewModelProvider.Factory {
override fun <T : ViewModel?> create(modelClass: Class<T>): T {
override fun <T : ViewModel> create(modelClass: Class<T>): T {
return modelClass.cast(DonationReceiptListPageViewModel(type, repository)) as T
}
}

View File

@@ -49,7 +49,7 @@ class DonationReceiptListViewModel(private val repository: DonationReceiptListRe
}
class Factory(private val repository: DonationReceiptListRepository) : ViewModelProvider.Factory {
override fun <T : ViewModel?> create(modelClass: Class<T>): T {
override fun <T : ViewModel> create(modelClass: Class<T>): T {
return modelClass.cast(DonationReceiptListViewModel(repository)) as T
}
}

View File

@@ -296,7 +296,7 @@ class SubscribeViewModel(
private val donationPaymentRepository: DonationPaymentRepository,
private val fetchTokenRequestCode: Int
) : ViewModelProvider.Factory {
override fun <T : ViewModel?> create(modelClass: Class<T>): T {
override fun <T : ViewModel> create(modelClass: Class<T>): T {
return modelClass.cast(SubscribeViewModel(subscriptionsRepository, donationPaymentRepository, fetchTokenRequestCode))!!
}
}

View File

@@ -471,7 +471,7 @@ sealed class ConversationSettingsViewModel(
private val repository: ConversationSettingsRepository,
) : ViewModelProvider.Factory {
override fun <T : ViewModel?> create(modelClass: Class<T>): T {
override fun <T : ViewModel> create(modelClass: Class<T>): T {
return requireNotNull(
modelClass.cast(
when {

View File

@@ -280,7 +280,7 @@ class InternalConversationSettingsFragment : DSLSettingsFragment(
}
class MyViewModelFactory(val recipientId: RecipientId) : ViewModelProvider.NewInstanceFactory() {
override fun <T : ViewModel?> create(modelClass: Class<T>): T {
override fun <T : ViewModel> create(modelClass: Class<T>): T {
return Objects.requireNonNull(modelClass.cast(InternalViewModel(recipientId)))
}
}

View File

@@ -69,7 +69,7 @@ class PermissionsSettingsViewModel(
private val groupId: GroupId,
private val repository: PermissionsSettingsRepository
) : ViewModelProvider.Factory {
override fun <T : ViewModel?> create(modelClass: Class<T>): T {
override fun <T : ViewModel> create(modelClass: Class<T>): T {
return requireNotNull(modelClass.cast(PermissionsSettingsViewModel(groupId, repository)))
}
}

View File

@@ -53,7 +53,7 @@ class SoundsAndNotificationsSettingsViewModel(
private val recipientId: RecipientId,
private val repository: SoundsAndNotificationsSettingsRepository
) : ViewModelProvider.Factory {
override fun <T : ViewModel?> create(modelClass: Class<T>): T {
override fun <T : ViewModel> create(modelClass: Class<T>): T {
return requireNotNull(modelClass.cast(SoundsAndNotificationsSettingsViewModel(recipientId, repository)))
}
}

View File

@@ -78,7 +78,7 @@ class CustomNotificationsSettingsViewModel(
private val recipientId: RecipientId,
private val repository: CustomNotificationsSettingsRepository
) : ViewModelProvider.Factory {
override fun <T : ViewModel?> create(modelClass: Class<T>): T {
override fun <T : ViewModel> create(modelClass: Class<T>): T {
return requireNotNull(modelClass.cast(CustomNotificationsSettingsViewModel(recipientId, repository)))
}
}

View File

@@ -13,8 +13,8 @@ import org.thoughtcrime.securesms.util.adapter.mapping.MappingViewHolder
object Button {
fun register(mappingAdapter: MappingAdapter) {
mappingAdapter.registerFactory(Model.Primary::class.java, LayoutFactory({ ViewHolder(it) as MappingViewHolder<Model.Primary> }, R.layout.dsl_button_primary))
mappingAdapter.registerFactory(Model.SecondaryNoOutline::class.java, LayoutFactory({ ViewHolder(it) as MappingViewHolder<Model.SecondaryNoOutline> }, R.layout.dsl_button_secondary))
mappingAdapter.registerFactory(Model.Primary::class.java, LayoutFactory({ ViewHolder(it) }, R.layout.dsl_button_primary))
mappingAdapter.registerFactory(Model.SecondaryNoOutline::class.java, LayoutFactory({ ViewHolder(it) }, R.layout.dsl_button_secondary))
}
sealed class Model<T : Model<T>>(
@@ -42,11 +42,11 @@ object Button {
) : Model<SecondaryNoOutline>(title, icon, isEnabled, onClick)
}
class ViewHolder(itemView: View) : MappingViewHolder<Model<*>>(itemView) {
class ViewHolder<T : Model<T>>(itemView: View) : MappingViewHolder<T>(itemView) {
private val button: MaterialButton = itemView as MaterialButton
override fun bind(model: Model<*>) {
override fun bind(model: T) {
button.text = model.title?.resolve(context)
button.setOnClickListener {
model.onClick()

View File

@@ -134,7 +134,7 @@ object ContactSearchItems {
/**
* Base Recipient View Holder
*/
private abstract class BaseRecipientViewHolder<T, D : ContactSearchData>(itemView: View, private val displayCheckBox: Boolean, val onClick: (D, Boolean) -> Unit) : MappingViewHolder<T>(itemView) {
private abstract class BaseRecipientViewHolder<T : MappingModel<T>, D : ContactSearchData>(itemView: View, private val displayCheckBox: Boolean, val onClick: (D, Boolean) -> Unit) : MappingViewHolder<T>(itemView) {
protected val avatar: AvatarImageView = itemView.findViewById(R.id.contact_photo_image)
protected val badge: BadgeImageView = itemView.findViewById(R.id.contact_badge)

View File

@@ -14,7 +14,7 @@ class ContactSearchPagedDataSource(
) : PagedDataSource<ContactSearchKey, ContactSearchData> {
override fun size(): Int {
return contactConfiguration.sections.sumBy {
return contactConfiguration.sections.sumOf {
getSectionSize(it, contactConfiguration.query)
}
}

View File

@@ -98,7 +98,7 @@ class ContactSearchViewModel(
}
class Factory(private val selectionLimits: SelectionLimits, private val repository: ContactSearchRepository) : ViewModelProvider.Factory {
override fun <T : ViewModel?> create(modelClass: Class<T>): T {
override fun <T : ViewModel> create(modelClass: Class<T>): T {
return modelClass.cast(ContactSearchViewModel(selectionLimits, repository)) as T
}
}

View File

@@ -14,6 +14,7 @@ import android.os.Parcel
import android.os.Parcelable
import androidx.annotation.ColorInt
import com.google.common.base.Objects
import kotlinx.parcelize.IgnoredOnParcel
import kotlinx.parcelize.Parcelize
import org.signal.core.util.ColorUtil
import org.thoughtcrime.securesms.components.RotatableGradientDrawable
@@ -62,6 +63,7 @@ class ChatColors(
/**
* Returns the ColorFilter to apply to a conversation bubble or other relevant piece of UI.
*/
@IgnoredOnParcel
val chatBubbleColorFilter: ColorFilter = if (Build.VERSION.SDK_INT >= 21) {
PorterDuffColorFilter(Color.TRANSPARENT, PorterDuff.Mode.SRC_IN)
} else {

View File

@@ -51,7 +51,7 @@ class ChatColorSelectionViewModel(private val repository: ChatColorSelectionRepo
}
class Factory(private val repository: ChatColorSelectionRepository) : ViewModelProvider.Factory {
override fun <T : ViewModel?> create(modelClass: Class<T>): T = requireNotNull(modelClass.cast(ChatColorSelectionViewModel(repository)))
override fun <T : ViewModel> create(modelClass: Class<T>): T = requireNotNull(modelClass.cast(ChatColorSelectionViewModel(repository)))
}
companion object {

View File

@@ -141,7 +141,7 @@ class CustomChatColorCreatorViewModel(
private val recipientId: RecipientId?,
private val chatColorCreatorRepository: CustomChatColorCreatorRepository
) : ViewModelProvider.Factory {
override fun <T : ViewModel?> create(modelClass: Class<T>): T {
override fun <T : ViewModel> create(modelClass: Class<T>): T {
return requireNotNull(modelClass.cast(CustomChatColorCreatorViewModel(maxSliderValue, chatColorsId, recipientId, chatColorCreatorRepository)))
}
}

View File

@@ -80,7 +80,7 @@ class DraftViewModel(
class Factory(private val repository: DraftRepository) : ViewModelProvider.Factory {
override fun <T : ViewModel?> create(modelClass: Class<T>): T {
override fun <T : ViewModel> create(modelClass: Class<T>): T {
return requireNotNull(modelClass.cast(DraftViewModel(repository)))
}
}

View File

@@ -84,7 +84,7 @@ class MultiselectForwardFragment :
private var handler: Handler? = null
private fun createViewModelFactory(): MultiselectForwardViewModel.Factory {
return MultiselectForwardViewModel.Factory(getMultiShareArgs(), isSelectionOnly, MultiselectForwardRepository(requireContext()))
return MultiselectForwardViewModel.Factory(getMultiShareArgs(), isSelectionOnly, MultiselectForwardRepository())
}
private fun getMultiShareArgs(): ArrayList<MultiShareArgs> = requireNotNull(requireArguments().getParcelableArrayList(ARG_MULTISHARE_ARGS))

View File

@@ -1,6 +1,5 @@
package org.thoughtcrime.securesms.conversation.mutiselect.forward
import android.content.Context
import io.reactivex.rxjava3.core.Single
import org.signal.core.util.concurrent.SignalExecutors
import org.thoughtcrime.securesms.contacts.paged.ContactSearchKey
@@ -11,7 +10,7 @@ import org.thoughtcrime.securesms.sharing.MultiShareArgs
import org.thoughtcrime.securesms.sharing.MultiShareSender
import java.util.Optional
class MultiselectForwardRepository(context: Context) {
class MultiselectForwardRepository {
class MultiselectForwardResultHandlers(
val onAllMessageSentSuccessfully: () -> Unit,

View File

@@ -70,7 +70,7 @@ class MultiselectForwardViewModel(
private val isSelectionOnly: Boolean,
private val repository: MultiselectForwardRepository,
) : ViewModelProvider.Factory {
override fun <T : ViewModel?> create(modelClass: Class<T>): T {
override fun <T : ViewModel> create(modelClass: Class<T>): T {
return requireNotNull(modelClass.cast(MultiselectForwardViewModel(records, isSelectionOnly, repository)))
}
}

View File

@@ -1,6 +1,5 @@
package org.thoughtcrime.securesms.database
import android.content.Context
import androidx.annotation.VisibleForTesting
import org.thoughtcrime.securesms.database.model.PendingRetryReceiptModel
import org.thoughtcrime.securesms.recipients.RecipientId
@@ -15,9 +14,8 @@ import org.thoughtcrime.securesms.util.FeatureFlags
* future reads can happen in memory.
*/
class PendingRetryReceiptCache @VisibleForTesting constructor(
private val database: PendingRetryReceiptDatabase
private val database: PendingRetryReceiptDatabase = SignalDatabase.pendingRetryReceipts
) {
constructor(context: Context) : this(SignalDatabase.pendingRetryReceipts)
private val pendingRetries: MutableMap<RemoteMessageId, PendingRetryReceiptModel> = HashMap()
private var populated: Boolean = false

View File

@@ -448,7 +448,7 @@ open class RecipientDatabase(context: Context, databaseHelper: SignalDatabase) :
fetch.id
}
is RecipientFetch.MatchAndReassignE164 -> {
removePhoneNumber(fetch.e164Id, db)
removePhoneNumber(fetch.e164Id)
setPhoneNumberOrThrowSilent(fetch.id, fetch.e164)
recipientsNeedingRefresh = listOf(fetch.id, fetch.e164Id)
recipientChangedNumber = fetch.changedNumber
@@ -475,7 +475,7 @@ open class RecipientDatabase(context: Context, databaseHelper: SignalDatabase) :
RecipientId.from(id)
}
is RecipientFetch.InsertAndReassignE164 -> {
removePhoneNumber(fetch.e164Id, db)
removePhoneNumber(fetch.e164Id)
recipientsNeedingRefresh = listOf(fetch.e164Id)
val id = db.insert(TABLE_NAME, null, buildContentValuesForNewUser(fetch.e164, fetch.serviceId))
RecipientId.from(id)
@@ -1906,7 +1906,7 @@ open class RecipientDatabase(context: Context, databaseHelper: SignalDatabase) :
}
}
private fun removePhoneNumber(recipientId: RecipientId, db: SQLiteDatabase) {
private fun removePhoneNumber(recipientId: RecipientId) {
val values = ContentValues().apply {
putNull(PHONE)
putNull(PNI_COLUMN)
@@ -2047,7 +2047,7 @@ open class RecipientDatabase(context: Context, databaseHelper: SignalDatabase) :
fun markRegisteredOrThrow(id: RecipientId, serviceId: ServiceId) {
val contentValues = ContentValues(2).apply {
put(REGISTERED, RegisteredState.REGISTERED.id)
put(SERVICE_ID, serviceId.toString().toLowerCase())
put(SERVICE_ID, serviceId.toString().lowercase())
}
if (update(id, contentValues)) {
setStorageIdIfNotSet(id)
@@ -2074,7 +2074,7 @@ open class RecipientDatabase(context: Context, databaseHelper: SignalDatabase) :
val values = ContentValues(2).apply {
put(REGISTERED, RegisteredState.REGISTERED.id)
if (aci != null) {
put(SERVICE_ID, aci.toString().toLowerCase())
put(SERVICE_ID, aci.toString().lowercase())
}
}
@@ -2483,7 +2483,7 @@ open class RecipientDatabase(context: Context, databaseHelper: SignalDatabase) :
.toList()
val blockedUuid = blocked
.map { b: SignalServiceAddress -> b.serviceId.toString().toLowerCase() }
.map { b: SignalServiceAddress -> b.serviceId.toString().lowercase() }
.toList()
val db = writableDatabase
@@ -2910,7 +2910,7 @@ open class RecipientDatabase(context: Context, databaseHelper: SignalDatabase) :
val values = ContentValues()
values.put(PHONE, e164)
if (serviceId != null) {
values.put(SERVICE_ID, serviceId.toString().toLowerCase())
values.put(SERVICE_ID, serviceId.toString().lowercase())
values.put(REGISTERED, RegisteredState.REGISTERED.id)
values.put(STORAGE_SERVICE_ID, Base64.encodeBytes(StorageSyncHelper.generateKey()))
values.put(AVATAR_COLOR, AvatarColor.random().serialize())

View File

@@ -92,7 +92,7 @@ class SqlCipherErrorHandler(private val databaseName: String) : DatabaseErrorHan
try {
val results = query("PRAGMA integrity_check")
output.append(results)
if (results.toLowerCase().contains("ok")) {
if (results.lowercase().contains("ok")) {
pragma1Passes = true
}
} catch (t: Throwable) {

View File

@@ -271,7 +271,7 @@ public class ApplicationDependencyProvider implements ApplicationDependencies.Pr
@Override
public @NonNull PendingRetryReceiptCache providePendingRetryReceiptCache() {
return new PendingRetryReceiptCache(context);
return new PendingRetryReceiptCache();
}
@Override

View File

@@ -81,7 +81,7 @@ class EmojiKeyboardPageViewModel(private val repository: EmojiKeyboardPageReposi
private val repository = EmojiKeyboardPageRepository(context)
override fun <T : ViewModel?> create(modelClass: Class<T>): T {
override fun <T : ViewModel> create(modelClass: Class<T>): T {
return requireNotNull(modelClass.cast(EmojiKeyboardPageViewModel(repository)))
}
}

View File

@@ -29,7 +29,7 @@ class EmojiSearchViewModel(private val repository: EmojiSearchRepository) : View
data class EmojiSearchResults(val emojiList: List<MappingModel<*>>, val isRecents: Boolean)
class Factory(private val repository: EmojiSearchRepository) : ViewModelProvider.Factory {
override fun <T : ViewModel?> create(modelClass: Class<T>): T {
override fun <T : ViewModel> create(modelClass: Class<T>): T {
return requireNotNull(modelClass.cast(EmojiSearchViewModel(repository)))
}
}

View File

@@ -114,7 +114,7 @@ class StickerKeyboardPageFragment :
override fun onActivityCreated(savedInstanceState: Bundle?) {
super.onActivityCreated(savedInstanceState)
viewModel = ViewModelProvider(requireActivity(), StickerKeyboardPageViewModel.Factory(requireContext()))
viewModel = ViewModelProvider(requireActivity(), StickerKeyboardPageViewModel.Factory())
.get(StickerKeyboardPageViewModel::class.java)
viewModel.stickers.observe(viewLifecycleOwner, this::updateStickerList)

View File

@@ -1,6 +1,5 @@
package org.thoughtcrime.securesms.keyboard.sticker
import android.content.Context
import androidx.lifecycle.LiveData
import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.ViewModel
@@ -56,10 +55,10 @@ class StickerKeyboardPageViewModel(private val repository: StickerKeyboardReposi
repository.getStickerPacks { keyboardStickerPacks.postValue(it) }
}
class Factory(context: Context) : ViewModelProvider.Factory {
class Factory : ViewModelProvider.Factory {
private val repository = StickerKeyboardRepository(SignalDatabase.stickers)
override fun <T : ViewModel?> create(modelClass: Class<T>): T {
override fun <T : ViewModel> create(modelClass: Class<T>): T {
return requireNotNull(modelClass.cast(StickerKeyboardPageViewModel(repository)))
}
}

View File

@@ -1,6 +1,5 @@
package org.thoughtcrime.securesms.keyboard.sticker
import android.content.Context
import androidx.annotation.WorkerThread
import org.thoughtcrime.securesms.components.emoji.EmojiUtil
import org.thoughtcrime.securesms.database.EmojiSearchDatabase
@@ -12,7 +11,7 @@ import org.thoughtcrime.securesms.database.model.StickerRecord
private const val RECENT_LIMIT = 24
private const val EMOJI_SEARCH_RESULTS_LIMIT = 20
class StickerSearchRepository(context: Context) {
class StickerSearchRepository {
private val emojiSearchDatabase: EmojiSearchDatabase = SignalDatabase.emojiSearch
private val stickerDatabase: StickerDatabase = SignalDatabase.stickers

View File

@@ -21,9 +21,9 @@ class StickerSearchViewModel(private val searchRepository: StickerSearchReposito
}
class Factory(context: Context) : ViewModelProvider.Factory {
val repository = StickerSearchRepository(context)
val repository = StickerSearchRepository()
override fun <T : ViewModel?> create(modelClass: Class<T>): T {
override fun <T : ViewModel> create(modelClass: Class<T>): T {
return requireNotNull(modelClass.cast(StickerSearchViewModel(repository)))
}
}

View File

@@ -83,7 +83,7 @@ internal class DonationsValues internal constructor(store: KeyValueStore) : Sign
CurrencyUtil.getCurrencyByCurrencyCode(currencyCode)
}
return if (currency != null && StripeApi.Validation.supportedCurrencyCodes.contains(currency.currencyCode.toUpperCase(Locale.ROOT))) {
return if (currency != null && StripeApi.Validation.supportedCurrencyCodes.contains(currency.currencyCode.uppercase(Locale.ROOT))) {
currency
} else {
Currency.getInstance("USD")

View File

@@ -434,7 +434,7 @@ class MediaSelectionViewModel(
private val isStory: Boolean,
private val repository: MediaSelectionRepository
) : ViewModelProvider.Factory {
override fun <T : ViewModel?> create(modelClass: Class<T>): T {
override fun <T : ViewModel> create(modelClass: Class<T>): T {
return requireNotNull(modelClass.cast(MediaSelectionViewModel(destination, transportOption, initialMedia, initialMessage, isReply, isStory, repository)))
}
}

View File

@@ -47,7 +47,7 @@ class MediaCaptureViewModel(private val repository: MediaCaptureRepository) : Vi
}
class Factory(private val repository: MediaCaptureRepository) : ViewModelProvider.Factory {
override fun <T : ViewModel?> create(modelClass: Class<T>): T {
override fun <T : ViewModel> create(modelClass: Class<T>): T {
return requireNotNull(modelClass.cast(MediaCaptureViewModel(repository)))
}
}

View File

@@ -60,7 +60,7 @@ class MediaGalleryViewModel(bucketId: String?, bucketTitle: String?, private val
private val bucketTitle: String?,
private val repository: MediaGalleryRepository
) : ViewModelProvider.Factory {
override fun <T : ViewModel?> create(modelClass: Class<T>): T {
override fun <T : ViewModel> create(modelClass: Class<T>): T {
return requireNotNull(modelClass.cast(MediaGalleryViewModel(bucketId, bucketTitle, repository)))
}
}

View File

@@ -132,7 +132,7 @@ class TextStoryPostCreationViewModel(private val repository: TextStoryPostSendRe
}
class Factory(private val repository: TextStoryPostSendRepository) : ViewModelProvider.Factory {
override fun <T : ViewModel?> create(modelClass: Class<T>): T {
override fun <T : ViewModel> create(modelClass: Class<T>): T {
return modelClass.cast(TextStoryPostCreationViewModel(repository)) as T
}
}

View File

@@ -123,7 +123,7 @@ class TextStoryPostTextEntryFragment : KeyboardEntryDialogFragment(
if (TextUtils.isEmpty(input.text)) {
input.alpha = 0.6f
if (input.filters.contains(allCapsFilter)) {
input.hint = getString(R.string.TextStoryPostTextEntryFragment__add_text).toUpperCase(Locale.getDefault())
input.hint = getString(R.string.TextStoryPostTextEntryFragment__add_text).uppercase(Locale.getDefault())
} else {
input.setHint(R.string.TextStoryPostTextEntryFragment__add_text)
}

View File

@@ -64,7 +64,7 @@ class TextStoryPostSendViewModel(private val repository: TextStoryPostSendReposi
}
class Factory(private val repository: TextStoryPostSendRepository) : ViewModelProvider.Factory {
override fun <T : ViewModel?> create(modelClass: Class<T>): T {
override fun <T : ViewModel> create(modelClass: Class<T>): T {
return modelClass.cast(TextStoryPostSendViewModel(repository)) as T
}
}

View File

@@ -78,8 +78,8 @@ class IncomingMediaMessage(
isUnidentified = unidentified,
isViewOnce = viewOnce,
serverGuid = null,
attachments = ArrayList(attachments),
sharedContacts = ArrayList(sharedContacts.orElse(emptyList())),
attachments = attachments?.let { ArrayList<Attachment>(it) } ?: emptyList(),
sharedContacts = ArrayList<Contact>(sharedContacts.orElse(emptyList())),
)
constructor(

View File

@@ -83,7 +83,7 @@ class ShareViewModel(
private val unresolvedShareData: UnresolvedShareData,
private val shareRepository: ShareRepository
) : ViewModelProvider.Factory {
override fun <T : ViewModel?> create(modelClass: Class<T>): T {
override fun <T : ViewModel> create(modelClass: Class<T>): T {
return modelClass.cast(ShareViewModel(unresolvedShareData, shareRepository)) as T
}
}

View File

@@ -108,7 +108,7 @@ class StoryTextPostView @JvmOverloads constructor(
context.getString(R.string.TextStoryPostCreationFragment__tap_to_add_text)
}.let {
if (state.textFont.isAllCaps) {
it.toString().toUpperCase(Locale.getDefault())
it.toString().uppercase(Locale.getDefault())
} else {
it
}
@@ -134,7 +134,7 @@ class StoryTextPostView @JvmOverloads constructor(
setPostBackground(ChatColors.forChatColor(ChatColors.Id.NotSet, storyTextPost.background).chatBubbleMask)
if (font.isAllCaps) {
setText(storyTextPost.body.toUpperCase(Locale.getDefault()), false)
setText(storyTextPost.body.uppercase(Locale.getDefault()), false)
} else {
setText(storyTextPost.body, false)
}

View File

@@ -51,7 +51,7 @@ class StoriesLandingViewModel(private val storiesLandingRepository: StoriesLandi
}
class Factory(private val storiesLandingRepository: StoriesLandingRepository) : ViewModelProvider.Factory {
override fun <T : ViewModel?> create(modelClass: Class<T>): T {
override fun <T : ViewModel> create(modelClass: Class<T>): T {
return modelClass.cast(StoriesLandingViewModel(storiesLandingRepository)) as T
}
}

View File

@@ -31,7 +31,7 @@ class MyStoriesViewModel(private val repository: MyStoriesRepository) : ViewMode
}
class Factory(private val repository: MyStoriesRepository) : ViewModelProvider.Factory {
override fun <T : ViewModel?> create(modelClass: Class<T>): T {
override fun <T : ViewModel> create(modelClass: Class<T>): T {
return modelClass.cast(MyStoriesViewModel(repository)) as T
}
}

View File

@@ -59,7 +59,7 @@ class CreateStoryWithViewersViewModel(
class Factory(
private val repository: CreateStoryWithViewersRepository
) : ViewModelProvider.Factory {
override fun <T : ViewModel?> create(modelClass: Class<T>): T {
override fun <T : ViewModel> create(modelClass: Class<T>): T {
return modelClass.cast(CreateStoryWithViewersViewModel(repository)) as T
}
}

View File

@@ -56,7 +56,7 @@ class PrivateStorySettingsViewModel(private val distributionListId: Distribution
}
class Factory(private val privateStoryItemData: DistributionListId, private val repository: PrivateStorySettingsRepository) : ViewModelProvider.Factory {
override fun <T : ViewModel?> create(modelClass: Class<T>): T {
override fun <T : ViewModel> create(modelClass: Class<T>): T {
return modelClass.cast(PrivateStorySettingsViewModel(privateStoryItemData, repository)) as T
}
}

View File

@@ -13,7 +13,7 @@ class EditStoryNameViewModel(private val privateStoryId: DistributionListId, pri
}
class Factory(private val privateStoryId: DistributionListId, private val repository: EditStoryNameRepository) : ViewModelProvider.Factory {
override fun <T : ViewModel?> create(modelClass: Class<T>): T {
override fun <T : ViewModel> create(modelClass: Class<T>): T {
return modelClass.cast(EditStoryNameViewModel(privateStoryId, repository)) as T
}
}

View File

@@ -33,7 +33,7 @@ class MyStorySettingsViewModel(private val repository: MyStorySettingsRepository
}
class Factory(private val repository: MyStorySettingsRepository) : ViewModelProvider.Factory {
override fun <T : ViewModel?> create(modelClass: Class<T>): T {
override fun <T : ViewModel> create(modelClass: Class<T>): T {
return modelClass.cast(MyStorySettingsViewModel(repository)) as T
}
}

View File

@@ -68,7 +68,7 @@ class BaseStoryRecipientSelectionViewModel(
private val distributionListId: DistributionListId?,
private val repository: BaseStoryRecipientSelectionRepository
) : ViewModelProvider.Factory {
override fun <T : ViewModel?> create(modelClass: Class<T>): T {
override fun <T : ViewModel> create(modelClass: Class<T>): T {
return modelClass.cast(BaseStoryRecipientSelectionViewModel(distributionListId, repository)) as T
}
}

View File

@@ -29,7 +29,7 @@ class StorySettingsViewModel(
class Factory(
private val repository: StorySettingsRepository
) : ViewModelProvider.Factory {
override fun <T : ViewModel?> create(modelClass: Class<T>): T {
override fun <T : ViewModel> create(modelClass: Class<T>): T {
return modelClass.cast(StorySettingsViewModel(repository)) as T
}
}

View File

@@ -65,7 +65,7 @@ class ConversationListTabsViewModel(repository: ConversationListTabRepository) :
}
class Factory(private val repository: ConversationListTabRepository) : ViewModelProvider.Factory {
override fun <T : ViewModel?> create(modelClass: Class<T>): T {
override fun <T : ViewModel> create(modelClass: Class<T>): T {
return modelClass.cast(ConversationListTabsViewModel(repository)) as T
}
}

View File

@@ -165,7 +165,7 @@ class StoryViewerViewModel(
private val storyViewerArgs: StoryViewerArgs,
private val repository: StoryViewerRepository
) : ViewModelProvider.Factory {
override fun <T : ViewModel?> create(modelClass: Class<T>): T {
override fun <T : ViewModel> create(modelClass: Class<T>): T {
return modelClass.cast(
StoryViewerViewModel(
storyViewerArgs,

View File

@@ -237,7 +237,7 @@ class StoryViewerPageViewModel(
}
class Factory(private val recipientId: RecipientId, private val initialStoryId: Long, private val repository: StoryViewerPageRepository) : ViewModelProvider.Factory {
override fun <T : ViewModel?> create(modelClass: Class<T>): T {
override fun <T : ViewModel> create(modelClass: Class<T>): T {
return modelClass.cast(StoryViewerPageViewModel(recipientId, initialStoryId, repository)) as T
}
}

View File

@@ -51,7 +51,7 @@ class StoryDirectReplyViewModel(
private val groupDirectReplyRecipientId: RecipientId?,
private val repository: StoryDirectReplyRepository
) : ViewModelProvider.Factory {
override fun <T : ViewModel?> create(modelClass: Class<T>): T {
override fun <T : ViewModel> create(modelClass: Class<T>): T {
return modelClass.cast(
StoryDirectReplyViewModel(storyId, groupDirectReplyRecipientId, repository)
) as T

View File

@@ -59,7 +59,7 @@ class StoryGroupReplyViewModel(storyId: Long, repository: StoryGroupReplyReposit
}
class Factory(private val storyId: Long, private val repository: StoryGroupReplyRepository) : ViewModelProvider.Factory {
override fun <T : ViewModel?> create(modelClass: Class<T>): T {
override fun <T : ViewModel> create(modelClass: Class<T>): T {
return modelClass.cast(StoryGroupReplyViewModel(storyId, repository)) as T
}
}

View File

@@ -72,7 +72,7 @@ class StoryTextPostViewModel(recordId: Long, repository: StoryTextPostRepository
}
class Factory(private val recordId: Long, private val repository: StoryTextPostRepository) : ViewModelProvider.Factory {
override fun <T : ViewModel?> create(modelClass: Class<T>): T {
override fun <T : ViewModel> create(modelClass: Class<T>): T {
return modelClass.cast(StoryTextPostViewModel(recordId, repository)) as T
}
}

View File

@@ -33,7 +33,7 @@ class StoryViewsViewModel(storyId: Long, repository: StoryViewsRepository) : Vie
private val storyId: Long,
private val repository: StoryViewsRepository
) : ViewModelProvider.Factory {
override fun <T : ViewModel?> create(modelClass: Class<T>): T {
override fun <T : ViewModel> create(modelClass: Class<T>): T {
return modelClass.cast(StoryViewsViewModel(storyId, repository)) as T
}
}

View File

@@ -1,19 +0,0 @@
package org.thoughtcrime.securesms.util.rx
import com.google.android.gms.tasks.Task
import io.reactivex.rxjava3.core.Single
/**
* Convert a [Task] into a [Single].
*/
fun <T : Any> Task<T>.toSingle(): Single<T> {
return Single.create { emitter ->
addOnCompleteListener {
if (it.isSuccessful && !emitter.isDisposed) {
emitter.onSuccess(it.result)
} else if (!emitter.isDisposed) {
emitter.onError(it.exception)
}
}
}
}