feat: improve F-Droid and Google Play deep link handling
Description
This merge request improves the deep link handling for F-Droid and Google Play URLs within App Lounge.
Screen record
Technical details
Previously, the app would intercept all links to f-droid.org
, preventing users from browsing the F-Droid website directly. This change modifies the intent-filter
in AndroidManifest.xml
to be more specific, ensuring that App Lounge only opens links to individual application pages, not the entire domain.
The following changes have been made:
- The
intent-filter
forf-droid.org
now uses apathPattern
that requires the URL to contain/packages/
followed by a valid package name format (e.g.,com.example.app
). - The
intent-filter
forplay.google.com
now uses apathPrefix
to only handle/store/apps/details
links. - This allows users to browse the F-Droid website and other non-app pages on the Google Play Store without being redirected to App Lounge.
Handling links when both App Lounge and F-Droid are installed
App Lounge, being a system app, has the default handler of these autoVerified links. So, in case where both App Lounge and F-Droid are installed, App Lounge gets the chance to open the link.
However, users can disable this setting by going to Settings > Apps > App Lounge > Open by default and disable the 'Open supported links' switch.
![]() |
![]() |
![]() |
Next, if they want to enable F-Droid to handle this links, the procedure is the same as above with F-Droid's setting and adding handlers using 'Add link' option.
![]() |
![]() |
![]() |
Tests
- On /e/OS Browser, search for "fdroid about".
- Find the result which contains f-droid.org/about. (You can long press the link on the search result to verify)
- Click on the search result.
- Verify that the link opens in the Browser and doesn't navigate you to App Lounge.
- Now Search for a specific app, e.g. "fdroid thunderbird".
- Click on the F-Droid link from search results.
- Verify that the link opens in App Lounge
Follow same procedure to verify Google Play Store apps and links.
Alternatively, you can test this functionality using the following adb
commands.
Click to expand
Expected to open in App Lounge:
F-Droid:
# App link with locale
adb shell am start -a android.intent.action.VIEW -d "https://f-droid.org/en/packages/com.klee.sapio/"
# App link without locale
adb shell am start -a android.intent.action.VIEW -d "https://f-droid.org/packages/com.klee.sapio/"
Google Play:
# Standard app link
adb shell am start -a android.intent.action.VIEW -d "https://play.google.com/store/apps/details?id=com.whatsapp"
# Shortened app link
adb shell am start -a android.intent.action.VIEW -d "https://play.app.goo.gl/?link=https://play.google.com/store/apps/details?id=com.whatsapp"
Expected to open in a Web Browser:
F-Droid:
# F-Droid homepage
adb shell am start -a android.intent.action.VIEW -d "https://f-droid.org/"
# F-Droid packages list page
adb shell am start -a android.intent.action.VIEW -d "https://f-droid.org/en/packages/"
Google Play:
# Google Play store homepage
adb shell am start -a android.intent.action.VIEW -d "https://play.google.com/store"
# Google Play store 'apps' section
adb shell am start -a android.intent.action.VIEW -d "https://play.google.com/store/apps"