Skip to content

feat: deep link#781

Closed
ibrahimozkn wants to merge 38 commits intodevfrom
feat/deep-link
Closed

feat: deep link#781
ibrahimozkn wants to merge 38 commits intodevfrom
feat/deep-link

Conversation

@ibrahimozkn
Copy link
Copy Markdown
Contributor

@ibrahimozkn ibrahimozkn commented Dec 1, 2025

TODO


Later todo other branch


This pull request adds deep linking support for both Android and iOS platforms, enabling the app to handle incoming links and route users to specific content. The changes include updates to the app manifests, entitlement files, and the addition of asset association files for web verification. Additionally, the handling of unknown routes in the app has been streamlined.

Deep linking support:

  • Android: Enabled deep linking in AndroidManifest.xml by adding relevant intent filters and meta-data for HTTP, HTTPS, and custom schemes.
  • iOS: Enabled deep linking in Info.plist and added URL scheme configuration for studyu-app.
  • iOS: Updated Runner.entitlements to support associated domains for universal links.

Web association files:

  • Added assetlinks.json for Android and apple-app-site-association for iOS in the .well-known directory to support app link verification. [1] [2]

Routing improvements:

  • Updated the unknownRoute handler in routes.dart to show a loading screen instead of a generic error message, improving the user experience when an unknown route is encountered.

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This pull request implements deep linking functionality for the StudyU mobile application on both Android and iOS platforms, enabling users to navigate directly to specific content via URLs. The implementation includes platform-specific manifest configurations, web association files for app link verification, and modifications to route handling behavior.

Key changes:

  • Added Android App Links and iOS Universal Links support with corresponding verification files
  • Configured custom URL scheme studyu-app for both platforms
  • Modified unknown route handling to display a loading screen instead of an error message

Reviewed changes

Copilot reviewed 7 out of 7 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
app/android/app/src/main/AndroidManifest.xml Added deep linking intent filters with meta-data for http, https, and custom scheme handling
app/ios/Runner/Info.plist Enabled Flutter deep linking and configured custom URL scheme studyu-app
app/ios/Runner/Runner.entitlements Added associated domains for universal links support
app/web/.well-known/assetlinks.json Created Android app link verification file with package name and certificate fingerprints
app/web/.well-known/apple-app-site-association Created iOS universal links verification file with app ID and path configuration
app/lib/routes.dart Changed unknown route handler from error display to loading screen
app/lib/l10n/app_localizations_de.dart Removed extraneous blank line for formatting consistency

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread app/android/app/src/main/AndroidManifest.xml Outdated
Comment thread app/lib/routes.dart Outdated
Comment thread app/ios/Runner/Info.plist
@github-actions
Copy link
Copy Markdown

github-actions bot commented Dec 1, 2025

Visit the preview URL for this PR (updated for commit f4e25b9):

(expires Tue, 24 Mar 2026 10:51:35 GMT)

🔥 via Firebase Hosting GitHub Action 🌎

Sign: 2149dad49ed83535217e50d5c18c0c8c90da629b

johannesvedder and others added 18 commits December 4, 2025 13:57
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
- Removed the old routing system and replaced it with GoRouter for improved navigation management.
- Created a new app_router.dart file to define route paths and configure the GoRouter instance.
- Updated all screen navigation calls to use context.push() and context.go() methods from GoRouter.
- Deleted the old routes.dart file as it is no longer needed.
- Adjusted the main app structure to initialize the GoRouter in the MyApp widget.
- Updated localization files to reflect changes in study schedule descriptions.
- Use context.go instead of context.push for navigation consistency
- Replace hardcoded 3-second delay with SnackBar for better UX
- Remove unused _deepLinkError state variable and error banner UI
- Errors are now shown via dismissible SnackBar that persists after navigation
Add redirect logic to extract path from studyu-app:// deep links.
When a deep link like studyu-app://invite/12345678 is received,
the redirect extracts the path (/invite/12345678) for GoRouter.
Fixes GoException 'no routes for location: /' by adding a root route
that redirects to /loading.
- Update DeepLinkService.fetchStudyByInviteCode to use RPC function
- Refactor study_selection.dart to use DeepLinkService instead of
  inline Supabase calls
- This removes code duplication and centralizes invite logic
…fetchByInviteCode` methods to the `Study` model.
ibrahimozkn and others added 3 commits December 11, 2025 11:28
- Add notifyListeners() to clearPendingDeepLink for state consistency
- Pass activeStudyId to processDeepLink in TermsScreen
- Handle alreadyEnrolled case to redirect to dashboard
- Add try-catch for fetchByInviteCode in InviteCodeDialog
- Extract duplicate _getDeepLinkErrorMessage to shared helper
…vite codes, supported by new environment variables and localization.
@github-actions github-actions bot added dependencies Pull requests that update a dependency file designer_v2 labels Jan 10, 2026
@gitguardian
Copy link
Copy Markdown

gitguardian bot commented Mar 17, 2026

⚠️ GitGuardian has uncovered 1 secret following the scan of your pull request.

Please consider investigating the findings and remediating the incidents. Failure to do so may lead to compromising the associated services or software components.

🔎 Detected hardcoded secret in your pull request
GitGuardian id GitGuardian status Secret Commit Filename
23178981 Triggered JSON Web Token f4e25b9 flutter_common/lib/envs/.env.dev View secret
🛠 Guidelines to remediate hardcoded secrets
  1. Understand the implications of revoking this secret by investigating where it is used in your code.
  2. Replace and store your secret safely. Learn here the best practices.
  3. Revoke and rotate this secret.
  4. If possible, rewrite git history. Rewriting git history is not a trivial act. You might completely break other contributing developers' workflow and you risk accidentally deleting legitimate data.

To avoid such incidents in the future consider


🦉 GitGuardian detects secrets in your source code to help developers and security teams secure the modern development process. You are seeing this because you or someone else with access to this repository has authorized GitGuardian to scan your pull request.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

app core dependencies Pull requests that update a dependency file designer_v2 flutter_common

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants