Skip to content

Commit 6c58362

Browse files
feat(mobile): add Android agent notifications and ongoing activity (#10416)
Co-authored-by: Julius Marminge <51714798+juliusmarminge@users.noreply.github.com>
1 parent 2a30353 commit 6c58362

58 files changed

Lines changed: 5761 additions & 142 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/deploy-relay.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@ jobs:
6363
AXIOM_TOKEN: ${{ secrets.AXIOM_TOKEN }}
6464
CLERK_SECRET_KEY: ${{ secrets.CLERK_SECRET_KEY }}
6565
APNS_PRIVATE_KEY: ${{ secrets.APNS_PRIVATE_KEY }}
66+
FCM_SERVICE_ACCOUNT: ${{ secrets.FCM_SERVICE_ACCOUNT }}
6667

6768
- name: Publish relay deploy commit status
6869
uses: actions/github-script@v8

apps/mobile/app.config.ts

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -186,7 +186,7 @@ const config: ExpoConfig = {
186186
icon: variant.assets.appIcon,
187187
userInterfaceStyle: "automatic",
188188
updates: {
189-
enabled: true,
189+
enabled: repoEnv.T3CODE_MOBILE_UPDATES_ENABLED !== "0",
190190
url: "https://u.expo.dev/d763fcb8-d37c-41ea-a773-b54a0ab4a454",
191191
checkAutomatically: "ON_LOAD",
192192
fallbackToCacheTimeout: 0,
@@ -237,6 +237,9 @@ const config: ExpoConfig = {
237237
android: {
238238
icon: variant.assets.appIcon,
239239
package: variant.androidPackage,
240+
...(repoEnv.T3CODE_ANDROID_GOOGLE_SERVICES_FILE
241+
? { googleServicesFile: repoEnv.T3CODE_ANDROID_GOOGLE_SERVICES_FILE }
242+
: {}),
240243
adaptiveIcon: {
241244
backgroundColor: variant.assets.androidAdaptiveBackgroundColor,
242245
...(variant.assets.androidAdaptiveBackgroundImage
@@ -356,6 +359,10 @@ const config: ExpoConfig = {
356359
[
357360
"expo-build-properties",
358361
{
362+
android: {
363+
// Keep the supported floor explicit and covered by native notification tests.
364+
minSdkVersion: 24,
365+
},
359366
ios: {
360367
deploymentTarget: "18.0",
361368
// AppCheckCore 11.3+ includes Swift and needs module maps for these Objective-C dependencies.
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
plugins {
2+
id 'com.android.library'
3+
id 'expo-module-gradle-plugin'
4+
}
5+
6+
group = 'com.t3tools.agentnotifications'
7+
version = '0.0.0'
8+
9+
android {
10+
namespace 'expo.modules.t3agentnotifications'
11+
defaultConfig {
12+
versionCode 1
13+
versionName '0.0.0'
14+
}
15+
testOptions {
16+
unitTests.includeAndroidResources = true
17+
}
18+
}
19+
20+
dependencies {
21+
implementation project(':expo-notifications')
22+
implementation 'com.google.firebase:firebase-messaging:25.0.1'
23+
implementation 'androidx.core:core:1.17.0'
24+
implementation 'androidx.lifecycle:lifecycle-process:2.9.3'
25+
testImplementation 'junit:junit:4.13.2'
26+
testImplementation 'org.robolectric:robolectric:4.16.1'
27+
}
28+
29+
// Expo compiles modules with Java 17; Robolectric's Android 16 runtime needs 21.
30+
tasks.withType(Test).configureEach {
31+
javaLauncher = javaToolchains.launcherFor {
32+
languageVersion = JavaLanguageVersion.of(21)
33+
}
34+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools">
2+
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
3+
<uses-permission android:name="android.permission.POST_PROMOTED_NOTIFICATIONS" />
4+
<application>
5+
<service android:name="expo.modules.notifications.service.ExpoFirebaseMessagingService" tools:node="remove" />
6+
<service android:name=".AgentMessagingService" android:exported="false">
7+
<intent-filter>
8+
<action android:name="com.google.firebase.MESSAGING_EVENT" />
9+
</intent-filter>
10+
</service>
11+
<receiver android:name=".AgentActivityDismissReceiver" android:exported="false" />
12+
<receiver android:name=".AgentActivityExpiryReceiver" android:exported="false" />
13+
</application>
14+
</manifest>

0 commit comments

Comments
 (0)