|
|
@ -3,31 +3,18 @@ package org.thoughtcrime.securesms.conversation.v2
|
|
|
|
import android.Manifest
|
|
|
|
import android.Manifest
|
|
|
|
import android.animation.FloatEvaluator
|
|
|
|
import android.animation.FloatEvaluator
|
|
|
|
import android.animation.ValueAnimator
|
|
|
|
import android.animation.ValueAnimator
|
|
|
|
import android.content.ClipData
|
|
|
|
import android.content.*
|
|
|
|
import android.content.ClipboardManager
|
|
|
|
|
|
|
|
import android.content.Context
|
|
|
|
|
|
|
|
import android.content.DialogInterface
|
|
|
|
|
|
|
|
import android.content.Intent
|
|
|
|
|
|
|
|
import android.content.res.Resources
|
|
|
|
import android.content.res.Resources
|
|
|
|
import android.database.Cursor
|
|
|
|
import android.database.Cursor
|
|
|
|
import android.graphics.Rect
|
|
|
|
import android.graphics.Rect
|
|
|
|
import android.graphics.Typeface
|
|
|
|
import android.graphics.Typeface
|
|
|
|
import android.net.Uri
|
|
|
|
import android.net.Uri
|
|
|
|
import android.os.AsyncTask
|
|
|
|
import android.os.*
|
|
|
|
import android.os.Build
|
|
|
|
|
|
|
|
import android.os.Bundle
|
|
|
|
|
|
|
|
import android.os.Handler
|
|
|
|
|
|
|
|
import android.os.Looper
|
|
|
|
|
|
|
|
import android.provider.MediaStore
|
|
|
|
import android.provider.MediaStore
|
|
|
|
import android.text.TextUtils
|
|
|
|
import android.text.TextUtils
|
|
|
|
import android.util.Pair
|
|
|
|
import android.util.Pair
|
|
|
|
import android.util.TypedValue
|
|
|
|
import android.util.TypedValue
|
|
|
|
import android.view.ActionMode
|
|
|
|
import android.view.*
|
|
|
|
import android.view.Menu
|
|
|
|
|
|
|
|
import android.view.MenuItem
|
|
|
|
|
|
|
|
import android.view.MotionEvent
|
|
|
|
|
|
|
|
import android.view.View
|
|
|
|
|
|
|
|
import android.view.WindowManager
|
|
|
|
|
|
|
|
import android.widget.RelativeLayout
|
|
|
|
import android.widget.RelativeLayout
|
|
|
|
import android.widget.Toast
|
|
|
|
import android.widget.Toast
|
|
|
|
import androidx.activity.viewModels
|
|
|
|
import androidx.activity.viewModels
|
|
|
@ -67,12 +54,8 @@ import org.session.libsession.messaging.sending_receiving.link_preview.LinkPrevi
|
|
|
|
import org.session.libsession.messaging.sending_receiving.quotes.QuoteModel
|
|
|
|
import org.session.libsession.messaging.sending_receiving.quotes.QuoteModel
|
|
|
|
import org.session.libsession.messaging.utilities.SessionId
|
|
|
|
import org.session.libsession.messaging.utilities.SessionId
|
|
|
|
import org.session.libsession.snode.SnodeAPI
|
|
|
|
import org.session.libsession.snode.SnodeAPI
|
|
|
|
import org.session.libsession.utilities.Address
|
|
|
|
import org.session.libsession.utilities.*
|
|
|
|
import org.session.libsession.utilities.Address.Companion.fromSerialized
|
|
|
|
import org.session.libsession.utilities.Address.Companion.fromSerialized
|
|
|
|
import org.session.libsession.utilities.GroupUtil
|
|
|
|
|
|
|
|
import org.session.libsession.utilities.MediaTypes
|
|
|
|
|
|
|
|
import org.session.libsession.utilities.Stub
|
|
|
|
|
|
|
|
import org.session.libsession.utilities.TextSecurePreferences
|
|
|
|
|
|
|
|
import org.session.libsession.utilities.concurrent.SimpleTask
|
|
|
|
import org.session.libsession.utilities.concurrent.SimpleTask
|
|
|
|
import org.session.libsession.utilities.recipients.Recipient
|
|
|
|
import org.session.libsession.utilities.recipients.Recipient
|
|
|
|
import org.session.libsession.utilities.recipients.Recipient.DisappearingState
|
|
|
|
import org.session.libsession.utilities.recipients.Recipient.DisappearingState
|
|
|
@ -114,16 +97,7 @@ import org.thoughtcrime.securesms.conversation.v2.utilities.MentionUtilities
|
|
|
|
import org.thoughtcrime.securesms.conversation.v2.utilities.ResendMessageUtilities
|
|
|
|
import org.thoughtcrime.securesms.conversation.v2.utilities.ResendMessageUtilities
|
|
|
|
import org.thoughtcrime.securesms.crypto.IdentityKeyUtil
|
|
|
|
import org.thoughtcrime.securesms.crypto.IdentityKeyUtil
|
|
|
|
import org.thoughtcrime.securesms.crypto.MnemonicUtilities
|
|
|
|
import org.thoughtcrime.securesms.crypto.MnemonicUtilities
|
|
|
|
import org.thoughtcrime.securesms.database.GroupDatabase
|
|
|
|
import org.thoughtcrime.securesms.database.*
|
|
|
|
import org.thoughtcrime.securesms.database.LokiMessageDatabase
|
|
|
|
|
|
|
|
import org.thoughtcrime.securesms.database.LokiThreadDatabase
|
|
|
|
|
|
|
|
import org.thoughtcrime.securesms.database.MmsDatabase
|
|
|
|
|
|
|
|
import org.thoughtcrime.securesms.database.MmsSmsDatabase
|
|
|
|
|
|
|
|
import org.thoughtcrime.securesms.database.ReactionDatabase
|
|
|
|
|
|
|
|
import org.thoughtcrime.securesms.database.SessionContactDatabase
|
|
|
|
|
|
|
|
import org.thoughtcrime.securesms.database.SmsDatabase
|
|
|
|
|
|
|
|
import org.thoughtcrime.securesms.database.Storage
|
|
|
|
|
|
|
|
import org.thoughtcrime.securesms.database.ThreadDatabase
|
|
|
|
|
|
|
|
import org.thoughtcrime.securesms.database.model.MessageId
|
|
|
|
import org.thoughtcrime.securesms.database.model.MessageId
|
|
|
|
import org.thoughtcrime.securesms.database.model.MessageRecord
|
|
|
|
import org.thoughtcrime.securesms.database.model.MessageRecord
|
|
|
|
import org.thoughtcrime.securesms.database.model.MmsMessageRecord
|
|
|
|
import org.thoughtcrime.securesms.database.model.MmsMessageRecord
|
|
|
@ -136,26 +110,12 @@ import org.thoughtcrime.securesms.linkpreview.LinkPreviewViewModel
|
|
|
|
import org.thoughtcrime.securesms.linkpreview.LinkPreviewViewModel.LinkPreviewState
|
|
|
|
import org.thoughtcrime.securesms.linkpreview.LinkPreviewViewModel.LinkPreviewState
|
|
|
|
import org.thoughtcrime.securesms.mediasend.Media
|
|
|
|
import org.thoughtcrime.securesms.mediasend.Media
|
|
|
|
import org.thoughtcrime.securesms.mediasend.MediaSendActivity
|
|
|
|
import org.thoughtcrime.securesms.mediasend.MediaSendActivity
|
|
|
|
import org.thoughtcrime.securesms.mms.AudioSlide
|
|
|
|
import org.thoughtcrime.securesms.mms.*
|
|
|
|
import org.thoughtcrime.securesms.mms.GifSlide
|
|
|
|
|
|
|
|
import org.thoughtcrime.securesms.mms.GlideApp
|
|
|
|
|
|
|
|
import org.thoughtcrime.securesms.mms.ImageSlide
|
|
|
|
|
|
|
|
import org.thoughtcrime.securesms.mms.MediaConstraints
|
|
|
|
|
|
|
|
import org.thoughtcrime.securesms.mms.Slide
|
|
|
|
|
|
|
|
import org.thoughtcrime.securesms.mms.SlideDeck
|
|
|
|
|
|
|
|
import org.thoughtcrime.securesms.mms.VideoSlide
|
|
|
|
|
|
|
|
import org.thoughtcrime.securesms.permissions.Permissions
|
|
|
|
import org.thoughtcrime.securesms.permissions.Permissions
|
|
|
|
import org.thoughtcrime.securesms.reactions.ReactionsDialogFragment
|
|
|
|
import org.thoughtcrime.securesms.reactions.ReactionsDialogFragment
|
|
|
|
import org.thoughtcrime.securesms.reactions.any.ReactWithAnyEmojiDialogFragment
|
|
|
|
import org.thoughtcrime.securesms.reactions.any.ReactWithAnyEmojiDialogFragment
|
|
|
|
import org.thoughtcrime.securesms.util.ActivityDispatcher
|
|
|
|
import org.thoughtcrime.securesms.util.*
|
|
|
|
import org.thoughtcrime.securesms.util.ConfigurationMessageUtilities
|
|
|
|
import java.util.*
|
|
|
|
import org.thoughtcrime.securesms.util.DateUtils
|
|
|
|
|
|
|
|
import org.thoughtcrime.securesms.util.MediaUtil
|
|
|
|
|
|
|
|
import org.thoughtcrime.securesms.util.SaveAttachmentTask
|
|
|
|
|
|
|
|
import org.thoughtcrime.securesms.util.push
|
|
|
|
|
|
|
|
import org.thoughtcrime.securesms.util.show
|
|
|
|
|
|
|
|
import org.thoughtcrime.securesms.util.toPx
|
|
|
|
|
|
|
|
import java.util.Locale
|
|
|
|
|
|
|
|
import java.util.concurrent.ExecutionException
|
|
|
|
import java.util.concurrent.ExecutionException
|
|
|
|
import java.util.concurrent.atomic.AtomicLong
|
|
|
|
import java.util.concurrent.atomic.AtomicLong
|
|
|
|
import java.util.concurrent.atomic.AtomicReference
|
|
|
|
import java.util.concurrent.atomic.AtomicReference
|
|
|
@ -572,7 +532,7 @@ class ConversationActivityV2 : PassphraseRequiredActionBarActivity(), InputBarDe
|
|
|
|
|
|
|
|
|
|
|
|
private fun setUpOutdatedClientBanner() {
|
|
|
|
private fun setUpOutdatedClientBanner() {
|
|
|
|
val recipient = viewModel.recipient ?: return
|
|
|
|
val recipient = viewModel.recipient ?: return
|
|
|
|
if (ExpirationConfiguration.isNewConfigEnabled && recipient.isContactRecipient &&
|
|
|
|
if (!ExpirationConfiguration.isNewConfigEnabled && recipient.isContactRecipient &&
|
|
|
|
recipient.disappearingState == DisappearingState.LEGACY &&
|
|
|
|
recipient.disappearingState == DisappearingState.LEGACY &&
|
|
|
|
viewModel.expirationConfiguration?.isEnabled == true
|
|
|
|
viewModel.expirationConfiguration?.isEnabled == true
|
|
|
|
) {
|
|
|
|
) {
|
|
|
|