diff --git a/dependencies.gradle b/dependencies.gradle index 0fd445b543..d3e839a118 100644 --- a/dependencies.gradle +++ b/dependencies.gradle @@ -27,7 +27,7 @@ def bigImageViewer = "1.8.1" def jjwt = "0.11.5" def vanniktechEmoji = "0.16.0" def sentry = "6.18.1" -def fragment = "1.8.1" +def fragment = "1.8.6" // Testing def mockk = "1.13.11" def espresso = "3.6.1" @@ -50,7 +50,7 @@ ext.libs = [ 'activity' : "androidx.activity:activity-ktx:1.9.0", 'appCompat' : "androidx.appcompat:appcompat:1.7.0", 'biometric' : "androidx.biometric:biometric:1.1.0", - 'core' : "androidx.core:core-ktx:1.10.1", + 'core' : "androidx.core:core-ktx:1.16.0", 'recyclerview' : "androidx.recyclerview:recyclerview:1.3.0", 'exifinterface' : "androidx.exifinterface:exifinterface:1.3.6", 'fragmentKtx' : "androidx.fragment:fragment-ktx:$fragment", diff --git a/dependencies_groups.gradle b/dependencies_groups.gradle index 3024963bf8..282fa353e4 100644 --- a/dependencies_groups.gradle +++ b/dependencies_groups.gradle @@ -213,6 +213,7 @@ ext.groups = [ 'org.jitsi', 'org.json', 'org.jsoup', + 'org.jspecify', 'org.junit', 'org.junit.jupiter', 'org.junit.platform', diff --git a/vector-app/src/main/java/im/vector/app/VectorApplication.kt b/vector-app/src/main/java/im/vector/app/VectorApplication.kt index 50bced59ed..84b87b1404 100644 --- a/vector-app/src/main/java/im/vector/app/VectorApplication.kt +++ b/vector-app/src/main/java/im/vector/app/VectorApplication.kt @@ -161,6 +161,7 @@ class VectorApplication : "Noto Color Emoji Compat", R.array.com_google_android_gms_fonts_certs ) + @Suppress("DEPRECATION") FontsContractCompat.requestFont(this, fontRequest, emojiCompatFontProvider, getFontThreadHandler()) vectorLocale.init() ThemeUtils.init(this) diff --git a/vector/src/main/java/im/vector/app/core/platform/VectorBaseActivity.kt b/vector/src/main/java/im/vector/app/core/platform/VectorBaseActivity.kt index a6b9d77930..bf621b60a3 100644 --- a/vector/src/main/java/im/vector/app/core/platform/VectorBaseActivity.kt +++ b/vector/src/main/java/im/vector/app/core/platform/VectorBaseActivity.kt @@ -27,6 +27,7 @@ import androidx.core.app.MultiWindowModeChangedInfo import androidx.core.util.Consumer import androidx.core.view.MenuProvider import androidx.core.view.ViewCompat +import androidx.core.view.ViewGroupCompat import androidx.core.view.WindowInsetsCompat import androidx.core.view.isVisible import androidx.core.view.updatePadding @@ -210,6 +211,7 @@ abstract class VectorBaseActivity : AppCompatActivity(), Maver ThemeUtils.setActivityTheme(this, getOtherThemes()) viewModelFactory = activityEntryPoint.viewModelFactory() enableEdgeToEdge() + ViewGroupCompat.installCompatInsetsDispatch(window.decorView) super.onCreate(savedInstanceState) addOnMultiWindowModeChangedListener(onMultiWindowModeChangedListener) setupMenu() @@ -416,6 +418,7 @@ abstract class VectorBaseActivity : AppCompatActivity(), Maver // Just log that a change occurred. Timber.w("MDM data has been updated") } + ViewCompat.setOnApplyWindowInsetsListener(rootView) { v, insets -> val systemBars = insets.getInsets( WindowInsetsCompat.Type.systemBars() or @@ -428,7 +431,7 @@ abstract class VectorBaseActivity : AppCompatActivity(), Maver systemBars.right, systemBars.bottom, ) - insets + WindowInsetsCompat.CONSUMED } } diff --git a/vector/src/main/java/im/vector/app/features/home/HomeDrawerFragment.kt b/vector/src/main/java/im/vector/app/features/home/HomeDrawerFragment.kt index 4a3d5d2583..0ead96292a 100644 --- a/vector/src/main/java/im/vector/app/features/home/HomeDrawerFragment.kt +++ b/vector/src/main/java/im/vector/app/features/home/HomeDrawerFragment.kt @@ -13,7 +13,9 @@ import android.view.View import android.view.ViewGroup import androidx.core.app.ActivityOptionsCompat import androidx.core.view.ViewCompat +import androidx.core.view.WindowInsetsCompat import androidx.core.view.isVisible +import androidx.core.view.updatePadding import dagger.hilt.android.AndroidEntryPoint import im.vector.app.R import im.vector.app.core.extensions.observeK @@ -109,6 +111,20 @@ class HomeDrawerFragment : } } + ViewCompat.setOnApplyWindowInsetsListener(view) { v, insets -> + val systemBars = insets.getInsets( + WindowInsetsCompat.Type.systemBars() or + WindowInsetsCompat.Type.displayCutout() + ) + v.updatePadding( + systemBars.left, + systemBars.top, + systemBars.right, + systemBars.bottom, + ) + WindowInsetsCompat.CONSUMED + } + // Debug menu views.homeDrawerHeaderDebugView.debouncedClicks { sharedActionViewModel.post(HomeActivitySharedAction.CloseDrawer) diff --git a/vector/src/main/java/im/vector/app/features/home/room/breadcrumbs/BreadcrumbsFragment.kt b/vector/src/main/java/im/vector/app/features/home/room/breadcrumbs/BreadcrumbsFragment.kt index ccad10150a..6f32572420 100644 --- a/vector/src/main/java/im/vector/app/features/home/room/breadcrumbs/BreadcrumbsFragment.kt +++ b/vector/src/main/java/im/vector/app/features/home/room/breadcrumbs/BreadcrumbsFragment.kt @@ -11,6 +11,9 @@ import android.os.Bundle import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import androidx.core.view.ViewCompat +import androidx.core.view.WindowInsetsCompat +import androidx.core.view.updatePadding import com.airbnb.mvrx.fragmentViewModel import com.airbnb.mvrx.withState import dagger.hilt.android.AndroidEntryPoint @@ -38,6 +41,19 @@ class BreadcrumbsFragment : override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) + ViewCompat.setOnApplyWindowInsetsListener(views.breadcrumbsRecyclerView) { v, insets -> + val systemBars = insets.getInsets( + WindowInsetsCompat.Type.systemBars() or + WindowInsetsCompat.Type.displayCutout() + ) + v.updatePadding( + systemBars.left, + systemBars.top, + systemBars.right, + systemBars.bottom, + ) + WindowInsetsCompat.CONSUMED + } setupRecyclerView() sharedActionViewModel = activityViewModelProvider.get(RoomDetailSharedActionViewModel::class.java) }