Commit 2e2b67b
committed
notif: On Android handle notification taps via Pigeon API
Instead of relying on Flutter's deeplinks implementation for
routing the notification URL, handle the Android Intents generated
by notification taps ourselves using Pigeon to pass those events
over to the Dart layer from the Java layer.
The upstream Flutter's deeplinks implementation has a bug where if
the deeplink is triggered after the app was killed by the OS when
it was in background, the app will get launched again but the
route/link will not reach the Flutter's navigation handlers. See:
flutter/flutter#178305
In the failure case we seem to be receiving the Android Intent for
the notification tap from the OS via `MainActivity.onNewIntent`
without any problems. So, to workaround that upstream bug this
commit changes the implementation to handle these Android Intents
ourselves.
Fixes: #15671 parent 26e3ba5 commit 2e2b67b
File tree
9 files changed
+553
-70
lines changed- android/app/src/main/kotlin/com/zulip/flutter
- notifications
- ios/Runner
- lib
- host
- notifications
- widgets
- pigeon
- test/notifications
9 files changed
+553
-70
lines changedLines changed: 20 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | 3 | | |
| 4 | + | |
| 5 | + | |
4 | 6 | | |
5 | 7 | | |
6 | 8 | | |
7 | 9 | | |
8 | 10 | | |
| 11 | + | |
9 | 12 | | |
10 | 13 | | |
11 | 14 | | |
12 | 15 | | |
13 | 16 | | |
14 | 17 | | |
15 | | - | |
16 | | - | |
| 18 | + | |
17 | 19 | | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
18 | 25 | | |
19 | 26 | | |
20 | 27 | | |
| |||
35 | 42 | | |
36 | 43 | | |
37 | 44 | | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
38 | 56 | | |
39 | 57 | | |
40 | 58 | | |
| |||
Lines changed: 47 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
0 commit comments