mirror of
https://github.com/signalapp/Signal-Android.git
synced 2026-02-21 18:26:57 +00:00
Update kotlin to 1.7.20
This commit is contained in:
committed by
Alex Hart
parent
66ece479f6
commit
56f6888d49
@@ -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
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ import java.util.function.Consumer
|
||||
|
||||
class EmojiKeyboardPageCategoriesAdapter(private val onPageSelected: Consumer<String>) : MappingAdapter() {
|
||||
init {
|
||||
registerFactory(EmojiKeyboardPageCategoryMappingModel.RecentsMappingModel::class.java, LayoutFactory({ v -> KeyboardPageCategoryIconViewHolder<EmojiKeyboardPageCategoryMappingModel.RecentsMappingModel>(v, onPageSelected) }, R.layout.keyboard_pager_category_icon))
|
||||
registerFactory(EmojiKeyboardPageCategoryMappingModel.EmojiCategoryMappingModel::class.java, LayoutFactory({ v -> KeyboardPageCategoryIconViewHolder<EmojiKeyboardPageCategoryMappingModel.EmojiCategoryMappingModel>(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))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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<EmojiKeyboardPageCategoryMappingModel> {
|
||||
class RecentsMappingModel(override val selected: Boolean) : KeyboardPageCategoryIconMappingModel<RecentsMappingModel> {
|
||||
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<EmojiCategoryMappingModel> {
|
||||
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
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -469,6 +469,8 @@ class StoryViewerPageFragment :
|
||||
is StoryViewerDialog.GroupDirectReply -> {
|
||||
onStartDirectReply(sheet.storyId, sheet.recipientId)
|
||||
}
|
||||
StoryViewerDialog.Delete,
|
||||
StoryViewerDialog.Forward -> Unit
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -112,7 +112,7 @@ public class MappingAdapter extends ListAdapter<MappingModel<?>, MappingViewHold
|
||||
holder.bind(getItem(position));
|
||||
}
|
||||
|
||||
public <T extends MappingModel<T>> int indexOfFirst(@NonNull Class<T> clazz, @NonNull Function1<T, Boolean> predicate) {
|
||||
public <T> int indexOfFirst(@NonNull Class<T> clazz, @NonNull Function1<T, Boolean> predicate) {
|
||||
return CollectionsKt.indexOfFirst(getCurrentList(), m -> {
|
||||
//noinspection unchecked
|
||||
return clazz.isAssignableFrom(m.getClass()) && predicate.invoke((T) m);
|
||||
|
||||
Reference in New Issue
Block a user