Added sharing file from file viewer

This commit is contained in:
Sylvain Berfini 2023-12-06 18:10:13 +01:00
parent b32007b1ca
commit 7c51cf7588
2 changed files with 25 additions and 0 deletions

View file

@ -2,6 +2,7 @@ package org.linphone.ui.main.viewer.fragment
import android.app.Activity
import android.content.Intent
import android.net.Uri
import android.os.Bundle
import android.util.DisplayMetrics
import android.view.LayoutInflater
@ -10,14 +11,17 @@ import android.view.ViewGroup
import androidx.annotation.UiThread
import androidx.core.view.doOnPreDraw
import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.lifecycleScope
import androidx.navigation.fragment.findNavController
import androidx.navigation.fragment.navArgs
import kotlinx.coroutines.launch
import org.linphone.core.tools.Log
import org.linphone.databinding.FileViewerFragmentBinding
import org.linphone.ui.main.MainActivity
import org.linphone.ui.main.fragment.GenericFragment
import org.linphone.ui.main.viewer.adapter.PdfPagesListAdapter
import org.linphone.ui.main.viewer.viewmodel.FileViewModel
import org.linphone.utils.FileUtils
@UiThread
class FileViewerFragment : GenericFragment() {
@ -64,6 +68,22 @@ class FileViewerFragment : GenericFragment() {
goBack()
}
binding.setShareClickListener {
lifecycleScope.launch {
val filePath = FileUtils.getProperFilePath(path)
val copy = FileUtils.getFilePath(requireContext(), Uri.parse(filePath), false)
if (!copy.isNullOrEmpty()) {
sharedViewModel.filesToShareFromIntent.value = arrayListOf(copy)
Log.i("$TAG Sharing file [$copy], going back to conversations list")
val action =
FileViewerFragmentDirections.actionFileViewerFragmentToConversationsListFragment()
findNavController().navigate(action)
} else {
Log.e("$TAG Failed to copy file [$filePath] to share!")
}
}
}
viewModel.pdfRendererReadyEvent.observe(viewLifecycleOwner) {
it.consume {
Log.i("$TAG PDF renderer is ready, attaching adapter to ViewPager")

View file

@ -330,6 +330,11 @@
<argument
android:name="path"
app:argType="string" />
<action
android:id="@+id/action_fileViewerFragment_to_conversationsListFragment"
app:destination="@id/conversationsListFragment"
app:popUpTo="@id/conversationsListFragment"
app:popUpToInclusive="true"/>
</fragment>
<action