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..76c91d1636 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 @@ -84,9 +85,17 @@ class PreviewPDFActivity : AppCompatActivity(), OnItemClickListener { bottomSheetFileInfos.initOnClickListener(this@PreviewPDFActivity) } - override fun onStart() { + override fun onStart() = with(binding) { + super.onStart() - binding.header.setupWindowInsetsListener(rootView = binding.root, bottomSheetView = binding.bottomSheetFileInfos) + + header.setupWindowInsetsListener( + rootView = root, + bottomSheetView = bottomSheetFileInfos, + ) { + 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..ef5dc21cfb 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.pdfContainer.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..e4ee7eebd8 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,11 +82,13 @@ class PreviewHeaderView @JvmOverloads constructor( fun setupWindowInsetsListener( rootView: View, bottomSheetView: View, + callback: ((insets: Insets?) -> Unit)? = null, ) { val bottomSheetBehavior = BottomSheetBehavior.from(bottomSheetView) ViewCompat.setOnApplyWindowInsetsListener(rootView) { _, windowInsets -> with(windowInsets.getInsets(WindowInsetsCompat.Type.systemBars())) { - setMargins(left = left, top = top, right = right) + // We add the same margins here on the left and right to have the view centered + setMargins(left = left + right, top = top, right = left + right) val topOffset = getTopOffset(bottomSheetView) bottomSheetBehavior.apply { peekHeight = getDefaultPeekHeight() + bottom @@ -98,6 +101,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