diff --git a/gradle/verification-metadata.xml b/gradle/verification-metadata.xml index 15f04528..751543a9 100644 --- a/gradle/verification-metadata.xml +++ b/gradle/verification-metadata.xml @@ -4,6 +4,8 @@ true true + + @@ -11,31 +13,29 @@ + + + + + + - - - - - - - - - + diff --git a/ui/src/main/java/com/nextcloud/android/common/ui/util/extensions/AppCompatActivityExtensions.kt b/ui/src/main/java/com/nextcloud/android/common/ui/util/extensions/AppCompatActivityExtensions.kt new file mode 100644 index 00000000..50b65eee --- /dev/null +++ b/ui/src/main/java/com/nextcloud/android/common/ui/util/extensions/AppCompatActivityExtensions.kt @@ -0,0 +1,30 @@ +/* + * Nextcloud Android Common Library + * + * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors + * SPDX-License-Identifier: MIT + */ + +package com.nextcloud.android.common.ui.util.extensions + +import android.graphics.Color +import android.os.Build +import androidx.activity.SystemBarStyle +import androidx.activity.enableEdgeToEdge +import androidx.appcompat.app.AppCompatActivity + +@JvmOverloads +@Suppress("MagicNumber") +fun AppCompatActivity.adjustUIForAPILevel35( + statusBarStyle: SystemBarStyle = SystemBarStyle.auto(Color.TRANSPARENT, Color.TRANSPARENT), + navigationBarStyle: SystemBarStyle = SystemBarStyle.auto(Color.TRANSPARENT, Color.TRANSPARENT) +) { + val isApiLevel35OrHigher = (Build.VERSION.SDK_INT >= 35) + if (!isApiLevel35OrHigher) { + return + } + + enableEdgeToEdge(statusBarStyle, navigationBarStyle) + + window.addSystemBarPaddings() +} diff --git a/ui/src/main/java/com/nextcloud/android/common/ui/util/extensions/WindowExtensions.kt b/ui/src/main/java/com/nextcloud/android/common/ui/util/extensions/WindowExtensions.kt new file mode 100644 index 00000000..492c4e0e --- /dev/null +++ b/ui/src/main/java/com/nextcloud/android/common/ui/util/extensions/WindowExtensions.kt @@ -0,0 +1,33 @@ +/* + * Nextcloud Android Common Library + * + * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors + * SPDX-License-Identifier: MIT + */ + +package com.nextcloud.android.common.ui.util.extensions + +import android.view.View +import android.view.Window +import androidx.core.view.ViewCompat +import androidx.core.view.WindowInsetsCompat +import androidx.core.view.updatePadding + +fun Window?.addSystemBarPaddings() { + if (this == null) { + return + } + + ViewCompat.setOnApplyWindowInsetsListener(decorView) { v: View, insets: WindowInsetsCompat -> + val bars = insets.getInsets(WindowInsetsCompat.Type.systemBars()) + + v.updatePadding( + left = bars.left, + top = bars.top, + right = bars.right, + bottom = bars.bottom + ) + + WindowInsetsCompat.CONSUMED + } +}