It work on on Android 10, to check on Android 5
This commit is contained in:
parent
5b1737ae46
commit
160c1b49a1
@ -67,7 +67,6 @@ const val PERMISSION_REQUEST_CODE_CHANGE_AVATAR = 574
|
|||||||
const val PERMISSION_REQUEST_CODE_DOWNLOAD_FILE = 575
|
const val PERMISSION_REQUEST_CODE_DOWNLOAD_FILE = 575
|
||||||
const val PERMISSION_REQUEST_CODE_PICK_ATTACHMENT = 576
|
const val PERMISSION_REQUEST_CODE_PICK_ATTACHMENT = 576
|
||||||
const val PERMISSION_REQUEST_CODE_INCOMING_URI = 577
|
const val PERMISSION_REQUEST_CODE_INCOMING_URI = 577
|
||||||
const val PERMISSION_REQUEST_CODE_PREVIEW_FRAGMENT = 578
|
|
||||||
const val PERMISSION_REQUEST_CODE_READ_CONTACTS = 579
|
const val PERMISSION_REQUEST_CODE_READ_CONTACTS = 579
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -42,17 +42,13 @@ import im.vector.app.core.extensions.cleanup
|
|||||||
import im.vector.app.core.platform.VectorBaseFragment
|
import im.vector.app.core.platform.VectorBaseFragment
|
||||||
import im.vector.app.core.resources.ColorProvider
|
import im.vector.app.core.resources.ColorProvider
|
||||||
import im.vector.app.core.utils.OnSnapPositionChangeListener
|
import im.vector.app.core.utils.OnSnapPositionChangeListener
|
||||||
import im.vector.app.core.utils.PERMISSIONS_FOR_WRITING_FILES
|
|
||||||
import im.vector.app.core.utils.PERMISSION_REQUEST_CODE_PREVIEW_FRAGMENT
|
|
||||||
import im.vector.app.core.utils.SnapOnScrollListener
|
import im.vector.app.core.utils.SnapOnScrollListener
|
||||||
import im.vector.app.core.utils.allGranted
|
|
||||||
import im.vector.app.core.utils.attachSnapHelperWithListener
|
import im.vector.app.core.utils.attachSnapHelperWithListener
|
||||||
import im.vector.app.core.utils.checkPermissions
|
|
||||||
import im.vector.app.features.media.createUCropWithDefaultSettings
|
import im.vector.app.features.media.createUCropWithDefaultSettings
|
||||||
import org.matrix.android.sdk.api.extensions.orFalse
|
|
||||||
import org.matrix.android.sdk.api.session.content.ContentAttachmentData
|
|
||||||
import kotlinx.android.parcel.Parcelize
|
import kotlinx.android.parcel.Parcelize
|
||||||
import kotlinx.android.synthetic.main.fragment_attachments_preview.*
|
import kotlinx.android.synthetic.main.fragment_attachments_preview.*
|
||||||
|
import org.matrix.android.sdk.api.extensions.orFalse
|
||||||
|
import org.matrix.android.sdk.api.session.content.ContentAttachmentData
|
||||||
import timber.log.Timber
|
import timber.log.Timber
|
||||||
import java.io.File
|
import java.io.File
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
@ -102,7 +98,7 @@ class AttachmentsPreviewFragment @Inject constructor(
|
|||||||
handleRemoveAction()
|
handleRemoveAction()
|
||||||
true
|
true
|
||||||
}
|
}
|
||||||
R.id.attachmentsPreviewEditAction -> {
|
R.id.attachmentsPreviewEditAction -> {
|
||||||
handleEditAction()
|
handleEditAction()
|
||||||
true
|
true
|
||||||
}
|
}
|
||||||
@ -183,22 +179,7 @@ class AttachmentsPreviewFragment @Inject constructor(
|
|||||||
viewModel.handle(AttachmentsPreviewAction.RemoveCurrentAttachment)
|
viewModel.handle(AttachmentsPreviewAction.RemoveCurrentAttachment)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun handleEditAction() {
|
private fun handleEditAction() = withState(viewModel) {
|
||||||
// check permissions
|
|
||||||
if (checkPermissions(PERMISSIONS_FOR_WRITING_FILES, this, PERMISSION_REQUEST_CODE_PREVIEW_FRAGMENT)) {
|
|
||||||
doHandleEditAction()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun onRequestPermissionsResult(requestCode: Int, permissions: Array<out String>, grantResults: IntArray) {
|
|
||||||
super.onRequestPermissionsResult(requestCode, permissions, grantResults)
|
|
||||||
|
|
||||||
if (requestCode == PERMISSION_REQUEST_CODE_PREVIEW_FRAGMENT && allGranted(grantResults)) {
|
|
||||||
doHandleEditAction()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun doHandleEditAction() = withState(viewModel) {
|
|
||||||
val currentAttachment = it.attachments.getOrNull(it.currentAttachmentIndex) ?: return@withState
|
val currentAttachment = it.attachments.getOrNull(it.currentAttachmentIndex) ?: return@withState
|
||||||
val destinationFile = File(requireContext().cacheDir, "${currentAttachment.name}_edited_image_${System.currentTimeMillis()}")
|
val destinationFile = File(requireContext().cacheDir, "${currentAttachment.name}_edited_image_${System.currentTimeMillis()}")
|
||||||
val uri = currentAttachment.queryUri
|
val uri = currentAttachment.queryUri
|
||||||
|
@ -28,23 +28,19 @@ import androidx.appcompat.widget.SearchView
|
|||||||
import androidx.core.view.isVisible
|
import androidx.core.view.isVisible
|
||||||
import com.airbnb.mvrx.fragmentViewModel
|
import com.airbnb.mvrx.fragmentViewModel
|
||||||
import com.airbnb.mvrx.withState
|
import com.airbnb.mvrx.withState
|
||||||
import org.matrix.android.sdk.api.session.content.ContentAttachmentData
|
|
||||||
import org.matrix.android.sdk.api.session.room.model.RoomSummary
|
|
||||||
import im.vector.app.R
|
import im.vector.app.R
|
||||||
import im.vector.app.core.di.ActiveSessionHolder
|
import im.vector.app.core.di.ActiveSessionHolder
|
||||||
import im.vector.app.core.extensions.cleanup
|
import im.vector.app.core.extensions.cleanup
|
||||||
import im.vector.app.core.extensions.configureWith
|
import im.vector.app.core.extensions.configureWith
|
||||||
import im.vector.app.core.extensions.exhaustive
|
import im.vector.app.core.extensions.exhaustive
|
||||||
import im.vector.app.core.platform.VectorBaseFragment
|
import im.vector.app.core.platform.VectorBaseFragment
|
||||||
import im.vector.app.core.utils.PERMISSIONS_FOR_WRITING_FILES
|
|
||||||
import im.vector.app.core.utils.PERMISSION_REQUEST_CODE_PICK_ATTACHMENT
|
|
||||||
import im.vector.app.core.utils.allGranted
|
|
||||||
import im.vector.app.core.utils.checkPermissions
|
|
||||||
import im.vector.app.features.attachments.AttachmentsHelper
|
import im.vector.app.features.attachments.AttachmentsHelper
|
||||||
import im.vector.app.features.attachments.preview.AttachmentsPreviewActivity
|
import im.vector.app.features.attachments.preview.AttachmentsPreviewActivity
|
||||||
import im.vector.app.features.attachments.preview.AttachmentsPreviewArgs
|
import im.vector.app.features.attachments.preview.AttachmentsPreviewArgs
|
||||||
import im.vector.app.features.login.LoginActivity
|
import im.vector.app.features.login.LoginActivity
|
||||||
import kotlinx.android.synthetic.main.fragment_incoming_share.*
|
import kotlinx.android.synthetic.main.fragment_incoming_share.*
|
||||||
|
import org.matrix.android.sdk.api.session.content.ContentAttachmentData
|
||||||
|
import org.matrix.android.sdk.api.session.room.model.RoomSummary
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -76,7 +72,7 @@ class IncomingShareFragment @Inject constructor(
|
|||||||
|
|
||||||
val intent = vectorBaseActivity.intent
|
val intent = vectorBaseActivity.intent
|
||||||
val isShareManaged = when (intent?.action) {
|
val isShareManaged = when (intent?.action) {
|
||||||
Intent.ACTION_SEND -> {
|
Intent.ACTION_SEND -> {
|
||||||
var isShareManaged = attachmentsHelper.handleShareIntent(requireContext(), intent)
|
var isShareManaged = attachmentsHelper.handleShareIntent(requireContext(), intent)
|
||||||
if (!isShareManaged) {
|
if (!isShareManaged) {
|
||||||
isShareManaged = handleTextShare(intent)
|
isShareManaged = handleTextShare(intent)
|
||||||
@ -106,7 +102,7 @@ class IncomingShareFragment @Inject constructor(
|
|||||||
}
|
}
|
||||||
viewModel.observeViewEvents {
|
viewModel.observeViewEvents {
|
||||||
when (it) {
|
when (it) {
|
||||||
is IncomingShareViewEvents.ShareToRoom -> handleShareToRoom(it)
|
is IncomingShareViewEvents.ShareToRoom -> handleShareToRoom(it)
|
||||||
is IncomingShareViewEvents.EditMediaBeforeSending -> handleEditMediaBeforeSending(it)
|
is IncomingShareViewEvents.EditMediaBeforeSending -> handleEditMediaBeforeSending(it)
|
||||||
is IncomingShareViewEvents.MultipleRoomsShareDone -> handleMultipleRoomsShareDone(it)
|
is IncomingShareViewEvents.MultipleRoomsShareDone -> handleMultipleRoomsShareDone(it)
|
||||||
}.exhaustive
|
}.exhaustive
|
||||||
@ -139,22 +135,6 @@ class IncomingShareFragment @Inject constructor(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onResume() {
|
|
||||||
super.onResume()
|
|
||||||
|
|
||||||
// We need the read file permission
|
|
||||||
checkPermissions(PERMISSIONS_FOR_WRITING_FILES, this, PERMISSION_REQUEST_CODE_PICK_ATTACHMENT)
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun onRequestPermissionsResult(requestCode: Int, permissions: Array<out String>, grantResults: IntArray) {
|
|
||||||
super.onRequestPermissionsResult(requestCode, permissions, grantResults)
|
|
||||||
|
|
||||||
if (requestCode == PERMISSION_REQUEST_CODE_PICK_ATTACHMENT && !allGranted(grantResults)) {
|
|
||||||
// Permission is mandatory
|
|
||||||
cannotManageShare(R.string.missing_permissions_error)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun handleShareToRoom(event: IncomingShareViewEvents.ShareToRoom) {
|
private fun handleShareToRoom(event: IncomingShareViewEvents.ShareToRoom) {
|
||||||
if (event.showAlert) {
|
if (event.showAlert) {
|
||||||
showConfirmationDialog(event.roomSummary, event.sharedData)
|
showConfirmationDialog(event.roomSummary, event.sharedData)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user