From 1234927dee62c71fe1bf5f298a2840779d8af535 Mon Sep 17 00:00:00 2001 From: Vincent TE Date: Fri, 3 May 2024 13:21:49 +0200 Subject: [PATCH] Adding margins when we have an inset --- .../drive/ui/fileList/preview/PreviewPDFActivity.kt | 8 +++++++- .../drive/ui/fileList/preview/PreviewSliderFragment.kt | 9 ++++----- .../java/com/infomaniak/drive/views/PreviewHeaderView.kt | 3 +++ 3 files changed, 14 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/com/infomaniak/drive/ui/fileList/preview/PreviewPDFActivity.kt b/app/src/main/java/com/infomaniak/drive/ui/fileList/preview/PreviewPDFActivity.kt index 88d12f96df..d21c7a0c86 100644 --- a/app/src/main/java/com/infomaniak/drive/ui/fileList/preview/PreviewPDFActivity.kt +++ b/app/src/main/java/com/infomaniak/drive/ui/fileList/preview/PreviewPDFActivity.kt @@ -37,6 +37,7 @@ import com.infomaniak.drive.utils.Utils.ROOT_ID import com.infomaniak.drive.views.FileInfoActionsView.OnItemClickListener import com.infomaniak.lib.core.utils.SnackbarUtils.showSnackbar import com.infomaniak.lib.core.utils.getFileNameAndSize +import com.infomaniak.lib.core.utils.setMargins import io.sentry.Sentry import io.sentry.SentryLevel @@ -86,7 +87,12 @@ class PreviewPDFActivity : AppCompatActivity(), OnItemClickListener { override fun onStart() { super.onStart() - binding.header.setupWindowInsetsListener(rootView = binding.root, bottomSheetView = binding.bottomSheetFileInfos) + binding.header.setupWindowInsetsListener( + rootView = binding.root, + bottomSheetView = binding.bottomSheetFileInfos + ) { + binding.pdfContainer.setMargins(right = it?.right ?: 0) + } setupStatusBarForPreview() } diff --git a/app/src/main/java/com/infomaniak/drive/ui/fileList/preview/PreviewSliderFragment.kt b/app/src/main/java/com/infomaniak/drive/ui/fileList/preview/PreviewSliderFragment.kt index e7f6756ca7..d377d1dac4 100644 --- a/app/src/main/java/com/infomaniak/drive/ui/fileList/preview/PreviewSliderFragment.kt +++ b/app/src/main/java/com/infomaniak/drive/ui/fileList/preview/PreviewSliderFragment.kt @@ -50,10 +50,7 @@ import com.infomaniak.drive.utils.Utils.openWith import com.infomaniak.drive.views.FileInfoActionsView import com.infomaniak.drive.views.PreviewHeaderView import com.infomaniak.lib.core.models.ApiResponse -import com.infomaniak.lib.core.utils.getBackNavigationResult -import com.infomaniak.lib.core.utils.safeNavigate -import com.infomaniak.lib.core.utils.toggleEdgeToEdge -import com.infomaniak.lib.core.utils.whenResultIsOk +import com.infomaniak.lib.core.utils.* import io.sentry.Sentry import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch @@ -187,7 +184,9 @@ class PreviewSliderFragment : Fragment(), FileInfoActionsView.OnItemClickListene binding.header.setupWindowInsetsListener( rootView = root, bottomSheetView = binding.bottomSheetFileInfos, - ) + ) { + binding.viewPager.setMargins(right = it?.right ?: 0) + } } override fun onStart() { diff --git a/app/src/main/java/com/infomaniak/drive/views/PreviewHeaderView.kt b/app/src/main/java/com/infomaniak/drive/views/PreviewHeaderView.kt index 71588c1911..76b1ef5282 100644 --- a/app/src/main/java/com/infomaniak/drive/views/PreviewHeaderView.kt +++ b/app/src/main/java/com/infomaniak/drive/views/PreviewHeaderView.kt @@ -23,6 +23,7 @@ import android.view.LayoutInflater import android.view.View import androidx.constraintlayout.widget.ConstraintLayout import androidx.constraintlayout.widget.ConstraintSet +import androidx.core.graphics.Insets import androidx.core.view.ViewCompat import androidx.core.view.WindowInsetsCompat import androidx.core.view.isGone @@ -81,6 +82,7 @@ class PreviewHeaderView @JvmOverloads constructor( fun setupWindowInsetsListener( rootView: View, bottomSheetView: View, + callback: ((insets: Insets?) -> Unit)? = null, ) { val bottomSheetBehavior = BottomSheetBehavior.from(bottomSheetView) ViewCompat.setOnApplyWindowInsetsListener(rootView) { _, windowInsets -> @@ -98,6 +100,7 @@ class PreviewHeaderView @JvmOverloads constructor( // Add padding to the bottom to allow the last element of the // list to be displayed right over the android navigation bar bottomSheetView.setPadding(0, 0, 0, bottom) + callback?.invoke(this) } windowInsets