Fix part of #6208: Add edge-to-edge insets to no-toolbar screens#6241
Fix part of #6208: Add edge-to-edge insets to no-toolbar screens#6241Neer-rn wants to merge 17 commits into
Conversation
…tionView insets listener
…ut instead of DrawerLayout
|
Hi @Neer-rn, I'm going to mark this PR as stale because it hasn't had any updates for 7 days. If no further activity occurs within 7 days, it will be automatically closed so that others can take up the issue. |
|
Hi @Neer-rn, I'm going to mark this PR as stale because it hasn't had any updates for 7 days. If no further activity occurs within 7 days, it will be automatically closed so that others can take up the issue. |
|
Hi @Neer-rn, I'm going to mark this PR as stale because it hasn't had any updates for 7 days. If no further activity occurs within 7 days, it will be automatically closed so that others can take up the issue. |
APK & AAB differences analysisNote that this is a summarized snapshot. See the CI artifacts for detailed differences. DevExpand to see flavor specificsUniversal APKAPK file size: 19 MiB (old), 19 MiB (new), 7632 bytes (Added) APK download size (estimated): 18 MiB (old), 18 MiB (new), 3999 bytes (Added) Method count: 265520 (old), 265454 (new), 66 (Removed) Features: 1 (old), 1 (new), 0 (No change) Permissions: 6 (old), 6 (new), 0 (No change) Resources: 7119 (old), 7118 (new), 1 (Removed)
Lesson assets: 113 (old), 113 (new), 0 (No change) AAB differencesExpand to see AAB specificsSupported configurations:
Base APKAPK file size: 19 MiB (old), 19 MiB (new), 7628 bytes (Added)
Configuration hdpiAPK file size: 50 KiB (old), 50 KiB (new), 0 bytes (No change) Configuration ldpiAPK file size: 49 KiB (old), 49 KiB (new), 0 bytes (No change) Configuration mdpiAPK file size: 46 KiB (old), 46 KiB (new), 0 bytes (No change) Configuration tvdpiAPK file size: 86 KiB (old), 86 KiB (new), 0 bytes (No change) Configuration xhdpiAPK file size: 57 KiB (old), 57 KiB (new), 0 bytes (No change) Configuration xxhdpiAPK file size: 63 KiB (old), 63 KiB (new), 0 bytes (No change) Configuration xxxhdpiAPK file size: 64 KiB (old), 64 KiB (new), 0 bytes (No change) AlphaExpand to see flavor specificsUniversal APKAPK file size: 11 MiB (old), 11 MiB (new), 4940 bytes (Added) APK download size (estimated): 10 MiB (old), 10 MiB (new), 2440 bytes (Added) Method count: 118637 (old), 118682 (new), 45 (Added) Features: 1 (old), 1 (new), 0 (No change) Permissions: 6 (old), 6 (new), 0 (No change) Resources: 6054 (old), 6052 (new), 2 (Removed)
Lesson assets: 114 (old), 114 (new), 0 (No change) AAB differencesExpand to see AAB specificsSupported configurations:
Base APKAPK file size: 11 MiB (old), 11 MiB (new), 4940 bytes (Added)
Configuration hdpiAPK file size: 43 KiB (old), 43 KiB (new), 0 bytes (No change) Configuration ldpiAPK file size: 45 KiB (old), 45 KiB (new), 0 bytes (No change) Configuration mdpiAPK file size: 38 KiB (old), 38 KiB (new), 0 bytes (No change) Configuration tvdpiAPK file size: 73 KiB (old), 73 KiB (new), 0 bytes (No change) Configuration xhdpiAPK file size: 50 KiB (old), 50 KiB (new), 0 bytes (No change) Configuration xxhdpiAPK file size: 55 KiB (old), 55 KiB (new), 0 bytes (No change) Configuration xxxhdpiAPK file size: 55 KiB (old), 55 KiB (new), 0 bytes (No change) BetaExpand to see flavor specificsUniversal APKAPK file size: 11 MiB (old), 11 MiB (new), 5108 bytes (Added) APK download size (estimated): 10 MiB (old), 10 MiB (new), 7759 bytes (Added) Method count: 118641 (old), 118686 (new), 45 (Added) Features: 1 (old), 1 (new), 0 (No change) Permissions: 6 (old), 6 (new), 0 (No change) Resources: 6054 (old), 6052 (new), 2 (Removed)
Lesson assets: 114 (old), 114 (new), 0 (No change) AAB differencesExpand to see AAB specificsSupported configurations:
Base APKAPK file size: 11 MiB (old), 11 MiB (new), 5108 bytes (Added)
Configuration hdpiAPK file size: 43 KiB (old), 43 KiB (new), 0 bytes (No change) Configuration ldpiAPK file size: 45 KiB (old), 45 KiB (new), 0 bytes (No change) Configuration mdpiAPK file size: 38 KiB (old), 38 KiB (new), 0 bytes (No change) Configuration tvdpiAPK file size: 73 KiB (old), 73 KiB (new), 0 bytes (No change) Configuration xhdpiAPK file size: 50 KiB (old), 50 KiB (new), 0 bytes (No change) Configuration xxhdpiAPK file size: 55 KiB (old), 55 KiB (new), 0 bytes (No change) Configuration xxxhdpiAPK file size: 55 KiB (old), 55 KiB (new), 0 bytes (No change) GaExpand to see flavor specificsUniversal APKAPK file size: 11 MiB (old), 11 MiB (new), 5152 bytes (Added) APK download size (estimated): 10 MiB (old), 10 MiB (new), 7023 bytes (Added) Method count: 118641 (old), 118686 (new), 45 (Added) Features: 1 (old), 1 (new), 0 (No change) Permissions: 6 (old), 6 (new), 0 (No change) Resources: 6054 (old), 6052 (new), 2 (Removed)
Lesson assets: 114 (old), 114 (new), 0 (No change) AAB differencesExpand to see AAB specificsSupported configurations:
Base APKAPK file size: 11 MiB (old), 11 MiB (new), 5156 bytes (Added)
Configuration hdpiAPK file size: 43 KiB (old), 43 KiB (new), 0 bytes (No change) Configuration ldpiAPK file size: 45 KiB (old), 45 KiB (new), 0 bytes (No change) Configuration mdpiAPK file size: 38 KiB (old), 38 KiB (new), 0 bytes (No change) Configuration tvdpiAPK file size: 73 KiB (old), 73 KiB (new), 0 bytes (No change) Configuration xhdpiAPK file size: 50 KiB (old), 50 KiB (new), 0 bytes (No change) Configuration xxhdpiAPK file size: 55 KiB (old), 55 KiB (new), 0 bytes (No change) Configuration xxxhdpiAPK file size: 55 KiB (old), 55 KiB (new), 0 bytes (No change) |
|
Hi @Neer-rn, I'm going to mark this PR as stale because it hasn't had any updates for 7 days. If no further activity occurs within 7 days, it will be automatically closed so that others can take up the issue. |
|
Hi @Neer-rn, I'm going to mark this PR as stale because it hasn't had any updates for 7 days. If no further activity occurs within 7 days, it will be automatically closed so that others can take up the issue. |
|
Hi @Neer-rn, I'm going to mark this PR as stale because it hasn't had any updates for 7 days. If no further activity occurs within 7 days, it will be automatically closed so that others can take up the issue. |
…dge-toolbar-insets # Conflicts: # app/src/main/java/org/oppia/android/app/profile/AdminPinActivityPresenter.kt # app/src/main/java/org/oppia/android/app/profileprogress/ProfilePictureActivityPresenter.kt # app/src/main/java/org/oppia/android/app/profileprogress/ProfileProgressActivityPresenter.kt # app/src/main/java/org/oppia/android/app/resumelesson/ResumeLessonActivityPresenter.kt # app/src/main/java/org/oppia/android/app/topic/questionplayer/QuestionPlayerActivityPresenter.kt # app/src/main/java/org/oppia/android/app/topic/revisioncard/RevisionCardActivityPresenter.kt
…dge-no-toolbar-screens # Conflicts: # app/src/main/java/org/oppia/android/app/profile/AdminPinActivityPresenter.kt # app/src/main/java/org/oppia/android/app/profileprogress/ProfilePictureActivityPresenter.kt # app/src/main/java/org/oppia/android/app/profileprogress/ProfileProgressActivityPresenter.kt # app/src/main/java/org/oppia/android/app/resumelesson/ResumeLessonActivityPresenter.kt # app/src/main/java/org/oppia/android/app/topic/questionplayer/QuestionPlayerActivityPresenter.kt # app/src/main/java/org/oppia/android/app/topic/revisioncard/RevisionCardActivityPresenter.kt # config/src/java/org/oppia/android/config/platform/feature_flags.textproto # domain/src/main/java/org/oppia/android/domain/platformparameter/FeatureFlagBindingModule.kt # domain/src/main/java/org/oppia/android/domain/platformparameter/FeatureFlagsMapBindingModule.kt # domain/src/test/java/org/oppia/android/domain/oppialogger/analytics/FeatureFlagsLoggerTest.kt # model/src/main/proto/platform_parameter.proto # testing/src/main/java/org/oppia/android/testing/platformparameter/TestPlatformParameterModule.kt # utility/src/main/java/org/oppia/android/util/platformparameter/FeatureFlagConstants.kt
|
Important Review skippedAuto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
Hi @subhajitxyz. Please review this PR. Thanks!! |
Coverage ReportResultsNumber of files assessed: 56 Failure Cases
Exempted coverageFiles exempted from coverage
|
|
Hi @Neer-rn, I'm going to mark this PR as stale because it hasn't had any updates for 7 days. If no further activity occurs within 7 days, it will be automatically closed so that others can take up the issue. |
|
@subhajitxyz just a friendly ping to review this PR. |
|
Please fix those failed checks. |
|
Hi @Neer-rn, I'm going to mark this PR as stale because it hasn't had any updates for 7 days. If no further activity occurs within 7 days, it will be automatically closed so that others can take up the issue. |
Explanation
Fixes part of #6208
This PR handles edge-to-edge window insets for the no-toolbar screens listed in #6208, gated behind the
EnableEdgeToEdgefeature flag. On Android 15+ (API 35+), edge-to-edge is enforced by default and these screens were having their content draw behind the status bar and navigation bar because they don't have a toolbar orAppBarLayoutto anchor the insets to. This PR fixes that for the onboarding, profile chooser, and splash screens.Screens covered
SplashActivityOnboardingFragmentPresenterV1ProfileChooserFragmentPresenter(V2)ProfileChooserFragmentPresenterV1(V1)Colors preserved
All previous status-bar colors are kept exactly the same:
component_color_shared_activity_status_bar_color(the theme's default, inherited viaSplashScreenTheme->OppiaThemeWithoutActionBar)component_color_onboarding_1..4_status_bar_color(changes on slide change the same way as before)component_color_shared_activity_status_bar_colorcomponent_color_shared_profile_status_bar_colorNote on the splash screen
SplashActivityPresenterhas a strict comment banning new platform-parameter injections in the outer presenter (parameters haven't finished loading yet at that point, so injections may fail). So I injected@EnableEdgeToEdgeinto the innerPostParameterLoadingSplashActivityPresenterand applied the edge-to-edge handling insubscribeToOnboardingFlow, which fires the moment parameters load. There is a very brief window (few ms) where the splash shows with the theme's default status bar before the spacer kicks in, but since the spacer color matches the theme's statusBarColor (component_color_shared_activity_status_bar_color), there is no visible flash.Depends on
EdgeToEdgeHelperutilityFull context: #5943 and the edge-to-edge discussion in #6196
Essential Checklist
(reference).
(reference).
For UI-specific PRs only
Before/after screenshots for all covered screens (onboarding slides, profile chooser, splash) will be added shortly.