Исправлены push-уведомления: восстановлена подписка токена и fallback обработки
This commit is contained in:
@@ -187,15 +187,9 @@ fun InAppCameraScreen(
|
||||
window.statusBarColor = originalStatusBarColor
|
||||
insetsController.isAppearanceLightStatusBars = originalLightStatusBars
|
||||
|
||||
// Navigation bar: восстанавливаем только если есть нативные кнопки
|
||||
if (com.rosetta.messenger.ui.utils.NavigationModeUtils.hasNativeNavigationBar(context)) {
|
||||
window.navigationBarColor = originalNavigationBarColor
|
||||
insetsController.isAppearanceLightNavigationBars = originalLightNavigationBars
|
||||
} else {
|
||||
insetsController.hide(androidx.core.view.WindowInsetsCompat.Type.navigationBars())
|
||||
insetsController.systemBarsBehavior =
|
||||
androidx.core.view.WindowInsetsControllerCompat.BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE
|
||||
}
|
||||
window.navigationBarColor = originalNavigationBarColor
|
||||
insetsController.isAppearanceLightNavigationBars = originalLightNavigationBars
|
||||
insetsController.show(androidx.core.view.WindowInsetsCompat.Type.navigationBars())
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -173,15 +173,10 @@ fun OnboardingScreen(
|
||||
if (!view.isInEditMode) {
|
||||
val window = (view.context as android.app.Activity).window
|
||||
val insetsController = WindowCompat.getInsetsController(window, view)
|
||||
if (NavigationModeUtils.hasNativeNavigationBar(view.context)) {
|
||||
window.navigationBarColor =
|
||||
if (isDarkTheme) 0xFF1E1E1E.toInt() else 0xFFFFFFFF.toInt()
|
||||
} else {
|
||||
// Жестовая навигация — прячем бар
|
||||
insetsController.hide(WindowInsetsCompat.Type.navigationBars())
|
||||
insetsController.systemBarsBehavior =
|
||||
WindowInsetsControllerCompat.BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE
|
||||
}
|
||||
window.navigationBarColor =
|
||||
if (isDarkTheme) 0xFF1E1E1E.toInt() else 0xFFFFFFFF.toInt()
|
||||
insetsController.show(WindowInsetsCompat.Type.navigationBars())
|
||||
insetsController.isAppearanceLightNavigationBars = !isDarkTheme
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -55,25 +55,15 @@ object NavigationModeUtils {
|
||||
}
|
||||
|
||||
/**
|
||||
* Показывает или прячет navigation bar в зависимости от типа навигации.
|
||||
* - Кнопочная навигация → показываем бар
|
||||
* - Жестовая навигация → прячем бар, свайп снизу временно покажет
|
||||
* Показывает navigation bar на всех устройствах.
|
||||
*/
|
||||
fun applyNavigationBarVisibility(
|
||||
insetsController: WindowInsetsControllerCompat,
|
||||
context: Context,
|
||||
isDarkTheme: Boolean
|
||||
) {
|
||||
if (hasNativeNavigationBar(context)) {
|
||||
// Есть нативные кнопки — показываем навигационный бар
|
||||
insetsController.show(WindowInsetsCompat.Type.navigationBars())
|
||||
insetsController.isAppearanceLightNavigationBars = !isDarkTheme
|
||||
} else {
|
||||
// Жестовая навигация — прячем навигационный бар
|
||||
insetsController.hide(WindowInsetsCompat.Type.navigationBars())
|
||||
insetsController.systemBarsBehavior =
|
||||
WindowInsetsControllerCompat.BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE
|
||||
}
|
||||
insetsController.show(WindowInsetsCompat.Type.navigationBars())
|
||||
insetsController.isAppearanceLightNavigationBars = !isDarkTheme
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -6,7 +6,6 @@ import android.view.View
|
||||
import android.view.Window
|
||||
import androidx.core.view.WindowCompat
|
||||
import androidx.core.view.WindowInsetsCompat
|
||||
import androidx.core.view.WindowInsetsControllerCompat
|
||||
|
||||
data class SystemBarsState(
|
||||
val statusBarColor: Int,
|
||||
@@ -48,16 +47,10 @@ object SystemBarsStyleUtils {
|
||||
if (window == null || view == null) return
|
||||
val insetsController = WindowCompat.getInsetsController(window, view)
|
||||
|
||||
if (NavigationModeUtils.hasNativeNavigationBar(context)) {
|
||||
insetsController.show(WindowInsetsCompat.Type.navigationBars())
|
||||
if (state != null) {
|
||||
window.navigationBarColor = state.navigationBarColor
|
||||
insetsController.isAppearanceLightNavigationBars = state.isLightNavigationBars
|
||||
}
|
||||
} else {
|
||||
insetsController.hide(WindowInsetsCompat.Type.navigationBars())
|
||||
insetsController.systemBarsBehavior =
|
||||
WindowInsetsControllerCompat.BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE
|
||||
insetsController.show(WindowInsetsCompat.Type.navigationBars())
|
||||
if (state != null) {
|
||||
window.navigationBarColor = state.navigationBarColor
|
||||
insetsController.isAppearanceLightNavigationBars = state.isLightNavigationBars
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user