From a56ed1ba75de48605867114b2a66129de4c2886a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 3 Mar 2025 06:45:41 -0500 Subject: [PATCH 1/3] build(deps): Bump io.sentry.android.gradle from 5.2.0 to 5.3.0 (#21720) Bumps [io.sentry.android.gradle](https://github.com/getsentry/sentry-android-gradle-plugin) from 5.2.0 to 5.3.0. - [Release notes](https://github.com/getsentry/sentry-android-gradle-plugin/releases) - [Changelog](https://github.com/getsentry/sentry-android-gradle-plugin/blob/main/CHANGELOG.md) - [Commits](https://github.com/getsentry/sentry-android-gradle-plugin/compare/5.2.0...5.3.0) --- updated-dependencies: - dependency-name: io.sentry.android.gradle dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index c7d5a4ecd1b2..14a0d8ed34e3 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -92,7 +92,7 @@ mockito-kotlin = '4.1.0' mpandroidchart = 'v3.1.0' photoview = '2.3.0' robolectric = '4.14.1' -sentry = '5.2.0' +sentry = '5.3.0' squareup-java-poet = '1.13.0' squareup-kotlin-poet = '1.18.1' squareup-okhttp3 = '4.12.0' From a16ebd1ac8df205a1b3f58b63187327dd3d792a0 Mon Sep 17 00:00:00 2001 From: Nick Bradbury Date: Mon, 3 Mar 2025 06:47:17 -0500 Subject: [PATCH 2/3] Fix positioning of toolbar in reader detail (#21719) * Consume insets in BaseAppCompatActivity so they're not passed down elsewhere (specifically, ReaderPostDetailFragment) * Correctly consume insets when adjusting reader detail footer * Reverted consuming insets of reader detail footer * Apply both offsets to main activity and no longer adjust post detail footer * Removed posts, pages, stats, and media settings from excluded activities * Simplify excluded activities * Exclude ReaderPostPagerActivity from edge to edge --- WordPress/src/main/AndroidManifest.xml | 2 +- .../android/ui/main/BaseAppCompatActivity.kt | 185 ++++-------------- .../ui/reader/ReaderPostDetailFragment.kt | 20 +- 3 files changed, 45 insertions(+), 162 deletions(-) diff --git a/WordPress/src/main/AndroidManifest.xml b/WordPress/src/main/AndroidManifest.xml index 7778eb43a657..77659933ab1f 100644 --- a/WordPress/src/main/AndroidManifest.xml +++ b/WordPress/src/main/AndroidManifest.xml @@ -535,7 +535,7 @@ = Build.VERSION_CODES.VANILLA_ICE_CREAM) && - (Build.VERSION.SDK_INT >= Build.VERSION_CODES.VANILLA_ICE_CREAM) + // apply insets for Android 15+ edge-to-edge + if ((Build.VERSION.SDK_INT >= Build.VERSION_CODES.VANILLA_ICE_CREAM) && + excludedActivities.contains(this.localClassName).not() ) { applyInsetOffsets() } @@ -50,142 +44,47 @@ open class BaseAppCompatActivity : AppCompatActivity() { @RequiresApi(Build.VERSION_CODES.R) private fun applyInsetOffsets() { - val excludedActivity = excludedActivities[this.localClassName] - val applyTopOffset = excludedActivity?.applyTopOffset ?: true - val applyBottomOffset = excludedActivity?.applyBottomOffset ?: true + ViewCompat.setOnApplyWindowInsetsListener(window.decorView) { view, insets -> + val innerPadding = insets.getInsets( + WindowInsetsCompat.Type.systemBars() + or WindowInsetsCompat.Type.displayCutout() + ) - if (applyTopOffset || applyBottomOffset) { - ViewCompat.setOnApplyWindowInsetsListener(window.decorView) { view, insets -> - val innerPadding = insets.getInsets( - WindowInsetsCompat.Type.systemBars() - or WindowInsetsCompat.Type.displayCutout() - ) + view.setPadding( + innerPadding.left, + innerPadding.top, + innerPadding.right, + innerPadding.bottom + ) - view.setPadding( - innerPadding.left, - if (applyTopOffset) innerPadding.top else 0, - innerPadding.right, - if (applyBottomOffset) innerPadding.bottom else 0 - ) - - insets - } + WindowInsetsCompat.CONSUMED } } - - private class ActivityOffsets( - var applyTopOffset: Boolean, - var applyBottomOffset: Boolean, - ) - - /** - * Activities that are excluded from the edge-to-edge top offset, bottom offset, or both. Activities not listed - * here will have both offsets applied. Note that many of these excluded activities are Compose-based because - * Compose automatically adjusts for edge-to-edge insets. We may want to revisit this approach as we add more - * Compose-based activities to the project. - */ - private val excludedActivities: HashMap = hashMapOf( - // apply neither top nor bottom offset - BlazeCampaignParentActivity::class.java.name to ActivityOffsets( - applyTopOffset = false, - applyBottomOffset = false - ), - BloggingPromptsListActivity::class.java.name to ActivityOffsets( - applyTopOffset = false, - applyBottomOffset = false - ), - DebugSharedPreferenceFlagsActivity::class.java.name to ActivityOffsets( - applyTopOffset = false, - applyBottomOffset = false - ), - DesignSystemActivity::class.java.name to ActivityOffsets - ( - applyTopOffset = false, - applyBottomOffset = false - ), - DomainManagementActivity::class.java.name to ActivityOffsets( - applyTopOffset = false, - applyBottomOffset = false - ), - EditJetpackSocialShareMessageActivity::class.java.name to ActivityOffsets( - applyTopOffset = false, - applyBottomOffset = false - ), - ExperimentalFeaturesActivity::class.java.name to ActivityOffsets( - applyTopOffset = false, - applyBottomOffset = false - ), - FeedbackFormActivity::class.java.name to ActivityOffsets( - applyTopOffset = false, - applyBottomOffset = false - ), - JetpackFullPluginInstallActivity::class.java.name to ActivityOffsets( - applyTopOffset = false, - applyBottomOffset = false - ), - JetpackRemoteInstallActivity::class.java.name to ActivityOffsets( - applyTopOffset = false, - applyBottomOffset = false - ), - JetpackStaticPosterActivity::class.java.name to ActivityOffsets( - applyTopOffset = false, - applyBottomOffset = false - ), - MediaPreviewActivity::class.java.name to ActivityOffsets( - applyTopOffset = false, - applyBottomOffset = false - ), - MenuActivity::class.java.name to ActivityOffsets( - applyTopOffset = false, - applyBottomOffset = false - ), - NewDomainSearchActivity::class.java.name to ActivityOffsets( - applyTopOffset = false, - applyBottomOffset = false - ), - PersonalizationActivity::class.java.name to ActivityOffsets( - applyTopOffset = false, - applyBottomOffset = false - ), - PurchaseDomainActivity::class.java.name to ActivityOffsets( - applyTopOffset = false, - applyBottomOffset = false - ), - SelfHostedUsersActivity::class.java.name to ActivityOffsets( - applyTopOffset = false, - applyBottomOffset = false - ), - SiteMonitorParentActivity::class.java.name to ActivityOffsets( - applyTopOffset = false, - applyBottomOffset = false - ), - SupportWebViewActivity::class.java.name to ActivityOffsets( - applyTopOffset = false, - applyBottomOffset = false - ), - - // apply bottom offset only - MediaSettingsActivity::class.java.name to ActivityOffsets( - applyTopOffset = false, - applyBottomOffset = true - ), - PagesActivity::class.java.name to ActivityOffsets( - applyTopOffset = false, - applyBottomOffset = true - ), - PostsListActivity::class.java.name to ActivityOffsets( - applyTopOffset = false, - applyBottomOffset = true - ), - StatsActivity::class.java.name to ActivityOffsets( - applyTopOffset = false, - applyBottomOffset = true - ), - - // apply top offset only - WPMainActivity::class.java.name to ActivityOffsets( - applyTopOffset = true, - applyBottomOffset = false - ), - ) } + +/** + * Activities that are excluded from the edge-to-edge offset. Note that many of these excluded activities are + * Compose-based because Compose automatically adjusts for edge-to-edge insets. We may want to revisit this + * approach as we add more Compose-based activities to the project. + */ +private val excludedActivities = listOf( + BlazeCampaignParentActivity::class.java.name, + BloggingPromptsListActivity::class.java.name, + DebugSharedPreferenceFlagsActivity::class.java.name, + DesignSystemActivity::class.java.name, + DomainManagementActivity::class.java.name, + EditJetpackSocialShareMessageActivity::class.java.name, + ExperimentalFeaturesActivity::class.java.name, + FeedbackFormActivity::class.java.name, + JetpackFullPluginInstallActivity::class.java.name, + JetpackRemoteInstallActivity::class.java.name, + JetpackStaticPosterActivity::class.java.name, + MediaPreviewActivity::class.java.name, + MenuActivity::class.java.name, + NewDomainSearchActivity::class.java.name, + PersonalizationActivity::class.java.name, + PurchaseDomainActivity::class.java.name, + SelfHostedUsersActivity::class.java.name, + SiteMonitorParentActivity::class.java.name, + SupportWebViewActivity::class.java.name +) diff --git a/WordPress/src/main/java/org/wordpress/android/ui/reader/ReaderPostDetailFragment.kt b/WordPress/src/main/java/org/wordpress/android/ui/reader/ReaderPostDetailFragment.kt index 68a92507ba0b..67a7cc66ecd9 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/reader/ReaderPostDetailFragment.kt +++ b/WordPress/src/main/java/org/wordpress/android/ui/reader/ReaderPostDetailFragment.kt @@ -403,7 +403,6 @@ class ReaderPostDetailFragment : ViewPagerFragment(), } } - @Suppress("DEPRECATION") private fun initAppBar(view: View) { appBar = view.findViewById(R.id.appbar_with_collapsing_toolbar_layout) toolBar = appBar.findViewById(R.id.toolbar_main) @@ -412,11 +411,11 @@ class ReaderPostDetailFragment : ViewPagerFragment(), // Fixes collapsing toolbar layout being obscured by the status bar when drawn behind it ViewCompat.setOnApplyWindowInsetsListener(appBar) { _: View, insets: WindowInsetsCompat -> - val insetTop = insets.systemWindowInsetTop + val insetTop = insets.getInsets(WindowInsetsCompat. Type. systemBars()).top if (insetTop > 0) { toolBar.setPadding(0, insetTop, 0, 0) } - insets.consumeSystemWindowInsets() + WindowInsetsCompat.CONSUMED } // Fixes viewpager not displaying menu items for first fragment @@ -488,21 +487,6 @@ class ReaderPostDetailFragment : ViewPagerFragment(), params.behavior = HideBottomViewOnScrollBehavior() } layoutFooterBinding.root.isInvisible = true - - // on SDK 35+ edge-to-edge is enabled so we want to avoid covering the navigation bar icons by - // taking the nav bar height into account (nav height will be 0 when gesture nav is enabled) - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.VANILLA_ICE_CREAM) { - layoutFooterBinding.root.findViewById(R.id.reader_detail_footer_button_container) - ?.let { footerContainer -> - footerContainer.setOnApplyWindowInsetsListener { _, insets -> - val navigationBarInsets = insets.getInsets(WindowInsetsCompat.Type.navigationBars()) - val addedMargin = resources.getDimensionPixelSize(R.dimen.margin_small) - (footerContainer.layoutParams as ViewGroup.MarginLayoutParams).bottomMargin = - addedMargin + navigationBarInsets.bottom - insets - } - } - } } }.also { stub -> stub.inflate() From 7e6e0331e085cda6607c468ec9189e4ce38e1f70 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 3 Mar 2025 11:54:34 +0000 Subject: [PATCH 3/3] build(deps): Bump com.google.firebase:firebase-bom (#21721) Bumps com.google.firebase:firebase-bom from 33.9.0 to 33.10.0. --- updated-dependencies: - dependency-name: com.google.firebase:firebase-bom dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Nick Bradbury --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 14a0d8ed34e3..df10ccde509f 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -58,7 +58,7 @@ fladle = '0.17.5' google-autoservice = '1.1.1' google-dagger = '2.55' google-exoplayer = '2.13.3' -google-firebase-bom = '33.9.0' +google-firebase-bom = '33.10.0' google-firebase-iid = '21.1.0' google-flexboxlayout = '3.0.0' google-gson = '2.12.1'