mirror of
https://github.com/signalapp/Signal-Android.git
synced 2026-04-21 17:29:32 +01:00
Share to signal from CallSheet.
This commit is contained in:
committed by
Cody Henthorne
parent
5fa9a27ee0
commit
99abfd0d98
@@ -1,6 +1,7 @@
|
||||
package org.thoughtcrime.securesms.sharing.v2
|
||||
|
||||
import android.app.Activity
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import android.net.Uri
|
||||
import android.os.Bundle
|
||||
@@ -12,6 +13,7 @@ import androidx.activity.result.contract.ActivityResultContracts
|
||||
import androidx.activity.viewModels
|
||||
import androidx.core.content.ContextCompat
|
||||
import androidx.core.content.pm.ShortcutManagerCompat
|
||||
import com.google.android.material.appbar.MaterialToolbar
|
||||
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers
|
||||
import io.reactivex.rxjava3.kotlin.subscribeBy
|
||||
import org.signal.core.util.Result
|
||||
@@ -38,12 +40,24 @@ import org.thoughtcrime.securesms.sharing.MultiShareSender.MultiShareSendResultC
|
||||
import org.thoughtcrime.securesms.sharing.interstitial.ShareInterstitialActivity
|
||||
import org.thoughtcrime.securesms.util.ConversationUtil
|
||||
import org.thoughtcrime.securesms.util.DynamicNoActionBarTheme
|
||||
import org.thoughtcrime.securesms.util.visible
|
||||
import java.util.Optional
|
||||
|
||||
class ShareActivity : PassphraseRequiredActivity(), MultiselectForwardFragment.Callback {
|
||||
|
||||
companion object {
|
||||
private val TAG = Log.tag(ShareActivity::class.java)
|
||||
|
||||
private const val EXTRA_TITLE = "ShareActivity.extra.title"
|
||||
private const val EXTRA_NAVIGATION = "ShareActivity.extra.navigation"
|
||||
|
||||
fun sendSimpleText(context: Context, text: String): Intent {
|
||||
return Intent(context, ShareActivity::class.java)
|
||||
.setAction(Intent.ACTION_SEND)
|
||||
.putExtra(Intent.EXTRA_TEXT, text)
|
||||
.putExtra(EXTRA_TITLE, R.string.MediaReviewFragment__send_to)
|
||||
.putExtra(EXTRA_NAVIGATION, true)
|
||||
}
|
||||
}
|
||||
|
||||
private val dynamicTheme = DynamicNoActionBarTheme()
|
||||
@@ -89,6 +103,16 @@ class ShareActivity : PassphraseRequiredActivity(), MultiselectForwardFragment.C
|
||||
}
|
||||
}
|
||||
|
||||
val toolbar = findViewById<MaterialToolbar>(R.id.toolbar)
|
||||
|
||||
if (intent?.getBooleanExtra(EXTRA_NAVIGATION, false) == true) {
|
||||
toolbar.setTitle(getTitleFromExtras())
|
||||
toolbar.setNavigationIcon(R.drawable.symbol_arrow_left_24)
|
||||
toolbar.setNavigationOnClickListener { finish() }
|
||||
} else {
|
||||
toolbar.visible = false
|
||||
}
|
||||
|
||||
lifecycleDisposable.bindTo(this)
|
||||
lifecycleDisposable += viewModel.events.subscribe { shareEvent ->
|
||||
when (shareEvent) {
|
||||
@@ -210,7 +234,7 @@ class ShareActivity : PassphraseRequiredActivity(), MultiselectForwardFragment.C
|
||||
MultiselectForwardFragmentArgs(
|
||||
canSendToNonPush = resolvedShareData.isMmsOrSmsSupported,
|
||||
multiShareArgs = listOf(resolvedShareData.toMultiShareArgs()),
|
||||
title = R.string.MultiselectForwardFragment__share_with,
|
||||
title = getTitleFromExtras(),
|
||||
forceDisableAddMessage = true,
|
||||
forceSelectionOnly = true
|
||||
)
|
||||
@@ -311,6 +335,10 @@ class ShareActivity : PassphraseRequiredActivity(), MultiselectForwardFragment.C
|
||||
Toast.makeText(this, R.string.ShareActivity__could_not_get_share_data_from_intent, Toast.LENGTH_LONG).show()
|
||||
}
|
||||
|
||||
private fun getTitleFromExtras(): Int {
|
||||
return intent?.getIntExtra(EXTRA_TITLE, R.string.MultiselectForwardFragment__share_with) ?: R.string.MultiselectForwardFragment__share_with
|
||||
}
|
||||
|
||||
/**
|
||||
* Represents an error with the intent when trying to extract the unresolved share data.
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user