Skip to content

Commit 2801d3f

Browse files
Merge pull request #33 from intercom/dev
Release 1.0.5
2 parents 4a0ed57 + ba70420 commit 2801d3f

File tree

28 files changed

+15180
-858
lines changed

28 files changed

+15180
-858
lines changed

.circleci/config.yml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ version: 2.1
33
# Default VM config to be used for macOS builds
44
macos_config: &macos_config
55
macos:
6-
xcode: 12.3.0
6+
xcode: 12.5.0
77
shell: /bin/bash --login -eo pipefail
88

99
setup_env_file: &setup_env_file
@@ -109,6 +109,9 @@ jobs:
109109
yarn prepare
110110
# Build and Test android version of module
111111
android-e2e-test:
112+
environment:
113+
GRADLE_OPTS: '-Dorg.gradle.jvmargs="-Xmx2048m -XX:+HeapDumpOnOutOfMemoryError"'
114+
JAVA_OPTS: '-Xms512m -Xmx1024m'
112115
executor:
113116
name: android/android-machine
114117
working_directory: ~/project

README.md

Lines changed: 7 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Welcome to @intercom/intercom-react-native 👋
22

3-
[![Version](https://img.shields.io/npm/v/intercom-react-native.svg)](https://www.npmjs.com/package/intercom-react-native)
3+
[![Version](https://img.shields.io/npm/v/@intercom/intercom-react-native.svg)](https://www.npmjs.com/package/@intercom/intercom-react-native)
44
[![Documentation](https://img.shields.io/badge/documentation-yes-brightgreen.svg)](https://github.com/intercom/intercom-react-native#readme)
55
[![License: Apache--2.0](https://img.shields.io/badge/License-Apache--2.0-yellow.svg)](https://github.com/intercom/intercom-react-native#readme)
66
[![CircleCi](https://circleci.com/gh/intercom/intercom-react-native.svg?style=shield)](https://github.com/intercom/intercom-react-native#readme)
@@ -227,12 +227,13 @@ public class MainNotificationService extends FirebaseMessagingService {
227227
/**
228228
* Handle PushNotification
229229
*/
230-
AppState.addEventListener(
230+
const appStateListener = AppState.addEventListener(
231231
'change',
232232
(nextAppState) =>
233233
nextAppState === 'active' && Intercom.handlePushMessage()
234234
);
235-
return () => AppState.removeEventListener('change', () => true);
235+
return () => AppState.removeEventListener('change', () => true); // <- for RN < 0.65
236+
return () => appStateListener.remove() // <- for RN >= 0.65
236237
}
237238
, [])
238239
```
@@ -571,38 +572,6 @@ This takes a push registration token to send to Intercom to enable this device t
571572

572573
___
573574

574-
### `Intercom.addOnMessageCountChangeListener(callback)`
575-
576-
Sets a listener that will be notified when the unread conversation count for the registered user changes.
577-
578-
```javascript
579-
useEffect(() => {
580-
/**
581-
* Handle message count changed
582-
*/
583-
const event = Intercom.addOnMessageCountChangeListener(({count}) => {
584-
setCount(count);
585-
});
586-
587-
return () => {
588-
event();
589-
};
590-
}, []);
591-
592-
```
593-
594-
### Options
595-
596-
| Type | Type | Required |
597-
| ------- | -------- | -------- |
598-
| callback| function `({count: number}) => void` |yes |
599-
600-
### Returns
601-
602-
`removeEventListener: () => void`
603-
604-
___
605-
606575
### `Intercom.getUnreadConversationCount()`
607576

608577
Gets the number of unread conversations for a user.
@@ -621,16 +590,14 @@ Handles the opening of an Intercom push message. This will retrieve the URI from
621590
/**
622591
* Handle PushNotification Open
623592
*/
624-
AppState.addEventListener(
593+
const appStateListener = AppState.addEventListener(
625594
'change',
626595
(nextAppState) =>
627596
nextAppState === 'active' && Intercom.handlePushMessage()
628597
);
629598

630-
return () => {
631-
AppState.removeEventListener('change', () => {
632-
});
633-
};
599+
return () => AppState.removeEventListener('change', () => {}); // <- for RN < 0.65
600+
return () => appStateListener.remove(); // <- for RN >= 0.65
634601
}, []);
635602
```
636603

android/build.gradle

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ buildscript {
77
if (project == rootProject) {
88
repositories {
99
google()
10-
jcenter()
10+
mavenCentral()
1111
}
1212

1313
dependencies {
@@ -23,15 +23,13 @@ def safeExtGet(prop, fallback) {
2323
}
2424

2525
android {
26-
compileSdkVersion safeExtGet('IntercomReactNative_compileSdkVersion', 29)
27-
buildToolsVersion safeExtGet('IntercomReactNative_buildToolsVersion', '29.0.2')
26+
compileSdkVersion safeExtGet('IntercomReactNative_compileSdkVersion', 30)
2827
defaultConfig {
2928
minSdkVersion safeExtGet('IntercomReactNative_minSdkVersion', 21)
30-
targetSdkVersion safeExtGet('IntercomReactNative_targetSdkVersion', 29)
29+
targetSdkVersion safeExtGet('IntercomReactNative_targetSdkVersion', 30)
3130
versionCode 1
3231
versionName "1.0"
3332
buildConfigField 'String', 'INTERCOM_VERSION_NAME', packageVersion
34-
3533
}
3634

3735
buildTypes {
@@ -49,18 +47,18 @@ android {
4947
}
5048

5149
repositories {
50+
mavenCentral()
5251
mavenLocal()
5352
maven {
5453
// All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
5554
url("$rootDir/../node_modules/react-native/android")
5655
}
5756
google()
58-
jcenter()
5957
}
6058

6159
dependencies {
6260
//noinspection GradleDynamicVersion
6361
implementation "com.facebook.react:react-native:+" // From node_modules
6462
implementation 'com.google.firebase:firebase-messaging:20.2.+'
65-
implementation 'io.intercom.android:intercom-sdk:10.+'
63+
implementation 'io.intercom.android:intercom-sdk:10.1.+'
6664
}

android/src/main/java/com/intercom/reactnative/IntercomEventEmitter.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,16 @@ public IntercomEventEmitter(ReactApplicationContext reactContext) {
3333
super(reactContext);
3434
}
3535

36+
@ReactMethod
37+
public void addListener(String eventName) {
38+
// Keep: Required for RN built in Event Emitter Calls.
39+
}
40+
41+
@ReactMethod
42+
public void removeListeners(Integer count) {
43+
// Keep: Required for RN built in Event Emitter Calls.
44+
}
45+
3646
@ReactMethod
3747
public void startEventListener() {
3848
try {

example/android/app/build.gradle

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -126,13 +126,9 @@ def jscFlavor = 'org.webkit:android-jsc:+'
126126
def enableHermes = project.ext.react.get("enableHermes", false);
127127

128128
android {
129+
ndkVersion rootProject.ext.ndkVersion
129130
compileSdkVersion rootProject.ext.compileSdkVersion
130131

131-
compileOptions {
132-
sourceCompatibility JavaVersion.VERSION_1_8
133-
targetCompatibility JavaVersion.VERSION_1_8
134-
}
135-
136132
defaultConfig {
137133
applicationId "com.example.intercomreactnative"
138134
minSdkVersion rootProject.ext.minSdkVersion
@@ -186,18 +182,21 @@ android {
186182
variant.outputs.each { output ->
187183
// For each separate APK per architecture, set a unique version code as described here:
188184
// https://developer.android.com/studio/build/configure-apk-splits.html
185+
// Example: versionCode 1 will generate 1001 for armeabi-v7a, 1002 for x86, etc.
189186
def versionCodes = ["armeabi-v7a": 1, "x86": 2, "arm64-v8a": 3, "x86_64": 4]
190187
def abi = output.getFilter(OutputFile.ABI)
191188
if (abi != null) { // null for the universal-debug, universal-release variants
192189
output.versionCodeOverride =
193-
versionCodes.get(abi) * 1048576 + defaultConfig.versionCode
190+
defaultConfig.versionCode * 1000 + versionCodes.get(abi)
194191
}
195192

196193
}
197194
}
198195
}
199196

200197
dependencies {
198+
// implementation("com.squareup.okhttp3:okhttp-urlconnection:4.9.1") <- required for applications that uses RN < 0.65
199+
201200
implementation fileTree(dir: "libs", include: ["*.jar"])
202201
//noinspection GradleDynamicVersion
203202
implementation "com.facebook.react:react-native:+" // From node_modules
@@ -232,7 +231,7 @@ dependencies {
232231
// Run this once to be able to run the application with BUCK
233232
// puts all compile dependencies into folder libs for BUCK to use
234233
task copyDownloadableDepsToLibs(type: Copy) {
235-
from configurations.compile
234+
from configurations.implementation
236235
into 'libs'
237236
}
238237

example/android/app/src/debug/AndroidManifest.xml

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,10 @@
44

55
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
66

7-
<application android:usesCleartextTraffic="true" tools:targetApi="28" tools:ignore="GoogleAppIndexingWarning" />
7+
<application
8+
android:usesCleartextTraffic="true"
9+
tools:targetApi="28"
10+
tools:ignore="GoogleAppIndexingWarning">
11+
<activity android:name="com.facebook.react.devsupport.DevSettingsActivity" />
12+
</application>
813
</manifest>

example/android/app/src/main/AndroidManifest.xml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,5 @@
3434
android:name="com.intercom.reactnative.RNIntercomPushBroadcastReceiver"
3535
tools:replace="android:exported"
3636
android:exported="true" />
37-
<activity android:name="com.facebook.react.devsupport.DevSettingsActivity" />
3837
</application>
39-
4038
</manifest>

example/android/app/src/main/res/values/styles.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<resources>
22

33
<!-- Base application theme. -->
4-
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
4+
<style name="AppTheme" parent="Theme.AppCompat.DayNight.NoActionBar">
55
<!-- Customize your theme here. -->
66
<item name="android:textColor">#000000</item>
77
</style>

example/android/build.gradle

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,17 +5,18 @@ buildscript {
55
def isFoss = taskRequests.contains("foss")
66

77
ext {
8-
buildToolsVersion = "29.0.2"
8+
buildToolsVersion = "30.0.2"
99
minSdkVersion = 21
10-
compileSdkVersion = 29
11-
targetSdkVersion = 29
10+
compileSdkVersion = 30
11+
targetSdkVersion = 30
12+
ndkVersion = "20.1.5948944"
1213
}
1314
repositories {
1415
google()
15-
jcenter()
16+
mavenCentral()
1617
}
1718
dependencies {
18-
classpath("com.android.tools.build:gradle:4.0.1")
19+
classpath("com.android.tools.build:gradle:4.2.1")
1920

2021
// NOTE: Do not place your application dependencies here; they belong
2122
// in the individual module build.gradle files
@@ -27,6 +28,7 @@ buildscript {
2728

2829
allprojects {
2930
repositories {
31+
mavenCentral()
3032
mavenLocal()
3133
maven {
3234
// All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
@@ -38,7 +40,7 @@ allprojects {
3840
}
3941

4042
google()
41-
jcenter()
43+
4244
maven { url 'https://www.jitpack.io' }
4345
}
4446
}

example/android/gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,4 +19,4 @@
1919

2020
android.useAndroidX=true
2121
android.enableJetifier=true
22-
FLIPPER_VERSION=0.54.0
22+
FLIPPER_VERSION=0.93.0

0 commit comments

Comments
 (0)