From 56f6888d49982446b735eb2a7f8da5fd2e95b1cc Mon Sep 17 00:00:00 2001 From: Cody Henthorne Date: Wed, 7 Dec 2022 15:23:48 -0500 Subject: [PATCH] Update kotlin to 1.7.20 --- .../forward/MultiselectForwardFragment.kt | 2 +- .../EmojiKeyboardPageCategoriesAdapter.kt | 4 +- .../EmojiKeyboardPageCategoryMappingModel.kt | 46 ++--- .../emoji/EmojiKeyboardPageFragment.kt | 3 +- .../emoji/EmojiKeyboardPageViewModel.kt | 3 +- ...WithAnyEmojiBottomSheetDialogFragment.java | 4 +- .../any/ReactWithAnyEmojiViewModel.java | 7 +- .../stories/viewer/StoryViewerFragment.kt | 1 + .../viewer/page/StoryViewerPageFragment.kt | 2 + .../util/adapter/mapping/MappingAdapter.java | 2 +- build.gradle | 2 +- gradle/verification-metadata.xml | 175 ++++++++++++++++++ 12 files changed, 215 insertions(+), 36 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/mutiselect/forward/MultiselectForwardFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/mutiselect/forward/MultiselectForwardFragment.kt index 18acb4df4..432c6ec24 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/mutiselect/forward/MultiselectForwardFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/mutiselect/forward/MultiselectForwardFragment.kt @@ -381,7 +381,6 @@ class MultiselectForwardFragment : } if (view != null && contactSet.any { it is ContactSearchKey.RecipientSearchKey && it.isStory }) { - @Suppress("NON_EXHAUSTIVE_WHEN_STATEMENT") when (storySendRequirements) { Stories.MediaTransform.SendRequirements.REQUIRES_CLIP -> { displayTooltip(view, R.string.MultiselectForwardFragment__videos_will_be_trimmed) @@ -389,6 +388,7 @@ class MultiselectForwardFragment : Stories.MediaTransform.SendRequirements.CAN_NOT_SEND -> { displayTooltip(view, R.string.MultiselectForwardFragment__videos_sent_to_stories_cant) } + Stories.MediaTransform.SendRequirements.VALID_DURATION -> Unit } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/keyboard/emoji/EmojiKeyboardPageCategoriesAdapter.kt b/app/src/main/java/org/thoughtcrime/securesms/keyboard/emoji/EmojiKeyboardPageCategoriesAdapter.kt index 8bdeaefc9..f08fbe83f 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/keyboard/emoji/EmojiKeyboardPageCategoriesAdapter.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/keyboard/emoji/EmojiKeyboardPageCategoriesAdapter.kt @@ -8,7 +8,7 @@ import java.util.function.Consumer class EmojiKeyboardPageCategoriesAdapter(private val onPageSelected: Consumer) : MappingAdapter() { init { - registerFactory(EmojiKeyboardPageCategoryMappingModel.RecentsMappingModel::class.java, LayoutFactory({ v -> KeyboardPageCategoryIconViewHolder(v, onPageSelected) }, R.layout.keyboard_pager_category_icon)) - registerFactory(EmojiKeyboardPageCategoryMappingModel.EmojiCategoryMappingModel::class.java, LayoutFactory({ v -> KeyboardPageCategoryIconViewHolder(v, onPageSelected) }, R.layout.keyboard_pager_category_icon)) + registerFactory(RecentsMappingModel::class.java, LayoutFactory({ v -> KeyboardPageCategoryIconViewHolder(v, onPageSelected) }, R.layout.keyboard_pager_category_icon)) + registerFactory(EmojiCategoryMappingModel::class.java, LayoutFactory({ v -> KeyboardPageCategoryIconViewHolder(v, onPageSelected) }, R.layout.keyboard_pager_category_icon)) } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/keyboard/emoji/EmojiKeyboardPageCategoryMappingModel.kt b/app/src/main/java/org/thoughtcrime/securesms/keyboard/emoji/EmojiKeyboardPageCategoryMappingModel.kt index f9b7b3953..91a81912a 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/keyboard/emoji/EmojiKeyboardPageCategoryMappingModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/keyboard/emoji/EmojiKeyboardPageCategoryMappingModel.kt @@ -2,42 +2,42 @@ package org.thoughtcrime.securesms.keyboard.emoji import android.content.Context import android.graphics.drawable.Drawable -import androidx.annotation.AttrRes import org.thoughtcrime.securesms.R import org.thoughtcrime.securesms.components.emoji.RecentEmojiPageModel import org.thoughtcrime.securesms.emoji.EmojiCategory import org.thoughtcrime.securesms.keyboard.KeyboardPageCategoryIconMappingModel import org.thoughtcrime.securesms.util.ThemeUtil -sealed class EmojiKeyboardPageCategoryMappingModel( - override val key: String, - @AttrRes val iconId: Int, - override val selected: Boolean -) : KeyboardPageCategoryIconMappingModel { +class RecentsMappingModel(override val selected: Boolean) : KeyboardPageCategoryIconMappingModel { + override val key: String = RecentEmojiPageModel.KEY override fun getIcon(context: Context): Drawable { - return requireNotNull(ThemeUtil.getThemedDrawable(context, iconId)) + return requireNotNull(ThemeUtil.getThemedDrawable(context, R.attr.emoji_category_recent)) } - override fun areItemsTheSame(newItem: EmojiKeyboardPageCategoryMappingModel): Boolean { + override fun areItemsTheSame(newItem: RecentsMappingModel): Boolean { return newItem.key == key } - class RecentsMappingModel(selected: Boolean) : EmojiKeyboardPageCategoryMappingModel(RecentEmojiPageModel.KEY, R.attr.emoji_category_recent, selected) { - override fun areContentsTheSame(newItem: EmojiKeyboardPageCategoryMappingModel): Boolean { - return newItem is RecentsMappingModel && super.areContentsTheSame(newItem) - } - } - - class EmojiCategoryMappingModel(private val emojiCategory: EmojiCategory, selected: Boolean) : EmojiKeyboardPageCategoryMappingModel(emojiCategory.key, emojiCategory.icon, selected) { - override fun areContentsTheSame(newItem: EmojiKeyboardPageCategoryMappingModel): Boolean { - return newItem is EmojiCategoryMappingModel && - super.areContentsTheSame(newItem) && - newItem.emojiCategory == emojiCategory - } - } - - override fun areContentsTheSame(newItem: EmojiKeyboardPageCategoryMappingModel): Boolean { + override fun areContentsTheSame(newItem: RecentsMappingModel): Boolean { return areItemsTheSame(newItem) && selected == newItem.selected } } + +class EmojiCategoryMappingModel(private val emojiCategory: EmojiCategory, override val selected: Boolean) : KeyboardPageCategoryIconMappingModel { + override val key: String = emojiCategory.key + + override fun getIcon(context: Context): Drawable { + return requireNotNull(ThemeUtil.getThemedDrawable(context, emojiCategory.icon)) + } + + override fun areItemsTheSame(newItem: EmojiCategoryMappingModel): Boolean { + return newItem.key == key + } + + override fun areContentsTheSame(newItem: EmojiCategoryMappingModel): Boolean { + return areItemsTheSame(newItem) && + selected == newItem.selected && + newItem.emojiCategory == emojiCategory + } +} diff --git a/app/src/main/java/org/thoughtcrime/securesms/keyboard/emoji/EmojiKeyboardPageFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/keyboard/emoji/EmojiKeyboardPageFragment.kt index c20ee7707..4e6be7ab4 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/keyboard/emoji/EmojiKeyboardPageFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/keyboard/emoji/EmojiKeyboardPageFragment.kt @@ -16,6 +16,7 @@ import org.thoughtcrime.securesms.components.emoji.EmojiEventListener import org.thoughtcrime.securesms.components.emoji.EmojiPageView import org.thoughtcrime.securesms.components.emoji.EmojiPageViewGridAdapter import org.thoughtcrime.securesms.components.emoji.EmojiPageViewGridAdapter.EmojiHeader +import org.thoughtcrime.securesms.keyboard.KeyboardPageCategoryIconMappingModel import org.thoughtcrime.securesms.keyboard.KeyboardPageSelected import org.thoughtcrime.securesms.keyvalue.SignalStore import org.thoughtcrime.securesms.util.ThemedFragment.themedInflate @@ -107,7 +108,7 @@ class EmojiKeyboardPageFragment : Fragment(), EmojiEventListener, EmojiPageViewG private fun updateCategoryTab(key: String) { emojiCategoriesRecycler.post { - val index: Int = categoriesAdapter.indexOfFirst(EmojiKeyboardPageCategoryMappingModel::class.java) { it.key == key } + val index: Int = categoriesAdapter.indexOfFirst(KeyboardPageCategoryIconMappingModel::class.java) { it.key == key } if (index != -1) { emojiCategoriesRecycler.smoothScrollToPosition(index) diff --git a/app/src/main/java/org/thoughtcrime/securesms/keyboard/emoji/EmojiKeyboardPageViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/keyboard/emoji/EmojiKeyboardPageViewModel.kt index 40c8914bd..4372d8f32 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/keyboard/emoji/EmojiKeyboardPageViewModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/keyboard/emoji/EmojiKeyboardPageViewModel.kt @@ -11,7 +11,6 @@ import org.thoughtcrime.securesms.components.emoji.EmojiPageViewGridAdapter.Emoj import org.thoughtcrime.securesms.components.emoji.RecentEmojiPageModel import org.thoughtcrime.securesms.dependencies.ApplicationDependencies import org.thoughtcrime.securesms.emoji.EmojiCategory -import org.thoughtcrime.securesms.keyboard.emoji.EmojiKeyboardPageCategoryMappingModel.EmojiCategoryMappingModel import org.thoughtcrime.securesms.util.DefaultValueLiveData import org.thoughtcrime.securesms.util.TextSecurePreferences import org.thoughtcrime.securesms.util.adapter.mapping.MappingModelList @@ -49,7 +48,7 @@ class EmojiKeyboardPageViewModel(private val repository: EmojiKeyboardPageReposi val list = MappingModelList() list += models.map { m -> if (RecentEmojiPageModel.KEY == m.key) { - EmojiKeyboardPageCategoryMappingModel.RecentsMappingModel(m.key == selectedKey) + RecentsMappingModel(m.key == selectedKey) } else { val category = EmojiCategory.forKey(m.key) EmojiCategoryMappingModel(category, category.key == selectedKey) diff --git a/app/src/main/java/org/thoughtcrime/securesms/reactions/any/ReactWithAnyEmojiBottomSheetDialogFragment.java b/app/src/main/java/org/thoughtcrime/securesms/reactions/any/ReactWithAnyEmojiBottomSheetDialogFragment.java index 172b93fb5..4c0e0d16f 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/reactions/any/ReactWithAnyEmojiBottomSheetDialogFragment.java +++ b/app/src/main/java/org/thoughtcrime/securesms/reactions/any/ReactWithAnyEmojiBottomSheetDialogFragment.java @@ -31,8 +31,8 @@ import org.thoughtcrime.securesms.components.emoji.EmojiEventListener; import org.thoughtcrime.securesms.components.emoji.EmojiPageView; import org.thoughtcrime.securesms.components.emoji.EmojiPageViewGridAdapter; import org.thoughtcrime.securesms.database.model.MessageRecord; +import org.thoughtcrime.securesms.keyboard.KeyboardPageCategoryIconMappingModel; import org.thoughtcrime.securesms.keyboard.emoji.EmojiKeyboardPageCategoriesAdapter; -import org.thoughtcrime.securesms.keyboard.emoji.EmojiKeyboardPageCategoryMappingModel; import org.thoughtcrime.securesms.keyboard.emoji.KeyboardPageSearchView; import org.thoughtcrime.securesms.reactions.edit.EditReactionsActivity; import org.thoughtcrime.securesms.util.LifecycleDisposable; @@ -198,7 +198,7 @@ public final class ReactWithAnyEmojiBottomSheetDialogFragment extends FixedRound disposables.add(viewModel.getEmojiList().subscribe(pages -> emojiPageView.setList(pages, null))); disposables.add(viewModel.getCategories().subscribe(categoriesAdapter::submitList)); disposables.add(viewModel.getSelectedKey().subscribe(key -> categoriesRecycler.post(() -> { - int index = categoriesAdapter.indexOfFirst(EmojiKeyboardPageCategoryMappingModel.class, m -> m.getKey().equals(key)); + int index = categoriesAdapter.indexOfFirst(KeyboardPageCategoryIconMappingModel.class, m -> m.getKey().equals(key)); if (index != -1) { categoriesRecycler.smoothScrollToPosition(index); diff --git a/app/src/main/java/org/thoughtcrime/securesms/reactions/any/ReactWithAnyEmojiViewModel.java b/app/src/main/java/org/thoughtcrime/securesms/reactions/any/ReactWithAnyEmojiViewModel.java index c17b75cb0..46d75336e 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/reactions/any/ReactWithAnyEmojiViewModel.java +++ b/app/src/main/java/org/thoughtcrime/securesms/reactions/any/ReactWithAnyEmojiViewModel.java @@ -13,7 +13,8 @@ import org.thoughtcrime.securesms.components.emoji.RecentEmojiPageModel; import org.thoughtcrime.securesms.database.model.MessageId; import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; import org.thoughtcrime.securesms.emoji.EmojiCategory; -import org.thoughtcrime.securesms.keyboard.emoji.EmojiKeyboardPageCategoryMappingModel; +import org.thoughtcrime.securesms.keyboard.emoji.EmojiCategoryMappingModel; +import org.thoughtcrime.securesms.keyboard.emoji.RecentsMappingModel; import org.thoughtcrime.securesms.keyboard.emoji.search.EmojiSearchRepository; import org.thoughtcrime.securesms.keyvalue.SignalStore; import org.thoughtcrime.securesms.reactions.ReactionsRepository; @@ -72,12 +73,12 @@ public final class ReactWithAnyEmojiViewModel extends ViewModel { this.categories = Observable.combineLatest(emojiPages, this.selectedKey.distinctUntilChanged(), (pages, selectedKey) -> { MappingModelList list = new MappingModelList(); - list.add(new EmojiKeyboardPageCategoryMappingModel.RecentsMappingModel(RecentEmojiPageModel.KEY.equals(selectedKey))); + list.add(new RecentsMappingModel(RecentEmojiPageModel.KEY.equals(selectedKey))); list.addAll(pages.stream() .filter(p -> !RecentEmojiPageModel.KEY.equals(p.getKey())) .map(p -> { EmojiCategory category = EmojiCategory.forKey(p.getKey()); - return new EmojiKeyboardPageCategoryMappingModel.EmojiCategoryMappingModel(category, category.getKey().equals(selectedKey)); + return new EmojiCategoryMappingModel(category, category.getKey().equals(selectedKey)); }) .collect(Collectors.toList())); return list; diff --git a/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/StoryViewerFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/StoryViewerFragment.kt index 3bce26e99..21c65ea23 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/StoryViewerFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/StoryViewerFragment.kt @@ -102,6 +102,7 @@ class StoryViewerFragment : when (state.crossfadeSource) { is StoryViewerState.CrossfadeSource.TextModel -> storyCrossfader.setSourceView(state.crossfadeSource.storyTextPostModel) is StoryViewerState.CrossfadeSource.ImageUri -> storyCrossfader.setSourceView(state.crossfadeSource.imageUri, state.crossfadeSource.imageBlur) + StoryViewerState.CrossfadeSource.None -> Unit } if (state.crossfadeTarget is StoryViewerState.CrossfadeTarget.Record) { diff --git a/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/page/StoryViewerPageFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/page/StoryViewerPageFragment.kt index 1ce3abe7f..e13ce8087 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/page/StoryViewerPageFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/page/StoryViewerPageFragment.kt @@ -469,6 +469,8 @@ class StoryViewerPageFragment : is StoryViewerDialog.GroupDirectReply -> { onStartDirectReply(sheet.storyId, sheet.recipientId) } + StoryViewerDialog.Delete, + StoryViewerDialog.Forward -> Unit } } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/util/adapter/mapping/MappingAdapter.java b/app/src/main/java/org/thoughtcrime/securesms/util/adapter/mapping/MappingAdapter.java index 1d2e10621..0dc444e45 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/util/adapter/mapping/MappingAdapter.java +++ b/app/src/main/java/org/thoughtcrime/securesms/util/adapter/mapping/MappingAdapter.java @@ -112,7 +112,7 @@ public class MappingAdapter extends ListAdapter, MappingViewHold holder.bind(getItem(position)); } - public > int indexOfFirst(@NonNull Class clazz, @NonNull Function1 predicate) { + public int indexOfFirst(@NonNull Class clazz, @NonNull Function1 predicate) { return CollectionsKt.indexOfFirst(getCurrentList(), m -> { //noinspection unchecked return clazz.isAssignableFrom(m.getClass()) && predicate.invoke((T) m); diff --git a/build.gradle b/build.gradle index b3ae5489c..946d118de 100644 --- a/build.gradle +++ b/build.gradle @@ -1,5 +1,5 @@ buildscript { - ext.kotlin_version = '1.6.21' + ext.kotlin_version = '1.7.20' repositories { google() mavenCentral() diff --git a/gradle/verification-metadata.xml b/gradle/verification-metadata.xml index 866f4d41a..b6a80016e 100644 --- a/gradle/verification-metadata.xml +++ b/gradle/verification-metadata.xml @@ -3389,21 +3389,41 @@ https://docs.gradle.org/current/userguide/dependency_verification.html + + + + + + + + + + + + + + + + + + + + @@ -3414,16 +3434,31 @@ https://docs.gradle.org/current/userguide/dependency_verification.html + + + + + + + + + + + + + + + @@ -3434,51 +3469,126 @@ https://docs.gradle.org/current/userguide/dependency_verification.html + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -3504,6 +3614,11 @@ https://docs.gradle.org/current/userguide/dependency_verification.html + + + + + @@ -3514,26 +3629,51 @@ https://docs.gradle.org/current/userguide/dependency_verification.html + + + + + + + + + + + + + + + + + + + + + + + + + @@ -3574,6 +3714,11 @@ https://docs.gradle.org/current/userguide/dependency_verification.html + + + + + @@ -3619,6 +3764,11 @@ https://docs.gradle.org/current/userguide/dependency_verification.html + + + + + @@ -3654,6 +3804,11 @@ https://docs.gradle.org/current/userguide/dependency_verification.html + + + + + @@ -3689,6 +3844,11 @@ https://docs.gradle.org/current/userguide/dependency_verification.html + + + + + @@ -3699,6 +3859,11 @@ https://docs.gradle.org/current/userguide/dependency_verification.html + + + + + @@ -3709,11 +3874,21 @@ https://docs.gradle.org/current/userguide/dependency_verification.html + + + + + + + + + +