Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
36 commits
Select commit Hold shift + click to select a range
0b28c02
fix: conflict
CodingWithTashi Jun 30, 2026
9635649
Merge branch 'main' of https://github.com/OpenPecha/WeBuddhist-app in…
CodingWithTashi Jun 30, 2026
ca81dd6
fix navigation
CodingWithTashi Jun 30, 2026
f38101d
rename to chants, added mantra and local notification
CodingWithTashi Jul 1, 2026
8bf21e1
feat: timer added
CodingWithTashi Jul 1, 2026
292532e
fix: conflict
CodingWithTashi Jul 1, 2026
079c5b7
fix: noticiations 3b case
CodingWithTashi Jul 1, 2026
ed7c8bd
fix: conflict
CodingWithTashi Jul 2, 2026
6462cf5
Update lib/features/push_notifications/application/push_notification_…
tentamdin Jul 2, 2026
30bb9cf
Update lib/features/push_notifications/presentation/push_message_navi…
tentamdin Jul 2, 2026
f8fbf3e
refactor: replace _SessionCard with PracticeChantListTile for improve…
dhakar66 Jul 2, 2026
3972f03
revert the changes for timer
CodingWithTashi Jul 2, 2026
f18cee3
fix:audio
CodingWithTashi Jul 3, 2026
65680ff
fix:audio
CodingWithTashi Jul 3, 2026
795bcae
localization: add new strings for reader features, bookmarks, and err…
dhakar66 Jul 3, 2026
42263c7
refactor: improve deep link handling by deferring dispatch until rout…
dhakar66 Jul 3, 2026
279397e
base
TenzDelek Jul 3, 2026
6f3bd5b
chore: update app logo across in-app UI and platform assets
tentamdin Jul 3, 2026
e611cc6
last
TenzDelek Jul 3, 2026
b6c850f
Merge pull request #483 from OpenPecha/feat/mantra-navigation
tentamdin Jul 3, 2026
d679e42
fix: remove transformTimeout case from ErrorInterceptor
tentamdin Jul 3, 2026
bffec44
Merge pull request #493 from OpenPecha/feat/mantra-navigation
tentamdin Jul 3, 2026
34c76c2
Merge pull request #488 from OpenPecha/fix/InconsistentUI
tentamdin Jul 3, 2026
5b917d1
refactor: enhance notification sync engine and routine item display w…
tentamdin Jul 3, 2026
5ea05aa
Merge pull request #489 from OpenPecha/task/LeftOverLocalization
tentamdin Jul 3, 2026
4330140
Merge pull request #490 from OpenPecha/fix/ColdStartDeepLink
tentamdin Jul 3, 2026
9f4ea15
Update lib/core/services/app_share/qr_code_bottom_sheet.dart
tentamdin Jul 3, 2026
47c2091
Update lib/features/home/presentation/widgets/plan_list_view.dart
tentamdin Jul 3, 2026
d786703
feat: integrate RecitationFirstSegmentModel into routine items and en…
tentamdin Jul 3, 2026
8554a8d
Merge pull request #492 from OpenPecha/progressbar
tentamdin Jul 3, 2026
c27beeb
Merge pull request #495 from OpenPecha/feat/routine-chant-list-tile-ui
tentamdin Jul 3, 2026
2c10b36
chore: update app icon assets and configuration
Pechabot Jul 3, 2026
4f35289
chore: update app icon and launcher assets
Pechabot Jul 3, 2026
79c8816
chore: remove outdated webuddhist_gold.png asset
Pechabot Jul 3, 2026
e2c434e
Merge branch 'develop' into feature/update-app-logo
tentamdin Jul 3, 2026
0aec3e4
Merge pull request #491 from OpenPecha/feature/update-app-logo
tentamdin Jul 3, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -69,4 +69,5 @@ DEVELOPER_ARCHITECTURE_GUIDE.docx
lib/features/practice/specs/routines-openapi.yaml

