Re-enable bubble menu shortcut on CFv2.
This commit is contained in:
parent
fe5d5df2d7
commit
72d1e55373
3 changed files with 17 additions and 4 deletions
|
@ -69,7 +69,6 @@ import com.google.android.material.snackbar.Snackbar
|
|||
import com.google.android.material.transition.platform.MaterialContainerTransformSharedElementCallback
|
||||
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers
|
||||
import io.reactivex.rxjava3.core.Completable
|
||||
import io.reactivex.rxjava3.core.Observable
|
||||
import io.reactivex.rxjava3.core.Single
|
||||
import io.reactivex.rxjava3.disposables.Disposable
|
||||
import io.reactivex.rxjava3.kotlin.subscribeBy
|
||||
|
@ -2857,7 +2856,7 @@ class ConversationFragment :
|
|||
return ConversationOptionsMenu.Snapshot(
|
||||
recipient = recipient,
|
||||
isPushAvailable = viewModel.isPushAvailable,
|
||||
canShowAsBubble = Observable.empty(),
|
||||
canShowAsBubble = viewModel.canShowAsBubble(requireContext()),
|
||||
isActiveGroup = recipient?.isActiveGroup == true,
|
||||
isActiveV2Group = recipient?.let { it.isActiveGroup && it.isPushV2Group } == true,
|
||||
isInActiveGroup = recipient?.isActiveGroup == false,
|
||||
|
|
|
@ -7,6 +7,7 @@ package org.thoughtcrime.securesms.conversation.v2
|
|||
|
||||
import android.content.Context
|
||||
import android.net.Uri
|
||||
import android.os.Build
|
||||
import androidx.core.content.pm.ShortcutInfoCompat
|
||||
import androidx.lifecycle.ViewModel
|
||||
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers
|
||||
|
@ -61,6 +62,8 @@ import org.thoughtcrime.securesms.recipients.Recipient
|
|||
import org.thoughtcrime.securesms.recipients.RecipientId
|
||||
import org.thoughtcrime.securesms.search.MessageResult
|
||||
import org.thoughtcrime.securesms.sms.MessageSender
|
||||
import org.thoughtcrime.securesms.util.BubbleUtil
|
||||
import org.thoughtcrime.securesms.util.ConversationUtil
|
||||
import org.thoughtcrime.securesms.util.TextSecurePreferences
|
||||
import org.thoughtcrime.securesms.util.hasGiftBadge
|
||||
import org.thoughtcrime.securesms.util.rx.RxStore
|
||||
|
@ -403,6 +406,12 @@ class ConversationViewModel(
|
|||
return repository.getTemporaryViewOnceUri(mmsMessageRecord).observeOn(AndroidSchedulers.mainThread())
|
||||
}
|
||||
|
||||
fun canShowAsBubble(context: Context): Observable<Boolean> {
|
||||
return recipient
|
||||
.map { Build.VERSION.SDK_INT >= ConversationUtil.CONVERSATION_SUPPORT_VERSION && BubbleUtil.canBubble(context, it, threadId) }
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
}
|
||||
|
||||
fun copyToClipboard(context: Context, messageParts: Set<MultiselectPart>): Maybe<CharSequence> {
|
||||
return repository.copyToClipboard(context, messageParts)
|
||||
}
|
||||
|
|
|
@ -47,6 +47,12 @@ public final class BubbleUtil {
|
|||
@RequiresApi(CONVERSATION_SUPPORT_VERSION)
|
||||
@WorkerThread
|
||||
public static boolean canBubble(@NonNull Context context, @NonNull RecipientId recipientId, @Nullable Long threadId) {
|
||||
Recipient recipient = Recipient.resolved(recipientId);
|
||||
return canBubble(context, recipient, threadId);
|
||||
}
|
||||
|
||||
@RequiresApi(CONVERSATION_SUPPORT_VERSION)
|
||||
public static boolean canBubble(@NonNull Context context, @NonNull Recipient recipient, @Nullable Long threadId) {
|
||||
if (threadId == null) {
|
||||
Log.d(TAG, "Cannot bubble recipient without thread");
|
||||
return false;
|
||||
|
@ -58,7 +64,6 @@ public final class BubbleUtil {
|
|||
return false;
|
||||
}
|
||||
|
||||
Recipient recipient = Recipient.resolved(recipientId);
|
||||
if (recipient.isBlocked()) {
|
||||
Log.d(TAG, "Cannot bubble blocked recipient");
|
||||
return false;
|
||||
|
@ -66,7 +71,7 @@ public final class BubbleUtil {
|
|||
|
||||
NotificationManager notificationManager = ServiceUtil.getNotificationManager(context);
|
||||
NotificationChannel conversationChannel = notificationManager.getNotificationChannel(ConversationUtil.getChannelId(context, recipient),
|
||||
ConversationUtil.getShortcutId(recipientId));
|
||||
ConversationUtil.getShortcutId(recipient.getId()));
|
||||
|
||||
final StringBuilder bubbleLoggingMessage = new StringBuilder("Bubble State:");
|
||||
if (Build.VERSION.SDK_INT < 31) {
|
||||
|
|
Loading…
Add table
Reference in a new issue