diff --git a/.buildkite/pipeline.yaml b/.buildkite/pipeline.yaml new file mode 100644 index 000000000..4d6b15909 --- /dev/null +++ b/.buildkite/pipeline.yaml @@ -0,0 +1,39 @@ +steps: + - block: ":rocket: Release!" + prompt: "Fill out the details for release" + if: 'build.message =~ /^release\$/i' + fields: + - text: "VERSION" + key: "version" + - text: "NPM_TAG" + key: "npm-tag" + default: 'null' + hint: 'Leave NULL if no version is specified' + required: false + + - label: "Android" + command: + - "nvm install" + - "npm install" + - "npm run test-js" + - "npm run clean" + - "npm run test-unit-android -- --release" + key: android + + - label: "iOS" + command: + - "nvm install" + - "npm install" + - "npm run test-unit-ios -- --release" + - "npm run test-e2e-ios -- --release --multi" + key: ios + + - label: ":package: Publish" + if: "build.pull_request.id == null" + command: + - "nvm install" + - "npm install" + - "npm run release" + depends_on: + - "android" + - "ios" diff --git a/.circleci/config.yml b/.circleci/config.yml deleted file mode 100644 index bf8553b5e..000000000 --- a/.circleci/config.yml +++ /dev/null @@ -1,40 +0,0 @@ - -version: 2 -jobs: - ios: - macos: - xcode: "10.2.1" - steps: - - checkout - - run: - name: Install Dependencies - command: scripts/install.ios.sh - - run: - name: npm install - command: npm install - - run: - name: iOS unit tests - command: 'npm run test-unit-ios' - - run: - name: Detox iOS e2e tests - command: 'npm run test-e2e-ios-release' - android: - macos: - xcode: "10.2.1" - steps: - - checkout - - run: - name: Install Android - command: scripts/install.android.sh - - run: - name: npm install - command: npm install - - run: - name: Android unit tests - command: 'npm run test-unit-android' -workflows: - version: 2 - test: - jobs: - - ios - - android \ No newline at end of file diff --git a/.dockerignore b/.dockerignore new file mode 100755 index 000000000..27d2dae2b --- /dev/null +++ b/.dockerignore @@ -0,0 +1,2 @@ +*/node_modules +*.log diff --git a/.github/documentation.yml b/.github/documentation.yml new file mode 100644 index 000000000..c732641dd --- /dev/null +++ b/.github/documentation.yml @@ -0,0 +1,54 @@ +name: documentation + +on: + pull_request: + branches: [master] + push: + branches: [master] + +jobs: + checks: + if: github.event_name != 'push' + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v1 + - uses: actions/setup-node@v1 + with: + node-version: '12.x' + - name: Test Build + run: | + cd website/ + npm i + npm run build + gh-release: + if: github.event_name != 'pull_request' + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v1 + - uses: actions/setup-node@v1 + with: + node-version: '12.x' + - name: Add key to allow access to repository + env: + SSH_AUTH_SOCK: /tmp/ssh_agent.sock + run: | + mkdir -p ~/.ssh + ssh-keyscan github.com >> ~/.ssh/known_hosts + echo "${{ secrets.GH_PAGES_DEPLOY }}" > ~/.ssh/id_rsa + chmod 600 ~/.ssh/id_rsa + cat <> ~/.ssh/config + Host github.com + HostName github.com + IdentityFile ~/.ssh/id_rsa + EOT + - name: Release to GitHub Pages + env: + USE_SSH: true + GIT_USER: git + run: | + git config --global user.email "yogevbd@wix.com" + git config --global user.name "yogevbd" + cd website/ + npm i + npm run build + npx docusaurus deploy diff --git a/.github/main.workflow b/.github/main.workflow new file mode 100644 index 000000000..24ebfb24e --- /dev/null +++ b/.github/main.workflow @@ -0,0 +1,12 @@ +workflow "Verify labels" { + on = "pull_request" + resolves = "Enforce PR label" +} + +action "Enforce PR label" { + uses = "yogevbd/enforce-label-action@1.0.0" + secrets = ["GITHUB_TOKEN"] + env = { + VALID_LABELS = "bug,enhancement,feature,skip-changelog" + } +} \ No newline at end of file diff --git a/.github/stale.yml b/.github/stale.yml index 8f7fb1c0a..53b13799e 100644 --- a/.github/stale.yml +++ b/.github/stale.yml @@ -14,7 +14,7 @@ exemptLabels: - "📌 pinned" # Set to true to ignore issues in a project (defaults to false) -exemptProjects: false +exemptProjects: true # Set to true to ignore issues in a milestone (defaults to false) exemptMilestones: false diff --git a/.github/workflows/documentation.yml b/.github/workflows/documentation.yml new file mode 100644 index 000000000..c732641dd --- /dev/null +++ b/.github/workflows/documentation.yml @@ -0,0 +1,54 @@ +name: documentation + +on: + pull_request: + branches: [master] + push: + branches: [master] + +jobs: + checks: + if: github.event_name != 'push' + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v1 + - uses: actions/setup-node@v1 + with: + node-version: '12.x' + - name: Test Build + run: | + cd website/ + npm i + npm run build + gh-release: + if: github.event_name != 'pull_request' + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v1 + - uses: actions/setup-node@v1 + with: + node-version: '12.x' + - name: Add key to allow access to repository + env: + SSH_AUTH_SOCK: /tmp/ssh_agent.sock + run: | + mkdir -p ~/.ssh + ssh-keyscan github.com >> ~/.ssh/known_hosts + echo "${{ secrets.GH_PAGES_DEPLOY }}" > ~/.ssh/id_rsa + chmod 600 ~/.ssh/id_rsa + cat <> ~/.ssh/config + Host github.com + HostName github.com + IdentityFile ~/.ssh/id_rsa + EOT + - name: Release to GitHub Pages + env: + USE_SSH: true + GIT_USER: git + run: | + git config --global user.email "yogevbd@wix.com" + git config --global user.name "yogevbd" + cd website/ + npm i + npm run build + npx docusaurus deploy diff --git a/.github/workflows/enforce-label.yml b/.github/workflows/enforce-label.yml new file mode 100644 index 000000000..315b6dbe2 --- /dev/null +++ b/.github/workflows/enforce-label.yml @@ -0,0 +1,13 @@ +name: Enforce PR label + +on: + pull_request: + types: [labeled, unlabeled, opened, edited, synchronize] + +jobs: + enforce-label: + runs-on: ubuntu-latest + steps: + - uses: yogevbd/enforce-label-action@2.2.2 + with: + REQUIRED_LABELS_ANY: "type: accepted/bug,type: accepted/enhancement,Infrastructure,type: documentation,skip-changelog" diff --git a/.gitignore b/.gitignore index 8c499494b..b46bdf13c 100644 --- a/.gitignore +++ b/.gitignore @@ -15,8 +15,12 @@ npm-debug.log ##### # Android -android/local.properties -android/*.iml +lib/android/local.properties +lib/android/*.iml +lib/android/.idea +lib/android/build +lib/android/.gradle +*.gradle ##### # OS X temporary files that should never be committed @@ -187,6 +191,6 @@ coverage/ package-lock.json .history -android/.idea -android/build -android/.gradle \ No newline at end of file + +# Typescript build +# lib/dist/ diff --git a/.grenrc.js b/.grenrc.js new file mode 100644 index 000000000..86e82cd71 --- /dev/null +++ b/.grenrc.js @@ -0,0 +1,27 @@ +module.exports = { + template: { + commit: ({message, url, author, name}) => `- [${message}](${url}) - ${author ? `@${author}` : name}`, + issue: "- {{name}} [{{text}}]({{url}}) by [{{user_login}}]({{user_url}})", + label: "[**{{label}}**]", + noLabel: "closed", + group: "\n#### {{heading}}\n", + changelogTitle: "# Changelog\n\n", + release: "## {{release}} ({{date}})\n{{body}}", + releaseSeparator: "\n---\n\n" + }, + groupBy: { + "Enhancements:": ["type: accepted/enhancement", "Infrastructure"], + "Bug Fixes:": ["type: accepted/bug"] + }, + ignoreIssuesWith: [ + "skip-changelog" + ], + ignoreTagsWith: [ + "snapshot" + ], + dataSource: "prs", + changelogFilename: "CHANGELOG.gren.md", + tags: "all", + override: true, + generate: true +} diff --git a/.logo.png b/.logo.png new file mode 100644 index 000000000..7df26e6d5 Binary files /dev/null and b/.logo.png differ diff --git a/.npmignore b/.npmignore index 3edb07ad4..62b5ab7b4 100644 --- a/.npmignore +++ b/.npmignore @@ -1,7 +1,11 @@ example/ test/ -RNNotifications/DerivedData node_modules/ +website/ +docs/ +docs_old/ +scripts/ +e2e/ .eslintrc *.yml @@ -10,4 +14,5 @@ coverage/ android/.idea android/build/ .idea -.history/ \ No newline at end of file +.history/ +.github/ \ No newline at end of file diff --git a/.nvmrc b/.nvmrc new file mode 100644 index 000000000..da2d3988d --- /dev/null +++ b/.nvmrc @@ -0,0 +1 @@ +14 \ No newline at end of file diff --git a/CHANGELOG.gren.md b/CHANGELOG.gren.md new file mode 100644 index 000000000..88d767d11 --- /dev/null +++ b/CHANGELOG.gren.md @@ -0,0 +1,1300 @@ +# Changelog + +## 4.2.3 (02/03/2022) + +#### Bug Fixes: + +- fix initial notification from killed [#831](https://github.com/wix/react-native-notifications/pull/831) by [DanielEliraz](https://github.com/DanielEliraz) + +--- + +## 4.2.2 (26/02/2022) + +#### Bug Fixes: + +- latest notification data in getInitialNotification [#830](https://github.com/wix/react-native-notifications/pull/830) by [DanielEliraz](https://github.com/DanielEliraz) + +--- + +## 4.2.1 (16/02/2022) + +#### Enhancements: + +- used common ext names exported in root project [#798](https://github.com/wix/react-native-notifications/pull/798) by [SaeedZhiany](https://github.com/SaeedZhiany) + +#### Bug Fixes: + +- revert android to api 30 [#823](https://github.com/wix/react-native-notifications/pull/823) by [DanielEliraz](https://github.com/DanielEliraz) + +--- + +## 4.2.0 (15/02/2022) + +#### Enhancements: + +- android: do not display data-only PN [#822](https://github.com/wix/react-native-notifications/pull/822) by [DanielEliraz](https://github.com/DanielEliraz) +- back to index js [#814](https://github.com/wix/react-native-notifications/pull/814) by [DanielEliraz](https://github.com/DanielEliraz) +- Fix Android API 31 issues and Convert example to TS [#812](https://github.com/wix/react-native-notifications/pull/812) by [DanielEliraz](https://github.com/DanielEliraz) +- update start guide [#800](https://github.com/wix/react-native-notifications/pull/800) by [weihangChen](https://github.com/weihangChen) +- upgrade to react-native@66.3 [#805](https://github.com/wix/react-native-notifications/pull/805) by [DanielEliraz](https://github.com/DanielEliraz) + +--- + +## 4.1.3 (13/12/2021) + +#### Bug Fixes: + +- fix enfroce label [#795](https://github.com/wix/react-native-notifications/pull/795) by [DanielEliraz](https://github.com/DanielEliraz) +- fix: Add missing `android:exported` to `service` [#790](https://github.com/wix/react-native-notifications/pull/790) by [mrousavy](https://github.com/mrousavy) + +--- + +## 4.1.2 (02/08/2021) + +#### Enhancements: + +- FEAT: ios add permissions to check permissions [#762](https://github.com/wix/react-native-notifications/pull/762) by [DanielEliraz](https://github.com/DanielEliraz) + +--- + +## 4.1.1 (21/07/2021) + +#### Enhancements: + +- resiter remote on provisional approve [#759](https://github.com/wix/react-native-notifications/pull/759) by [DanielEliraz](https://github.com/DanielEliraz) + +--- + +## 4.1.0 (14/07/2021) + +#### Enhancements: + +- expose provisional state [#756](https://github.com/wix/react-native-notifications/pull/756) by [DanielEliraz](https://github.com/DanielEliraz) + +--- + +## 4.0.0 (12/07/2021) + +#### Enhancements: + +- Add ability to request/check more iOS permissions [#752](https://github.com/wix/react-native-notifications/pull/752) by [DanielEliraz](https://github.com/DanielEliraz) +- stop using deprecated firebase iid [#751](https://github.com/wix/react-native-notifications/pull/751) by [DanielEliraz](https://github.com/DanielEliraz) +- upgrade lodash to 4.17.21 [#747](https://github.com/wix/react-native-notifications/pull/747) by [DanielEliraz](https://github.com/DanielEliraz) + +#### Bug Fixes: + +- fix ts cancelLocalNotification prop [#754](https://github.com/wix/react-native-notifications/pull/754) by [DanielEliraz](https://github.com/DanielEliraz) +- Fix channel and channel group implementation [#750](https://github.com/wix/react-native-notifications/pull/750) by [DanielEliraz](https://github.com/DanielEliraz) +- finish run completion handler in main thread [#748](https://github.com/wix/react-native-notifications/pull/748) by [DanielEliraz](https://github.com/DanielEliraz) + +--- + +## 3.5.0 (14/06/2021) + +#### Enhancements: + +- Provisional option in iOS registeration [#744](https://github.com/wix/react-native-notifications/pull/744) by [DanielEliraz](https://github.com/DanielEliraz) +- return to ios.registerRemoteNotifications name [#742](https://github.com/wix/react-native-notifications/pull/742) by [DanielEliraz](https://github.com/DanielEliraz) +- App notification settings link [#740](https://github.com/wix/react-native-notifications/pull/740) by [DanielEliraz](https://github.com/DanielEliraz) + +--- + +## 3.4.2 (27/12/2020) + +#### Bug Fixes: + +- Make notification id optional fixes #703 [#709](https://github.com/wix/react-native-notifications/pull/709) by [antontanderup](https://github.com/antontanderup) + +--- + +## 3.4.1 (23/11/2020) + +#### Enhancements: + +- Add enforce label action [#696](https://github.com/wix/react-native-notifications/pull/696) by [yogevbd](https://github.com/yogevbd) + +#### Bug Fixes: + +- Fix boolean type when converting to js [#702](https://github.com/wix/react-native-notifications/pull/702) by [xilin](https://github.com/xilin) +- [BugFix][iOS] Cleaning up initial notification after resolve [#697](https://github.com/wix/react-native-notifications/pull/697) by [muryj](https://github.com/muryj) + +--- + +## 3.4.0 (28/10/2020) + +#### Enhancements: + +- Lock docusaurus version [#695](https://github.com/wix/react-native-notifications/pull/695) by [yogevbd](https://github.com/yogevbd) + +#### Bug Fixes: + +- notifyReceivedToJS only when app is visible [#694](https://github.com/wix/react-native-notifications/pull/694) by [swabbass](https://github.com/swabbass) +- Fixes #627 - First foreground notification is not visible [#685](https://github.com/wix/react-native-notifications/pull/685) by [erkie](https://github.com/erkie) +- Fix Xcode 12 Compatibility [#672](https://github.com/wix/react-native-notifications/pull/672) by [jaykhandelwal](https://github.com/jaykhandelwal) + +--- + +## 3.3.4 (23/09/2020) + +#### Enhancements: + +- Bump docusaurus to 2.0.0-alpha.64 [#673](https://github.com/wix/react-native-notifications/pull/673) by [yogevbd](https://github.com/yogevbd) +- Bump detox to v17.5.7 [#676](https://github.com/wix/react-native-notifications/pull/676) by [yogevbd](https://github.com/yogevbd) + +#### Bug Fixes: + +- [Bugfix][Android] Use JobServiceIntent to fetch the FCM token in the background [#678](https://github.com/wix/react-native-notifications/pull/678) by [Robfz](https://github.com/Robfz) + +--- + +## 3.3.2 (06/08/2020) + +#### Enhancements: + +- FCM Token Listener application [#660](https://github.com/wix/react-native-notifications/pull/660) by [swabbass](https://github.com/swabbass) + +--- + +## 3.3.1 (05/08/2020) +*No changelog for this release.* + +--- + +## 3.3.0 (23/07/2020) + +#### Bug Fixes: + +- Fix: When app's in background, Android cannot trigger registerNotificationOpened when user press on banner [#614](https://github.com/wix/react-native-notifications/pull/614) by [ttkien](https://github.com/ttkien) + +--- + +## 3.2.2 (23/05/2020) +*No changelog for this release.* + +--- + +## 3.2.1 (13/05/2020) + +#### Enhancements: + +- Fix trampoline on target sdk 31 [#837](https://github.com/wix/react-native-notifications/pull/837) by [DanielEliraz](https://github.com/DanielEliraz) +- used common ext names exported in root project [#798](https://github.com/wix/react-native-notifications/pull/798) by [SaeedZhiany](https://github.com/SaeedZhiany) +- android: do not display data-only PN [#822](https://github.com/wix/react-native-notifications/pull/822) by [DanielEliraz](https://github.com/DanielEliraz) +- back to index js [#814](https://github.com/wix/react-native-notifications/pull/814) by [DanielEliraz](https://github.com/DanielEliraz) +- Fix Android API 31 issues and Convert example to TS [#812](https://github.com/wix/react-native-notifications/pull/812) by [DanielEliraz](https://github.com/DanielEliraz) +- update start guide [#800](https://github.com/wix/react-native-notifications/pull/800) by [weihangChen](https://github.com/weihangChen) +- upgrade to react-native@66.3 [#805](https://github.com/wix/react-native-notifications/pull/805) by [DanielEliraz](https://github.com/DanielEliraz) +- FEAT: ios add permissions to check permissions [#762](https://github.com/wix/react-native-notifications/pull/762) by [DanielEliraz](https://github.com/DanielEliraz) +- resiter remote on provisional approve [#759](https://github.com/wix/react-native-notifications/pull/759) by [DanielEliraz](https://github.com/DanielEliraz) +- expose provisional state [#756](https://github.com/wix/react-native-notifications/pull/756) by [DanielEliraz](https://github.com/DanielEliraz) +- Add ability to request/check more iOS permissions [#752](https://github.com/wix/react-native-notifications/pull/752) by [DanielEliraz](https://github.com/DanielEliraz) +- stop using deprecated firebase iid [#751](https://github.com/wix/react-native-notifications/pull/751) by [DanielEliraz](https://github.com/DanielEliraz) +- upgrade lodash to 4.17.21 [#747](https://github.com/wix/react-native-notifications/pull/747) by [DanielEliraz](https://github.com/DanielEliraz) +- Provisional option in iOS registeration [#744](https://github.com/wix/react-native-notifications/pull/744) by [DanielEliraz](https://github.com/DanielEliraz) +- return to ios.registerRemoteNotifications name [#742](https://github.com/wix/react-native-notifications/pull/742) by [DanielEliraz](https://github.com/DanielEliraz) +- App notification settings link [#740](https://github.com/wix/react-native-notifications/pull/740) by [DanielEliraz](https://github.com/DanielEliraz) +- Add enforce label action [#696](https://github.com/wix/react-native-notifications/pull/696) by [yogevbd](https://github.com/yogevbd) +- Lock docusaurus version [#695](https://github.com/wix/react-native-notifications/pull/695) by [yogevbd](https://github.com/yogevbd) +- Bump docusaurus to 2.0.0-alpha.64 [#673](https://github.com/wix/react-native-notifications/pull/673) by [yogevbd](https://github.com/yogevbd) +- Bump detox to v17.5.7 [#676](https://github.com/wix/react-native-notifications/pull/676) by [yogevbd](https://github.com/yogevbd) +- FCM Token Listener application [#660](https://github.com/wix/react-native-notifications/pull/660) by [swabbass](https://github.com/swabbass) + +#### Bug Fixes: + +- fix initial notification from killed [#831](https://github.com/wix/react-native-notifications/pull/831) by [DanielEliraz](https://github.com/DanielEliraz) +- latest notification data in getInitialNotification [#830](https://github.com/wix/react-native-notifications/pull/830) by [DanielEliraz](https://github.com/DanielEliraz) +- revert android to api 30 [#823](https://github.com/wix/react-native-notifications/pull/823) by [DanielEliraz](https://github.com/DanielEliraz) +- notifyReceivedToJS only when app is visible [#694](https://github.com/wix/react-native-notifications/pull/694) by [swabbass](https://github.com/swabbass) +- fix enfroce label [#795](https://github.com/wix/react-native-notifications/pull/795) by [DanielEliraz](https://github.com/DanielEliraz) +- fix: Add missing `android:exported` to `service` [#790](https://github.com/wix/react-native-notifications/pull/790) by [mrousavy](https://github.com/mrousavy) +- fix ts cancelLocalNotification prop [#754](https://github.com/wix/react-native-notifications/pull/754) by [DanielEliraz](https://github.com/DanielEliraz) +- Fix channel and channel group implementation [#750](https://github.com/wix/react-native-notifications/pull/750) by [DanielEliraz](https://github.com/DanielEliraz) +- finish run completion handler in main thread [#748](https://github.com/wix/react-native-notifications/pull/748) by [DanielEliraz](https://github.com/DanielEliraz) +- Make notification id optional fixes #703 [#709](https://github.com/wix/react-native-notifications/pull/709) by [antontanderup](https://github.com/antontanderup) +- Fix boolean type when converting to js [#702](https://github.com/wix/react-native-notifications/pull/702) by [xilin](https://github.com/xilin) +- [BugFix][iOS] Cleaning up initial notification after resolve [#697](https://github.com/wix/react-native-notifications/pull/697) by [muryj](https://github.com/muryj) +- Fixes #627 - First foreground notification is not visible [#685](https://github.com/wix/react-native-notifications/pull/685) by [erkie](https://github.com/erkie) +- Fix Xcode 12 Compatibility [#672](https://github.com/wix/react-native-notifications/pull/672) by [jaykhandelwal](https://github.com/jaykhandelwal) +- [Bugfix][Android] Use JobServiceIntent to fetch the FCM token in the background [#678](https://github.com/wix/react-native-notifications/pull/678) by [Robfz](https://github.com/Robfz) +- Fix: When app's in background, Android cannot trigger registerNotificationOpened when user press on banner [#614](https://github.com/wix/react-native-notifications/pull/614) by [ttkien](https://github.com/ttkien) + +--- + +## 3.1.0 (31/12/1969) + +#### Enhancements: + +- Fix trampoline on target sdk 31 [#837](https://github.com/wix/react-native-notifications/pull/837) by [DanielEliraz](https://github.com/DanielEliraz) +- used common ext names exported in root project [#798](https://github.com/wix/react-native-notifications/pull/798) by [SaeedZhiany](https://github.com/SaeedZhiany) +- android: do not display data-only PN [#822](https://github.com/wix/react-native-notifications/pull/822) by [DanielEliraz](https://github.com/DanielEliraz) +- back to index js [#814](https://github.com/wix/react-native-notifications/pull/814) by [DanielEliraz](https://github.com/DanielEliraz) +- Fix Android API 31 issues and Convert example to TS [#812](https://github.com/wix/react-native-notifications/pull/812) by [DanielEliraz](https://github.com/DanielEliraz) +- update start guide [#800](https://github.com/wix/react-native-notifications/pull/800) by [weihangChen](https://github.com/weihangChen) +- upgrade to react-native@66.3 [#805](https://github.com/wix/react-native-notifications/pull/805) by [DanielEliraz](https://github.com/DanielEliraz) +- FEAT: ios add permissions to check permissions [#762](https://github.com/wix/react-native-notifications/pull/762) by [DanielEliraz](https://github.com/DanielEliraz) +- resiter remote on provisional approve [#759](https://github.com/wix/react-native-notifications/pull/759) by [DanielEliraz](https://github.com/DanielEliraz) +- expose provisional state [#756](https://github.com/wix/react-native-notifications/pull/756) by [DanielEliraz](https://github.com/DanielEliraz) +- Add ability to request/check more iOS permissions [#752](https://github.com/wix/react-native-notifications/pull/752) by [DanielEliraz](https://github.com/DanielEliraz) +- stop using deprecated firebase iid [#751](https://github.com/wix/react-native-notifications/pull/751) by [DanielEliraz](https://github.com/DanielEliraz) +- upgrade lodash to 4.17.21 [#747](https://github.com/wix/react-native-notifications/pull/747) by [DanielEliraz](https://github.com/DanielEliraz) +- Provisional option in iOS registeration [#744](https://github.com/wix/react-native-notifications/pull/744) by [DanielEliraz](https://github.com/DanielEliraz) +- return to ios.registerRemoteNotifications name [#742](https://github.com/wix/react-native-notifications/pull/742) by [DanielEliraz](https://github.com/DanielEliraz) +- App notification settings link [#740](https://github.com/wix/react-native-notifications/pull/740) by [DanielEliraz](https://github.com/DanielEliraz) +- Add enforce label action [#696](https://github.com/wix/react-native-notifications/pull/696) by [yogevbd](https://github.com/yogevbd) +- Lock docusaurus version [#695](https://github.com/wix/react-native-notifications/pull/695) by [yogevbd](https://github.com/yogevbd) +- Bump docusaurus to 2.0.0-alpha.64 [#673](https://github.com/wix/react-native-notifications/pull/673) by [yogevbd](https://github.com/yogevbd) +- Bump detox to v17.5.7 [#676](https://github.com/wix/react-native-notifications/pull/676) by [yogevbd](https://github.com/yogevbd) +- FCM Token Listener application [#660](https://github.com/wix/react-native-notifications/pull/660) by [swabbass](https://github.com/swabbass) + +#### Bug Fixes: + +- fix initial notification from killed [#831](https://github.com/wix/react-native-notifications/pull/831) by [DanielEliraz](https://github.com/DanielEliraz) +- latest notification data in getInitialNotification [#830](https://github.com/wix/react-native-notifications/pull/830) by [DanielEliraz](https://github.com/DanielEliraz) +- revert android to api 30 [#823](https://github.com/wix/react-native-notifications/pull/823) by [DanielEliraz](https://github.com/DanielEliraz) +- notifyReceivedToJS only when app is visible [#694](https://github.com/wix/react-native-notifications/pull/694) by [swabbass](https://github.com/swabbass) +- fix enfroce label [#795](https://github.com/wix/react-native-notifications/pull/795) by [DanielEliraz](https://github.com/DanielEliraz) +- fix: Add missing `android:exported` to `service` [#790](https://github.com/wix/react-native-notifications/pull/790) by [mrousavy](https://github.com/mrousavy) +- fix ts cancelLocalNotification prop [#754](https://github.com/wix/react-native-notifications/pull/754) by [DanielEliraz](https://github.com/DanielEliraz) +- Fix channel and channel group implementation [#750](https://github.com/wix/react-native-notifications/pull/750) by [DanielEliraz](https://github.com/DanielEliraz) +- finish run completion handler in main thread [#748](https://github.com/wix/react-native-notifications/pull/748) by [DanielEliraz](https://github.com/DanielEliraz) +- Make notification id optional fixes #703 [#709](https://github.com/wix/react-native-notifications/pull/709) by [antontanderup](https://github.com/antontanderup) +- Fix boolean type when converting to js [#702](https://github.com/wix/react-native-notifications/pull/702) by [xilin](https://github.com/xilin) +- [BugFix][iOS] Cleaning up initial notification after resolve [#697](https://github.com/wix/react-native-notifications/pull/697) by [muryj](https://github.com/muryj) +- Fixes #627 - First foreground notification is not visible [#685](https://github.com/wix/react-native-notifications/pull/685) by [erkie](https://github.com/erkie) +- Fix Xcode 12 Compatibility [#672](https://github.com/wix/react-native-notifications/pull/672) by [jaykhandelwal](https://github.com/jaykhandelwal) +- [Bugfix][Android] Use JobServiceIntent to fetch the FCM token in the background [#678](https://github.com/wix/react-native-notifications/pull/678) by [Robfz](https://github.com/Robfz) +- Fix: When app's in background, Android cannot trigger registerNotificationOpened when user press on banner [#614](https://github.com/wix/react-native-notifications/pull/614) by [ttkien](https://github.com/ttkien) + +--- + +## 3.0.0 (31/12/1969) + +#### Enhancements: + +- Fix trampoline on target sdk 31 [#837](https://github.com/wix/react-native-notifications/pull/837) by [DanielEliraz](https://github.com/DanielEliraz) +- used common ext names exported in root project [#798](https://github.com/wix/react-native-notifications/pull/798) by [SaeedZhiany](https://github.com/SaeedZhiany) +- android: do not display data-only PN [#822](https://github.com/wix/react-native-notifications/pull/822) by [DanielEliraz](https://github.com/DanielEliraz) +- back to index js [#814](https://github.com/wix/react-native-notifications/pull/814) by [DanielEliraz](https://github.com/DanielEliraz) +- Fix Android API 31 issues and Convert example to TS [#812](https://github.com/wix/react-native-notifications/pull/812) by [DanielEliraz](https://github.com/DanielEliraz) +- update start guide [#800](https://github.com/wix/react-native-notifications/pull/800) by [weihangChen](https://github.com/weihangChen) +- upgrade to react-native@66.3 [#805](https://github.com/wix/react-native-notifications/pull/805) by [DanielEliraz](https://github.com/DanielEliraz) +- FEAT: ios add permissions to check permissions [#762](https://github.com/wix/react-native-notifications/pull/762) by [DanielEliraz](https://github.com/DanielEliraz) +- resiter remote on provisional approve [#759](https://github.com/wix/react-native-notifications/pull/759) by [DanielEliraz](https://github.com/DanielEliraz) +- expose provisional state [#756](https://github.com/wix/react-native-notifications/pull/756) by [DanielEliraz](https://github.com/DanielEliraz) +- Add ability to request/check more iOS permissions [#752](https://github.com/wix/react-native-notifications/pull/752) by [DanielEliraz](https://github.com/DanielEliraz) +- stop using deprecated firebase iid [#751](https://github.com/wix/react-native-notifications/pull/751) by [DanielEliraz](https://github.com/DanielEliraz) +- upgrade lodash to 4.17.21 [#747](https://github.com/wix/react-native-notifications/pull/747) by [DanielEliraz](https://github.com/DanielEliraz) +- Provisional option in iOS registeration [#744](https://github.com/wix/react-native-notifications/pull/744) by [DanielEliraz](https://github.com/DanielEliraz) +- return to ios.registerRemoteNotifications name [#742](https://github.com/wix/react-native-notifications/pull/742) by [DanielEliraz](https://github.com/DanielEliraz) +- App notification settings link [#740](https://github.com/wix/react-native-notifications/pull/740) by [DanielEliraz](https://github.com/DanielEliraz) +- Add enforce label action [#696](https://github.com/wix/react-native-notifications/pull/696) by [yogevbd](https://github.com/yogevbd) +- Lock docusaurus version [#695](https://github.com/wix/react-native-notifications/pull/695) by [yogevbd](https://github.com/yogevbd) +- Bump docusaurus to 2.0.0-alpha.64 [#673](https://github.com/wix/react-native-notifications/pull/673) by [yogevbd](https://github.com/yogevbd) +- Bump detox to v17.5.7 [#676](https://github.com/wix/react-native-notifications/pull/676) by [yogevbd](https://github.com/yogevbd) +- FCM Token Listener application [#660](https://github.com/wix/react-native-notifications/pull/660) by [swabbass](https://github.com/swabbass) + +#### Bug Fixes: + +- fix initial notification from killed [#831](https://github.com/wix/react-native-notifications/pull/831) by [DanielEliraz](https://github.com/DanielEliraz) +- latest notification data in getInitialNotification [#830](https://github.com/wix/react-native-notifications/pull/830) by [DanielEliraz](https://github.com/DanielEliraz) +- revert android to api 30 [#823](https://github.com/wix/react-native-notifications/pull/823) by [DanielEliraz](https://github.com/DanielEliraz) +- notifyReceivedToJS only when app is visible [#694](https://github.com/wix/react-native-notifications/pull/694) by [swabbass](https://github.com/swabbass) +- fix enfroce label [#795](https://github.com/wix/react-native-notifications/pull/795) by [DanielEliraz](https://github.com/DanielEliraz) +- fix: Add missing `android:exported` to `service` [#790](https://github.com/wix/react-native-notifications/pull/790) by [mrousavy](https://github.com/mrousavy) +- fix ts cancelLocalNotification prop [#754](https://github.com/wix/react-native-notifications/pull/754) by [DanielEliraz](https://github.com/DanielEliraz) +- Fix channel and channel group implementation [#750](https://github.com/wix/react-native-notifications/pull/750) by [DanielEliraz](https://github.com/DanielEliraz) +- finish run completion handler in main thread [#748](https://github.com/wix/react-native-notifications/pull/748) by [DanielEliraz](https://github.com/DanielEliraz) +- Make notification id optional fixes #703 [#709](https://github.com/wix/react-native-notifications/pull/709) by [antontanderup](https://github.com/antontanderup) +- Fix boolean type when converting to js [#702](https://github.com/wix/react-native-notifications/pull/702) by [xilin](https://github.com/xilin) +- [BugFix][iOS] Cleaning up initial notification after resolve [#697](https://github.com/wix/react-native-notifications/pull/697) by [muryj](https://github.com/muryj) +- Fixes #627 - First foreground notification is not visible [#685](https://github.com/wix/react-native-notifications/pull/685) by [erkie](https://github.com/erkie) +- Fix Xcode 12 Compatibility [#672](https://github.com/wix/react-native-notifications/pull/672) by [jaykhandelwal](https://github.com/jaykhandelwal) +- [Bugfix][Android] Use JobServiceIntent to fetch the FCM token in the background [#678](https://github.com/wix/react-native-notifications/pull/678) by [Robfz](https://github.com/Robfz) +- Fix: When app's in background, Android cannot trigger registerNotificationOpened when user press on banner [#614](https://github.com/wix/react-native-notifications/pull/614) by [ttkien](https://github.com/ttkien) + +--- + +## 3.0.0-beta.4 (31/12/1969) + +#### Enhancements: + +- Fix trampoline on target sdk 31 [#837](https://github.com/wix/react-native-notifications/pull/837) by [DanielEliraz](https://github.com/DanielEliraz) +- used common ext names exported in root project [#798](https://github.com/wix/react-native-notifications/pull/798) by [SaeedZhiany](https://github.com/SaeedZhiany) +- android: do not display data-only PN [#822](https://github.com/wix/react-native-notifications/pull/822) by [DanielEliraz](https://github.com/DanielEliraz) +- back to index js [#814](https://github.com/wix/react-native-notifications/pull/814) by [DanielEliraz](https://github.com/DanielEliraz) +- Fix Android API 31 issues and Convert example to TS [#812](https://github.com/wix/react-native-notifications/pull/812) by [DanielEliraz](https://github.com/DanielEliraz) +- update start guide [#800](https://github.com/wix/react-native-notifications/pull/800) by [weihangChen](https://github.com/weihangChen) +- upgrade to react-native@66.3 [#805](https://github.com/wix/react-native-notifications/pull/805) by [DanielEliraz](https://github.com/DanielEliraz) +- FEAT: ios add permissions to check permissions [#762](https://github.com/wix/react-native-notifications/pull/762) by [DanielEliraz](https://github.com/DanielEliraz) +- resiter remote on provisional approve [#759](https://github.com/wix/react-native-notifications/pull/759) by [DanielEliraz](https://github.com/DanielEliraz) +- expose provisional state [#756](https://github.com/wix/react-native-notifications/pull/756) by [DanielEliraz](https://github.com/DanielEliraz) +- Add ability to request/check more iOS permissions [#752](https://github.com/wix/react-native-notifications/pull/752) by [DanielEliraz](https://github.com/DanielEliraz) +- stop using deprecated firebase iid [#751](https://github.com/wix/react-native-notifications/pull/751) by [DanielEliraz](https://github.com/DanielEliraz) +- upgrade lodash to 4.17.21 [#747](https://github.com/wix/react-native-notifications/pull/747) by [DanielEliraz](https://github.com/DanielEliraz) +- Provisional option in iOS registeration [#744](https://github.com/wix/react-native-notifications/pull/744) by [DanielEliraz](https://github.com/DanielEliraz) +- return to ios.registerRemoteNotifications name [#742](https://github.com/wix/react-native-notifications/pull/742) by [DanielEliraz](https://github.com/DanielEliraz) +- App notification settings link [#740](https://github.com/wix/react-native-notifications/pull/740) by [DanielEliraz](https://github.com/DanielEliraz) +- Add enforce label action [#696](https://github.com/wix/react-native-notifications/pull/696) by [yogevbd](https://github.com/yogevbd) +- Lock docusaurus version [#695](https://github.com/wix/react-native-notifications/pull/695) by [yogevbd](https://github.com/yogevbd) +- Bump docusaurus to 2.0.0-alpha.64 [#673](https://github.com/wix/react-native-notifications/pull/673) by [yogevbd](https://github.com/yogevbd) +- Bump detox to v17.5.7 [#676](https://github.com/wix/react-native-notifications/pull/676) by [yogevbd](https://github.com/yogevbd) +- FCM Token Listener application [#660](https://github.com/wix/react-native-notifications/pull/660) by [swabbass](https://github.com/swabbass) + +#### Bug Fixes: + +- fix initial notification from killed [#831](https://github.com/wix/react-native-notifications/pull/831) by [DanielEliraz](https://github.com/DanielEliraz) +- latest notification data in getInitialNotification [#830](https://github.com/wix/react-native-notifications/pull/830) by [DanielEliraz](https://github.com/DanielEliraz) +- revert android to api 30 [#823](https://github.com/wix/react-native-notifications/pull/823) by [DanielEliraz](https://github.com/DanielEliraz) +- notifyReceivedToJS only when app is visible [#694](https://github.com/wix/react-native-notifications/pull/694) by [swabbass](https://github.com/swabbass) +- fix enfroce label [#795](https://github.com/wix/react-native-notifications/pull/795) by [DanielEliraz](https://github.com/DanielEliraz) +- fix: Add missing `android:exported` to `service` [#790](https://github.com/wix/react-native-notifications/pull/790) by [mrousavy](https://github.com/mrousavy) +- fix ts cancelLocalNotification prop [#754](https://github.com/wix/react-native-notifications/pull/754) by [DanielEliraz](https://github.com/DanielEliraz) +- Fix channel and channel group implementation [#750](https://github.com/wix/react-native-notifications/pull/750) by [DanielEliraz](https://github.com/DanielEliraz) +- finish run completion handler in main thread [#748](https://github.com/wix/react-native-notifications/pull/748) by [DanielEliraz](https://github.com/DanielEliraz) +- Make notification id optional fixes #703 [#709](https://github.com/wix/react-native-notifications/pull/709) by [antontanderup](https://github.com/antontanderup) +- Fix boolean type when converting to js [#702](https://github.com/wix/react-native-notifications/pull/702) by [xilin](https://github.com/xilin) +- [BugFix][iOS] Cleaning up initial notification after resolve [#697](https://github.com/wix/react-native-notifications/pull/697) by [muryj](https://github.com/muryj) +- Fixes #627 - First foreground notification is not visible [#685](https://github.com/wix/react-native-notifications/pull/685) by [erkie](https://github.com/erkie) +- Fix Xcode 12 Compatibility [#672](https://github.com/wix/react-native-notifications/pull/672) by [jaykhandelwal](https://github.com/jaykhandelwal) +- [Bugfix][Android] Use JobServiceIntent to fetch the FCM token in the background [#678](https://github.com/wix/react-native-notifications/pull/678) by [Robfz](https://github.com/Robfz) +- Fix: When app's in background, Android cannot trigger registerNotificationOpened when user press on banner [#614](https://github.com/wix/react-native-notifications/pull/614) by [ttkien](https://github.com/ttkien) + +--- + +## 3.0.0-beta.3 (31/12/1969) + +#### Enhancements: + +- Fix trampoline on target sdk 31 [#837](https://github.com/wix/react-native-notifications/pull/837) by [DanielEliraz](https://github.com/DanielEliraz) +- used common ext names exported in root project [#798](https://github.com/wix/react-native-notifications/pull/798) by [SaeedZhiany](https://github.com/SaeedZhiany) +- android: do not display data-only PN [#822](https://github.com/wix/react-native-notifications/pull/822) by [DanielEliraz](https://github.com/DanielEliraz) +- back to index js [#814](https://github.com/wix/react-native-notifications/pull/814) by [DanielEliraz](https://github.com/DanielEliraz) +- Fix Android API 31 issues and Convert example to TS [#812](https://github.com/wix/react-native-notifications/pull/812) by [DanielEliraz](https://github.com/DanielEliraz) +- update start guide [#800](https://github.com/wix/react-native-notifications/pull/800) by [weihangChen](https://github.com/weihangChen) +- upgrade to react-native@66.3 [#805](https://github.com/wix/react-native-notifications/pull/805) by [DanielEliraz](https://github.com/DanielEliraz) +- FEAT: ios add permissions to check permissions [#762](https://github.com/wix/react-native-notifications/pull/762) by [DanielEliraz](https://github.com/DanielEliraz) +- resiter remote on provisional approve [#759](https://github.com/wix/react-native-notifications/pull/759) by [DanielEliraz](https://github.com/DanielEliraz) +- expose provisional state [#756](https://github.com/wix/react-native-notifications/pull/756) by [DanielEliraz](https://github.com/DanielEliraz) +- Add ability to request/check more iOS permissions [#752](https://github.com/wix/react-native-notifications/pull/752) by [DanielEliraz](https://github.com/DanielEliraz) +- stop using deprecated firebase iid [#751](https://github.com/wix/react-native-notifications/pull/751) by [DanielEliraz](https://github.com/DanielEliraz) +- upgrade lodash to 4.17.21 [#747](https://github.com/wix/react-native-notifications/pull/747) by [DanielEliraz](https://github.com/DanielEliraz) +- Provisional option in iOS registeration [#744](https://github.com/wix/react-native-notifications/pull/744) by [DanielEliraz](https://github.com/DanielEliraz) +- return to ios.registerRemoteNotifications name [#742](https://github.com/wix/react-native-notifications/pull/742) by [DanielEliraz](https://github.com/DanielEliraz) +- App notification settings link [#740](https://github.com/wix/react-native-notifications/pull/740) by [DanielEliraz](https://github.com/DanielEliraz) +- Add enforce label action [#696](https://github.com/wix/react-native-notifications/pull/696) by [yogevbd](https://github.com/yogevbd) +- Lock docusaurus version [#695](https://github.com/wix/react-native-notifications/pull/695) by [yogevbd](https://github.com/yogevbd) +- Bump docusaurus to 2.0.0-alpha.64 [#673](https://github.com/wix/react-native-notifications/pull/673) by [yogevbd](https://github.com/yogevbd) +- Bump detox to v17.5.7 [#676](https://github.com/wix/react-native-notifications/pull/676) by [yogevbd](https://github.com/yogevbd) +- FCM Token Listener application [#660](https://github.com/wix/react-native-notifications/pull/660) by [swabbass](https://github.com/swabbass) + +#### Bug Fixes: + +- fix initial notification from killed [#831](https://github.com/wix/react-native-notifications/pull/831) by [DanielEliraz](https://github.com/DanielEliraz) +- latest notification data in getInitialNotification [#830](https://github.com/wix/react-native-notifications/pull/830) by [DanielEliraz](https://github.com/DanielEliraz) +- revert android to api 30 [#823](https://github.com/wix/react-native-notifications/pull/823) by [DanielEliraz](https://github.com/DanielEliraz) +- notifyReceivedToJS only when app is visible [#694](https://github.com/wix/react-native-notifications/pull/694) by [swabbass](https://github.com/swabbass) +- fix enfroce label [#795](https://github.com/wix/react-native-notifications/pull/795) by [DanielEliraz](https://github.com/DanielEliraz) +- fix: Add missing `android:exported` to `service` [#790](https://github.com/wix/react-native-notifications/pull/790) by [mrousavy](https://github.com/mrousavy) +- fix ts cancelLocalNotification prop [#754](https://github.com/wix/react-native-notifications/pull/754) by [DanielEliraz](https://github.com/DanielEliraz) +- Fix channel and channel group implementation [#750](https://github.com/wix/react-native-notifications/pull/750) by [DanielEliraz](https://github.com/DanielEliraz) +- finish run completion handler in main thread [#748](https://github.com/wix/react-native-notifications/pull/748) by [DanielEliraz](https://github.com/DanielEliraz) +- Make notification id optional fixes #703 [#709](https://github.com/wix/react-native-notifications/pull/709) by [antontanderup](https://github.com/antontanderup) +- Fix boolean type when converting to js [#702](https://github.com/wix/react-native-notifications/pull/702) by [xilin](https://github.com/xilin) +- [BugFix][iOS] Cleaning up initial notification after resolve [#697](https://github.com/wix/react-native-notifications/pull/697) by [muryj](https://github.com/muryj) +- Fixes #627 - First foreground notification is not visible [#685](https://github.com/wix/react-native-notifications/pull/685) by [erkie](https://github.com/erkie) +- Fix Xcode 12 Compatibility [#672](https://github.com/wix/react-native-notifications/pull/672) by [jaykhandelwal](https://github.com/jaykhandelwal) +- [Bugfix][Android] Use JobServiceIntent to fetch the FCM token in the background [#678](https://github.com/wix/react-native-notifications/pull/678) by [Robfz](https://github.com/Robfz) +- Fix: When app's in background, Android cannot trigger registerNotificationOpened when user press on banner [#614](https://github.com/wix/react-native-notifications/pull/614) by [ttkien](https://github.com/ttkien) + +--- + +## 3.0.0-beta.2 (31/12/1969) + +#### Enhancements: + +- Fix trampoline on target sdk 31 [#837](https://github.com/wix/react-native-notifications/pull/837) by [DanielEliraz](https://github.com/DanielEliraz) +- used common ext names exported in root project [#798](https://github.com/wix/react-native-notifications/pull/798) by [SaeedZhiany](https://github.com/SaeedZhiany) +- android: do not display data-only PN [#822](https://github.com/wix/react-native-notifications/pull/822) by [DanielEliraz](https://github.com/DanielEliraz) +- back to index js [#814](https://github.com/wix/react-native-notifications/pull/814) by [DanielEliraz](https://github.com/DanielEliraz) +- Fix Android API 31 issues and Convert example to TS [#812](https://github.com/wix/react-native-notifications/pull/812) by [DanielEliraz](https://github.com/DanielEliraz) +- update start guide [#800](https://github.com/wix/react-native-notifications/pull/800) by [weihangChen](https://github.com/weihangChen) +- upgrade to react-native@66.3 [#805](https://github.com/wix/react-native-notifications/pull/805) by [DanielEliraz](https://github.com/DanielEliraz) +- FEAT: ios add permissions to check permissions [#762](https://github.com/wix/react-native-notifications/pull/762) by [DanielEliraz](https://github.com/DanielEliraz) +- resiter remote on provisional approve [#759](https://github.com/wix/react-native-notifications/pull/759) by [DanielEliraz](https://github.com/DanielEliraz) +- expose provisional state [#756](https://github.com/wix/react-native-notifications/pull/756) by [DanielEliraz](https://github.com/DanielEliraz) +- Add ability to request/check more iOS permissions [#752](https://github.com/wix/react-native-notifications/pull/752) by [DanielEliraz](https://github.com/DanielEliraz) +- stop using deprecated firebase iid [#751](https://github.com/wix/react-native-notifications/pull/751) by [DanielEliraz](https://github.com/DanielEliraz) +- upgrade lodash to 4.17.21 [#747](https://github.com/wix/react-native-notifications/pull/747) by [DanielEliraz](https://github.com/DanielEliraz) +- Provisional option in iOS registeration [#744](https://github.com/wix/react-native-notifications/pull/744) by [DanielEliraz](https://github.com/DanielEliraz) +- return to ios.registerRemoteNotifications name [#742](https://github.com/wix/react-native-notifications/pull/742) by [DanielEliraz](https://github.com/DanielEliraz) +- App notification settings link [#740](https://github.com/wix/react-native-notifications/pull/740) by [DanielEliraz](https://github.com/DanielEliraz) +- Add enforce label action [#696](https://github.com/wix/react-native-notifications/pull/696) by [yogevbd](https://github.com/yogevbd) +- Lock docusaurus version [#695](https://github.com/wix/react-native-notifications/pull/695) by [yogevbd](https://github.com/yogevbd) +- Bump docusaurus to 2.0.0-alpha.64 [#673](https://github.com/wix/react-native-notifications/pull/673) by [yogevbd](https://github.com/yogevbd) +- Bump detox to v17.5.7 [#676](https://github.com/wix/react-native-notifications/pull/676) by [yogevbd](https://github.com/yogevbd) +- FCM Token Listener application [#660](https://github.com/wix/react-native-notifications/pull/660) by [swabbass](https://github.com/swabbass) + +#### Bug Fixes: + +- fix initial notification from killed [#831](https://github.com/wix/react-native-notifications/pull/831) by [DanielEliraz](https://github.com/DanielEliraz) +- latest notification data in getInitialNotification [#830](https://github.com/wix/react-native-notifications/pull/830) by [DanielEliraz](https://github.com/DanielEliraz) +- revert android to api 30 [#823](https://github.com/wix/react-native-notifications/pull/823) by [DanielEliraz](https://github.com/DanielEliraz) +- notifyReceivedToJS only when app is visible [#694](https://github.com/wix/react-native-notifications/pull/694) by [swabbass](https://github.com/swabbass) +- fix enfroce label [#795](https://github.com/wix/react-native-notifications/pull/795) by [DanielEliraz](https://github.com/DanielEliraz) +- fix: Add missing `android:exported` to `service` [#790](https://github.com/wix/react-native-notifications/pull/790) by [mrousavy](https://github.com/mrousavy) +- fix ts cancelLocalNotification prop [#754](https://github.com/wix/react-native-notifications/pull/754) by [DanielEliraz](https://github.com/DanielEliraz) +- Fix channel and channel group implementation [#750](https://github.com/wix/react-native-notifications/pull/750) by [DanielEliraz](https://github.com/DanielEliraz) +- finish run completion handler in main thread [#748](https://github.com/wix/react-native-notifications/pull/748) by [DanielEliraz](https://github.com/DanielEliraz) +- Make notification id optional fixes #703 [#709](https://github.com/wix/react-native-notifications/pull/709) by [antontanderup](https://github.com/antontanderup) +- Fix boolean type when converting to js [#702](https://github.com/wix/react-native-notifications/pull/702) by [xilin](https://github.com/xilin) +- [BugFix][iOS] Cleaning up initial notification after resolve [#697](https://github.com/wix/react-native-notifications/pull/697) by [muryj](https://github.com/muryj) +- Fixes #627 - First foreground notification is not visible [#685](https://github.com/wix/react-native-notifications/pull/685) by [erkie](https://github.com/erkie) +- Fix Xcode 12 Compatibility [#672](https://github.com/wix/react-native-notifications/pull/672) by [jaykhandelwal](https://github.com/jaykhandelwal) +- [Bugfix][Android] Use JobServiceIntent to fetch the FCM token in the background [#678](https://github.com/wix/react-native-notifications/pull/678) by [Robfz](https://github.com/Robfz) +- Fix: When app's in background, Android cannot trigger registerNotificationOpened when user press on banner [#614](https://github.com/wix/react-native-notifications/pull/614) by [ttkien](https://github.com/ttkien) + +--- + +## 3.0.0-beta.1 (31/12/1969) + +#### Enhancements: + +- Fix trampoline on target sdk 31 [#837](https://github.com/wix/react-native-notifications/pull/837) by [DanielEliraz](https://github.com/DanielEliraz) +- used common ext names exported in root project [#798](https://github.com/wix/react-native-notifications/pull/798) by [SaeedZhiany](https://github.com/SaeedZhiany) +- android: do not display data-only PN [#822](https://github.com/wix/react-native-notifications/pull/822) by [DanielEliraz](https://github.com/DanielEliraz) +- back to index js [#814](https://github.com/wix/react-native-notifications/pull/814) by [DanielEliraz](https://github.com/DanielEliraz) +- Fix Android API 31 issues and Convert example to TS [#812](https://github.com/wix/react-native-notifications/pull/812) by [DanielEliraz](https://github.com/DanielEliraz) +- update start guide [#800](https://github.com/wix/react-native-notifications/pull/800) by [weihangChen](https://github.com/weihangChen) +- upgrade to react-native@66.3 [#805](https://github.com/wix/react-native-notifications/pull/805) by [DanielEliraz](https://github.com/DanielEliraz) +- FEAT: ios add permissions to check permissions [#762](https://github.com/wix/react-native-notifications/pull/762) by [DanielEliraz](https://github.com/DanielEliraz) +- resiter remote on provisional approve [#759](https://github.com/wix/react-native-notifications/pull/759) by [DanielEliraz](https://github.com/DanielEliraz) +- expose provisional state [#756](https://github.com/wix/react-native-notifications/pull/756) by [DanielEliraz](https://github.com/DanielEliraz) +- Add ability to request/check more iOS permissions [#752](https://github.com/wix/react-native-notifications/pull/752) by [DanielEliraz](https://github.com/DanielEliraz) +- stop using deprecated firebase iid [#751](https://github.com/wix/react-native-notifications/pull/751) by [DanielEliraz](https://github.com/DanielEliraz) +- upgrade lodash to 4.17.21 [#747](https://github.com/wix/react-native-notifications/pull/747) by [DanielEliraz](https://github.com/DanielEliraz) +- Provisional option in iOS registeration [#744](https://github.com/wix/react-native-notifications/pull/744) by [DanielEliraz](https://github.com/DanielEliraz) +- return to ios.registerRemoteNotifications name [#742](https://github.com/wix/react-native-notifications/pull/742) by [DanielEliraz](https://github.com/DanielEliraz) +- App notification settings link [#740](https://github.com/wix/react-native-notifications/pull/740) by [DanielEliraz](https://github.com/DanielEliraz) +- Add enforce label action [#696](https://github.com/wix/react-native-notifications/pull/696) by [yogevbd](https://github.com/yogevbd) +- Lock docusaurus version [#695](https://github.com/wix/react-native-notifications/pull/695) by [yogevbd](https://github.com/yogevbd) +- Bump docusaurus to 2.0.0-alpha.64 [#673](https://github.com/wix/react-native-notifications/pull/673) by [yogevbd](https://github.com/yogevbd) +- Bump detox to v17.5.7 [#676](https://github.com/wix/react-native-notifications/pull/676) by [yogevbd](https://github.com/yogevbd) +- FCM Token Listener application [#660](https://github.com/wix/react-native-notifications/pull/660) by [swabbass](https://github.com/swabbass) + +#### Bug Fixes: + +- fix initial notification from killed [#831](https://github.com/wix/react-native-notifications/pull/831) by [DanielEliraz](https://github.com/DanielEliraz) +- latest notification data in getInitialNotification [#830](https://github.com/wix/react-native-notifications/pull/830) by [DanielEliraz](https://github.com/DanielEliraz) +- revert android to api 30 [#823](https://github.com/wix/react-native-notifications/pull/823) by [DanielEliraz](https://github.com/DanielEliraz) +- notifyReceivedToJS only when app is visible [#694](https://github.com/wix/react-native-notifications/pull/694) by [swabbass](https://github.com/swabbass) +- fix enfroce label [#795](https://github.com/wix/react-native-notifications/pull/795) by [DanielEliraz](https://github.com/DanielEliraz) +- fix: Add missing `android:exported` to `service` [#790](https://github.com/wix/react-native-notifications/pull/790) by [mrousavy](https://github.com/mrousavy) +- fix ts cancelLocalNotification prop [#754](https://github.com/wix/react-native-notifications/pull/754) by [DanielEliraz](https://github.com/DanielEliraz) +- Fix channel and channel group implementation [#750](https://github.com/wix/react-native-notifications/pull/750) by [DanielEliraz](https://github.com/DanielEliraz) +- finish run completion handler in main thread [#748](https://github.com/wix/react-native-notifications/pull/748) by [DanielEliraz](https://github.com/DanielEliraz) +- Make notification id optional fixes #703 [#709](https://github.com/wix/react-native-notifications/pull/709) by [antontanderup](https://github.com/antontanderup) +- Fix boolean type when converting to js [#702](https://github.com/wix/react-native-notifications/pull/702) by [xilin](https://github.com/xilin) +- [BugFix][iOS] Cleaning up initial notification after resolve [#697](https://github.com/wix/react-native-notifications/pull/697) by [muryj](https://github.com/muryj) +- Fixes #627 - First foreground notification is not visible [#685](https://github.com/wix/react-native-notifications/pull/685) by [erkie](https://github.com/erkie) +- Fix Xcode 12 Compatibility [#672](https://github.com/wix/react-native-notifications/pull/672) by [jaykhandelwal](https://github.com/jaykhandelwal) +- [Bugfix][Android] Use JobServiceIntent to fetch the FCM token in the background [#678](https://github.com/wix/react-native-notifications/pull/678) by [Robfz](https://github.com/Robfz) +- Fix: When app's in background, Android cannot trigger registerNotificationOpened when user press on banner [#614](https://github.com/wix/react-native-notifications/pull/614) by [ttkien](https://github.com/ttkien) + +--- + +## 3.0.0-beta.0 (31/12/1969) + +#### Enhancements: + +- Fix trampoline on target sdk 31 [#837](https://github.com/wix/react-native-notifications/pull/837) by [DanielEliraz](https://github.com/DanielEliraz) +- used common ext names exported in root project [#798](https://github.com/wix/react-native-notifications/pull/798) by [SaeedZhiany](https://github.com/SaeedZhiany) +- android: do not display data-only PN [#822](https://github.com/wix/react-native-notifications/pull/822) by [DanielEliraz](https://github.com/DanielEliraz) +- back to index js [#814](https://github.com/wix/react-native-notifications/pull/814) by [DanielEliraz](https://github.com/DanielEliraz) +- Fix Android API 31 issues and Convert example to TS [#812](https://github.com/wix/react-native-notifications/pull/812) by [DanielEliraz](https://github.com/DanielEliraz) +- update start guide [#800](https://github.com/wix/react-native-notifications/pull/800) by [weihangChen](https://github.com/weihangChen) +- upgrade to react-native@66.3 [#805](https://github.com/wix/react-native-notifications/pull/805) by [DanielEliraz](https://github.com/DanielEliraz) +- FEAT: ios add permissions to check permissions [#762](https://github.com/wix/react-native-notifications/pull/762) by [DanielEliraz](https://github.com/DanielEliraz) +- resiter remote on provisional approve [#759](https://github.com/wix/react-native-notifications/pull/759) by [DanielEliraz](https://github.com/DanielEliraz) +- expose provisional state [#756](https://github.com/wix/react-native-notifications/pull/756) by [DanielEliraz](https://github.com/DanielEliraz) +- Add ability to request/check more iOS permissions [#752](https://github.com/wix/react-native-notifications/pull/752) by [DanielEliraz](https://github.com/DanielEliraz) +- stop using deprecated firebase iid [#751](https://github.com/wix/react-native-notifications/pull/751) by [DanielEliraz](https://github.com/DanielEliraz) +- upgrade lodash to 4.17.21 [#747](https://github.com/wix/react-native-notifications/pull/747) by [DanielEliraz](https://github.com/DanielEliraz) +- Provisional option in iOS registeration [#744](https://github.com/wix/react-native-notifications/pull/744) by [DanielEliraz](https://github.com/DanielEliraz) +- return to ios.registerRemoteNotifications name [#742](https://github.com/wix/react-native-notifications/pull/742) by [DanielEliraz](https://github.com/DanielEliraz) +- App notification settings link [#740](https://github.com/wix/react-native-notifications/pull/740) by [DanielEliraz](https://github.com/DanielEliraz) +- Add enforce label action [#696](https://github.com/wix/react-native-notifications/pull/696) by [yogevbd](https://github.com/yogevbd) +- Lock docusaurus version [#695](https://github.com/wix/react-native-notifications/pull/695) by [yogevbd](https://github.com/yogevbd) +- Bump docusaurus to 2.0.0-alpha.64 [#673](https://github.com/wix/react-native-notifications/pull/673) by [yogevbd](https://github.com/yogevbd) +- Bump detox to v17.5.7 [#676](https://github.com/wix/react-native-notifications/pull/676) by [yogevbd](https://github.com/yogevbd) +- FCM Token Listener application [#660](https://github.com/wix/react-native-notifications/pull/660) by [swabbass](https://github.com/swabbass) + +#### Bug Fixes: + +- fix initial notification from killed [#831](https://github.com/wix/react-native-notifications/pull/831) by [DanielEliraz](https://github.com/DanielEliraz) +- latest notification data in getInitialNotification [#830](https://github.com/wix/react-native-notifications/pull/830) by [DanielEliraz](https://github.com/DanielEliraz) +- revert android to api 30 [#823](https://github.com/wix/react-native-notifications/pull/823) by [DanielEliraz](https://github.com/DanielEliraz) +- notifyReceivedToJS only when app is visible [#694](https://github.com/wix/react-native-notifications/pull/694) by [swabbass](https://github.com/swabbass) +- fix enfroce label [#795](https://github.com/wix/react-native-notifications/pull/795) by [DanielEliraz](https://github.com/DanielEliraz) +- fix: Add missing `android:exported` to `service` [#790](https://github.com/wix/react-native-notifications/pull/790) by [mrousavy](https://github.com/mrousavy) +- fix ts cancelLocalNotification prop [#754](https://github.com/wix/react-native-notifications/pull/754) by [DanielEliraz](https://github.com/DanielEliraz) +- Fix channel and channel group implementation [#750](https://github.com/wix/react-native-notifications/pull/750) by [DanielEliraz](https://github.com/DanielEliraz) +- finish run completion handler in main thread [#748](https://github.com/wix/react-native-notifications/pull/748) by [DanielEliraz](https://github.com/DanielEliraz) +- Make notification id optional fixes #703 [#709](https://github.com/wix/react-native-notifications/pull/709) by [antontanderup](https://github.com/antontanderup) +- Fix boolean type when converting to js [#702](https://github.com/wix/react-native-notifications/pull/702) by [xilin](https://github.com/xilin) +- [BugFix][iOS] Cleaning up initial notification after resolve [#697](https://github.com/wix/react-native-notifications/pull/697) by [muryj](https://github.com/muryj) +- Fixes #627 - First foreground notification is not visible [#685](https://github.com/wix/react-native-notifications/pull/685) by [erkie](https://github.com/erkie) +- Fix Xcode 12 Compatibility [#672](https://github.com/wix/react-native-notifications/pull/672) by [jaykhandelwal](https://github.com/jaykhandelwal) +- [Bugfix][Android] Use JobServiceIntent to fetch the FCM token in the background [#678](https://github.com/wix/react-native-notifications/pull/678) by [Robfz](https://github.com/Robfz) +- Fix: When app's in background, Android cannot trigger registerNotificationOpened when user press on banner [#614](https://github.com/wix/react-native-notifications/pull/614) by [ttkien](https://github.com/ttkien) + +--- + +## 3.0.0-alpha.0 (31/12/1969) + +#### Enhancements: + +- Fix trampoline on target sdk 31 [#837](https://github.com/wix/react-native-notifications/pull/837) by [DanielEliraz](https://github.com/DanielEliraz) +- used common ext names exported in root project [#798](https://github.com/wix/react-native-notifications/pull/798) by [SaeedZhiany](https://github.com/SaeedZhiany) +- android: do not display data-only PN [#822](https://github.com/wix/react-native-notifications/pull/822) by [DanielEliraz](https://github.com/DanielEliraz) +- back to index js [#814](https://github.com/wix/react-native-notifications/pull/814) by [DanielEliraz](https://github.com/DanielEliraz) +- Fix Android API 31 issues and Convert example to TS [#812](https://github.com/wix/react-native-notifications/pull/812) by [DanielEliraz](https://github.com/DanielEliraz) +- update start guide [#800](https://github.com/wix/react-native-notifications/pull/800) by [weihangChen](https://github.com/weihangChen) +- upgrade to react-native@66.3 [#805](https://github.com/wix/react-native-notifications/pull/805) by [DanielEliraz](https://github.com/DanielEliraz) +- FEAT: ios add permissions to check permissions [#762](https://github.com/wix/react-native-notifications/pull/762) by [DanielEliraz](https://github.com/DanielEliraz) +- resiter remote on provisional approve [#759](https://github.com/wix/react-native-notifications/pull/759) by [DanielEliraz](https://github.com/DanielEliraz) +- expose provisional state [#756](https://github.com/wix/react-native-notifications/pull/756) by [DanielEliraz](https://github.com/DanielEliraz) +- Add ability to request/check more iOS permissions [#752](https://github.com/wix/react-native-notifications/pull/752) by [DanielEliraz](https://github.com/DanielEliraz) +- stop using deprecated firebase iid [#751](https://github.com/wix/react-native-notifications/pull/751) by [DanielEliraz](https://github.com/DanielEliraz) +- upgrade lodash to 4.17.21 [#747](https://github.com/wix/react-native-notifications/pull/747) by [DanielEliraz](https://github.com/DanielEliraz) +- Provisional option in iOS registeration [#744](https://github.com/wix/react-native-notifications/pull/744) by [DanielEliraz](https://github.com/DanielEliraz) +- return to ios.registerRemoteNotifications name [#742](https://github.com/wix/react-native-notifications/pull/742) by [DanielEliraz](https://github.com/DanielEliraz) +- App notification settings link [#740](https://github.com/wix/react-native-notifications/pull/740) by [DanielEliraz](https://github.com/DanielEliraz) +- Add enforce label action [#696](https://github.com/wix/react-native-notifications/pull/696) by [yogevbd](https://github.com/yogevbd) +- Lock docusaurus version [#695](https://github.com/wix/react-native-notifications/pull/695) by [yogevbd](https://github.com/yogevbd) +- Bump docusaurus to 2.0.0-alpha.64 [#673](https://github.com/wix/react-native-notifications/pull/673) by [yogevbd](https://github.com/yogevbd) +- Bump detox to v17.5.7 [#676](https://github.com/wix/react-native-notifications/pull/676) by [yogevbd](https://github.com/yogevbd) +- FCM Token Listener application [#660](https://github.com/wix/react-native-notifications/pull/660) by [swabbass](https://github.com/swabbass) + +#### Bug Fixes: + +- fix initial notification from killed [#831](https://github.com/wix/react-native-notifications/pull/831) by [DanielEliraz](https://github.com/DanielEliraz) +- latest notification data in getInitialNotification [#830](https://github.com/wix/react-native-notifications/pull/830) by [DanielEliraz](https://github.com/DanielEliraz) +- revert android to api 30 [#823](https://github.com/wix/react-native-notifications/pull/823) by [DanielEliraz](https://github.com/DanielEliraz) +- notifyReceivedToJS only when app is visible [#694](https://github.com/wix/react-native-notifications/pull/694) by [swabbass](https://github.com/swabbass) +- fix enfroce label [#795](https://github.com/wix/react-native-notifications/pull/795) by [DanielEliraz](https://github.com/DanielEliraz) +- fix: Add missing `android:exported` to `service` [#790](https://github.com/wix/react-native-notifications/pull/790) by [mrousavy](https://github.com/mrousavy) +- fix ts cancelLocalNotification prop [#754](https://github.com/wix/react-native-notifications/pull/754) by [DanielEliraz](https://github.com/DanielEliraz) +- Fix channel and channel group implementation [#750](https://github.com/wix/react-native-notifications/pull/750) by [DanielEliraz](https://github.com/DanielEliraz) +- finish run completion handler in main thread [#748](https://github.com/wix/react-native-notifications/pull/748) by [DanielEliraz](https://github.com/DanielEliraz) +- Make notification id optional fixes #703 [#709](https://github.com/wix/react-native-notifications/pull/709) by [antontanderup](https://github.com/antontanderup) +- Fix boolean type when converting to js [#702](https://github.com/wix/react-native-notifications/pull/702) by [xilin](https://github.com/xilin) +- [BugFix][iOS] Cleaning up initial notification after resolve [#697](https://github.com/wix/react-native-notifications/pull/697) by [muryj](https://github.com/muryj) +- Fixes #627 - First foreground notification is not visible [#685](https://github.com/wix/react-native-notifications/pull/685) by [erkie](https://github.com/erkie) +- Fix Xcode 12 Compatibility [#672](https://github.com/wix/react-native-notifications/pull/672) by [jaykhandelwal](https://github.com/jaykhandelwal) +- [Bugfix][Android] Use JobServiceIntent to fetch the FCM token in the background [#678](https://github.com/wix/react-native-notifications/pull/678) by [Robfz](https://github.com/Robfz) +- Fix: When app's in background, Android cannot trigger registerNotificationOpened when user press on banner [#614](https://github.com/wix/react-native-notifications/pull/614) by [ttkien](https://github.com/ttkien) + +--- + +## 2.1.7 (31/12/1969) + +#### Enhancements: + +- Fix trampoline on target sdk 31 [#837](https://github.com/wix/react-native-notifications/pull/837) by [DanielEliraz](https://github.com/DanielEliraz) +- used common ext names exported in root project [#798](https://github.com/wix/react-native-notifications/pull/798) by [SaeedZhiany](https://github.com/SaeedZhiany) +- android: do not display data-only PN [#822](https://github.com/wix/react-native-notifications/pull/822) by [DanielEliraz](https://github.com/DanielEliraz) +- back to index js [#814](https://github.com/wix/react-native-notifications/pull/814) by [DanielEliraz](https://github.com/DanielEliraz) +- Fix Android API 31 issues and Convert example to TS [#812](https://github.com/wix/react-native-notifications/pull/812) by [DanielEliraz](https://github.com/DanielEliraz) +- update start guide [#800](https://github.com/wix/react-native-notifications/pull/800) by [weihangChen](https://github.com/weihangChen) +- upgrade to react-native@66.3 [#805](https://github.com/wix/react-native-notifications/pull/805) by [DanielEliraz](https://github.com/DanielEliraz) +- FEAT: ios add permissions to check permissions [#762](https://github.com/wix/react-native-notifications/pull/762) by [DanielEliraz](https://github.com/DanielEliraz) +- resiter remote on provisional approve [#759](https://github.com/wix/react-native-notifications/pull/759) by [DanielEliraz](https://github.com/DanielEliraz) +- expose provisional state [#756](https://github.com/wix/react-native-notifications/pull/756) by [DanielEliraz](https://github.com/DanielEliraz) +- Add ability to request/check more iOS permissions [#752](https://github.com/wix/react-native-notifications/pull/752) by [DanielEliraz](https://github.com/DanielEliraz) +- stop using deprecated firebase iid [#751](https://github.com/wix/react-native-notifications/pull/751) by [DanielEliraz](https://github.com/DanielEliraz) +- upgrade lodash to 4.17.21 [#747](https://github.com/wix/react-native-notifications/pull/747) by [DanielEliraz](https://github.com/DanielEliraz) +- Provisional option in iOS registeration [#744](https://github.com/wix/react-native-notifications/pull/744) by [DanielEliraz](https://github.com/DanielEliraz) +- return to ios.registerRemoteNotifications name [#742](https://github.com/wix/react-native-notifications/pull/742) by [DanielEliraz](https://github.com/DanielEliraz) +- App notification settings link [#740](https://github.com/wix/react-native-notifications/pull/740) by [DanielEliraz](https://github.com/DanielEliraz) +- Add enforce label action [#696](https://github.com/wix/react-native-notifications/pull/696) by [yogevbd](https://github.com/yogevbd) +- Lock docusaurus version [#695](https://github.com/wix/react-native-notifications/pull/695) by [yogevbd](https://github.com/yogevbd) +- Bump docusaurus to 2.0.0-alpha.64 [#673](https://github.com/wix/react-native-notifications/pull/673) by [yogevbd](https://github.com/yogevbd) +- Bump detox to v17.5.7 [#676](https://github.com/wix/react-native-notifications/pull/676) by [yogevbd](https://github.com/yogevbd) +- FCM Token Listener application [#660](https://github.com/wix/react-native-notifications/pull/660) by [swabbass](https://github.com/swabbass) + +#### Bug Fixes: + +- fix initial notification from killed [#831](https://github.com/wix/react-native-notifications/pull/831) by [DanielEliraz](https://github.com/DanielEliraz) +- latest notification data in getInitialNotification [#830](https://github.com/wix/react-native-notifications/pull/830) by [DanielEliraz](https://github.com/DanielEliraz) +- revert android to api 30 [#823](https://github.com/wix/react-native-notifications/pull/823) by [DanielEliraz](https://github.com/DanielEliraz) +- notifyReceivedToJS only when app is visible [#694](https://github.com/wix/react-native-notifications/pull/694) by [swabbass](https://github.com/swabbass) +- fix enfroce label [#795](https://github.com/wix/react-native-notifications/pull/795) by [DanielEliraz](https://github.com/DanielEliraz) +- fix: Add missing `android:exported` to `service` [#790](https://github.com/wix/react-native-notifications/pull/790) by [mrousavy](https://github.com/mrousavy) +- fix ts cancelLocalNotification prop [#754](https://github.com/wix/react-native-notifications/pull/754) by [DanielEliraz](https://github.com/DanielEliraz) +- Fix channel and channel group implementation [#750](https://github.com/wix/react-native-notifications/pull/750) by [DanielEliraz](https://github.com/DanielEliraz) +- finish run completion handler in main thread [#748](https://github.com/wix/react-native-notifications/pull/748) by [DanielEliraz](https://github.com/DanielEliraz) +- Make notification id optional fixes #703 [#709](https://github.com/wix/react-native-notifications/pull/709) by [antontanderup](https://github.com/antontanderup) +- Fix boolean type when converting to js [#702](https://github.com/wix/react-native-notifications/pull/702) by [xilin](https://github.com/xilin) +- [BugFix][iOS] Cleaning up initial notification after resolve [#697](https://github.com/wix/react-native-notifications/pull/697) by [muryj](https://github.com/muryj) +- Fixes #627 - First foreground notification is not visible [#685](https://github.com/wix/react-native-notifications/pull/685) by [erkie](https://github.com/erkie) +- Fix Xcode 12 Compatibility [#672](https://github.com/wix/react-native-notifications/pull/672) by [jaykhandelwal](https://github.com/jaykhandelwal) +- [Bugfix][Android] Use JobServiceIntent to fetch the FCM token in the background [#678](https://github.com/wix/react-native-notifications/pull/678) by [Robfz](https://github.com/Robfz) +- Fix: When app's in background, Android cannot trigger registerNotificationOpened when user press on banner [#614](https://github.com/wix/react-native-notifications/pull/614) by [ttkien](https://github.com/ttkien) + +--- + +## 2.1.6 (31/12/1969) + +#### Enhancements: + +- Fix trampoline on target sdk 31 [#837](https://github.com/wix/react-native-notifications/pull/837) by [DanielEliraz](https://github.com/DanielEliraz) +- used common ext names exported in root project [#798](https://github.com/wix/react-native-notifications/pull/798) by [SaeedZhiany](https://github.com/SaeedZhiany) +- android: do not display data-only PN [#822](https://github.com/wix/react-native-notifications/pull/822) by [DanielEliraz](https://github.com/DanielEliraz) +- back to index js [#814](https://github.com/wix/react-native-notifications/pull/814) by [DanielEliraz](https://github.com/DanielEliraz) +- Fix Android API 31 issues and Convert example to TS [#812](https://github.com/wix/react-native-notifications/pull/812) by [DanielEliraz](https://github.com/DanielEliraz) +- update start guide [#800](https://github.com/wix/react-native-notifications/pull/800) by [weihangChen](https://github.com/weihangChen) +- upgrade to react-native@66.3 [#805](https://github.com/wix/react-native-notifications/pull/805) by [DanielEliraz](https://github.com/DanielEliraz) +- FEAT: ios add permissions to check permissions [#762](https://github.com/wix/react-native-notifications/pull/762) by [DanielEliraz](https://github.com/DanielEliraz) +- resiter remote on provisional approve [#759](https://github.com/wix/react-native-notifications/pull/759) by [DanielEliraz](https://github.com/DanielEliraz) +- expose provisional state [#756](https://github.com/wix/react-native-notifications/pull/756) by [DanielEliraz](https://github.com/DanielEliraz) +- Add ability to request/check more iOS permissions [#752](https://github.com/wix/react-native-notifications/pull/752) by [DanielEliraz](https://github.com/DanielEliraz) +- stop using deprecated firebase iid [#751](https://github.com/wix/react-native-notifications/pull/751) by [DanielEliraz](https://github.com/DanielEliraz) +- upgrade lodash to 4.17.21 [#747](https://github.com/wix/react-native-notifications/pull/747) by [DanielEliraz](https://github.com/DanielEliraz) +- Provisional option in iOS registeration [#744](https://github.com/wix/react-native-notifications/pull/744) by [DanielEliraz](https://github.com/DanielEliraz) +- return to ios.registerRemoteNotifications name [#742](https://github.com/wix/react-native-notifications/pull/742) by [DanielEliraz](https://github.com/DanielEliraz) +- App notification settings link [#740](https://github.com/wix/react-native-notifications/pull/740) by [DanielEliraz](https://github.com/DanielEliraz) +- Add enforce label action [#696](https://github.com/wix/react-native-notifications/pull/696) by [yogevbd](https://github.com/yogevbd) +- Lock docusaurus version [#695](https://github.com/wix/react-native-notifications/pull/695) by [yogevbd](https://github.com/yogevbd) +- Bump docusaurus to 2.0.0-alpha.64 [#673](https://github.com/wix/react-native-notifications/pull/673) by [yogevbd](https://github.com/yogevbd) +- Bump detox to v17.5.7 [#676](https://github.com/wix/react-native-notifications/pull/676) by [yogevbd](https://github.com/yogevbd) +- FCM Token Listener application [#660](https://github.com/wix/react-native-notifications/pull/660) by [swabbass](https://github.com/swabbass) + +#### Bug Fixes: + +- fix initial notification from killed [#831](https://github.com/wix/react-native-notifications/pull/831) by [DanielEliraz](https://github.com/DanielEliraz) +- latest notification data in getInitialNotification [#830](https://github.com/wix/react-native-notifications/pull/830) by [DanielEliraz](https://github.com/DanielEliraz) +- revert android to api 30 [#823](https://github.com/wix/react-native-notifications/pull/823) by [DanielEliraz](https://github.com/DanielEliraz) +- notifyReceivedToJS only when app is visible [#694](https://github.com/wix/react-native-notifications/pull/694) by [swabbass](https://github.com/swabbass) +- fix enfroce label [#795](https://github.com/wix/react-native-notifications/pull/795) by [DanielEliraz](https://github.com/DanielEliraz) +- fix: Add missing `android:exported` to `service` [#790](https://github.com/wix/react-native-notifications/pull/790) by [mrousavy](https://github.com/mrousavy) +- fix ts cancelLocalNotification prop [#754](https://github.com/wix/react-native-notifications/pull/754) by [DanielEliraz](https://github.com/DanielEliraz) +- Fix channel and channel group implementation [#750](https://github.com/wix/react-native-notifications/pull/750) by [DanielEliraz](https://github.com/DanielEliraz) +- finish run completion handler in main thread [#748](https://github.com/wix/react-native-notifications/pull/748) by [DanielEliraz](https://github.com/DanielEliraz) +- Make notification id optional fixes #703 [#709](https://github.com/wix/react-native-notifications/pull/709) by [antontanderup](https://github.com/antontanderup) +- Fix boolean type when converting to js [#702](https://github.com/wix/react-native-notifications/pull/702) by [xilin](https://github.com/xilin) +- [BugFix][iOS] Cleaning up initial notification after resolve [#697](https://github.com/wix/react-native-notifications/pull/697) by [muryj](https://github.com/muryj) +- Fixes #627 - First foreground notification is not visible [#685](https://github.com/wix/react-native-notifications/pull/685) by [erkie](https://github.com/erkie) +- Fix Xcode 12 Compatibility [#672](https://github.com/wix/react-native-notifications/pull/672) by [jaykhandelwal](https://github.com/jaykhandelwal) +- [Bugfix][Android] Use JobServiceIntent to fetch the FCM token in the background [#678](https://github.com/wix/react-native-notifications/pull/678) by [Robfz](https://github.com/Robfz) +- Fix: When app's in background, Android cannot trigger registerNotificationOpened when user press on banner [#614](https://github.com/wix/react-native-notifications/pull/614) by [ttkien](https://github.com/ttkien) + +--- + +## 2.1.5 (31/12/1969) + +#### Enhancements: + +- Fix trampoline on target sdk 31 [#837](https://github.com/wix/react-native-notifications/pull/837) by [DanielEliraz](https://github.com/DanielEliraz) +- used common ext names exported in root project [#798](https://github.com/wix/react-native-notifications/pull/798) by [SaeedZhiany](https://github.com/SaeedZhiany) +- android: do not display data-only PN [#822](https://github.com/wix/react-native-notifications/pull/822) by [DanielEliraz](https://github.com/DanielEliraz) +- back to index js [#814](https://github.com/wix/react-native-notifications/pull/814) by [DanielEliraz](https://github.com/DanielEliraz) +- Fix Android API 31 issues and Convert example to TS [#812](https://github.com/wix/react-native-notifications/pull/812) by [DanielEliraz](https://github.com/DanielEliraz) +- update start guide [#800](https://github.com/wix/react-native-notifications/pull/800) by [weihangChen](https://github.com/weihangChen) +- upgrade to react-native@66.3 [#805](https://github.com/wix/react-native-notifications/pull/805) by [DanielEliraz](https://github.com/DanielEliraz) +- FEAT: ios add permissions to check permissions [#762](https://github.com/wix/react-native-notifications/pull/762) by [DanielEliraz](https://github.com/DanielEliraz) +- resiter remote on provisional approve [#759](https://github.com/wix/react-native-notifications/pull/759) by [DanielEliraz](https://github.com/DanielEliraz) +- expose provisional state [#756](https://github.com/wix/react-native-notifications/pull/756) by [DanielEliraz](https://github.com/DanielEliraz) +- Add ability to request/check more iOS permissions [#752](https://github.com/wix/react-native-notifications/pull/752) by [DanielEliraz](https://github.com/DanielEliraz) +- stop using deprecated firebase iid [#751](https://github.com/wix/react-native-notifications/pull/751) by [DanielEliraz](https://github.com/DanielEliraz) +- upgrade lodash to 4.17.21 [#747](https://github.com/wix/react-native-notifications/pull/747) by [DanielEliraz](https://github.com/DanielEliraz) +- Provisional option in iOS registeration [#744](https://github.com/wix/react-native-notifications/pull/744) by [DanielEliraz](https://github.com/DanielEliraz) +- return to ios.registerRemoteNotifications name [#742](https://github.com/wix/react-native-notifications/pull/742) by [DanielEliraz](https://github.com/DanielEliraz) +- App notification settings link [#740](https://github.com/wix/react-native-notifications/pull/740) by [DanielEliraz](https://github.com/DanielEliraz) +- Add enforce label action [#696](https://github.com/wix/react-native-notifications/pull/696) by [yogevbd](https://github.com/yogevbd) +- Lock docusaurus version [#695](https://github.com/wix/react-native-notifications/pull/695) by [yogevbd](https://github.com/yogevbd) +- Bump docusaurus to 2.0.0-alpha.64 [#673](https://github.com/wix/react-native-notifications/pull/673) by [yogevbd](https://github.com/yogevbd) +- Bump detox to v17.5.7 [#676](https://github.com/wix/react-native-notifications/pull/676) by [yogevbd](https://github.com/yogevbd) +- FCM Token Listener application [#660](https://github.com/wix/react-native-notifications/pull/660) by [swabbass](https://github.com/swabbass) + +#### Bug Fixes: + +- fix initial notification from killed [#831](https://github.com/wix/react-native-notifications/pull/831) by [DanielEliraz](https://github.com/DanielEliraz) +- latest notification data in getInitialNotification [#830](https://github.com/wix/react-native-notifications/pull/830) by [DanielEliraz](https://github.com/DanielEliraz) +- revert android to api 30 [#823](https://github.com/wix/react-native-notifications/pull/823) by [DanielEliraz](https://github.com/DanielEliraz) +- notifyReceivedToJS only when app is visible [#694](https://github.com/wix/react-native-notifications/pull/694) by [swabbass](https://github.com/swabbass) +- fix enfroce label [#795](https://github.com/wix/react-native-notifications/pull/795) by [DanielEliraz](https://github.com/DanielEliraz) +- fix: Add missing `android:exported` to `service` [#790](https://github.com/wix/react-native-notifications/pull/790) by [mrousavy](https://github.com/mrousavy) +- fix ts cancelLocalNotification prop [#754](https://github.com/wix/react-native-notifications/pull/754) by [DanielEliraz](https://github.com/DanielEliraz) +- Fix channel and channel group implementation [#750](https://github.com/wix/react-native-notifications/pull/750) by [DanielEliraz](https://github.com/DanielEliraz) +- finish run completion handler in main thread [#748](https://github.com/wix/react-native-notifications/pull/748) by [DanielEliraz](https://github.com/DanielEliraz) +- Make notification id optional fixes #703 [#709](https://github.com/wix/react-native-notifications/pull/709) by [antontanderup](https://github.com/antontanderup) +- Fix boolean type when converting to js [#702](https://github.com/wix/react-native-notifications/pull/702) by [xilin](https://github.com/xilin) +- [BugFix][iOS] Cleaning up initial notification after resolve [#697](https://github.com/wix/react-native-notifications/pull/697) by [muryj](https://github.com/muryj) +- Fixes #627 - First foreground notification is not visible [#685](https://github.com/wix/react-native-notifications/pull/685) by [erkie](https://github.com/erkie) +- Fix Xcode 12 Compatibility [#672](https://github.com/wix/react-native-notifications/pull/672) by [jaykhandelwal](https://github.com/jaykhandelwal) +- [Bugfix][Android] Use JobServiceIntent to fetch the FCM token in the background [#678](https://github.com/wix/react-native-notifications/pull/678) by [Robfz](https://github.com/Robfz) +- Fix: When app's in background, Android cannot trigger registerNotificationOpened when user press on banner [#614](https://github.com/wix/react-native-notifications/pull/614) by [ttkien](https://github.com/ttkien) + +--- + +## 2.1.4 (31/12/1969) + +#### Enhancements: + +- Fix trampoline on target sdk 31 [#837](https://github.com/wix/react-native-notifications/pull/837) by [DanielEliraz](https://github.com/DanielEliraz) +- used common ext names exported in root project [#798](https://github.com/wix/react-native-notifications/pull/798) by [SaeedZhiany](https://github.com/SaeedZhiany) +- android: do not display data-only PN [#822](https://github.com/wix/react-native-notifications/pull/822) by [DanielEliraz](https://github.com/DanielEliraz) +- back to index js [#814](https://github.com/wix/react-native-notifications/pull/814) by [DanielEliraz](https://github.com/DanielEliraz) +- Fix Android API 31 issues and Convert example to TS [#812](https://github.com/wix/react-native-notifications/pull/812) by [DanielEliraz](https://github.com/DanielEliraz) +- update start guide [#800](https://github.com/wix/react-native-notifications/pull/800) by [weihangChen](https://github.com/weihangChen) +- upgrade to react-native@66.3 [#805](https://github.com/wix/react-native-notifications/pull/805) by [DanielEliraz](https://github.com/DanielEliraz) +- FEAT: ios add permissions to check permissions [#762](https://github.com/wix/react-native-notifications/pull/762) by [DanielEliraz](https://github.com/DanielEliraz) +- resiter remote on provisional approve [#759](https://github.com/wix/react-native-notifications/pull/759) by [DanielEliraz](https://github.com/DanielEliraz) +- expose provisional state [#756](https://github.com/wix/react-native-notifications/pull/756) by [DanielEliraz](https://github.com/DanielEliraz) +- Add ability to request/check more iOS permissions [#752](https://github.com/wix/react-native-notifications/pull/752) by [DanielEliraz](https://github.com/DanielEliraz) +- stop using deprecated firebase iid [#751](https://github.com/wix/react-native-notifications/pull/751) by [DanielEliraz](https://github.com/DanielEliraz) +- upgrade lodash to 4.17.21 [#747](https://github.com/wix/react-native-notifications/pull/747) by [DanielEliraz](https://github.com/DanielEliraz) +- Provisional option in iOS registeration [#744](https://github.com/wix/react-native-notifications/pull/744) by [DanielEliraz](https://github.com/DanielEliraz) +- return to ios.registerRemoteNotifications name [#742](https://github.com/wix/react-native-notifications/pull/742) by [DanielEliraz](https://github.com/DanielEliraz) +- App notification settings link [#740](https://github.com/wix/react-native-notifications/pull/740) by [DanielEliraz](https://github.com/DanielEliraz) +- Add enforce label action [#696](https://github.com/wix/react-native-notifications/pull/696) by [yogevbd](https://github.com/yogevbd) +- Lock docusaurus version [#695](https://github.com/wix/react-native-notifications/pull/695) by [yogevbd](https://github.com/yogevbd) +- Bump docusaurus to 2.0.0-alpha.64 [#673](https://github.com/wix/react-native-notifications/pull/673) by [yogevbd](https://github.com/yogevbd) +- Bump detox to v17.5.7 [#676](https://github.com/wix/react-native-notifications/pull/676) by [yogevbd](https://github.com/yogevbd) +- FCM Token Listener application [#660](https://github.com/wix/react-native-notifications/pull/660) by [swabbass](https://github.com/swabbass) + +#### Bug Fixes: + +- fix initial notification from killed [#831](https://github.com/wix/react-native-notifications/pull/831) by [DanielEliraz](https://github.com/DanielEliraz) +- latest notification data in getInitialNotification [#830](https://github.com/wix/react-native-notifications/pull/830) by [DanielEliraz](https://github.com/DanielEliraz) +- revert android to api 30 [#823](https://github.com/wix/react-native-notifications/pull/823) by [DanielEliraz](https://github.com/DanielEliraz) +- notifyReceivedToJS only when app is visible [#694](https://github.com/wix/react-native-notifications/pull/694) by [swabbass](https://github.com/swabbass) +- fix enfroce label [#795](https://github.com/wix/react-native-notifications/pull/795) by [DanielEliraz](https://github.com/DanielEliraz) +- fix: Add missing `android:exported` to `service` [#790](https://github.com/wix/react-native-notifications/pull/790) by [mrousavy](https://github.com/mrousavy) +- fix ts cancelLocalNotification prop [#754](https://github.com/wix/react-native-notifications/pull/754) by [DanielEliraz](https://github.com/DanielEliraz) +- Fix channel and channel group implementation [#750](https://github.com/wix/react-native-notifications/pull/750) by [DanielEliraz](https://github.com/DanielEliraz) +- finish run completion handler in main thread [#748](https://github.com/wix/react-native-notifications/pull/748) by [DanielEliraz](https://github.com/DanielEliraz) +- Make notification id optional fixes #703 [#709](https://github.com/wix/react-native-notifications/pull/709) by [antontanderup](https://github.com/antontanderup) +- Fix boolean type when converting to js [#702](https://github.com/wix/react-native-notifications/pull/702) by [xilin](https://github.com/xilin) +- [BugFix][iOS] Cleaning up initial notification after resolve [#697](https://github.com/wix/react-native-notifications/pull/697) by [muryj](https://github.com/muryj) +- Fixes #627 - First foreground notification is not visible [#685](https://github.com/wix/react-native-notifications/pull/685) by [erkie](https://github.com/erkie) +- Fix Xcode 12 Compatibility [#672](https://github.com/wix/react-native-notifications/pull/672) by [jaykhandelwal](https://github.com/jaykhandelwal) +- [Bugfix][Android] Use JobServiceIntent to fetch the FCM token in the background [#678](https://github.com/wix/react-native-notifications/pull/678) by [Robfz](https://github.com/Robfz) +- Fix: When app's in background, Android cannot trigger registerNotificationOpened when user press on banner [#614](https://github.com/wix/react-native-notifications/pull/614) by [ttkien](https://github.com/ttkien) + +--- + +## 2.1.4-beta.0 (31/12/1969) + +#### Enhancements: + +- Fix trampoline on target sdk 31 [#837](https://github.com/wix/react-native-notifications/pull/837) by [DanielEliraz](https://github.com/DanielEliraz) +- used common ext names exported in root project [#798](https://github.com/wix/react-native-notifications/pull/798) by [SaeedZhiany](https://github.com/SaeedZhiany) +- android: do not display data-only PN [#822](https://github.com/wix/react-native-notifications/pull/822) by [DanielEliraz](https://github.com/DanielEliraz) +- back to index js [#814](https://github.com/wix/react-native-notifications/pull/814) by [DanielEliraz](https://github.com/DanielEliraz) +- Fix Android API 31 issues and Convert example to TS [#812](https://github.com/wix/react-native-notifications/pull/812) by [DanielEliraz](https://github.com/DanielEliraz) +- update start guide [#800](https://github.com/wix/react-native-notifications/pull/800) by [weihangChen](https://github.com/weihangChen) +- upgrade to react-native@66.3 [#805](https://github.com/wix/react-native-notifications/pull/805) by [DanielEliraz](https://github.com/DanielEliraz) +- FEAT: ios add permissions to check permissions [#762](https://github.com/wix/react-native-notifications/pull/762) by [DanielEliraz](https://github.com/DanielEliraz) +- resiter remote on provisional approve [#759](https://github.com/wix/react-native-notifications/pull/759) by [DanielEliraz](https://github.com/DanielEliraz) +- expose provisional state [#756](https://github.com/wix/react-native-notifications/pull/756) by [DanielEliraz](https://github.com/DanielEliraz) +- Add ability to request/check more iOS permissions [#752](https://github.com/wix/react-native-notifications/pull/752) by [DanielEliraz](https://github.com/DanielEliraz) +- stop using deprecated firebase iid [#751](https://github.com/wix/react-native-notifications/pull/751) by [DanielEliraz](https://github.com/DanielEliraz) +- upgrade lodash to 4.17.21 [#747](https://github.com/wix/react-native-notifications/pull/747) by [DanielEliraz](https://github.com/DanielEliraz) +- Provisional option in iOS registeration [#744](https://github.com/wix/react-native-notifications/pull/744) by [DanielEliraz](https://github.com/DanielEliraz) +- return to ios.registerRemoteNotifications name [#742](https://github.com/wix/react-native-notifications/pull/742) by [DanielEliraz](https://github.com/DanielEliraz) +- App notification settings link [#740](https://github.com/wix/react-native-notifications/pull/740) by [DanielEliraz](https://github.com/DanielEliraz) +- Add enforce label action [#696](https://github.com/wix/react-native-notifications/pull/696) by [yogevbd](https://github.com/yogevbd) +- Lock docusaurus version [#695](https://github.com/wix/react-native-notifications/pull/695) by [yogevbd](https://github.com/yogevbd) +- Bump docusaurus to 2.0.0-alpha.64 [#673](https://github.com/wix/react-native-notifications/pull/673) by [yogevbd](https://github.com/yogevbd) +- Bump detox to v17.5.7 [#676](https://github.com/wix/react-native-notifications/pull/676) by [yogevbd](https://github.com/yogevbd) +- FCM Token Listener application [#660](https://github.com/wix/react-native-notifications/pull/660) by [swabbass](https://github.com/swabbass) + +#### Bug Fixes: + +- fix initial notification from killed [#831](https://github.com/wix/react-native-notifications/pull/831) by [DanielEliraz](https://github.com/DanielEliraz) +- latest notification data in getInitialNotification [#830](https://github.com/wix/react-native-notifications/pull/830) by [DanielEliraz](https://github.com/DanielEliraz) +- revert android to api 30 [#823](https://github.com/wix/react-native-notifications/pull/823) by [DanielEliraz](https://github.com/DanielEliraz) +- notifyReceivedToJS only when app is visible [#694](https://github.com/wix/react-native-notifications/pull/694) by [swabbass](https://github.com/swabbass) +- fix enfroce label [#795](https://github.com/wix/react-native-notifications/pull/795) by [DanielEliraz](https://github.com/DanielEliraz) +- fix: Add missing `android:exported` to `service` [#790](https://github.com/wix/react-native-notifications/pull/790) by [mrousavy](https://github.com/mrousavy) +- fix ts cancelLocalNotification prop [#754](https://github.com/wix/react-native-notifications/pull/754) by [DanielEliraz](https://github.com/DanielEliraz) +- Fix channel and channel group implementation [#750](https://github.com/wix/react-native-notifications/pull/750) by [DanielEliraz](https://github.com/DanielEliraz) +- finish run completion handler in main thread [#748](https://github.com/wix/react-native-notifications/pull/748) by [DanielEliraz](https://github.com/DanielEliraz) +- Make notification id optional fixes #703 [#709](https://github.com/wix/react-native-notifications/pull/709) by [antontanderup](https://github.com/antontanderup) +- Fix boolean type when converting to js [#702](https://github.com/wix/react-native-notifications/pull/702) by [xilin](https://github.com/xilin) +- [BugFix][iOS] Cleaning up initial notification after resolve [#697](https://github.com/wix/react-native-notifications/pull/697) by [muryj](https://github.com/muryj) +- Fixes #627 - First foreground notification is not visible [#685](https://github.com/wix/react-native-notifications/pull/685) by [erkie](https://github.com/erkie) +- Fix Xcode 12 Compatibility [#672](https://github.com/wix/react-native-notifications/pull/672) by [jaykhandelwal](https://github.com/jaykhandelwal) +- [Bugfix][Android] Use JobServiceIntent to fetch the FCM token in the background [#678](https://github.com/wix/react-native-notifications/pull/678) by [Robfz](https://github.com/Robfz) +- Fix: When app's in background, Android cannot trigger registerNotificationOpened when user press on banner [#614](https://github.com/wix/react-native-notifications/pull/614) by [ttkien](https://github.com/ttkien) + +--- + +## 2.1.3 (31/12/1969) + +#### Enhancements: + +- Fix trampoline on target sdk 31 [#837](https://github.com/wix/react-native-notifications/pull/837) by [DanielEliraz](https://github.com/DanielEliraz) +- used common ext names exported in root project [#798](https://github.com/wix/react-native-notifications/pull/798) by [SaeedZhiany](https://github.com/SaeedZhiany) +- android: do not display data-only PN [#822](https://github.com/wix/react-native-notifications/pull/822) by [DanielEliraz](https://github.com/DanielEliraz) +- back to index js [#814](https://github.com/wix/react-native-notifications/pull/814) by [DanielEliraz](https://github.com/DanielEliraz) +- Fix Android API 31 issues and Convert example to TS [#812](https://github.com/wix/react-native-notifications/pull/812) by [DanielEliraz](https://github.com/DanielEliraz) +- update start guide [#800](https://github.com/wix/react-native-notifications/pull/800) by [weihangChen](https://github.com/weihangChen) +- upgrade to react-native@66.3 [#805](https://github.com/wix/react-native-notifications/pull/805) by [DanielEliraz](https://github.com/DanielEliraz) +- FEAT: ios add permissions to check permissions [#762](https://github.com/wix/react-native-notifications/pull/762) by [DanielEliraz](https://github.com/DanielEliraz) +- resiter remote on provisional approve [#759](https://github.com/wix/react-native-notifications/pull/759) by [DanielEliraz](https://github.com/DanielEliraz) +- expose provisional state [#756](https://github.com/wix/react-native-notifications/pull/756) by [DanielEliraz](https://github.com/DanielEliraz) +- Add ability to request/check more iOS permissions [#752](https://github.com/wix/react-native-notifications/pull/752) by [DanielEliraz](https://github.com/DanielEliraz) +- stop using deprecated firebase iid [#751](https://github.com/wix/react-native-notifications/pull/751) by [DanielEliraz](https://github.com/DanielEliraz) +- upgrade lodash to 4.17.21 [#747](https://github.com/wix/react-native-notifications/pull/747) by [DanielEliraz](https://github.com/DanielEliraz) +- Provisional option in iOS registeration [#744](https://github.com/wix/react-native-notifications/pull/744) by [DanielEliraz](https://github.com/DanielEliraz) +- return to ios.registerRemoteNotifications name [#742](https://github.com/wix/react-native-notifications/pull/742) by [DanielEliraz](https://github.com/DanielEliraz) +- App notification settings link [#740](https://github.com/wix/react-native-notifications/pull/740) by [DanielEliraz](https://github.com/DanielEliraz) +- Add enforce label action [#696](https://github.com/wix/react-native-notifications/pull/696) by [yogevbd](https://github.com/yogevbd) +- Lock docusaurus version [#695](https://github.com/wix/react-native-notifications/pull/695) by [yogevbd](https://github.com/yogevbd) +- Bump docusaurus to 2.0.0-alpha.64 [#673](https://github.com/wix/react-native-notifications/pull/673) by [yogevbd](https://github.com/yogevbd) +- Bump detox to v17.5.7 [#676](https://github.com/wix/react-native-notifications/pull/676) by [yogevbd](https://github.com/yogevbd) +- FCM Token Listener application [#660](https://github.com/wix/react-native-notifications/pull/660) by [swabbass](https://github.com/swabbass) + +#### Bug Fixes: + +- fix initial notification from killed [#831](https://github.com/wix/react-native-notifications/pull/831) by [DanielEliraz](https://github.com/DanielEliraz) +- latest notification data in getInitialNotification [#830](https://github.com/wix/react-native-notifications/pull/830) by [DanielEliraz](https://github.com/DanielEliraz) +- revert android to api 30 [#823](https://github.com/wix/react-native-notifications/pull/823) by [DanielEliraz](https://github.com/DanielEliraz) +- notifyReceivedToJS only when app is visible [#694](https://github.com/wix/react-native-notifications/pull/694) by [swabbass](https://github.com/swabbass) +- fix enfroce label [#795](https://github.com/wix/react-native-notifications/pull/795) by [DanielEliraz](https://github.com/DanielEliraz) +- fix: Add missing `android:exported` to `service` [#790](https://github.com/wix/react-native-notifications/pull/790) by [mrousavy](https://github.com/mrousavy) +- fix ts cancelLocalNotification prop [#754](https://github.com/wix/react-native-notifications/pull/754) by [DanielEliraz](https://github.com/DanielEliraz) +- Fix channel and channel group implementation [#750](https://github.com/wix/react-native-notifications/pull/750) by [DanielEliraz](https://github.com/DanielEliraz) +- finish run completion handler in main thread [#748](https://github.com/wix/react-native-notifications/pull/748) by [DanielEliraz](https://github.com/DanielEliraz) +- Make notification id optional fixes #703 [#709](https://github.com/wix/react-native-notifications/pull/709) by [antontanderup](https://github.com/antontanderup) +- Fix boolean type when converting to js [#702](https://github.com/wix/react-native-notifications/pull/702) by [xilin](https://github.com/xilin) +- [BugFix][iOS] Cleaning up initial notification after resolve [#697](https://github.com/wix/react-native-notifications/pull/697) by [muryj](https://github.com/muryj) +- Fixes #627 - First foreground notification is not visible [#685](https://github.com/wix/react-native-notifications/pull/685) by [erkie](https://github.com/erkie) +- Fix Xcode 12 Compatibility [#672](https://github.com/wix/react-native-notifications/pull/672) by [jaykhandelwal](https://github.com/jaykhandelwal) +- [Bugfix][Android] Use JobServiceIntent to fetch the FCM token in the background [#678](https://github.com/wix/react-native-notifications/pull/678) by [Robfz](https://github.com/Robfz) +- Fix: When app's in background, Android cannot trigger registerNotificationOpened when user press on banner [#614](https://github.com/wix/react-native-notifications/pull/614) by [ttkien](https://github.com/ttkien) + +--- + +## 2.1.0 (31/12/1969) + +#### Enhancements: + +- Fix trampoline on target sdk 31 [#837](https://github.com/wix/react-native-notifications/pull/837) by [DanielEliraz](https://github.com/DanielEliraz) +- used common ext names exported in root project [#798](https://github.com/wix/react-native-notifications/pull/798) by [SaeedZhiany](https://github.com/SaeedZhiany) +- android: do not display data-only PN [#822](https://github.com/wix/react-native-notifications/pull/822) by [DanielEliraz](https://github.com/DanielEliraz) +- back to index js [#814](https://github.com/wix/react-native-notifications/pull/814) by [DanielEliraz](https://github.com/DanielEliraz) +- Fix Android API 31 issues and Convert example to TS [#812](https://github.com/wix/react-native-notifications/pull/812) by [DanielEliraz](https://github.com/DanielEliraz) +- update start guide [#800](https://github.com/wix/react-native-notifications/pull/800) by [weihangChen](https://github.com/weihangChen) +- upgrade to react-native@66.3 [#805](https://github.com/wix/react-native-notifications/pull/805) by [DanielEliraz](https://github.com/DanielEliraz) +- FEAT: ios add permissions to check permissions [#762](https://github.com/wix/react-native-notifications/pull/762) by [DanielEliraz](https://github.com/DanielEliraz) +- resiter remote on provisional approve [#759](https://github.com/wix/react-native-notifications/pull/759) by [DanielEliraz](https://github.com/DanielEliraz) +- expose provisional state [#756](https://github.com/wix/react-native-notifications/pull/756) by [DanielEliraz](https://github.com/DanielEliraz) +- Add ability to request/check more iOS permissions [#752](https://github.com/wix/react-native-notifications/pull/752) by [DanielEliraz](https://github.com/DanielEliraz) +- stop using deprecated firebase iid [#751](https://github.com/wix/react-native-notifications/pull/751) by [DanielEliraz](https://github.com/DanielEliraz) +- upgrade lodash to 4.17.21 [#747](https://github.com/wix/react-native-notifications/pull/747) by [DanielEliraz](https://github.com/DanielEliraz) +- Provisional option in iOS registeration [#744](https://github.com/wix/react-native-notifications/pull/744) by [DanielEliraz](https://github.com/DanielEliraz) +- return to ios.registerRemoteNotifications name [#742](https://github.com/wix/react-native-notifications/pull/742) by [DanielEliraz](https://github.com/DanielEliraz) +- App notification settings link [#740](https://github.com/wix/react-native-notifications/pull/740) by [DanielEliraz](https://github.com/DanielEliraz) +- Add enforce label action [#696](https://github.com/wix/react-native-notifications/pull/696) by [yogevbd](https://github.com/yogevbd) +- Lock docusaurus version [#695](https://github.com/wix/react-native-notifications/pull/695) by [yogevbd](https://github.com/yogevbd) +- Bump docusaurus to 2.0.0-alpha.64 [#673](https://github.com/wix/react-native-notifications/pull/673) by [yogevbd](https://github.com/yogevbd) +- Bump detox to v17.5.7 [#676](https://github.com/wix/react-native-notifications/pull/676) by [yogevbd](https://github.com/yogevbd) +- FCM Token Listener application [#660](https://github.com/wix/react-native-notifications/pull/660) by [swabbass](https://github.com/swabbass) + +#### Bug Fixes: + +- fix initial notification from killed [#831](https://github.com/wix/react-native-notifications/pull/831) by [DanielEliraz](https://github.com/DanielEliraz) +- latest notification data in getInitialNotification [#830](https://github.com/wix/react-native-notifications/pull/830) by [DanielEliraz](https://github.com/DanielEliraz) +- revert android to api 30 [#823](https://github.com/wix/react-native-notifications/pull/823) by [DanielEliraz](https://github.com/DanielEliraz) +- notifyReceivedToJS only when app is visible [#694](https://github.com/wix/react-native-notifications/pull/694) by [swabbass](https://github.com/swabbass) +- fix enfroce label [#795](https://github.com/wix/react-native-notifications/pull/795) by [DanielEliraz](https://github.com/DanielEliraz) +- fix: Add missing `android:exported` to `service` [#790](https://github.com/wix/react-native-notifications/pull/790) by [mrousavy](https://github.com/mrousavy) +- fix ts cancelLocalNotification prop [#754](https://github.com/wix/react-native-notifications/pull/754) by [DanielEliraz](https://github.com/DanielEliraz) +- Fix channel and channel group implementation [#750](https://github.com/wix/react-native-notifications/pull/750) by [DanielEliraz](https://github.com/DanielEliraz) +- finish run completion handler in main thread [#748](https://github.com/wix/react-native-notifications/pull/748) by [DanielEliraz](https://github.com/DanielEliraz) +- Make notification id optional fixes #703 [#709](https://github.com/wix/react-native-notifications/pull/709) by [antontanderup](https://github.com/antontanderup) +- Fix boolean type when converting to js [#702](https://github.com/wix/react-native-notifications/pull/702) by [xilin](https://github.com/xilin) +- [BugFix][iOS] Cleaning up initial notification after resolve [#697](https://github.com/wix/react-native-notifications/pull/697) by [muryj](https://github.com/muryj) +- Fixes #627 - First foreground notification is not visible [#685](https://github.com/wix/react-native-notifications/pull/685) by [erkie](https://github.com/erkie) +- Fix Xcode 12 Compatibility [#672](https://github.com/wix/react-native-notifications/pull/672) by [jaykhandelwal](https://github.com/jaykhandelwal) +- [Bugfix][Android] Use JobServiceIntent to fetch the FCM token in the background [#678](https://github.com/wix/react-native-notifications/pull/678) by [Robfz](https://github.com/Robfz) +- Fix: When app's in background, Android cannot trigger registerNotificationOpened when user press on banner [#614](https://github.com/wix/react-native-notifications/pull/614) by [ttkien](https://github.com/ttkien) + +--- + +## 4.2.4 (31/12/1969) + +#### Enhancements: + +- Fix trampoline on target sdk 31 [#837](https://github.com/wix/react-native-notifications/pull/837) by [DanielEliraz](https://github.com/DanielEliraz) +- used common ext names exported in root project [#798](https://github.com/wix/react-native-notifications/pull/798) by [SaeedZhiany](https://github.com/SaeedZhiany) +- android: do not display data-only PN [#822](https://github.com/wix/react-native-notifications/pull/822) by [DanielEliraz](https://github.com/DanielEliraz) +- back to index js [#814](https://github.com/wix/react-native-notifications/pull/814) by [DanielEliraz](https://github.com/DanielEliraz) +- Fix Android API 31 issues and Convert example to TS [#812](https://github.com/wix/react-native-notifications/pull/812) by [DanielEliraz](https://github.com/DanielEliraz) +- update start guide [#800](https://github.com/wix/react-native-notifications/pull/800) by [weihangChen](https://github.com/weihangChen) +- upgrade to react-native@66.3 [#805](https://github.com/wix/react-native-notifications/pull/805) by [DanielEliraz](https://github.com/DanielEliraz) +- FEAT: ios add permissions to check permissions [#762](https://github.com/wix/react-native-notifications/pull/762) by [DanielEliraz](https://github.com/DanielEliraz) +- resiter remote on provisional approve [#759](https://github.com/wix/react-native-notifications/pull/759) by [DanielEliraz](https://github.com/DanielEliraz) +- expose provisional state [#756](https://github.com/wix/react-native-notifications/pull/756) by [DanielEliraz](https://github.com/DanielEliraz) +- Add ability to request/check more iOS permissions [#752](https://github.com/wix/react-native-notifications/pull/752) by [DanielEliraz](https://github.com/DanielEliraz) +- stop using deprecated firebase iid [#751](https://github.com/wix/react-native-notifications/pull/751) by [DanielEliraz](https://github.com/DanielEliraz) +- upgrade lodash to 4.17.21 [#747](https://github.com/wix/react-native-notifications/pull/747) by [DanielEliraz](https://github.com/DanielEliraz) +- Provisional option in iOS registeration [#744](https://github.com/wix/react-native-notifications/pull/744) by [DanielEliraz](https://github.com/DanielEliraz) +- return to ios.registerRemoteNotifications name [#742](https://github.com/wix/react-native-notifications/pull/742) by [DanielEliraz](https://github.com/DanielEliraz) +- App notification settings link [#740](https://github.com/wix/react-native-notifications/pull/740) by [DanielEliraz](https://github.com/DanielEliraz) +- Add enforce label action [#696](https://github.com/wix/react-native-notifications/pull/696) by [yogevbd](https://github.com/yogevbd) +- Lock docusaurus version [#695](https://github.com/wix/react-native-notifications/pull/695) by [yogevbd](https://github.com/yogevbd) +- Bump docusaurus to 2.0.0-alpha.64 [#673](https://github.com/wix/react-native-notifications/pull/673) by [yogevbd](https://github.com/yogevbd) +- Bump detox to v17.5.7 [#676](https://github.com/wix/react-native-notifications/pull/676) by [yogevbd](https://github.com/yogevbd) +- FCM Token Listener application [#660](https://github.com/wix/react-native-notifications/pull/660) by [swabbass](https://github.com/swabbass) + +#### Bug Fixes: + +- fix initial notification from killed [#831](https://github.com/wix/react-native-notifications/pull/831) by [DanielEliraz](https://github.com/DanielEliraz) +- latest notification data in getInitialNotification [#830](https://github.com/wix/react-native-notifications/pull/830) by [DanielEliraz](https://github.com/DanielEliraz) +- revert android to api 30 [#823](https://github.com/wix/react-native-notifications/pull/823) by [DanielEliraz](https://github.com/DanielEliraz) +- notifyReceivedToJS only when app is visible [#694](https://github.com/wix/react-native-notifications/pull/694) by [swabbass](https://github.com/swabbass) +- fix enfroce label [#795](https://github.com/wix/react-native-notifications/pull/795) by [DanielEliraz](https://github.com/DanielEliraz) +- fix: Add missing `android:exported` to `service` [#790](https://github.com/wix/react-native-notifications/pull/790) by [mrousavy](https://github.com/mrousavy) +- fix ts cancelLocalNotification prop [#754](https://github.com/wix/react-native-notifications/pull/754) by [DanielEliraz](https://github.com/DanielEliraz) +- Fix channel and channel group implementation [#750](https://github.com/wix/react-native-notifications/pull/750) by [DanielEliraz](https://github.com/DanielEliraz) +- finish run completion handler in main thread [#748](https://github.com/wix/react-native-notifications/pull/748) by [DanielEliraz](https://github.com/DanielEliraz) +- Make notification id optional fixes #703 [#709](https://github.com/wix/react-native-notifications/pull/709) by [antontanderup](https://github.com/antontanderup) +- Fix boolean type when converting to js [#702](https://github.com/wix/react-native-notifications/pull/702) by [xilin](https://github.com/xilin) +- [BugFix][iOS] Cleaning up initial notification after resolve [#697](https://github.com/wix/react-native-notifications/pull/697) by [muryj](https://github.com/muryj) +- Fixes #627 - First foreground notification is not visible [#685](https://github.com/wix/react-native-notifications/pull/685) by [erkie](https://github.com/erkie) +- Fix Xcode 12 Compatibility [#672](https://github.com/wix/react-native-notifications/pull/672) by [jaykhandelwal](https://github.com/jaykhandelwal) +- [Bugfix][Android] Use JobServiceIntent to fetch the FCM token in the background [#678](https://github.com/wix/react-native-notifications/pull/678) by [Robfz](https://github.com/Robfz) +- Fix: When app's in background, Android cannot trigger registerNotificationOpened when user press on banner [#614](https://github.com/wix/react-native-notifications/pull/614) by [ttkien](https://github.com/ttkien) + +--- + +## 3.4.3 (31/12/1969) + +#### Enhancements: + +- Fix trampoline on target sdk 31 [#837](https://github.com/wix/react-native-notifications/pull/837) by [DanielEliraz](https://github.com/DanielEliraz) +- used common ext names exported in root project [#798](https://github.com/wix/react-native-notifications/pull/798) by [SaeedZhiany](https://github.com/SaeedZhiany) +- android: do not display data-only PN [#822](https://github.com/wix/react-native-notifications/pull/822) by [DanielEliraz](https://github.com/DanielEliraz) +- back to index js [#814](https://github.com/wix/react-native-notifications/pull/814) by [DanielEliraz](https://github.com/DanielEliraz) +- Fix Android API 31 issues and Convert example to TS [#812](https://github.com/wix/react-native-notifications/pull/812) by [DanielEliraz](https://github.com/DanielEliraz) +- update start guide [#800](https://github.com/wix/react-native-notifications/pull/800) by [weihangChen](https://github.com/weihangChen) +- upgrade to react-native@66.3 [#805](https://github.com/wix/react-native-notifications/pull/805) by [DanielEliraz](https://github.com/DanielEliraz) +- FEAT: ios add permissions to check permissions [#762](https://github.com/wix/react-native-notifications/pull/762) by [DanielEliraz](https://github.com/DanielEliraz) +- resiter remote on provisional approve [#759](https://github.com/wix/react-native-notifications/pull/759) by [DanielEliraz](https://github.com/DanielEliraz) +- expose provisional state [#756](https://github.com/wix/react-native-notifications/pull/756) by [DanielEliraz](https://github.com/DanielEliraz) +- Add ability to request/check more iOS permissions [#752](https://github.com/wix/react-native-notifications/pull/752) by [DanielEliraz](https://github.com/DanielEliraz) +- stop using deprecated firebase iid [#751](https://github.com/wix/react-native-notifications/pull/751) by [DanielEliraz](https://github.com/DanielEliraz) +- upgrade lodash to 4.17.21 [#747](https://github.com/wix/react-native-notifications/pull/747) by [DanielEliraz](https://github.com/DanielEliraz) +- Provisional option in iOS registeration [#744](https://github.com/wix/react-native-notifications/pull/744) by [DanielEliraz](https://github.com/DanielEliraz) +- return to ios.registerRemoteNotifications name [#742](https://github.com/wix/react-native-notifications/pull/742) by [DanielEliraz](https://github.com/DanielEliraz) +- App notification settings link [#740](https://github.com/wix/react-native-notifications/pull/740) by [DanielEliraz](https://github.com/DanielEliraz) +- Add enforce label action [#696](https://github.com/wix/react-native-notifications/pull/696) by [yogevbd](https://github.com/yogevbd) +- Lock docusaurus version [#695](https://github.com/wix/react-native-notifications/pull/695) by [yogevbd](https://github.com/yogevbd) +- Bump docusaurus to 2.0.0-alpha.64 [#673](https://github.com/wix/react-native-notifications/pull/673) by [yogevbd](https://github.com/yogevbd) +- Bump detox to v17.5.7 [#676](https://github.com/wix/react-native-notifications/pull/676) by [yogevbd](https://github.com/yogevbd) +- FCM Token Listener application [#660](https://github.com/wix/react-native-notifications/pull/660) by [swabbass](https://github.com/swabbass) + +#### Bug Fixes: + +- fix initial notification from killed [#831](https://github.com/wix/react-native-notifications/pull/831) by [DanielEliraz](https://github.com/DanielEliraz) +- latest notification data in getInitialNotification [#830](https://github.com/wix/react-native-notifications/pull/830) by [DanielEliraz](https://github.com/DanielEliraz) +- revert android to api 30 [#823](https://github.com/wix/react-native-notifications/pull/823) by [DanielEliraz](https://github.com/DanielEliraz) +- notifyReceivedToJS only when app is visible [#694](https://github.com/wix/react-native-notifications/pull/694) by [swabbass](https://github.com/swabbass) +- fix enfroce label [#795](https://github.com/wix/react-native-notifications/pull/795) by [DanielEliraz](https://github.com/DanielEliraz) +- fix: Add missing `android:exported` to `service` [#790](https://github.com/wix/react-native-notifications/pull/790) by [mrousavy](https://github.com/mrousavy) +- fix ts cancelLocalNotification prop [#754](https://github.com/wix/react-native-notifications/pull/754) by [DanielEliraz](https://github.com/DanielEliraz) +- Fix channel and channel group implementation [#750](https://github.com/wix/react-native-notifications/pull/750) by [DanielEliraz](https://github.com/DanielEliraz) +- finish run completion handler in main thread [#748](https://github.com/wix/react-native-notifications/pull/748) by [DanielEliraz](https://github.com/DanielEliraz) +- Make notification id optional fixes #703 [#709](https://github.com/wix/react-native-notifications/pull/709) by [antontanderup](https://github.com/antontanderup) +- Fix boolean type when converting to js [#702](https://github.com/wix/react-native-notifications/pull/702) by [xilin](https://github.com/xilin) +- [BugFix][iOS] Cleaning up initial notification after resolve [#697](https://github.com/wix/react-native-notifications/pull/697) by [muryj](https://github.com/muryj) +- Fixes #627 - First foreground notification is not visible [#685](https://github.com/wix/react-native-notifications/pull/685) by [erkie](https://github.com/erkie) +- Fix Xcode 12 Compatibility [#672](https://github.com/wix/react-native-notifications/pull/672) by [jaykhandelwal](https://github.com/jaykhandelwal) +- [Bugfix][Android] Use JobServiceIntent to fetch the FCM token in the background [#678](https://github.com/wix/react-native-notifications/pull/678) by [Robfz](https://github.com/Robfz) +- Fix: When app's in background, Android cannot trigger registerNotificationOpened when user press on banner [#614](https://github.com/wix/react-native-notifications/pull/614) by [ttkien](https://github.com/ttkien) + +--- + +## 3.3.3 (31/12/1969) + +#### Enhancements: + +- Fix trampoline on target sdk 31 [#837](https://github.com/wix/react-native-notifications/pull/837) by [DanielEliraz](https://github.com/DanielEliraz) +- used common ext names exported in root project [#798](https://github.com/wix/react-native-notifications/pull/798) by [SaeedZhiany](https://github.com/SaeedZhiany) +- android: do not display data-only PN [#822](https://github.com/wix/react-native-notifications/pull/822) by [DanielEliraz](https://github.com/DanielEliraz) +- back to index js [#814](https://github.com/wix/react-native-notifications/pull/814) by [DanielEliraz](https://github.com/DanielEliraz) +- Fix Android API 31 issues and Convert example to TS [#812](https://github.com/wix/react-native-notifications/pull/812) by [DanielEliraz](https://github.com/DanielEliraz) +- update start guide [#800](https://github.com/wix/react-native-notifications/pull/800) by [weihangChen](https://github.com/weihangChen) +- upgrade to react-native@66.3 [#805](https://github.com/wix/react-native-notifications/pull/805) by [DanielEliraz](https://github.com/DanielEliraz) +- FEAT: ios add permissions to check permissions [#762](https://github.com/wix/react-native-notifications/pull/762) by [DanielEliraz](https://github.com/DanielEliraz) +- resiter remote on provisional approve [#759](https://github.com/wix/react-native-notifications/pull/759) by [DanielEliraz](https://github.com/DanielEliraz) +- expose provisional state [#756](https://github.com/wix/react-native-notifications/pull/756) by [DanielEliraz](https://github.com/DanielEliraz) +- Add ability to request/check more iOS permissions [#752](https://github.com/wix/react-native-notifications/pull/752) by [DanielEliraz](https://github.com/DanielEliraz) +- stop using deprecated firebase iid [#751](https://github.com/wix/react-native-notifications/pull/751) by [DanielEliraz](https://github.com/DanielEliraz) +- upgrade lodash to 4.17.21 [#747](https://github.com/wix/react-native-notifications/pull/747) by [DanielEliraz](https://github.com/DanielEliraz) +- Provisional option in iOS registeration [#744](https://github.com/wix/react-native-notifications/pull/744) by [DanielEliraz](https://github.com/DanielEliraz) +- return to ios.registerRemoteNotifications name [#742](https://github.com/wix/react-native-notifications/pull/742) by [DanielEliraz](https://github.com/DanielEliraz) +- App notification settings link [#740](https://github.com/wix/react-native-notifications/pull/740) by [DanielEliraz](https://github.com/DanielEliraz) +- Add enforce label action [#696](https://github.com/wix/react-native-notifications/pull/696) by [yogevbd](https://github.com/yogevbd) +- Lock docusaurus version [#695](https://github.com/wix/react-native-notifications/pull/695) by [yogevbd](https://github.com/yogevbd) +- Bump docusaurus to 2.0.0-alpha.64 [#673](https://github.com/wix/react-native-notifications/pull/673) by [yogevbd](https://github.com/yogevbd) +- Bump detox to v17.5.7 [#676](https://github.com/wix/react-native-notifications/pull/676) by [yogevbd](https://github.com/yogevbd) +- FCM Token Listener application [#660](https://github.com/wix/react-native-notifications/pull/660) by [swabbass](https://github.com/swabbass) + +#### Bug Fixes: + +- fix initial notification from killed [#831](https://github.com/wix/react-native-notifications/pull/831) by [DanielEliraz](https://github.com/DanielEliraz) +- latest notification data in getInitialNotification [#830](https://github.com/wix/react-native-notifications/pull/830) by [DanielEliraz](https://github.com/DanielEliraz) +- revert android to api 30 [#823](https://github.com/wix/react-native-notifications/pull/823) by [DanielEliraz](https://github.com/DanielEliraz) +- notifyReceivedToJS only when app is visible [#694](https://github.com/wix/react-native-notifications/pull/694) by [swabbass](https://github.com/swabbass) +- fix enfroce label [#795](https://github.com/wix/react-native-notifications/pull/795) by [DanielEliraz](https://github.com/DanielEliraz) +- fix: Add missing `android:exported` to `service` [#790](https://github.com/wix/react-native-notifications/pull/790) by [mrousavy](https://github.com/mrousavy) +- fix ts cancelLocalNotification prop [#754](https://github.com/wix/react-native-notifications/pull/754) by [DanielEliraz](https://github.com/DanielEliraz) +- Fix channel and channel group implementation [#750](https://github.com/wix/react-native-notifications/pull/750) by [DanielEliraz](https://github.com/DanielEliraz) +- finish run completion handler in main thread [#748](https://github.com/wix/react-native-notifications/pull/748) by [DanielEliraz](https://github.com/DanielEliraz) +- Make notification id optional fixes #703 [#709](https://github.com/wix/react-native-notifications/pull/709) by [antontanderup](https://github.com/antontanderup) +- Fix boolean type when converting to js [#702](https://github.com/wix/react-native-notifications/pull/702) by [xilin](https://github.com/xilin) +- [BugFix][iOS] Cleaning up initial notification after resolve [#697](https://github.com/wix/react-native-notifications/pull/697) by [muryj](https://github.com/muryj) +- Fixes #627 - First foreground notification is not visible [#685](https://github.com/wix/react-native-notifications/pull/685) by [erkie](https://github.com/erkie) +- Fix Xcode 12 Compatibility [#672](https://github.com/wix/react-native-notifications/pull/672) by [jaykhandelwal](https://github.com/jaykhandelwal) +- [Bugfix][Android] Use JobServiceIntent to fetch the FCM token in the background [#678](https://github.com/wix/react-native-notifications/pull/678) by [Robfz](https://github.com/Robfz) +- Fix: When app's in background, Android cannot trigger registerNotificationOpened when user press on banner [#614](https://github.com/wix/react-native-notifications/pull/614) by [ttkien](https://github.com/ttkien) + +--- + +## 3.2.0 (31/12/1969) + +#### Enhancements: + +- Fix trampoline on target sdk 31 [#837](https://github.com/wix/react-native-notifications/pull/837) by [DanielEliraz](https://github.com/DanielEliraz) +- used common ext names exported in root project [#798](https://github.com/wix/react-native-notifications/pull/798) by [SaeedZhiany](https://github.com/SaeedZhiany) +- android: do not display data-only PN [#822](https://github.com/wix/react-native-notifications/pull/822) by [DanielEliraz](https://github.com/DanielEliraz) +- back to index js [#814](https://github.com/wix/react-native-notifications/pull/814) by [DanielEliraz](https://github.com/DanielEliraz) +- Fix Android API 31 issues and Convert example to TS [#812](https://github.com/wix/react-native-notifications/pull/812) by [DanielEliraz](https://github.com/DanielEliraz) +- update start guide [#800](https://github.com/wix/react-native-notifications/pull/800) by [weihangChen](https://github.com/weihangChen) +- upgrade to react-native@66.3 [#805](https://github.com/wix/react-native-notifications/pull/805) by [DanielEliraz](https://github.com/DanielEliraz) +- FEAT: ios add permissions to check permissions [#762](https://github.com/wix/react-native-notifications/pull/762) by [DanielEliraz](https://github.com/DanielEliraz) +- resiter remote on provisional approve [#759](https://github.com/wix/react-native-notifications/pull/759) by [DanielEliraz](https://github.com/DanielEliraz) +- expose provisional state [#756](https://github.com/wix/react-native-notifications/pull/756) by [DanielEliraz](https://github.com/DanielEliraz) +- Add ability to request/check more iOS permissions [#752](https://github.com/wix/react-native-notifications/pull/752) by [DanielEliraz](https://github.com/DanielEliraz) +- stop using deprecated firebase iid [#751](https://github.com/wix/react-native-notifications/pull/751) by [DanielEliraz](https://github.com/DanielEliraz) +- upgrade lodash to 4.17.21 [#747](https://github.com/wix/react-native-notifications/pull/747) by [DanielEliraz](https://github.com/DanielEliraz) +- Provisional option in iOS registeration [#744](https://github.com/wix/react-native-notifications/pull/744) by [DanielEliraz](https://github.com/DanielEliraz) +- return to ios.registerRemoteNotifications name [#742](https://github.com/wix/react-native-notifications/pull/742) by [DanielEliraz](https://github.com/DanielEliraz) +- App notification settings link [#740](https://github.com/wix/react-native-notifications/pull/740) by [DanielEliraz](https://github.com/DanielEliraz) +- Add enforce label action [#696](https://github.com/wix/react-native-notifications/pull/696) by [yogevbd](https://github.com/yogevbd) +- Lock docusaurus version [#695](https://github.com/wix/react-native-notifications/pull/695) by [yogevbd](https://github.com/yogevbd) +- Bump docusaurus to 2.0.0-alpha.64 [#673](https://github.com/wix/react-native-notifications/pull/673) by [yogevbd](https://github.com/yogevbd) +- Bump detox to v17.5.7 [#676](https://github.com/wix/react-native-notifications/pull/676) by [yogevbd](https://github.com/yogevbd) +- FCM Token Listener application [#660](https://github.com/wix/react-native-notifications/pull/660) by [swabbass](https://github.com/swabbass) + +#### Bug Fixes: + +- fix initial notification from killed [#831](https://github.com/wix/react-native-notifications/pull/831) by [DanielEliraz](https://github.com/DanielEliraz) +- latest notification data in getInitialNotification [#830](https://github.com/wix/react-native-notifications/pull/830) by [DanielEliraz](https://github.com/DanielEliraz) +- revert android to api 30 [#823](https://github.com/wix/react-native-notifications/pull/823) by [DanielEliraz](https://github.com/DanielEliraz) +- notifyReceivedToJS only when app is visible [#694](https://github.com/wix/react-native-notifications/pull/694) by [swabbass](https://github.com/swabbass) +- fix enfroce label [#795](https://github.com/wix/react-native-notifications/pull/795) by [DanielEliraz](https://github.com/DanielEliraz) +- fix: Add missing `android:exported` to `service` [#790](https://github.com/wix/react-native-notifications/pull/790) by [mrousavy](https://github.com/mrousavy) +- fix ts cancelLocalNotification prop [#754](https://github.com/wix/react-native-notifications/pull/754) by [DanielEliraz](https://github.com/DanielEliraz) +- Fix channel and channel group implementation [#750](https://github.com/wix/react-native-notifications/pull/750) by [DanielEliraz](https://github.com/DanielEliraz) +- finish run completion handler in main thread [#748](https://github.com/wix/react-native-notifications/pull/748) by [DanielEliraz](https://github.com/DanielEliraz) +- Make notification id optional fixes #703 [#709](https://github.com/wix/react-native-notifications/pull/709) by [antontanderup](https://github.com/antontanderup) +- Fix boolean type when converting to js [#702](https://github.com/wix/react-native-notifications/pull/702) by [xilin](https://github.com/xilin) +- [BugFix][iOS] Cleaning up initial notification after resolve [#697](https://github.com/wix/react-native-notifications/pull/697) by [muryj](https://github.com/muryj) +- Fixes #627 - First foreground notification is not visible [#685](https://github.com/wix/react-native-notifications/pull/685) by [erkie](https://github.com/erkie) +- Fix Xcode 12 Compatibility [#672](https://github.com/wix/react-native-notifications/pull/672) by [jaykhandelwal](https://github.com/jaykhandelwal) +- [Bugfix][Android] Use JobServiceIntent to fetch the FCM token in the background [#678](https://github.com/wix/react-native-notifications/pull/678) by [Robfz](https://github.com/Robfz) +- Fix: When app's in background, Android cannot trigger registerNotificationOpened when user press on banner [#614](https://github.com/wix/react-native-notifications/pull/614) by [ttkien](https://github.com/ttkien) + +--- + +## 3.1.4 (31/12/1969) + +#### Enhancements: + +- Fix trampoline on target sdk 31 [#837](https://github.com/wix/react-native-notifications/pull/837) by [DanielEliraz](https://github.com/DanielEliraz) +- used common ext names exported in root project [#798](https://github.com/wix/react-native-notifications/pull/798) by [SaeedZhiany](https://github.com/SaeedZhiany) +- android: do not display data-only PN [#822](https://github.com/wix/react-native-notifications/pull/822) by [DanielEliraz](https://github.com/DanielEliraz) +- back to index js [#814](https://github.com/wix/react-native-notifications/pull/814) by [DanielEliraz](https://github.com/DanielEliraz) +- Fix Android API 31 issues and Convert example to TS [#812](https://github.com/wix/react-native-notifications/pull/812) by [DanielEliraz](https://github.com/DanielEliraz) +- update start guide [#800](https://github.com/wix/react-native-notifications/pull/800) by [weihangChen](https://github.com/weihangChen) +- upgrade to react-native@66.3 [#805](https://github.com/wix/react-native-notifications/pull/805) by [DanielEliraz](https://github.com/DanielEliraz) +- FEAT: ios add permissions to check permissions [#762](https://github.com/wix/react-native-notifications/pull/762) by [DanielEliraz](https://github.com/DanielEliraz) +- resiter remote on provisional approve [#759](https://github.com/wix/react-native-notifications/pull/759) by [DanielEliraz](https://github.com/DanielEliraz) +- expose provisional state [#756](https://github.com/wix/react-native-notifications/pull/756) by [DanielEliraz](https://github.com/DanielEliraz) +- Add ability to request/check more iOS permissions [#752](https://github.com/wix/react-native-notifications/pull/752) by [DanielEliraz](https://github.com/DanielEliraz) +- stop using deprecated firebase iid [#751](https://github.com/wix/react-native-notifications/pull/751) by [DanielEliraz](https://github.com/DanielEliraz) +- upgrade lodash to 4.17.21 [#747](https://github.com/wix/react-native-notifications/pull/747) by [DanielEliraz](https://github.com/DanielEliraz) +- Provisional option in iOS registeration [#744](https://github.com/wix/react-native-notifications/pull/744) by [DanielEliraz](https://github.com/DanielEliraz) +- return to ios.registerRemoteNotifications name [#742](https://github.com/wix/react-native-notifications/pull/742) by [DanielEliraz](https://github.com/DanielEliraz) +- App notification settings link [#740](https://github.com/wix/react-native-notifications/pull/740) by [DanielEliraz](https://github.com/DanielEliraz) +- Add enforce label action [#696](https://github.com/wix/react-native-notifications/pull/696) by [yogevbd](https://github.com/yogevbd) +- Lock docusaurus version [#695](https://github.com/wix/react-native-notifications/pull/695) by [yogevbd](https://github.com/yogevbd) +- Bump docusaurus to 2.0.0-alpha.64 [#673](https://github.com/wix/react-native-notifications/pull/673) by [yogevbd](https://github.com/yogevbd) +- Bump detox to v17.5.7 [#676](https://github.com/wix/react-native-notifications/pull/676) by [yogevbd](https://github.com/yogevbd) +- FCM Token Listener application [#660](https://github.com/wix/react-native-notifications/pull/660) by [swabbass](https://github.com/swabbass) + +#### Bug Fixes: + +- fix initial notification from killed [#831](https://github.com/wix/react-native-notifications/pull/831) by [DanielEliraz](https://github.com/DanielEliraz) +- latest notification data in getInitialNotification [#830](https://github.com/wix/react-native-notifications/pull/830) by [DanielEliraz](https://github.com/DanielEliraz) +- revert android to api 30 [#823](https://github.com/wix/react-native-notifications/pull/823) by [DanielEliraz](https://github.com/DanielEliraz) +- notifyReceivedToJS only when app is visible [#694](https://github.com/wix/react-native-notifications/pull/694) by [swabbass](https://github.com/swabbass) +- fix enfroce label [#795](https://github.com/wix/react-native-notifications/pull/795) by [DanielEliraz](https://github.com/DanielEliraz) +- fix: Add missing `android:exported` to `service` [#790](https://github.com/wix/react-native-notifications/pull/790) by [mrousavy](https://github.com/mrousavy) +- fix ts cancelLocalNotification prop [#754](https://github.com/wix/react-native-notifications/pull/754) by [DanielEliraz](https://github.com/DanielEliraz) +- Fix channel and channel group implementation [#750](https://github.com/wix/react-native-notifications/pull/750) by [DanielEliraz](https://github.com/DanielEliraz) +- finish run completion handler in main thread [#748](https://github.com/wix/react-native-notifications/pull/748) by [DanielEliraz](https://github.com/DanielEliraz) +- Make notification id optional fixes #703 [#709](https://github.com/wix/react-native-notifications/pull/709) by [antontanderup](https://github.com/antontanderup) +- Fix boolean type when converting to js [#702](https://github.com/wix/react-native-notifications/pull/702) by [xilin](https://github.com/xilin) +- [BugFix][iOS] Cleaning up initial notification after resolve [#697](https://github.com/wix/react-native-notifications/pull/697) by [muryj](https://github.com/muryj) +- Fixes #627 - First foreground notification is not visible [#685](https://github.com/wix/react-native-notifications/pull/685) by [erkie](https://github.com/erkie) +- Fix Xcode 12 Compatibility [#672](https://github.com/wix/react-native-notifications/pull/672) by [jaykhandelwal](https://github.com/jaykhandelwal) +- [Bugfix][Android] Use JobServiceIntent to fetch the FCM token in the background [#678](https://github.com/wix/react-native-notifications/pull/678) by [Robfz](https://github.com/Robfz) +- Fix: When app's in background, Android cannot trigger registerNotificationOpened when user press on banner [#614](https://github.com/wix/react-native-notifications/pull/614) by [ttkien](https://github.com/ttkien) + +--- + +## 3.1.3 (31/12/1969) + +#### Enhancements: + +- Fix trampoline on target sdk 31 [#837](https://github.com/wix/react-native-notifications/pull/837) by [DanielEliraz](https://github.com/DanielEliraz) +- used common ext names exported in root project [#798](https://github.com/wix/react-native-notifications/pull/798) by [SaeedZhiany](https://github.com/SaeedZhiany) +- android: do not display data-only PN [#822](https://github.com/wix/react-native-notifications/pull/822) by [DanielEliraz](https://github.com/DanielEliraz) +- back to index js [#814](https://github.com/wix/react-native-notifications/pull/814) by [DanielEliraz](https://github.com/DanielEliraz) +- Fix Android API 31 issues and Convert example to TS [#812](https://github.com/wix/react-native-notifications/pull/812) by [DanielEliraz](https://github.com/DanielEliraz) +- update start guide [#800](https://github.com/wix/react-native-notifications/pull/800) by [weihangChen](https://github.com/weihangChen) +- upgrade to react-native@66.3 [#805](https://github.com/wix/react-native-notifications/pull/805) by [DanielEliraz](https://github.com/DanielEliraz) +- FEAT: ios add permissions to check permissions [#762](https://github.com/wix/react-native-notifications/pull/762) by [DanielEliraz](https://github.com/DanielEliraz) +- resiter remote on provisional approve [#759](https://github.com/wix/react-native-notifications/pull/759) by [DanielEliraz](https://github.com/DanielEliraz) +- expose provisional state [#756](https://github.com/wix/react-native-notifications/pull/756) by [DanielEliraz](https://github.com/DanielEliraz) +- Add ability to request/check more iOS permissions [#752](https://github.com/wix/react-native-notifications/pull/752) by [DanielEliraz](https://github.com/DanielEliraz) +- stop using deprecated firebase iid [#751](https://github.com/wix/react-native-notifications/pull/751) by [DanielEliraz](https://github.com/DanielEliraz) +- upgrade lodash to 4.17.21 [#747](https://github.com/wix/react-native-notifications/pull/747) by [DanielEliraz](https://github.com/DanielEliraz) +- Provisional option in iOS registeration [#744](https://github.com/wix/react-native-notifications/pull/744) by [DanielEliraz](https://github.com/DanielEliraz) +- return to ios.registerRemoteNotifications name [#742](https://github.com/wix/react-native-notifications/pull/742) by [DanielEliraz](https://github.com/DanielEliraz) +- App notification settings link [#740](https://github.com/wix/react-native-notifications/pull/740) by [DanielEliraz](https://github.com/DanielEliraz) +- Add enforce label action [#696](https://github.com/wix/react-native-notifications/pull/696) by [yogevbd](https://github.com/yogevbd) +- Lock docusaurus version [#695](https://github.com/wix/react-native-notifications/pull/695) by [yogevbd](https://github.com/yogevbd) +- Bump docusaurus to 2.0.0-alpha.64 [#673](https://github.com/wix/react-native-notifications/pull/673) by [yogevbd](https://github.com/yogevbd) +- Bump detox to v17.5.7 [#676](https://github.com/wix/react-native-notifications/pull/676) by [yogevbd](https://github.com/yogevbd) +- FCM Token Listener application [#660](https://github.com/wix/react-native-notifications/pull/660) by [swabbass](https://github.com/swabbass) + +#### Bug Fixes: + +- fix initial notification from killed [#831](https://github.com/wix/react-native-notifications/pull/831) by [DanielEliraz](https://github.com/DanielEliraz) +- latest notification data in getInitialNotification [#830](https://github.com/wix/react-native-notifications/pull/830) by [DanielEliraz](https://github.com/DanielEliraz) +- revert android to api 30 [#823](https://github.com/wix/react-native-notifications/pull/823) by [DanielEliraz](https://github.com/DanielEliraz) +- notifyReceivedToJS only when app is visible [#694](https://github.com/wix/react-native-notifications/pull/694) by [swabbass](https://github.com/swabbass) +- fix enfroce label [#795](https://github.com/wix/react-native-notifications/pull/795) by [DanielEliraz](https://github.com/DanielEliraz) +- fix: Add missing `android:exported` to `service` [#790](https://github.com/wix/react-native-notifications/pull/790) by [mrousavy](https://github.com/mrousavy) +- fix ts cancelLocalNotification prop [#754](https://github.com/wix/react-native-notifications/pull/754) by [DanielEliraz](https://github.com/DanielEliraz) +- Fix channel and channel group implementation [#750](https://github.com/wix/react-native-notifications/pull/750) by [DanielEliraz](https://github.com/DanielEliraz) +- finish run completion handler in main thread [#748](https://github.com/wix/react-native-notifications/pull/748) by [DanielEliraz](https://github.com/DanielEliraz) +- Make notification id optional fixes #703 [#709](https://github.com/wix/react-native-notifications/pull/709) by [antontanderup](https://github.com/antontanderup) +- Fix boolean type when converting to js [#702](https://github.com/wix/react-native-notifications/pull/702) by [xilin](https://github.com/xilin) +- [BugFix][iOS] Cleaning up initial notification after resolve [#697](https://github.com/wix/react-native-notifications/pull/697) by [muryj](https://github.com/muryj) +- Fixes #627 - First foreground notification is not visible [#685](https://github.com/wix/react-native-notifications/pull/685) by [erkie](https://github.com/erkie) +- Fix Xcode 12 Compatibility [#672](https://github.com/wix/react-native-notifications/pull/672) by [jaykhandelwal](https://github.com/jaykhandelwal) +- [Bugfix][Android] Use JobServiceIntent to fetch the FCM token in the background [#678](https://github.com/wix/react-native-notifications/pull/678) by [Robfz](https://github.com/Robfz) +- Fix: When app's in background, Android cannot trigger registerNotificationOpened when user press on banner [#614](https://github.com/wix/react-native-notifications/pull/614) by [ttkien](https://github.com/ttkien) + +--- + +## 3.1.2 (31/12/1969) + +#### Enhancements: + +- Fix trampoline on target sdk 31 [#837](https://github.com/wix/react-native-notifications/pull/837) by [DanielEliraz](https://github.com/DanielEliraz) +- used common ext names exported in root project [#798](https://github.com/wix/react-native-notifications/pull/798) by [SaeedZhiany](https://github.com/SaeedZhiany) +- android: do not display data-only PN [#822](https://github.com/wix/react-native-notifications/pull/822) by [DanielEliraz](https://github.com/DanielEliraz) +- back to index js [#814](https://github.com/wix/react-native-notifications/pull/814) by [DanielEliraz](https://github.com/DanielEliraz) +- Fix Android API 31 issues and Convert example to TS [#812](https://github.com/wix/react-native-notifications/pull/812) by [DanielEliraz](https://github.com/DanielEliraz) +- update start guide [#800](https://github.com/wix/react-native-notifications/pull/800) by [weihangChen](https://github.com/weihangChen) +- upgrade to react-native@66.3 [#805](https://github.com/wix/react-native-notifications/pull/805) by [DanielEliraz](https://github.com/DanielEliraz) +- FEAT: ios add permissions to check permissions [#762](https://github.com/wix/react-native-notifications/pull/762) by [DanielEliraz](https://github.com/DanielEliraz) +- resiter remote on provisional approve [#759](https://github.com/wix/react-native-notifications/pull/759) by [DanielEliraz](https://github.com/DanielEliraz) +- expose provisional state [#756](https://github.com/wix/react-native-notifications/pull/756) by [DanielEliraz](https://github.com/DanielEliraz) +- Add ability to request/check more iOS permissions [#752](https://github.com/wix/react-native-notifications/pull/752) by [DanielEliraz](https://github.com/DanielEliraz) +- stop using deprecated firebase iid [#751](https://github.com/wix/react-native-notifications/pull/751) by [DanielEliraz](https://github.com/DanielEliraz) +- upgrade lodash to 4.17.21 [#747](https://github.com/wix/react-native-notifications/pull/747) by [DanielEliraz](https://github.com/DanielEliraz) +- Provisional option in iOS registeration [#744](https://github.com/wix/react-native-notifications/pull/744) by [DanielEliraz](https://github.com/DanielEliraz) +- return to ios.registerRemoteNotifications name [#742](https://github.com/wix/react-native-notifications/pull/742) by [DanielEliraz](https://github.com/DanielEliraz) +- App notification settings link [#740](https://github.com/wix/react-native-notifications/pull/740) by [DanielEliraz](https://github.com/DanielEliraz) +- Add enforce label action [#696](https://github.com/wix/react-native-notifications/pull/696) by [yogevbd](https://github.com/yogevbd) +- Lock docusaurus version [#695](https://github.com/wix/react-native-notifications/pull/695) by [yogevbd](https://github.com/yogevbd) +- Bump docusaurus to 2.0.0-alpha.64 [#673](https://github.com/wix/react-native-notifications/pull/673) by [yogevbd](https://github.com/yogevbd) +- Bump detox to v17.5.7 [#676](https://github.com/wix/react-native-notifications/pull/676) by [yogevbd](https://github.com/yogevbd) +- FCM Token Listener application [#660](https://github.com/wix/react-native-notifications/pull/660) by [swabbass](https://github.com/swabbass) + +#### Bug Fixes: + +- fix initial notification from killed [#831](https://github.com/wix/react-native-notifications/pull/831) by [DanielEliraz](https://github.com/DanielEliraz) +- latest notification data in getInitialNotification [#830](https://github.com/wix/react-native-notifications/pull/830) by [DanielEliraz](https://github.com/DanielEliraz) +- revert android to api 30 [#823](https://github.com/wix/react-native-notifications/pull/823) by [DanielEliraz](https://github.com/DanielEliraz) +- notifyReceivedToJS only when app is visible [#694](https://github.com/wix/react-native-notifications/pull/694) by [swabbass](https://github.com/swabbass) +- fix enfroce label [#795](https://github.com/wix/react-native-notifications/pull/795) by [DanielEliraz](https://github.com/DanielEliraz) +- fix: Add missing `android:exported` to `service` [#790](https://github.com/wix/react-native-notifications/pull/790) by [mrousavy](https://github.com/mrousavy) +- fix ts cancelLocalNotification prop [#754](https://github.com/wix/react-native-notifications/pull/754) by [DanielEliraz](https://github.com/DanielEliraz) +- Fix channel and channel group implementation [#750](https://github.com/wix/react-native-notifications/pull/750) by [DanielEliraz](https://github.com/DanielEliraz) +- finish run completion handler in main thread [#748](https://github.com/wix/react-native-notifications/pull/748) by [DanielEliraz](https://github.com/DanielEliraz) +- Make notification id optional fixes #703 [#709](https://github.com/wix/react-native-notifications/pull/709) by [antontanderup](https://github.com/antontanderup) +- Fix boolean type when converting to js [#702](https://github.com/wix/react-native-notifications/pull/702) by [xilin](https://github.com/xilin) +- [BugFix][iOS] Cleaning up initial notification after resolve [#697](https://github.com/wix/react-native-notifications/pull/697) by [muryj](https://github.com/muryj) +- Fixes #627 - First foreground notification is not visible [#685](https://github.com/wix/react-native-notifications/pull/685) by [erkie](https://github.com/erkie) +- Fix Xcode 12 Compatibility [#672](https://github.com/wix/react-native-notifications/pull/672) by [jaykhandelwal](https://github.com/jaykhandelwal) +- [Bugfix][Android] Use JobServiceIntent to fetch the FCM token in the background [#678](https://github.com/wix/react-native-notifications/pull/678) by [Robfz](https://github.com/Robfz) +- Fix: When app's in background, Android cannot trigger registerNotificationOpened when user press on banner [#614](https://github.com/wix/react-native-notifications/pull/614) by [ttkien](https://github.com/ttkien) + +--- + +## 3.1.1 (31/12/1969) + +#### Enhancements: + +- Fix trampoline on target sdk 31 [#837](https://github.com/wix/react-native-notifications/pull/837) by [DanielEliraz](https://github.com/DanielEliraz) +- used common ext names exported in root project [#798](https://github.com/wix/react-native-notifications/pull/798) by [SaeedZhiany](https://github.com/SaeedZhiany) +- android: do not display data-only PN [#822](https://github.com/wix/react-native-notifications/pull/822) by [DanielEliraz](https://github.com/DanielEliraz) +- back to index js [#814](https://github.com/wix/react-native-notifications/pull/814) by [DanielEliraz](https://github.com/DanielEliraz) +- Fix Android API 31 issues and Convert example to TS [#812](https://github.com/wix/react-native-notifications/pull/812) by [DanielEliraz](https://github.com/DanielEliraz) +- update start guide [#800](https://github.com/wix/react-native-notifications/pull/800) by [weihangChen](https://github.com/weihangChen) +- upgrade to react-native@66.3 [#805](https://github.com/wix/react-native-notifications/pull/805) by [DanielEliraz](https://github.com/DanielEliraz) +- FEAT: ios add permissions to check permissions [#762](https://github.com/wix/react-native-notifications/pull/762) by [DanielEliraz](https://github.com/DanielEliraz) +- resiter remote on provisional approve [#759](https://github.com/wix/react-native-notifications/pull/759) by [DanielEliraz](https://github.com/DanielEliraz) +- expose provisional state [#756](https://github.com/wix/react-native-notifications/pull/756) by [DanielEliraz](https://github.com/DanielEliraz) +- Add ability to request/check more iOS permissions [#752](https://github.com/wix/react-native-notifications/pull/752) by [DanielEliraz](https://github.com/DanielEliraz) +- stop using deprecated firebase iid [#751](https://github.com/wix/react-native-notifications/pull/751) by [DanielEliraz](https://github.com/DanielEliraz) +- upgrade lodash to 4.17.21 [#747](https://github.com/wix/react-native-notifications/pull/747) by [DanielEliraz](https://github.com/DanielEliraz) +- Provisional option in iOS registeration [#744](https://github.com/wix/react-native-notifications/pull/744) by [DanielEliraz](https://github.com/DanielEliraz) +- return to ios.registerRemoteNotifications name [#742](https://github.com/wix/react-native-notifications/pull/742) by [DanielEliraz](https://github.com/DanielEliraz) +- App notification settings link [#740](https://github.com/wix/react-native-notifications/pull/740) by [DanielEliraz](https://github.com/DanielEliraz) +- Add enforce label action [#696](https://github.com/wix/react-native-notifications/pull/696) by [yogevbd](https://github.com/yogevbd) +- Lock docusaurus version [#695](https://github.com/wix/react-native-notifications/pull/695) by [yogevbd](https://github.com/yogevbd) +- Bump docusaurus to 2.0.0-alpha.64 [#673](https://github.com/wix/react-native-notifications/pull/673) by [yogevbd](https://github.com/yogevbd) +- Bump detox to v17.5.7 [#676](https://github.com/wix/react-native-notifications/pull/676) by [yogevbd](https://github.com/yogevbd) +- FCM Token Listener application [#660](https://github.com/wix/react-native-notifications/pull/660) by [swabbass](https://github.com/swabbass) + +#### Bug Fixes: + +- fix initial notification from killed [#831](https://github.com/wix/react-native-notifications/pull/831) by [DanielEliraz](https://github.com/DanielEliraz) +- latest notification data in getInitialNotification [#830](https://github.com/wix/react-native-notifications/pull/830) by [DanielEliraz](https://github.com/DanielEliraz) +- revert android to api 30 [#823](https://github.com/wix/react-native-notifications/pull/823) by [DanielEliraz](https://github.com/DanielEliraz) +- notifyReceivedToJS only when app is visible [#694](https://github.com/wix/react-native-notifications/pull/694) by [swabbass](https://github.com/swabbass) +- fix enfroce label [#795](https://github.com/wix/react-native-notifications/pull/795) by [DanielEliraz](https://github.com/DanielEliraz) +- fix: Add missing `android:exported` to `service` [#790](https://github.com/wix/react-native-notifications/pull/790) by [mrousavy](https://github.com/mrousavy) +- fix ts cancelLocalNotification prop [#754](https://github.com/wix/react-native-notifications/pull/754) by [DanielEliraz](https://github.com/DanielEliraz) +- Fix channel and channel group implementation [#750](https://github.com/wix/react-native-notifications/pull/750) by [DanielEliraz](https://github.com/DanielEliraz) +- finish run completion handler in main thread [#748](https://github.com/wix/react-native-notifications/pull/748) by [DanielEliraz](https://github.com/DanielEliraz) +- Make notification id optional fixes #703 [#709](https://github.com/wix/react-native-notifications/pull/709) by [antontanderup](https://github.com/antontanderup) +- Fix boolean type when converting to js [#702](https://github.com/wix/react-native-notifications/pull/702) by [xilin](https://github.com/xilin) +- [BugFix][iOS] Cleaning up initial notification after resolve [#697](https://github.com/wix/react-native-notifications/pull/697) by [muryj](https://github.com/muryj) +- Fixes #627 - First foreground notification is not visible [#685](https://github.com/wix/react-native-notifications/pull/685) by [erkie](https://github.com/erkie) +- Fix Xcode 12 Compatibility [#672](https://github.com/wix/react-native-notifications/pull/672) by [jaykhandelwal](https://github.com/jaykhandelwal) +- [Bugfix][Android] Use JobServiceIntent to fetch the FCM token in the background [#678](https://github.com/wix/react-native-notifications/pull/678) by [Robfz](https://github.com/Robfz) +- Fix: When app's in background, Android cannot trigger registerNotificationOpened when user press on banner [#614](https://github.com/wix/react-native-notifications/pull/614) by [ttkien](https://github.com/ttkien) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0212ae560..4865ffefe 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,11 @@ # Changelog +# 2.1.0 +## Added +* react-native 0.60 Support + +### Breaking Change +This version requires an additional installation step in order to identify the correct build flavor on android, as described in our [Installation doc](https://github.com/wix/react-native-notifications/blob/master/docs/installation.md#step-5-rnnotifications-and-react-native-version). + # 2.0.6 ## Fixed ### Android diff --git a/CODEOWNERS b/CODEOWNERS index a5a52936f..2db79cfa4 100644 --- a/CODEOWNERS +++ b/CODEOWNERS @@ -1 +1 @@ -* @yogevbd +* @DanielEliraz diff --git a/README.md b/README.md index 21eeeb190..06ddad587 100644 --- a/README.md +++ b/README.md @@ -1,15 +1,26 @@ -# React Native Notifications [![CircleCI](https://circleci.com/gh/wix/react-native-notifications/tree/master.svg?style=svg)](https://circleci.com/gh/wix/react-native-notifications/tree/master) +

