Repository navigation
Conversation
Replace the top swipeable SlidingTabLayout on the home screen with a Material BottomNavigationView (Surahs / Juz / Bookmarks) at the bottom, within easier thumb reach. - Keep the existing ViewPager and its 3 fragments; sync selection in both directions (tap to switch and swipe), with RTL-aware index mapping. - Add a contained Material ThemeOverlay applied only on the bottom nav, so the rest of the AppCompat-themed app is untouched. - Add nav icons, menu, and a selected/unselected color selector. - Move the bottom navigation-bar inset to the bottom nav; the list fragments no longer add their own bottom inset padding. Co-authored-by: Cursor <cursoragent@cursor.com>
ThemeOverlay.MaterialComponents.DayNight does not exist in the Material Components library, causing resource linking to fail. Use the Theme.MaterialComponents.DayNight.Bridge theme, which supplies the Material attributes BottomNavigationView needs on top of the app's AppCompat theme. Co-authored-by: Cursor <cursoragent@cursor.com>
Relocate the home screen action toolbar (last page, search, overflow menu) below the surah/juz pager so it sits directly above the bottom navigation bar, keeping all primary controls within thumb reach. Reserve the bottom window inset so the toolbar and bottom navigation clear the navigation/ gesture bar in edge-to-edge mode. Co-authored-by: Cursor <cursoragent@cursor.com>
Order the home screen action toolbar as the bottom-most element, beneath the Surahs/Juz/Bookmarks navigation bar. Co-authored-by: Cursor <cursoragent@cursor.com>
The bottom-most action toolbar no longer uses ToolBarArea elevation, so its shadow is not cast downward into the gesture bar. Elevation stays on the bottom navigation bar above it, separating the scrolling content from the bottom chrome. Co-authored-by: Cursor <cursoragent@cursor.com>
Use the same Material Components theme on the bottom action toolbar as the bottom navigation bar so icon and title colors match. Extend BottomNavTheme with shared control and text color attributes for toolbar rendering. Co-authored-by: Cursor <cursoragent@cursor.com>
Wrap the bottom navigation and action toolbar in a single elevated container so the shadow separates scrolling content from the bottom chrome instead of casting between the two bars. Give the toolbar an explicit flat background and zero elevation so it matches the navigation bar surface. Co-authored-by: Cursor <cursoragent@cursor.com>
Material BottomNavigationView still applied a default elevation shadow onto the action toolbar even with android:elevation="0dp" in XML. Remove wrapper elevation, disable elevation overlays in BottomNavTheme, force zero elevation and translationZ in code, and replace the content separator with a flat top divider drawable. Co-authored-by: Cursor <cursoragent@cursor.com>
Include IME insets in the home screen root window inset listener so the bottom navigation and action toolbar move above the soft keyboard when the SearchView is expanded. Co-authored-by: Cursor <cursoragent@cursor.com>
Hide the bottom navigation while SearchView is expanded and apply IME insets to the action toolbar only, instead of lifting the entire bottom chrome stack above the keyboard. Co-authored-by: Cursor <cursoragent@cursor.com>
|
Hi @kkebb I checked the merge conflict on #3688 and resolved it against the latest main. The conflict was only in BookmarksFragment.kt. I kept the new bookmark sync/sign-in card, empty state, and pull-to-refresh changes from main, while preserving this PR’s bottom navigation behavior by avoiding duplicate bottom inset padding on the bookmarks list. Validation passed with: Commit: 2239d2c |
|
Finaly the options is moving down💚💚 |
Thank you khalid, i am working on this amazing project make sure to look into it and contribute. |
Keep the new bookmark sync/sign-in card, empty state, and pull-to-refresh from main. Continue omitting list bottom inset padding so the bottom navigation owns that inset. Co-authored-by: Cursor <cursoragent@cursor.com>
|
Reconciled against latest |
|
can we approve the other MRs as well and get them all merged? all related MRs are listed in the description |
Bring the home bottom navigation up to date with main. Co-authored-by: Cursor <cursoragent@cursor.com>
|
@ahmedre Updated with latest
Actions is waiting on workflow approval before CI can run. Could you approve the workflows and take a look when you have a chance? |
Summary
Reworks the home/index screen (
QuranActivity) chrome so the primary navigation and the action toolbar both live at the bottom of the screen, within easy thumb reach.BottomNavigationViewat the bottom.Toolbarremains the support action bar, so all menu items behave exactly as before.BottomNavTheme(Material Components Bridge) to both the bottom navigation and the action toolbar so icon/title colors match.abs(position - 2)mapping.PR stack & overlap
This PR is independent of the other two UX PRs. It does not share any files with #3687 or #3686.
PagerActivity)QuranActivity)Both bottom PRs use similar patterns (bottom chrome, inset handling, search keyboard behavior) but on different activities and layout files. They can merge in either order.
Merged onto latest
main(2026-09-09). The only conflict wasBookmarksFragment.kt: kept main's bookmark sync/sign-in card, empty state, and pull-to-refresh, and continued omitting list bottom-inset padding so the bottom navigation owns that inset.Changes
res/layout/quran_index.xml— pager weighted on top;bottom_chromecontainer at bottom with nav then toolbar; flat backgrounds and zero elevation.res/drawable/bottom_chrome_background.xml— flat toolbar color with 1dp top divider for content separation.ui/QuranActivity.kt— bottom-nav ↔ pager wiring; root bottom inset + toolbar IME handling; hide nav on search expand; programmatic zero elevation on bottom chrome views.ui/fragment/{SuraList,JuzList,Bookmarks}Fragment.kt— removed per-list bottom inset padding (now owned by bottom chrome).menu/bottom_nav_menu.xml,drawable/ic_nav_{surahs,juz,bookmarks}.xml,color/bottom_nav_item_color.xml,BottomNavThemeinthemes.xml.Related
Test plan
mainstill work with the bottom chrome.Test results
main):appunit test suite passing (0 failures, 0 errors)Note: the original
BottomNavThemereferencedThemeOverlay.MaterialComponents.DayNight, which does not exist in the Material Components library and caused resource linking to fail. It now usesTheme.MaterialComponents.DayNight.Bridge.Made with Cursor