Skip to content

feat: display open with and link picker as dynamic bottom sheet overlay - #825

Open
Balajitechlabs wants to merge 1 commit into
sameerasw:mainfrom
Balajitechlabs:feature/link-picker-bottom-sheet
Open

feat: display open with and link picker as dynamic bottom sheet overlay#825
Balajitechlabs wants to merge 1 commit into
sameerasw:mainfrom
Balajitechlabs:feature/link-picker-bottom-sheet

Conversation

@Balajitechlabs

@Balajitechlabs Balajitechlabs commented Aug 21, 2026

Copy link
Copy Markdown

Summary

This PR improves the "Open with" / Link Actions experience by turning the link picker from a full-screen opaque activity into a translucent Material 3 bottom sheet overlay.

Why this change?

Previously, when setting Essentials as the default browser/link handler or using "Open with", clicking a link launched a full-screen opaque activity. This felt a bit jarring because it completely took you out of the app you were using (like WhatsApp, Twitter, or Reddit).

With this update:

  • Clicking a link now brings up a clean bottom sheet directly over your current app with a dimmed background.
  • It opens at ~60% screen height by default so you don't lose context, and you can easily drag it up to full screen (100%) or swipe down to dismiss.
  • Tapping anywhere outside the sheet instantly closes it and leaves you right where you were.

What's Changed

  1. Translucent Floating Window:

    • Configured LinkPickerActivity with taskAffinity="", launchMode="singleInstance", and excludeFromRecents="true" so it floats independently over the caller app rather than pulling the main Essentials app to the front.
    • Updated Theme.Essentials.Translucent to have transparent system bars and disabled OS preview flicker.
    • Removed window enter/exit animations so only the bottom sheet animates smoothly.
  2. Material 3 Bottom Sheet UI (LinkPickerAdapter.kt):

    • Replaced the full-screen layout with ModalBottomSheet(skipPartiallyExpanded = false).
    • Preserved the segmented tab switcher ("Open with" / "Share with"), app search filter, and long-press pinning.
    • Retained the URL preview card with quick actions: Copy, Clean tracking parameters (strips utm_*, fbclid, igsh, etc.), and Edit link.
    • Removed obsolete fixed bottom spacers in OpenWithFragment & ShareWithFragment.
  3. String Validations:

    • Fixed placeholder specifier mismatches across the translation files so python3 scripts/validate_strings.py passes with 0 errors and 0 warnings.

Testing & Verification

  • Built debug APK with ./gradlew assembleDebug (compiled successfully).
  • Tested opening links from third-party apps — opens as an overlay, scrolls smoothly, and dismisses cleanly without screen flashing.
  • Verified python3 scripts/validate_strings.py passes all 74 files with 0 issues.

@Balajitechlabs
Balajitechlabs force-pushed the feature/link-picker-bottom-sheet branch from 507f752 to f6ec8ee Compare August 21, 2026 18:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Backlog

Development

Successfully merging this pull request may close these issues.

1 participant