-
Notifications
You must be signed in to change notification settings - Fork 3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Restrict NewDot deep/universal links to specific paths on Android #6068
Conversation
</intent-filter> | ||
<intent-filter> | ||
<action android:name="android.intent.action.VIEW"/> | ||
<category android:name="android.intent.category.DEFAULT"/> | ||
<category android:name="android.intent.category.BROWSABLE"/> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We only need one intent filter for each scheme.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looking good, just one question about the setpassword
path
<intent-filter> | ||
<action android:name="android.intent.action.MAIN" /> | ||
<category android:name="android.intent.category.LAUNCHER" /> | ||
</intent-filter> | ||
|
||
<!-- Custom URI handlers. Used to intercept Urban Airship deep links. --> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I was wondering if we could remove the expensify-cash scheme here, but looks like that's going to be handled in https://github.com/Expensify/Expensify/issues/176081 👍
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah good spot. I was going to do this separately. Thanks for the existing issue link!
6f0e1a2
to
6adaff3
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This LGTM, but how is this working for iOS is you're only changing AndroidManifest.xml?
@TomatoToaster I should have made this clearer, but iOS was already restricting the universal links which can open the app. |
Sorry I saw the |
✋ This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release. |
🚀 Deployed to staging by @TomatoToaster in version: 1.1.10-3 🚀
|
@Julesssss @Jag96 @TomatoToaster Should we QA this on Android only or across all platforms? Description in test steps is referring to Android only. |
Hi @mvtglobally, this only needs to be tested on Android. We have some follow-up PRs that will ensure the other platforms are tested. |
🚀 Deployed to production by @roryabraham in version: 1.1.11-1 🚀
|
Details
We need to restrict universal/deep-link handling to specific, supported paths. This is because the NewDot app was intercepting every web URL to open the app, but did not handle these links gracefully. For example, the N6 inbox card should open the NewDot webpage and create a new workspace automatically. The NewDot mobile app was intercepting the link but showing erros and getting stuck at the homepage.
This already works correctly for iOS, so this PR aligns Android with iOS. Restricting deep links to specific paths fixes the above issue AND aligns NewDot with OldDot.
Part 1 of a three part issue
Later on we will probably want to intercept additional URLs and handle them within the app, but this is a lot of work and not yet necessary.
Fixed Issues
https://github.com/Expensify/Expensify/issues/179366
Tests
Run these tests on Android only
Android
https://user-images.githubusercontent.com/10736861/139106960-22338e5e-f870-4eb7-83b6-6c54db7b3f2a.mp4
iOS
https://user-images.githubusercontent.com/10736861/139107214-69d91793-30a1-4b51-ae48-f4e2bf329636.mp4
QA Steps
Run the test steps listed above
Tested On
Screenshots
Web
Mobile Web
Desktop
iOS
^ see screencast in issue description
Android
^ see screencast in issue description