# claude
CLAUDE.md
CLAUDE.md
/docs/notification/notification.md
15 changes: 9 additions & 6 deletions android/app/src/main/assets/airbridge.json
Original file line number Diff line number Diff line change
@@ -1,8 +1,11 @@
{
"sdkEnabled": true,
"logLevel": "info",
"autoStartTrackingEnabled": true,
"sessionTimeoutInSecond": 300,
"hashUserInformationEnabled": true,
"trackAirbridgeDeeplinkOnlyEnabled": true
"sdkEnabled": true,
"logLevel": "info",
"autoStartTrackingEnabled": true,
"sessionTimeoutInSecond": 300,
"hashUserInformationEnabled": true,
"trackAirbridgeDeeplinkOnlyEnabled": true,
"trackingLinkCustomDomains": [
"join.webuddhist.com"
]
}
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified android/app/src/main/res/drawable-hdpi/ic_notification.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified android/app/src/main/res/drawable-mdpi/ic_notification.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified android/app/src/main/res/drawable-xhdpi/ic_notification.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified android/app/src/main/res/drawable-xxhdpi/ic_notification.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified android/app/src/main/res/drawable-xxxhdpi/ic_notification.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified android/app/src/main/res/drawable/ic_notification.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
9 changes: 9 additions & 0 deletions android/app/src/main/res/mipmap-anydpi-v26/launcher_icon.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<background android:drawable="@color/ic_launcher_background"/>
<foreground>
<inset
android:drawable="@drawable/ic_launcher_foreground"
android:inset="16%" />
</foreground>
</adaptive-icon>
Binary file modified android/app/src/main/res/mipmap-hdpi/launcher_icon.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified android/app/src/main/res/mipmap-mdpi/launcher_icon.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified android/app/src/main/res/mipmap-xhdpi/launcher_icon.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified android/app/src/main/res/mipmap-xxhdpi/launcher_icon.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified android/app/src/main/res/mipmap-xxxhdpi/launcher_icon.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
4 changes: 4 additions & 0 deletions android/app/src/main/res/values/colors.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="ic_launcher_background">#FFFFFF</color>
</resources>
Binary file removed assets/audios/meditation.mp3
Binary file not shown.
Binary file added assets/audios/meditation.wav
Binary file not shown.
Binary file added assets/images/app_logo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file removed assets/images/webuddhist_gold.png
Binary file not shown.
Binary file removed assets/images/webuddhist_logo.png
Binary file not shown.
Binary file added assets/launcher/app_icon.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/launcher/app_icon_fg.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
14 changes: 14 additions & 0 deletions assets/launcher/app_logo.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
13 changes: 13 additions & 0 deletions ios/Flutter/Runner.entitlements.template
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>com.apple.developer.associated-domains</key>
<array>
<string>webcredentials:${AUTH0_DOMAIN}</string>
<string>applinks:${AIRBRIDGE_APP_NAME}.airbridge.io</string>
<string>applinks:${AIRBRIDGE_APP_NAME}.abr.ge</string>
<string>applinks:join.webuddhist.com</string>
</array>
</dict>
</plist>
11 changes: 2 additions & 9 deletions ios/Podfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -211,16 +211,13 @@ PODS:
- OrderedSet (6.0.3)
- package_info_plus (0.4.5):
- Flutter
- path_provider_foundation (0.0.1):
- Flutter
- FlutterMacOS
- permission_handler_apple (9.4.8):
- Flutter
- PostHog (3.61.0)
- posthog_flutter (0.0.1):
- Flutter
- FlutterMacOS
- PostHog (< 4.0.0, >= 3.59.3)
- PostHog (< 4.0.0, >= 3.61.0)
- PromisesObjC (2.4.1)
- PromisesSwift (2.4.1):
- PromisesObjC (= 2.4.1)
Expand Down Expand Up @@ -266,7 +263,6 @@ DEPENDENCIES:
- image_picker_ios (from `.symlinks/plugins/image_picker_ios/ios`)
- just_audio (from `.symlinks/plugins/just_audio/darwin`)
- package_info_plus (from `.symlinks/plugins/package_info_plus/ios`)
- path_provider_foundation (from `.symlinks/plugins/path_provider_foundation/darwin`)
- permission_handler_apple (from `.symlinks/plugins/permission_handler_apple/ios`)
- posthog_flutter (from `.symlinks/plugins/posthog_flutter/darwin`)
- share_plus (from `.symlinks/plugins/share_plus/ios`)
Expand Down Expand Up @@ -346,8 +342,6 @@ EXTERNAL SOURCES:
:path: ".symlinks/plugins/just_audio/darwin"
package_info_plus:
:path: ".symlinks/plugins/package_info_plus/ios"
path_provider_foundation:
:path: ".symlinks/plugins/path_provider_foundation/darwin"
permission_handler_apple:
:path: ".symlinks/plugins/permission_handler_apple/ios"
posthog_flutter:
Expand Down Expand Up @@ -405,10 +399,9 @@ SPEC CHECKSUMS:
nanopb: fad817b59e0457d11a5dfbde799381cd727c1275
OrderedSet: e539b66b644ff081c73a262d24ad552a69be3a94
package_info_plus: af8e2ca6888548050f16fa2f1938db7b5a5df499
path_provider_foundation: bb55f6dbba17d0dccd6737fe6f7f34fbd0376880
permission_handler_apple: 92d754bbaa7361d436db2d6c3c1c2a0fdcec462e
PostHog: 82eee1ba92efc8144b06b6e4412abba5438c8fda
posthog_flutter: 343db84a70d44b12fa0fe2fc35bbb58098074bd4
posthog_flutter: 35d27c0ca7b0afe0e24789b1c6594e88dfffe066
PromisesObjC: 752c3227f599e3467650e47ea36f433eeb10c273
PromisesSwift: 217dea0fd5d2ad65222a109c48698add13cc1c5b
SDWebImage: e9fc87c1aab89a8ab1bbd74eba378c6f53be8abf
Expand Down
28 changes: 18 additions & 10 deletions ios/Runner.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
archiveVersion = 1;
classes = {
};
objectVersion = 54;
objectVersion = 60;
objects = {

/* Begin PBXBuildFile section */
Expand Down Expand Up @@ -294,7 +294,7 @@
);
mainGroup = 97C146E51CF9000F007C117D;
packageReferences = (
781AD8BC2B33823900A9FFBB /* XCLocalSwiftPackageReference "FlutterGeneratedPluginSwiftPackage" */,
781AD8BC2B33823900A9FFBB /* XCLocalSwiftPackageReference "Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage" */,
);
productRefGroup = 97C146EF1CF9000F007C117D /* Products */;
projectDirPath = "";
Expand Down Expand Up @@ -338,10 +338,14 @@
inputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources-${CONFIGURATION}-input-files.xcfilelist",
);
inputPaths = (
);
name = "[CP] Copy Pods Resources";
outputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources-${CONFIGURATION}-output-files.xcfilelist",
);
outputPaths = (
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources.sh\"\n";
Expand Down Expand Up @@ -371,10 +375,14 @@
inputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-input-files.xcfilelist",
);
inputPaths = (
);
name = "[CP] Embed Pods Frameworks";
outputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-output-files.xcfilelist",
);
outputPaths = (
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n";
Expand Down Expand Up @@ -626,7 +634,7 @@
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
DEVELOPMENT_TEAM = R523566J54;
DEVELOPMENT_TEAM = "";
ENABLE_BITCODE = NO;
INFOPLIST_FILE = Runner/Info.plist;
INFOPLIST_KEY_CFBundleDisplayName = WeBuddhist;
Expand Down Expand Up @@ -823,7 +831,7 @@
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
DEVELOPMENT_TEAM = R523566J54;
DEVELOPMENT_TEAM = "";
ENABLE_BITCODE = NO;
INFOPLIST_FILE = Runner/Info.plist;
INFOPLIST_KEY_CFBundleDisplayName = WeBuddhist;
Expand Down Expand Up @@ -855,7 +863,7 @@
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
DEVELOPMENT_TEAM = R523566J54;
DEVELOPMENT_TEAM = "";
ENABLE_BITCODE = NO;
INFOPLIST_FILE = Runner/Info.plist;
INFOPLIST_KEY_CFBundleDisplayName = WeBuddhist;
Expand Down Expand Up @@ -886,7 +894,7 @@
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
DEVELOPMENT_TEAM = R523566J54;
DEVELOPMENT_TEAM = PZFFFQ5T9X;
ENABLE_BITCODE = NO;
INFOPLIST_FILE = Runner/Info.plist;
INFOPLIST_KEY_CFBundleDisplayName = "[Dev] WeBuddhist";
Expand Down Expand Up @@ -918,7 +926,7 @@
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
DEVELOPMENT_TEAM = R523566J54;
DEVELOPMENT_TEAM = PZFFFQ5T9X;
ENABLE_BITCODE = NO;
INFOPLIST_FILE = Runner/Info.plist;
INFOPLIST_KEY_CFBundleDisplayName = "[Dev] WeBuddhist";
Expand Down Expand Up @@ -949,7 +957,7 @@
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
DEVELOPMENT_TEAM = R523566J54;
DEVELOPMENT_TEAM = "";
ENABLE_BITCODE = NO;
INFOPLIST_FILE = Runner/Info.plist;
INFOPLIST_KEY_CFBundleDisplayName = WeBuddhist;
Expand Down Expand Up @@ -981,7 +989,7 @@
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
DEVELOPMENT_TEAM = R523566J54;
DEVELOPMENT_TEAM = "";
ENABLE_BITCODE = NO;
INFOPLIST_FILE = Runner/Info.plist;
INFOPLIST_KEY_CFBundleDisplayName = WeBuddhist;
Expand Down Expand Up @@ -1558,7 +1566,7 @@
/* End XCConfigurationList section */

/* Begin XCLocalSwiftPackageReference section */
781AD8BC2B33823900A9FFBB /* XCLocalSwiftPackageReference "FlutterGeneratedPluginSwiftPackage" */ = {
781AD8BC2B33823900A9FFBB /* XCLocalSwiftPackageReference "Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage" */ = {
isa = XCLocalSwiftPackageReference;
relativePath = Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage;
};
Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png
Binary file modified ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png
Binary file modified ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png
Binary file modified ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@2x.png
Binary file modified ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@1x.png
Binary file modified ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@2x.png
Binary file modified ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@1x.png
Binary file modified ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png
Binary file modified ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png
5 changes: 5 additions & 0 deletions lib/core/config/protected_routes.dart
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,11 @@ class ProtectedRoutes {
/// The token is sent when the user is authenticated; silently skipped for guests.
static const List<String> optionalPaths = [
'/plans/{planId}/days',
// Series list/detail: sends auth when logged in so the response includes
// user-enriched fields like `progress` and `partner`.
'/series',
'/series/{id}',
'/series/featured',
'/author/groups',
// Group detail + members: sends auth when logged in so fields like
// `is_group_enrolled` reflect the current user (anonymous GET → false).
Expand Down
7 changes: 5 additions & 2 deletions lib/core/constants/app_assets.dart
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,14 @@ class AppAssets {
static const String verseOfDayFallback = 'assets/images/buddha.jpeg';

// ========== AUDIO ==========
static const String meditationSound = 'assets/audios/meditation.mp3';
// PCM WAV (not MP3): ExoPlayer's offload path mis-parses the encoded MP3 on
// the first cold-start play (getFramesPerEncodedSample → IllegalArgumentException),
// dropping the bell. PCM never takes that path, matching the working mala.wav.
static const String meditationSound = 'assets/audios/meditation.wav';
static const String malaSound = 'assets/audios/mala.wav';

// ========== LOGOS ==========
static const String weBuddhistLogo = 'assets/images/webuddhist_gold.png';
static const String weBuddhistLogo = 'assets/images/app_logo.png';
static const String googleIcon = 'assets/images/google-icon.png';

// ========== AUTH ICONS ==========
Expand Down
40 changes: 38 additions & 2 deletions lib/core/deep_linking/app_links_deep_link_service.dart
Original file line number Diff line number Diff line change
Expand Up @@ -60,16 +60,52 @@ class AppLinksDeepLinkService {
}

bool drainPendingLink() {
if (_router == null) return false;
final router = _router;
if (router == null) return false;

final pending = _pendingUri;
if (pending == null) return false;

_pendingUri = null;
_dispatch(pending, baseLocation: AppRoutes.home);
// Cold start: draining is scheduled the moment auth finishes loading, but
// the auth-driven route guard redirect (/splash -> /home) resolves
// asynchronously and may not have completed yet. Pushing the deep-link
// target now would leave /splash as the base of the back stack, so pressing
// Back would show the splash loading spinner. Wait until the router has
// actually settled off /splash before dispatching so the target is pushed
// on top of /home and Back returns Home.
_dispatchWhenRouterSettled(router, pending);
return true;
}

/// Dispatches [uri] once the router's base location has left `/splash`.
///
/// Uses `currentConfiguration.uri`, which reflects only non-imperative
/// matches (i.e. the true base location, ignoring any pushed pages). The
/// router delegate is a [Listenable], so we attach a one-shot listener when
/// the base has not settled yet.
void _dispatchWhenRouterSettled(GoRouter router, Uri uri) {
final delegate = router.routerDelegate;

bool isSettled() =>
delegate.currentConfiguration.uri.path != AppRoutes.splash;

if (isSettled()) {
_dispatch(uri);
return;
}

_logger.info('Router still on splash, deferring deep link dispatch: $uri');
void onRouterChanged() {
if (!isSettled()) return;
delegate.removeListener(onRouterChanged);
_logger.info('Router settled, dispatching deferred deep link: $uri');
_dispatch(uri);
}

delegate.addListener(onRouterChanged);
}

Future<void> dispose() async {
await _subscription?.cancel();
_subscription = null;
Expand Down
Loading
Loading