Revision Date Author Comments
# d044143f 04-Mar-2021 Charlie Cruzan <[email protected]>

[notifications][ios] Scope notification identifiers (#12055)

* create method to override request IDs

* scope notification request IDs in Expo Go

* add method to Presentation header file

* r

[notifications][ios] Scope notification identifiers (#12055)

* create method to override request IDs

* scope notification request IDs in Expo Go

* add method to Presentation header file

* rename scoping methods to be more general (not just category IDs are scoped)

* only scope emitterModule, handlerModule, and presentationModule in Expo Go

show more ...


# 7228d0b7 09-Feb-2021 Charlie Cruzan <[email protected]>

[notifications][ios] Only scope notification categories in Expo Go (#11651)

* create service extension

* Scope category ID in client if provided

* ONLY scope categories in Expo Go

* remove

[notifications][ios] Only scope notification categories in Expo Go (#11651)

* create service extension

* Scope category ID in client if provided

* ONLY scope categories in Expo Go

* remove serviceExtensionTimeWillExpire method

* modify service entension's CFBundleDisplayName

* use '/' as delimiter to match Android

* rename CFBundleDisplayName

* escape experience ID and category ID

* remove extraneous code

* remove NSRegularExpression code

* [notifications][ios] migrate notification categories (#11789)

* extract category creation logic to separate method

* migrate '-' delimiter to '/' in Expo Go, and migrate scoped to unscoped in standalones

* escape experienceId

* extract migration logic to it's own class

* escape user-provided category ID in Expo Go

* only used EXScopedNotificationSchedulerModule in Expo Go

* move all scoping and escaping logic to EXScopedNotificationsUtils

* use EXScopedNotificationsUtils in NotificationServiceExtension

* search for substring, not regex

* move migrations from constructor to static method; only use EXScopedNotificationCategoriesModule in Expo Go

* replace replaceAllCategoryIdPrefixesMatching with renameCategoryIdentifiersWithPrefix:withBlock

* dont serialize category to create a new one; use UNNotification API directly

* use backslash escaping instead of URL encoding

* add todo to remove in SDK 47

* add back comment

* rename some vars, fix indent

* only escape & unescape forward slash

* use '//' as delimiter

* use '/' as delimiter, use regex

* move legacy scope-checking logic to EXScopedNotificationsUtils

* only replace legacy scope if anchored to beginning of string

* add changelog entry

* Update ios/Exponent/Versioned/Core/UniversalModules/EXNotifications/EXScopedNotificationsUtils.m

Co-authored-by: James Ide <[email protected]>

Co-authored-by: James Ide <[email protected]>

show more ...


# 69c8b63f 01-Oct-2020 Stanisław Chmiela <[email protected]>

[expo-notifications] Unify data payload across platforms (#10453)

# Why

Follow up to https://github.com/expo/expo/pull/9164, fixes https://github.com/expo/expo/issues/10070, supersedes https://gi

[expo-notifications] Unify data payload across platforms (#10453)

# Why

Follow up to https://github.com/expo/expo/pull/9164, fixes https://github.com/expo/expo/issues/10070, supersedes https://github.com/expo/expo/pull/10071.

# How

Looked at the payload from the developer's perspective and made it so that `content.data` means exactly the same on both platforms (i.e. `body` object from the native `data`/`payload`, coincidentally used by Expo notification services to provide notification data).

Not to lose inner details of the notifications I have added a new `payload` field to `PushNotificationTrigger` allowing developers to look inside the untouched payload.

# Test Plan

Added tests to `test-suite`!

show more ...


# f6562485 28-Jul-2020 Charlie Cruzan <[email protected]>

[expo-notifications] feat: add notification categories (interactive notifications) (#9015)

* ios implementation

* add getCategoriesAsync method

* change type and method names based on architec

[expo-notifications] feat: add notification categories (interactive notifications) (#9015)

* ios implementation

* add getCategoriesAsync method

* change type and method names based on architecture proposal

* add android boilerplate code

* Correct typescript layer according to architecture proposal

* first pass at tests

* return category after creating it, and clean up parsing code

* get iOS tests passing

* [ios] add remaining native options functionality

* finalize tests for iOS

* beginning of android implementation

* [android] implement action button feature

* fix remote notification category handling

* support 'options' argument for notification action

* make some changes to follow new additions to architecture proposal

* [android] add functionality for actions that don't foreground the app

* serialize options so they are returned in an object

* change doNotOpenInForeground to opensAppToForeground

* [android] text reply actions functionality

* [android] pass along user text response with notification

* clean up categoryAwareBuilder

* rebase master, re-'yarn build'

* cleanup iOS

* [android] fix test suite tests

* docs and changelog

* fix typescript typo and rebuild

* update readme

* reformat java code

* rename some java variables

* address iOS feedback

* address remaining pieces of android feedback

* fix client build

* docs, readme, and changelog updates

* improve tests, test feedback

* extract interface, create .native and .web files, and the rest of TS feedback

* optimize all java imports

* [ios] add scoped notification categories

* [ios] remove scope prefix from serialized notification in client

* [ios] left this out of previous commit

* serialize category identifer on android

* [android] scope notification categories in android expo client

* fix spelling mistake

* [expo client] run pod install

* Apply suggestions from code review

Co-authored-by: Łukasz Kosmaty <[email protected]>

* add andraid NonNull handling

* [ios] scope notification serializer

* Apply suggestions from code review

fix name of category prefix remover method; spacing fixes

Co-authored-by: Łukasz Kosmaty <[email protected]>

* fix reversed emitted events on iOS, and re- yarn build

* fix iOS client build

* rebuild JS

Co-authored-by: Łukasz Kosmaty <[email protected]>

show more ...