+
+ React Native Notifications +

+ +![npm](https://img.shields.io/npm/dw/react-native-notifications.svg) +[![Build Status](https://img.shields.io/jenkins/s/http/jenkins-oss.wixpress.com:8080/job/multi-react-native-notifications-master.svg)](https://jenkins-oss.wixpress.com/job/multi-react-native-notifications-master/) +[![npm (tag)](https://img.shields.io/npm/v/react-native-notifications/latest.svg)](https://github.com/wix/react-native-notifications/tree/master) +[![npm (tag)](https://img.shields.io/npm/v/react-native-notifications/snapshot.svg)](https://github.com/wix/react-native-notifications/tree/master) Handle all the aspects of push notifications for your app, including remote and local notifications, interactive notifications, silent notifications, and more. -**All the native iOS notifications features are supported!** +**All the native iOS notifications features are supported!** _For information regarding proper integration with [react-native-navigation](https://github.com/wix/react-native-navigation), follow [this wiki](https://github.com/wix/react-native-notifications/wiki/Android:-working-with-RNN)._ +# Requirements + +Apps using React Native Notifications may target iOS 10 and Android 5.0 (API 21). You may use Windows, macOS or Linux as your development operating system. ### iOS -Interactive notifications example + - Remote (push) notifications - Local notifications @@ -26,17 +37,14 @@ _For information regarding proper integration with [react-native-navigation](htt _Upcoming: local notifications, background-state Rx queue (iOS equivalent)_ +# Quick Links -# Table of Content - -- [Installation and setup](./docs/installation.md) - Setting up the library in your app -- [Subscription](./docs/subscription.md) - Signing in to push notifications vendors (e.g. GCM) -- [Notification Events (notfications core)](./docs/notificationsEvents.md) - Handling push notification arrival, notification opening by users -- [Local notifications](./docs/localNotifications.md) - Manually triggering notifications (i.e. not via push) -- [Advanced iOS topics](./docs/advancedIos.md) - e.g. managed notifications, PushKit API, Notifications actions -- [Notifications layout control - Android (wiki page)](https://github.com/wix/react-native-notifications/wiki/Android:-Layout-Customization) - Learn how to fully customize your notifications layout on Android! +- [Getting Started](https://wix.github.io/react-native-notifications/docs/getting-started) +- [API](https://wix.github.io/react-native-notifications/api/general-api) +- [Documentation](https://wix.github.io/react-native-notifications/) # License + The MIT License. See [LICENSE](LICENSE) diff --git a/RNNotifications/RNEventEmitter.h b/RNNotifications/RNEventEmitter.h deleted file mode 100644 index 011477d98..000000000 --- a/RNNotifications/RNEventEmitter.h +++ /dev/null @@ -1,15 +0,0 @@ -#import - -static NSString* const RNRegistered = @"remoteNotificationsRegistered"; -static NSString* const RNRegistrationFailed = @"remoteNotificationsRegistrationFailed"; -static NSString* const RNPushKitRegistered = @"pushKitRegistered"; -static NSString* const RNNotificationReceivedForeground = @"notificationReceivedForeground"; -static NSString* const RNNotificationOpened = @"notificationOpened"; -static NSString* const RNPushKitNotificationReceived = @"pushKitNotificationReceived"; - - -@interface RNEventEmitter : RCTEventEmitter - -+ (void)sendEvent:(NSString *)event body:(NSDictionary *)body; - -@end diff --git a/RNNotifications/RNNotifications.h b/RNNotifications/RNNotifications.h deleted file mode 100644 index 2e277393e..000000000 --- a/RNNotifications/RNNotifications.h +++ /dev/null @@ -1,15 +0,0 @@ -@import UIKit; -#import -@import UserNotifications; - -@interface RNNotifications : NSObject - -+ (instancetype)sharedInstance; - -+ (void)startMonitorNotifications; -+ (void)startMonitorPushKitNotifications; - -+ (void)didRegisterForRemoteNotificationsWithDeviceToken:(id)deviceToken; -+ (void)didFailToRegisterForRemoteNotificationsWithError:(NSError *)error; - -@end diff --git a/RNNotifications/RNNotificationsTests/Info.plist b/RNNotifications/RNNotificationsTests/Info.plist deleted file mode 100644 index 6c40a6cd0..000000000 --- a/RNNotifications/RNNotificationsTests/Info.plist +++ /dev/null @@ -1,22 +0,0 @@ - - - - - CFBundleDevelopmentRegion - $(DEVELOPMENT_LANGUAGE) - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - BNDL - CFBundleShortVersionString - 1.0 - CFBundleVersion - 1 - - diff --git a/RNNotifications/RNNotificationsTests/Integration/RNBridgeModuleIntegrationTest.m b/RNNotifications/RNNotificationsTests/Integration/RNBridgeModuleIntegrationTest.m deleted file mode 100644 index b76da813c..000000000 --- a/RNNotifications/RNNotificationsTests/Integration/RNBridgeModuleIntegrationTest.m +++ /dev/null @@ -1,25 +0,0 @@ -#import -#import "RNBridgeModule.h" -#import - -@interface RNBridgeModuleIntegrationTest : XCTestCase - -@property (nonatomic, strong) RNBridgeModule* bridgeModule; - -@end - -@implementation RNBridgeModuleIntegrationTest - -- (void)setUp { - -} - -- (void)tearDown { - -} - -- (void)testRequestPermissionsWithCategories { - -} - -@end diff --git a/RNNotifications/RNPushKitEventHandler.m b/RNNotifications/RNPushKitEventHandler.m deleted file mode 100644 index 2e2c99ed4..000000000 --- a/RNNotifications/RNPushKitEventHandler.m +++ /dev/null @@ -1,14 +0,0 @@ -#import "RNPushKitEventHandler.h" -#import "RNEventEmitter.h" - -@implementation RNPushKitEventHandler - -- (void)registeredWithToken:(NSString *)token { - [RNEventEmitter sendEvent:RNPushKitRegistered body:@{@"pushKitToken": token}]; -} - -- (void)didReceiveIncomingPushWithPayload:(NSDictionary *)payload { - [RNEventEmitter sendEvent:RNPushKitNotificationReceived body:payload]; -} - -@end diff --git a/android/app/build.gradle b/android/app/build.gradle deleted file mode 100644 index 319f35305..000000000 --- a/android/app/build.gradle +++ /dev/null @@ -1,51 +0,0 @@ -apply plugin: 'com.android.library' - -android { - compileSdkVersion 27 - buildToolsVersion '28.0.3' - - defaultConfig { - minSdkVersion 19 - targetSdkVersion 27 - versionCode 1 - versionName "1.0" - } - buildTypes { - release { - minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' - } - } - testOptions { - unitTests.all { t -> - reports { - html.enabled true - } - testLogging { - events "PASSED", "SKIPPED", "FAILED", "standardOut", "standardError" - } - afterSuite { desc, result -> - if (!desc.parent) { // will match the outermost suite - def output = " ${result.resultType} (${result.successfulTestCount} successes, ${result.failedTestCount} failures, ${result.skippedTestCount} skipped) " - def repeatLength = output.length() - println '\n\n' + ('-' * repeatLength) + '\n' + output + '\n' + ('-' * repeatLength) + '\n' - - println "see report at file://${t.reports.html.destination}/index.html" - } - } - } - } -} - -dependencies { - implementation "com.google.firebase:firebase-messaging:17.3.0" - implementation "me.leolin:ShortcutBadger:1.1.22@aar" - implementation 'com.facebook.react:react-native:+' - - // tests - testImplementation 'junit:junit:4.12' - testImplementation 'org.robolectric:robolectric:3.5.1' - testImplementation 'org.assertj:assertj-core:3.8.0' - testImplementation 'com.squareup.assertj:assertj-android:1.1.1' - testImplementation 'org.mockito:mockito-core:2.13.0' -} diff --git a/android/app/local.properties b/android/app/local.properties deleted file mode 100644 index 8891df9df..000000000 --- a/android/app/local.properties +++ /dev/null @@ -1,8 +0,0 @@ -## This file must *NOT* be checked into Version Control Systems, -# as it contains information specific to your local configuration. -# -# Location of the SDK. This is only used by Gradle. -# For customization when using a Version Control System, please read the -# header note. -#Wed Jan 30 11:37:18 IST 2019 -sdk.dir=/Users/yogevbd/android-sdk-macosx diff --git a/android/app/src/main/java/com/wix/reactnativenotifications/core/NotificationIntentAdapter.java b/android/app/src/main/java/com/wix/reactnativenotifications/core/NotificationIntentAdapter.java deleted file mode 100644 index 5a75a8ba9..000000000 --- a/android/app/src/main/java/com/wix/reactnativenotifications/core/NotificationIntentAdapter.java +++ /dev/null @@ -1,32 +0,0 @@ -package com.wix.reactnativenotifications.core; - -import android.app.PendingIntent; -import android.content.Context; -import android.content.Intent; -import android.os.Bundle; - -import com.wix.reactnativenotifications.core.notification.PushNotificationProps; - -public class NotificationIntentAdapter { - private static final String PUSH_NOTIFICATION_EXTRA_NAME = "pushNotification"; - - public static PendingIntent createPendingNotificationIntent(Context appContext, Intent intent, PushNotificationProps notification) { - intent.putExtra(PUSH_NOTIFICATION_EXTRA_NAME, notification.asBundle()); - return PendingIntent.getService(appContext, (int) System.currentTimeMillis(), intent, PendingIntent.FLAG_ONE_SHOT); - } - - public static Bundle extractPendingNotificationDataFromIntent(Intent intent) { - return intent.getBundleExtra(PUSH_NOTIFICATION_EXTRA_NAME); - } - - public static boolean canHandleIntent(Intent intent) { - if (intent != null) { - Bundle notificationData = intent.getExtras(); - if (notificationData != null && intent.hasExtra(PUSH_NOTIFICATION_EXTRA_NAME)) { - return true; - } - } - - return false; - } -} diff --git a/android/app/src/reactNative59/java/com/wix/reactnativenotifications/NotificationManagerCompatFacade.java b/android/app/src/reactNative59/java/com/wix/reactnativenotifications/NotificationManagerCompatFacade.java new file mode 100644 index 000000000..f9c858b06 --- /dev/null +++ b/android/app/src/reactNative59/java/com/wix/reactnativenotifications/NotificationManagerCompatFacade.java @@ -0,0 +1,12 @@ + +package com.wix.reactnativenotifications; + +import android.content.Context; +import android.support.annotation.NonNull; +import android.support.v4.app.NotificationManagerCompat; + +public abstract class NotificationManagerCompatFacade { + public static NotificationManagerCompat from(@NonNull Context context) { + return NotificationManagerCompat.from(context); + } +} diff --git a/android/app/src/reactNative60/java/com/wix/reactnativenotifications/NotificationManagerCompatFacade.java b/android/app/src/reactNative60/java/com/wix/reactnativenotifications/NotificationManagerCompatFacade.java new file mode 100644 index 000000000..94ea1884c --- /dev/null +++ b/android/app/src/reactNative60/java/com/wix/reactnativenotifications/NotificationManagerCompatFacade.java @@ -0,0 +1,12 @@ + +package com.wix.reactnativenotifications; + +import android.content.Context; +import androidx.annotation.NonNull; +import androidx.core.app.NotificationManagerCompat; + +public abstract class NotificationManagerCompatFacade { + public static NotificationManagerCompat from(@NonNull Context context) { + return NotificationManagerCompat.from(context); + } +} diff --git a/android/build.gradle b/android/build.gradle deleted file mode 100644 index 263eb9740..000000000 --- a/android/build.gradle +++ /dev/null @@ -1,29 +0,0 @@ -// Top-level build file where you can add configuration options common to all sub-projects/modules. - -buildscript { - repositories { - mavenLocal() - mavenCentral() - google() - jcenter() - } - dependencies { - classpath 'com.android.tools.build:gradle:3.0.1' - classpath 'com.google.gms:google-services:4.0.0' - // NOTE: Do not place your application dependencies here; they belong - // in the individual module build.gradle files - } -} - -allprojects { - repositories { - mavenLocal() - mavenCentral() - google() - jcenter() - maven { - // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm - url "$rootDir/../node_modules/react-native/android" - } - } -} \ No newline at end of file diff --git a/android/src/main/java/com/wix/reactnativenotifications/core/BitmapLoader.java b/android/src/main/java/com/wix/reactnativenotifications/core/BitmapLoader.java deleted file mode 100644 index e61cfefea..000000000 --- a/android/src/main/java/com/wix/reactnativenotifications/core/BitmapLoader.java +++ /dev/null @@ -1,68 +0,0 @@ -package com.wix.reactnativenotifications.core; - -import android.content.Context; -import android.graphics.Bitmap; -import android.net.Uri; -import android.util.Log; - -import com.facebook.common.executors.CallerThreadExecutor; -import com.facebook.common.references.CloseableReference; -import com.facebook.datasource.BaseDataSubscriber; -import com.facebook.datasource.DataSource; -//import com.facebook.datasource.DataSubscriber; -import com.facebook.drawee.backends.pipeline.Fresco; -import com.facebook.imagepipeline.core.ImagePipeline; -import com.facebook.imagepipeline.image.CloseableBitmap; -import com.facebook.imagepipeline.image.CloseableImage; -import com.facebook.imagepipeline.request.ImageRequest; -import com.facebook.imagepipeline.request.ImageRequestBuilder; -import com.facebook.imagepipeline.datasource.BaseBitmapDataSubscriber; - -import static com.wix.reactnativenotifications.Defs.LOGTAG; - -public class BitmapLoader { - public interface OnBitmapLoadedCallback { - // The lifetime of the Bitmap is only valid for the duration of the callback. If the Bitmap - // is required for a longer duration it should be copied. - void onBitmapLoaded(Bitmap bitmap); - } - - private final Context mContext; - - public BitmapLoader(Context context) { - mContext = context; - } - - public void loadUri(final Uri uri, final OnBitmapLoadedCallback callback) { - final ImageRequest request = ImageRequestBuilder.newBuilderWithSource(uri) - .setLowestPermittedRequestLevel(ImageRequest.RequestLevel.FULL_FETCH) - .setProgressiveRenderingEnabled(false) - .build(); - - // fix: Fresco not initilized if app is closed - if (!Fresco.hasBeenInitialized()) { - Fresco.initialize(mContext); - } - - final ImagePipeline imagePipeline = Fresco.getImagePipeline(); - final DataSource> dataSource = imagePipeline.fetchDecodedImage(request, mContext); - - final BaseBitmapDataSubscriber dataSubscriber = new BaseBitmapDataSubscriber() { - - @Override - protected void onNewResultImpl(Bitmap bitmap) { - if (dataSource.isFinished()) { - callback.onBitmapLoaded(bitmap); - } - } - - @Override - protected void onFailureImpl(final DataSource> dataSource) { - Log.e(LOGTAG, "Failed to load image from " + uri, dataSource.getFailureCause()); - dataSource.close(); - } - }; - - dataSource.subscribe(dataSubscriber, CallerThreadExecutor.getInstance()); - } -} \ No newline at end of file diff --git a/android/src/main/java/com/wix/reactnativenotifications/helpers/ApplicationBadgeHelper.java b/android/src/main/java/com/wix/reactnativenotifications/helpers/ApplicationBadgeHelper.java deleted file mode 100644 index d1c1a7042..000000000 --- a/android/src/main/java/com/wix/reactnativenotifications/helpers/ApplicationBadgeHelper.java +++ /dev/null @@ -1,113 +0,0 @@ -package com.wix.reactnativenotifications.helpers; - -import android.content.ComponentName; -import android.content.Context; -import android.content.Intent; -import android.content.pm.PackageManager; -import android.content.pm.ResolveInfo; - -import com.facebook.common.logging.FLog; - -import me.leolin.shortcutbadger.Badger; -import me.leolin.shortcutbadger.ShortcutBadger; -import me.leolin.shortcutbadger.impl.SamsungHomeBadger; - -/** - * Helper for setting application launcher icon badge counts. - *

- * This is a wrapper around {@link ShortcutBadger}, with a couple enhancements: - *

- * - If the first attempt fails, don't retry. This keeps logs clean, as failed attempts are noisy. - * - Test and apply a separate method for older Samsung devices, which ShortcutBadger has - * (perhaps over-aggressively) deprecated. ref: https://github.com/leolin310148/ShortcutBadger/issues/40 - */ -public class ApplicationBadgeHelper { - - public static final ApplicationBadgeHelper INSTANCE = new ApplicationBadgeHelper(); - - private static final String LOG_TAG = "ApplicationBadgeHelper"; - private static final Badger LEGACY_SAMSUNG_BADGER = new SamsungHomeBadger(); - - private Boolean applyAutomaticBadger; - private Boolean applySamsungBadger; - private ComponentName componentName; - private boolean triedComponentName; - - private ApplicationBadgeHelper() { - } - - public void setApplicationIconBadgeNumber(Context context, int number) { - if (null == componentName && !triedComponentName) { - triedComponentName = true; - componentName = tryComponentName(context); - } - tryAutomaticBadge(context, number); - tryLegacySamsungBadge(context, number); - } - - private ComponentName tryComponentName(Context context) { - try { - return context.getPackageManager().getLaunchIntentForPackage(context.getPackageName()).getComponent(); - } catch (Exception e) { - FLog.w(LOG_TAG, "Failed to resolve component name; cannot attempt Samsung badge.", e); - return null; - } - } - - private void tryAutomaticBadge(Context context, int number) { - if (null == applyAutomaticBadger) { - applyAutomaticBadger = ShortcutBadger.applyCount(context, number); - if (applyAutomaticBadger) { - FLog.i(LOG_TAG, "First attempt to use automatic badger succeeded; permanently enabling method."); - } else { - FLog.i(LOG_TAG, "First attempt to use automatic badger failed; permanently disabling method."); - } - return; - } else if (!applyAutomaticBadger) { - return; - } - ShortcutBadger.applyCount(context, number); - } - - private void tryLegacySamsungBadge(Context context, int number) { - // First attempt to apply legacy samsung badge. Check if eligible, then attempt it. - if (null == applySamsungBadger) { - applySamsungBadger = isLegacySamsungLauncher(context) && applyLegacySamsungBadge(context, number); - if (applySamsungBadger) { - FLog.i(LOG_TAG, "First attempt to use legacy Samsung badger succeeded; permanently enabling method."); - } else { - FLog.w(LOG_TAG, "First attempt to use legacy Samsung badger failed; permanently disabling method."); - } - return; - } else if (!applySamsungBadger) { - return; - } - applyLegacySamsungBadge(context, number); - } - - private boolean isLegacySamsungLauncher(Context context) { - Intent intent = new Intent(Intent.ACTION_MAIN); - intent.addCategory(Intent.CATEGORY_HOME); - ResolveInfo resolveInfo = context.getPackageManager().resolveActivity(intent, PackageManager.MATCH_DEFAULT_ONLY); - - if (resolveInfo == null || resolveInfo.activityInfo.name.toLowerCase().contains("resolver")) { - return false; - } - - String currentHomePackage = resolveInfo.activityInfo.packageName; - return LEGACY_SAMSUNG_BADGER.getSupportLaunchers().contains(currentHomePackage); - } - - private boolean applyLegacySamsungBadge(Context context, int number) { - if (componentName == null) { - return false; - } - try { - LEGACY_SAMSUNG_BADGER.executeBadge(context, componentName, number); - return true; - } catch (Exception e) { - FLog.w(LOG_TAG, "Legacy Samsung badger failed", e); - return false; - } - } -} diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100755 index 000000000..6711192ae --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,18 @@ +version: "3" + +services: + docusaurus: + build: . + ports: + - 3000:3000 + - 35729:35729 + volumes: + - ./docs:/app/docs + - ./website/blog:/app/website/blog + - ./website/core:/app/website/core + - ./website/i18n:/app/website/i18n + - ./website/pages:/app/website/pages + - ./website/static:/app/website/static + - ./website/sidebars.json:/app/website/sidebars.json + - ./website/siteConfig.js:/app/website/siteConfig.js + working_dir: /app/website diff --git a/docs/installation.md b/docs/installation.md deleted file mode 100644 index fea49f869..000000000 --- a/docs/installation.md +++ /dev/null @@ -1,121 +0,0 @@ -# Installation - -As with any React Native project, the first step is to add the project as an npm dependency. - -The 2nd is to do some platform specific setup so as to be able to work with Apple and Google's services for push notifications. - -Start by running this: - -``` -$ npm install react-native-notifications@^2.0.6 --save -``` - -## iOS - -First, [Manually link](https://facebook.github.io/react-native/docs/linking-libraries-ios.html#manual-linking) the library to your Xcode project. - -Then, to enable notifications support add the following line at the top of your `AppDelegate.m` - -```objective-c -#import "RNNotifications.h" -``` - -Start monitor notifications in: `application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions` - -```objective-c - -- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { - [RNNotifications startMonitorNotifications]; // -> Add this line - - return YES; -} - -``` - - -And add the following methods to support registration: - -```objective-c - -- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken { - [RNNotifications didRegisterForRemoteNotificationsWithDeviceToken:deviceToken]; -} - -- (void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error { - [RNNotifications didFailToRegisterForRemoteNotificationsWithError:error]; -} - -``` - -## Android - - -Add a reference to the library's native code in your global `settings.gradle`: - -```gradle -include ':reactnativenotifications' -project(':reactnativenotifications').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-notifications/android/app') -``` - -Declare the library as a dependency in your **app-project's** `build.gradle`: - -```gradle -dependencies { - // ... - - compile project(':reactnativenotifications') -} -``` - -Add the library to your application class (e.g. `MainApplication.java`): - -```java -import com.wix.reactnativenotifications.RNNotificationsPackage; - -... - - @Override - protected List getPackages() { - return Arrays.asList( - new MainReactPackage(), - // ... - // Add this line: - new RNNotificationsPackage(MainApplication.this) - ); -``` - -### Receiving push notifications - -> Note: This section is only necessary in case you wish to be able to **receive** push notifications in your React-Native app. - -Push notifications on Android are managed and dispatched using [Google's FCM service](https://firebase.google.com/docs/cloud-messaging). The following installation steps are a TL;DR of [Google's FCM setup guide](https://firebase.google.com/docs/cloud-messaging/android/client). You can follow them to get FCM integrated quickly, but we recommend that you will in the very least have a peek at the guide's overview. - -#### Step #1: Subscribe to Google's FCM - -To set FCM in your app, you must first create a google-services.json file. If you have no existing API project yet, the easiest way to go about in creating one is using [this step-by-step installation process](https://firebase.google.com/docs/android/setup); - - -#### Step #2: Copy google-services.json - -After creating google-services.json, copy it into your project's android/app folder. - -#### Step #3: Add google-services package to Project/build.gradle -```gradle -buildscript { - ... - dependencies { - ... - classpath 'com.google.gms:google-services:4.0.0' - } -} -``` - -#### Step #4: Add firebase-core package and apply google-services plugin in Project/app/build.gradle -```gradle -dependencies { - ... - implementation 'com.google.firebase:firebase-core:16.0.0' -} - -apply plugin: 'com.google.gms.google-services' -``` diff --git a/docs/notificationsEvents.md b/docs/notificationsEvents.md deleted file mode 100644 index 21cdef361..000000000 --- a/docs/notificationsEvents.md +++ /dev/null @@ -1,102 +0,0 @@ - -# Handling Notification Events - -## iOS - -When a push notification is received by the device, the application can be in one of the following states: - -1. **Forground:** When the app is running and is used by the user right now; in this case, a `notificationReceivedForeground` event will be fired, do not forget to invoke `completion()` callback. - -Finally, when a notification is _opened_ by the device user (i.e. tapped-on), a `notificationOpened` event is fired, here as well you need to remember invoking `completion()` callback. - -Example: - -```javascript -constructor() { - this._boundOnNotificationReceivedForeground = this.onNotificationReceivedForeground.bind(this); - this._boundOnNotificationOpened = this.onNotificationOpened.bind(this); - - NotificationsIOS.addEventListener('notificationReceivedForeground', this._boundOnNotificationReceivedForeground); - NotificationsIOS.addEventListener('notificationOpened', this._boundOnNotificationOpened); -} - -onNotificationReceivedForeground(notification, completion) { - completion({alert: true, sound: false, badge: false}); - console.log("Notification Received - Foreground", notification); -} - -onNotificationOpened(notification, completion, action) { - console.log("Notification opened by device user", notification); - console.log(`Notification opened with an action identifier: ${action.identifier} and response text: ${action.text}`, notification); - completion(); -} - -componentWillUnmount() { - // Don't forget to remove the event listeners to prevent memory leaks! - NotificationsIOS.removeEventListener('notificationReceivedForeground', this._boundOnNotificationReceivedForeground); - NotificationsIOS.removeEventListener('notificationOpened', this._boundOnNotificationOpened); -} -``` - -### Notification Object - -When you receive a push notification, you'll get an instance of `IOSNotification` object, contains the following methods: - -- **`getMessage()`**- returns the notification's main message string. -- **`getSound()`**- returns the sound string from the `aps` object. -- **`getBadgeCount()`**- returns the badge count number from the `aps` object. -- **`getCategory()`**- returns the category from the `aps` object (related to interactive notifications). -- **`getData()`**- returns the data payload (additional info) of the notification. -- **`getType()`**- returns `managed` for managed notifications, otherwise returns `regular`. - - -## Android - -On Android the same core functionality is provided, but using a different API: - -```javascript -import {NotificationsAndroid} from 'react-native-notifications'; - -// On Android, we allow for only one (global) listener per each event type. -NotificationsAndroid.setNotificationReceivedListener((notification) => { - console.log("Notification received on device in background or foreground", notification.getData()); -}); -NotificationsAndroid.setNotificationReceivedInForegroundListener((notification) => { - console.log("Notification received on device in foreground", notification.getData()); -}); -NotificationsAndroid.setNotificationOpenedListener((notification) => { - console.log("Notification opened by device user", notification.getData()); -}); -``` - -### Notification Object - -- **`getData()`**- content of the `data` section of the original message (sent to GCM). -- **`getTitle()`**- Convenience for returning `data.title`. -- **`getMessage()`**- Convenience for returning `data.body`. - - - -## Querying initial notification (Android) - -React-Native's [`PushNotificationsIOS.getInitialNotification()`](https://facebook.github.io/react-native/docs/pushnotificationios.html#getinitialnotification) allows for the async retrieval of the original notification used to open the App on iOS, but it has no equivalent implementation for Android. - -While for iOS we nonetheless offer the more elaborate _Background Queue_ solution, on Android we've settled for an implementation similar to React Native's -- An API method `PendingNotifications.getInitialNotification()`, which returns a promise: - -```javascript -import {NotificationsAndroid, PendingNotifications} from 'react-native-notifications'; - -PendingNotifications.getInitialNotification() - .then((notification) => { - console.log("Initial notification was:", (notification ? notification.getData() : 'N/A')); - }) - .catch((err) => console.error("getInitialNotifiation() failed", err)); - -``` - -> **Note** -> -> Notifications are considered 'initial' under the following terms: - -> - User tapped on a notification, _AND_ - -> - App was either not running at all ("dead" state), _OR_ it existed in the background with **no running activities** associated with it. diff --git a/docs/subscription.md b/docs/subscription.md deleted file mode 100644 index ddd493e62..000000000 --- a/docs/subscription.md +++ /dev/null @@ -1,77 +0,0 @@ -# Push Notifications Subscription - -The typical flow for subscribing a device for receiving push notification in real time is to first register the device at the vendor's servers (e.g. GCM), then publishing the received token to your own push management servers. - -This section is about the first part of the flow. - -## iOS - -In order to handle notifications, you must register the `remoteNotificationsRegistered` event beforehand. - - -In your React Native app: - -```javascript -import NotificationsIOS from 'react-native-notifications'; - -class App extends Component { - constructor() { - NotificationsIOS.addEventListener('remoteNotificationsRegistered', this.onPushRegistered.bind(this)); - NotificationsIOS.addEventListener('remoteNotificationsRegistrationFailed', this.onPushRegistrationFailed.bind(this)); - NotificationsIOS.requestPermissions(); - } - - onPushRegistered(deviceToken) { - // TODO: Send the token to my server so it could send back push notifications... - console.log("Device Token Received", deviceToken); - } - - onPushRegistrationFailed(error) { - // For example: - // - // error={ - // domain: 'NSCocoaErroDomain', - // code: 3010, - // localizedDescription: 'remote notifications are not supported in the simulator' - // } - console.error(error); - } - - componentWillUnmount() { - // prevent memory leaks! - NotificationsIOS.removeEventListener('remoteNotificationsRegistered', this.onPushRegistered.bind(this)); - NotificationsIOS.removeEventListener('remoteNotificationsRegistrationFailed', this.onPushRegistrationFailed.bind(this)); - } -} - -``` - -When you have the device token, POST it to your server and register the device in your notifications provider (Amazon SNS, Azure, etc.). - -You can check if the user granted permissions by calling `checkPermissions()`: - -```javascript -NotificationsIOS.checkPermissions().then((currentPermissions) => { - console.log('Badges enabled: ' + !!currentPermissions.badge); - console.log('Sounds enabled: ' + !!currentPermissions.sound); - console.log('Alerts enabled: ' + !!currentPermissions.alert); -}); -``` - - -## Android - -Android works similarly but using a different API; The equivalent code is: - -```javascript -import {NotificationsAndroid} from 'react-native-notifications'; - -// On Android, we allow for only one (global) listener per each event type. -NotificationsAndroid.setRegistrationTokenUpdateListener((deviceToken) => { - // TODO: Send the token to my server so it could send back push notifications... - console.log('Push-notifications registered!', deviceToken) -}); - -``` - -`deviceToken` being the token used to identify the device on the GCM. diff --git a/e2e/Notifications.test.js b/e2e/Notifications.test.js index d6ede1100..09881409d 100644 --- a/e2e/Notifications.test.js +++ b/e2e/Notifications.test.js @@ -9,7 +9,7 @@ describe('Notifications', () => { describe('Foreground', () => { it('Should receive notification', async () => { await device.sendUserNotification(createNotification({link: 'foreground/notification'})); - await expect(elementByLabel('foreground/notification')).toBeVisible(); + await linkShouldBeVisible('foreground/notification'); }); it('Should open notification', async () => { @@ -30,9 +30,13 @@ describe('Notifications', () => { describe('Dead state', () => { it('Should receive notification', async () => { await device.launchApp({newInstance: true, userNotification: createNotification({link: 'deadState/notification'})}); - await expect(elementByLabel('deadState/notification')).toBeVisible(); + await linkShouldBeVisible('deadState/notification'); }); }); + + async function linkShouldBeVisible(link) { + return await expect(elementByLabel(`Extra Link Param: ${link}`)).toBeVisible(); + } }); function createNotification({link, showAlert}) { diff --git a/example/.buckconfig b/example/.buckconfig deleted file mode 100644 index 934256cb2..000000000 --- a/example/.buckconfig +++ /dev/null @@ -1,6 +0,0 @@ - -[android] - target = Google Inc.:Google APIs:23 - -[maven_repositories] - central = https://repo1.maven.org/maven2 diff --git a/example/.flowconfig b/example/.flowconfig deleted file mode 100644 index 1043c82d7..000000000 --- a/example/.flowconfig +++ /dev/null @@ -1,70 +0,0 @@ -[ignore] -; We fork some components by platform -.*/*[.]android.js - -; Ignore "BUCK" generated dirs -/\.buckd/ - -; Ignore unexpected extra "@providesModule" -.*/node_modules/.*/node_modules/fbjs/.* - -; Ignore duplicate module providers -; For RN Apps installed via npm, "Libraries" folder is inside -; "node_modules/react-native" but in the source repo it is in the root -.*/Libraries/react-native/React.js - -; Ignore polyfills -.*/Libraries/polyfills/.* - -; Ignore metro -.*/node_modules/metro/.* - -[include] - -[libs] -node_modules/react-native/Libraries/react-native/react-native-interface.js -node_modules/react-native/flow/ -node_modules/react-native/flow-github/ - -[options] -emoji=true - -esproposal.optional_chaining=enable -esproposal.nullish_coalescing=enable - -module.system=haste -module.system.haste.use_name_reducers=true -# get basename -module.system.haste.name_reducers='^.*/\([a-zA-Z0-9$_.-]+\.js\(\.flow\)?\)$' -> '\1' -# strip .js or .js.flow suffix -module.system.haste.name_reducers='^\(.*\)\.js\(\.flow\)?$' -> '\1' -# strip .ios suffix -module.system.haste.name_reducers='^\(.*\)\.ios$' -> '\1' -module.system.haste.name_reducers='^\(.*\)\.android$' -> '\1' -module.system.haste.name_reducers='^\(.*\)\.native$' -> '\1' -module.system.haste.paths.blacklist=.*/__tests__/.* -module.system.haste.paths.blacklist=.*/__mocks__/.* -module.system.haste.paths.blacklist=/node_modules/react-native/Libraries/Animated/src/polyfills/.* -module.system.haste.paths.whitelist=/node_modules/react-native/Libraries/.* - -munge_underscores=true - -module.name_mapper='^[./a-zA-Z0-9$_-]+\.\(bmp\|gif\|jpg\|jpeg\|png\|psd\|svg\|webp\|m4v\|mov\|mp4\|mpeg\|mpg\|webm\|aac\|aiff\|caf\|m4a\|mp3\|wav\|html\|pdf\)$' -> 'RelativeImageStub' - -module.file_ext=.js -module.file_ext=.jsx -module.file_ext=.json -module.file_ext=.native.js - -suppress_type=$FlowIssue -suppress_type=$FlowFixMe -suppress_type=$FlowFixMeProps -suppress_type=$FlowFixMeState - -suppress_comment=\\(.\\|\n\\)*\\$FlowFixMe\\($\\|[^(]\\|(\\(\\)? *\\(site=[a-z,_]*react_native[a-z,_]*\\)?)\\) -suppress_comment=\\(.\\|\n\\)*\\$FlowIssue\\((\\(\\)? *\\(site=[a-z,_]*react_native[a-z,_]*\\)?)\\)?:? #[0-9]+ -suppress_comment=\\(.\\|\n\\)*\\$FlowFixedInNextDeploy -suppress_comment=\\(.\\|\n\\)*\\$FlowExpectedError - -[version] -^0.78.0 diff --git a/example/.gitignore b/example/.gitignore index 5d647565f..38f76ae8d 100644 --- a/example/.gitignore +++ b/example/.gitignore @@ -54,3 +54,6 @@ buck-out/ # Bundle artifact *.jsbundle + +# Cocoa pods +ios/Pods/ \ No newline at end of file diff --git a/example/NotificationsExampleApp.tsx b/example/NotificationsExampleApp.tsx new file mode 100644 index 000000000..4ff145534 --- /dev/null +++ b/example/NotificationsExampleApp.tsx @@ -0,0 +1,209 @@ +import React, {useState, useEffect} from 'react'; +import { + StyleSheet, + View, + Text, + Button, + Platform, +} from 'react-native'; +import { + Notifications, + NotificationAction, + NotificationCategory, + NotificationBackgroundFetchResult, + Notification, +} from '../lib/src'; + +export default function NotificationsExampleApp() { + const [notifications, setNotifications] = useState([]); + const [openedNotifications, setOpenedNotifications] = useState([]); + + useEffect(() => { + registerNotificationEvents(); + setCategories(); + getInitialNotifaction(); + }, []) + + const registerNotificationEvents = () => { + Notifications.events().registerNotificationReceivedForeground((notification, completion) => { + setNotifications([...notifications, notification]); + completion({alert: notification.payload.showAlert, sound: false, badge: false}); + }); + + Notifications.events().registerNotificationOpened((notification, completion) => { + setOpenedNotifications([notification, ...openedNotifications]); + completion(); + }); + + Notifications.events().registerNotificationReceivedBackground((notification, completion) => { + completion(NotificationBackgroundFetchResult.NO_DATA); + }); + + if (Platform.OS === 'ios') { + Notifications.ios.events().appNotificationSettingsLinked(() => { + console.warn('App Notification Settings Linked') + }); + } + } + + const requestPermissionsIos = (options) => { + Notifications.ios.registerRemoteNotifications( + Object.fromEntries(options.map(opt => [opt, true])) + ); + } + + const requestPermissions = () => { + Notifications.registerRemoteNotifications(); + } + + const setCategories = () => { + const upvoteAction = new NotificationAction( + 'UPVOTE_ACTION', + 'background', + String.fromCodePoint(0x1F44D), + false, + ); + + const replyAction = new NotificationAction( + 'REPLY_ACTION', + 'background', + 'Reply', + true, + { + buttonTitle: 'Reply now', + placeholder: 'Insert message' + }, + ); + + + const category = new NotificationCategory( + 'SOME_CATEGORY', + [upvoteAction, replyAction] + ); + + Notifications.setCategories([category]); + } + + const sendLocalNotification = () => { + Notifications.postLocalNotification({ + identifier: '0', + body: 'Local notification!', + title: 'Local Notification Title', + sound: 'chime.aiff', + badge: 0, + type: '', + thread: '', + payload: { + category: 'SOME_CATEGORY', + link: 'localNotificationLink', + android_channel_id: 'my-channel', + } + }); + } + + const removeAllDeliveredNotifications = () => { + Notifications.removeAllDeliveredNotifications(); + } + + const setNotificationChannel = () => { + Notifications.setNotificationChannel({ + channelId: 'my-channel', + name: 'My Channel', + groupId: 'my-group-id', + groupName: 'my group name', + importance: 5, + description: 'My Description', + enableLights: true, + enableVibration: true, + showBadge: true, + soundFile: 'doorbell.mp3', + vibrationPattern: [200, 1000, 500, 1000, 500], + }) + } + + const getInitialNotifaction = async () => { + const initialNotification = await Notifications.getInitialNotification(); + if (initialNotification) { + setNotifications([initialNotification, ...notifications]); + } + } + + const renderNotification = (notification) => { + return ( + + {`Title: ${notification.title}`} + {`Body: ${notification.body}`} + {`Extra Link Param: ${notification.payload.link}`} + + ); + } + + const renderOpenedNotification = (notification) => { + return ( + + {`Title: ${notification.title}`} + {`Body: ${notification.body}`} + {`Notification Clicked: ${notification.payload.link}`} + + ); + } + + const checkPermissions = () => { + Notifications.ios.checkPermissions().then((currentPermissions) => { + console.warn(currentPermissions); + }); + } + + const isRegistered = () => { + Notifications.isRegisteredForRemoteNotifications().then((registered) => { + console.warn(registered); + }); + } + + return ( + +