Add confirmation gate for external app-listing deep links

Ad networks can exploit Aurora's market:// and play.google.com VIEW
intent-filters to launch the app straight into a listing without user
intent (issue #1450). Route these external deep links through a new
translucent DeepLinkConfirmActivity that shows a Play Store-style
bottom sheet over the launching app; the listing only opens after an
explicit tap, defeating auto-launch regardless of referrer.

- DeepLinkConfirmActivity: resolves the listing, shows the sheet, then
  forwards to ComposeActivity via the Screen parcel (Open) or finishes
  (Cancel). Forwards directly when the user opts out.
- DeepLinkConfirmSheet: bottom sheet matching the existing sheets/
  convention; shows the target id and the launching app when known.
- Move the VIEW intent-filters off ComposeActivity onto the new
  activity, using a transparent edge-to-edge translucent theme.
- Add a "Confirm external links" toggle in Security (default on).
This commit is contained in:
Rahul Patel
2026-05-31 01:47:24 +05:30
parent cb682f1f0b
commit f1064ceab9
8 changed files with 295 additions and 2 deletions

View File

@@ -191,6 +191,11 @@
<string name="app_lock_unlock">Unlock</string>
<string name="app_lock_prompt_title">Unlock Aurora Store</string>
<string name="app_lock_prompt_subtitle">Enter phone screen lock pattern, PIN, password or fingerprint</string>
<string name="confirm_deeplink_title">Confirm external links</string>
<string name="confirm_deeplink_summary">Ask before opening an app listing from a link, preventing ads from launching Aurora Store without your consent.</string>
<string name="confirm_deeplink_sheet_title">Continue to Aurora Store?</string>
<string name="confirm_deeplink_sheet_message">An external app wants to open Aurora Store</string>
<string name="confirm_deeplink_sheet_source">Opened from %1$s</string>
<string name="installer_service_available">"Aurora Services is available and ready to install."</string>
<string name="installer_service_unavailable">Install Aurora Services 1.0.9 or above, or change the installer.</string>
<string name="installer_service_misconfigured">Set up Aurora Services and grant all permissions first.</string>

View File

@@ -35,6 +35,14 @@
<item name="android:windowTranslucentNavigation">true</item>
</style>
<!-- Translucent variant with edge-to-edge transparent system bars (no status bar scrim) -->
<style name="AppTheme.Translucent.Transparent">
<item name="android:windowTranslucentStatus">false</item>
<item name="android:windowTranslucentNavigation">false</item>
<item name="android:statusBarColor">@android:color/transparent</item>
<item name="android:navigationBarColor">@android:color/transparent</item>
</style>
<style name="AppTheme.BottomSheetStyle" parent="Widget.Material3.BottomSheet" />
<style name="Chip.Filter" parent="@style/Widget.Material3.Chip.Filter" />