Skip to content

android fix#29290

Open
chrisnojima wants to merge 4 commits into
nojima/HOTPOT-next-670-clean-2from
nojima/HOTPOT-android-fix
Open

android fix#29290
chrisnojima wants to merge 4 commits into
nojima/HOTPOT-next-670-clean-2from
nojima/HOTPOT-android-fix

Conversation

@chrisnojima
Copy link
Copy Markdown
Contributor

No description provided.

configureCache is iOS-only native in expo-image 56; unguarded module-load
call threw on Android, aborting registerComponent and crashing startup.
Android targets SDK 35+ which enforces edge-to-edge, so pushed stack
screens drew content under the system nav bar. Mirror TabScreenWrapper
and wrap StackScreenWrapper in RNScreensSafeAreaView with a bottom edge
on Android.
The bottom tab bar only hides for screens that live in the app root stack
(above the tabs). Other tabs push distinct routes there; Files was the
exception because tapping a folder re-pushed fsRoot inside the fsTab stack,
keeping the bar visible.

Add fsBrowse (same screen as fsRoot, but not a tab root) so on phones it
lands in the root stack and hides the tab bar on push, matching every other
tab. Route within-Files folder navigation (folder taps, parent nav, conflict
/reset banners, destination-picker) through fsBrowse; leave outside-Files
entries (navToPath, deeplinks, linking) on fsRoot so they still land in the
Files tab. public-reminder dismiss now targets the current route so its
replace collapses to setParams instead of a cross-stack replace; daemon
treats fsBrowse as an fs screen.
- bump work-runtime 2.11.1->2.11.2, firebase-messaging 25.0.1->25.0.2,
  msgpack-core 0.9.10->0.9.12
- fix Gradle 9->10 space-assignment deprecations in our build.gradle files
  (ndkVersion/namespace/multiDexEnabled/signingConfig/maven url)
- android:debug now builds+installs+launches MainActivity directly via a
  script instead of expo run:android, avoiding the broken
  keybase://expo-development-client deep link (no expo-dev-client bundled)
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR improves the Android developer workflow and fixes several Android/mobile navigation and layout issues, primarily around edge-to-edge safe areas and Files navigation behavior.

Changes:

  • Add a custom Android debug script and wire it up as yarn android:debug to avoid expo run:android’s dev-client deep link.
  • Adjust native screen layout wrappers to apply a bottom safe-area inset on Android for non-tab stack screens (edge-to-edge).
  • Introduce an fsBrowse route and update multiple Files entry points to push folder browsing above the tab bar on phones.
  • Guard an iOS-only expo-image API call, and modernize Android Gradle repository configuration / bump a few Android dependency versions.

Reviewed changes

Copilot reviewed 14 out of 14 changed files in this pull request and generated no comments.

Show a summary per file
File Description
shared/scripts/android-debug.sh New helper script to build/install/launch Android debug app and start Metro without the dev-client deep link.
shared/package.json Updates android:debug to use the new debug script.
shared/router-v2/screen-layout.tsx Applies Android bottom safe-area handling to stack (non-tab) screens as well.
shared/fs/routes.tsx Adds fsBrowse route and factors shared header options for folder screens.
shared/fs/common/use-open.tsx Changes folder-open navigation to push fsBrowse rather than reusing fsRoot.
shared/fs/simple-screens/oops.tsx Updates “open parent” navigation to use fsBrowse.
shared/fs/common/daemon.tsx Treats fsBrowse as an FS screen for daemon in/out lifecycle tracking.
shared/fs/browser/destination-picker.tsx After move/copy, navigates to the destination folder via fsBrowse.
shared/fs/banner/reset-banner.tsx Navigates to a filtered path using fsBrowse instead of FS.navToPath.
shared/fs/banner/public-reminder.tsx Ensures banner dismissal updates params on either fsRoot or fsBrowse, depending on the current screen.
shared/fs/banner/conflict-banner.tsx Navigates to rebased paths using fsBrowse.
shared/app/index.native.tsx Avoids calling an iOS-only ExpoImage.configureCache API on Android.
shared/android/build.gradle Updates Maven repository url syntax (assignment style).
shared/android/app/build.gradle Updates some Android DSL assignments and bumps a few dependency versions.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants