From 7c51cf7588a67e5321637cd82a5ff379a638e04e Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Wed, 6 Dec 2023 18:10:13 +0100 Subject: [PATCH] Added sharing file from file viewer --- .../viewer/fragment/FileViewerFragment.kt | 20 +++++++++++++++++++ .../main/res/navigation/main_nav_graph.xml | 5 +++++ 2 files changed, 25 insertions(+) diff --git a/app/src/main/java/org/linphone/ui/main/viewer/fragment/FileViewerFragment.kt b/app/src/main/java/org/linphone/ui/main/viewer/fragment/FileViewerFragment.kt index 97a914964..af267b86d 100644 --- a/app/src/main/java/org/linphone/ui/main/viewer/fragment/FileViewerFragment.kt +++ b/app/src/main/java/org/linphone/ui/main/viewer/fragment/FileViewerFragment.kt @@ -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") diff --git a/app/src/main/res/navigation/main_nav_graph.xml b/app/src/main/res/navigation/main_nav_graph.xml index 922e29913..5806b1a0a 100644 --- a/app/src/main/res/navigation/main_nav_graph.xml +++ b/app/src/main/res/navigation/main_nav_graph.xml @@ -330,6 +330,11 @@ +