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

@@ -103,6 +103,15 @@
<intent-filter>
<action android:name="android.intent.action.SHOW_APP_INFO" />
</intent-filter>
</activity>
<!-- Confirmation gate for external app-listing deep links (market:// & play.google.com) -->
<activity
android:name=".DeepLinkConfirmActivity"
android:excludeFromRecents="true"
android:exported="true"
android:launchMode="singleTop"
android:theme="@style/AppTheme.Translucent.Transparent">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
@@ -121,7 +130,6 @@
<data android:scheme="https" />
<data android:host="market.android.com" />
<data android:host="play.google.com" />
<data android:host="play.google.com" />
</intent-filter>
</activity>