1
0
mirror of https://github.com/vector-im/riotX-android synced 2025-10-05 15:52:47 +02:00

Merge pull request #9067 from element-hq/feature/fga/fix_window_insets

Fix window insets
This commit is contained in:
ganfra
2025-08-06 14:22:56 +02:00
committed by GitHub
6 changed files with 40 additions and 3 deletions

View File

@@ -27,7 +27,7 @@ def bigImageViewer = "1.8.1"
def jjwt = "0.11.5" def jjwt = "0.11.5"
def vanniktechEmoji = "0.16.0" def vanniktechEmoji = "0.16.0"
def sentry = "6.18.1" def sentry = "6.18.1"
def fragment = "1.8.1" def fragment = "1.8.6"
// Testing // Testing
def mockk = "1.13.11" def mockk = "1.13.11"
def espresso = "3.6.1" def espresso = "3.6.1"
@@ -50,7 +50,7 @@ ext.libs = [
'activity' : "androidx.activity:activity-ktx:1.9.0", 'activity' : "androidx.activity:activity-ktx:1.9.0",
'appCompat' : "androidx.appcompat:appcompat:1.7.0", 'appCompat' : "androidx.appcompat:appcompat:1.7.0",
'biometric' : "androidx.biometric:biometric:1.1.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", 'recyclerview' : "androidx.recyclerview:recyclerview:1.3.0",
'exifinterface' : "androidx.exifinterface:exifinterface:1.3.6", 'exifinterface' : "androidx.exifinterface:exifinterface:1.3.6",
'fragmentKtx' : "androidx.fragment:fragment-ktx:$fragment", 'fragmentKtx' : "androidx.fragment:fragment-ktx:$fragment",

View File

@@ -213,6 +213,7 @@ ext.groups = [
'org.jitsi', 'org.jitsi',
'org.json', 'org.json',
'org.jsoup', 'org.jsoup',
'org.jspecify',
'org.junit', 'org.junit',
'org.junit.jupiter', 'org.junit.jupiter',
'org.junit.platform', 'org.junit.platform',

View File

@@ -161,6 +161,7 @@ class VectorApplication :
"Noto Color Emoji Compat", "Noto Color Emoji Compat",
R.array.com_google_android_gms_fonts_certs R.array.com_google_android_gms_fonts_certs
) )
@Suppress("DEPRECATION")
FontsContractCompat.requestFont(this, fontRequest, emojiCompatFontProvider, getFontThreadHandler()) FontsContractCompat.requestFont(this, fontRequest, emojiCompatFontProvider, getFontThreadHandler())
vectorLocale.init() vectorLocale.init()
ThemeUtils.init(this) ThemeUtils.init(this)

View File

@@ -27,6 +27,7 @@ import androidx.core.app.MultiWindowModeChangedInfo
import androidx.core.util.Consumer import androidx.core.util.Consumer
import androidx.core.view.MenuProvider import androidx.core.view.MenuProvider
import androidx.core.view.ViewCompat import androidx.core.view.ViewCompat
import androidx.core.view.ViewGroupCompat
import androidx.core.view.WindowInsetsCompat import androidx.core.view.WindowInsetsCompat
import androidx.core.view.isVisible import androidx.core.view.isVisible
import androidx.core.view.updatePadding import androidx.core.view.updatePadding
@@ -210,6 +211,7 @@ abstract class VectorBaseActivity<VB : ViewBinding> : AppCompatActivity(), Maver
ThemeUtils.setActivityTheme(this, getOtherThemes()) ThemeUtils.setActivityTheme(this, getOtherThemes())
viewModelFactory = activityEntryPoint.viewModelFactory() viewModelFactory = activityEntryPoint.viewModelFactory()
enableEdgeToEdge() enableEdgeToEdge()
ViewGroupCompat.installCompatInsetsDispatch(window.decorView)
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
addOnMultiWindowModeChangedListener(onMultiWindowModeChangedListener) addOnMultiWindowModeChangedListener(onMultiWindowModeChangedListener)
setupMenu() setupMenu()
@@ -416,6 +418,7 @@ abstract class VectorBaseActivity<VB : ViewBinding> : AppCompatActivity(), Maver
// Just log that a change occurred. // Just log that a change occurred.
Timber.w("MDM data has been updated") Timber.w("MDM data has been updated")
} }
ViewCompat.setOnApplyWindowInsetsListener(rootView) { v, insets -> ViewCompat.setOnApplyWindowInsetsListener(rootView) { v, insets ->
val systemBars = insets.getInsets( val systemBars = insets.getInsets(
WindowInsetsCompat.Type.systemBars() or WindowInsetsCompat.Type.systemBars() or
@@ -428,7 +431,7 @@ abstract class VectorBaseActivity<VB : ViewBinding> : AppCompatActivity(), Maver
systemBars.right, systemBars.right,
systemBars.bottom, systemBars.bottom,
) )
insets WindowInsetsCompat.CONSUMED
} }
} }

View File

@@ -13,7 +13,9 @@ import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import androidx.core.app.ActivityOptionsCompat import androidx.core.app.ActivityOptionsCompat
import androidx.core.view.ViewCompat import androidx.core.view.ViewCompat
import androidx.core.view.WindowInsetsCompat
import androidx.core.view.isVisible import androidx.core.view.isVisible
import androidx.core.view.updatePadding
import dagger.hilt.android.AndroidEntryPoint import dagger.hilt.android.AndroidEntryPoint
import im.vector.app.R import im.vector.app.R
import im.vector.app.core.extensions.observeK 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 // Debug menu
views.homeDrawerHeaderDebugView.debouncedClicks { views.homeDrawerHeaderDebugView.debouncedClicks {
sharedActionViewModel.post(HomeActivitySharedAction.CloseDrawer) sharedActionViewModel.post(HomeActivitySharedAction.CloseDrawer)

View File

@@ -11,6 +11,9 @@ import android.os.Bundle
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup 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.fragmentViewModel
import com.airbnb.mvrx.withState import com.airbnb.mvrx.withState
import dagger.hilt.android.AndroidEntryPoint import dagger.hilt.android.AndroidEntryPoint
@@ -38,6 +41,19 @@ class BreadcrumbsFragment :
override fun onViewCreated(view: View, savedInstanceState: Bundle?) { override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState) 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() setupRecyclerView()
sharedActionViewModel = activityViewModelProvider.get(RoomDetailSharedActionViewModel::class.java) sharedActionViewModel = activityViewModelProvider.get(RoomDetailSharedActionViewModel::class.java)
} }