voltra 1.3.1 → 1.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +25 -0
- package/android/build.gradle +1 -3
- package/android/src/main/AndroidManifest.xml +1 -3
- package/android/src/main/java/voltra/VoltraModule.kt +120 -23
- package/android/src/main/java/voltra/VoltraNotificationManager.kt +674 -100
- package/android/src/main/java/voltra/VoltraOngoingNotificationDismissedReceiver.kt +15 -0
- package/android/src/main/java/voltra/generated/ShortNames.kt +1 -0
- package/android/src/main/java/voltra/glance/GlanceFactory.kt +1 -1
- package/android/src/main/java/voltra/glance/RemoteViewsGenerator.kt +1 -1
- package/android/src/main/java/voltra/glance/StyleUtils.kt +8 -7
- package/android/src/main/java/voltra/glance/VoltraRenderContext.kt +1 -1
- package/android/src/main/java/voltra/glance/renderers/ButtonRenderers.kt +16 -18
- package/android/src/main/java/voltra/glance/renderers/ChartBitmapRenderer.kt +18 -22
- package/android/src/main/java/voltra/glance/renderers/ChartRenderers.kt +31 -17
- package/android/src/main/java/voltra/glance/renderers/ComplexRenderers.kt +8 -17
- package/android/src/main/java/voltra/glance/renderers/InputRenderers.kt +7 -6
- package/android/src/main/java/voltra/glance/renderers/LayoutRenderers.kt +1 -0
- package/android/src/main/java/voltra/glance/renderers/LazyListRenderers.kt +2 -2
- package/android/src/main/java/voltra/glance/renderers/ProgressRenderers.kt +4 -4
- package/android/src/main/java/voltra/glance/renderers/RenderCommon.kt +6 -32
- package/android/src/main/java/voltra/glance/renderers/RendererJson.kt +128 -0
- package/android/src/main/java/voltra/glance/renderers/TextAndImageRenderers.kt +9 -2
- package/android/src/main/java/voltra/glance/renderers/TextBitmapRenderer.kt +4 -1
- package/android/src/main/java/voltra/models/VoltraPayload.kt +24 -6
- package/android/src/main/java/voltra/ongoingnotification/AndroidOngoingNotificationPayload.kt +93 -0
- package/android/src/main/java/voltra/ongoingnotification/AndroidOngoingNotificationPayloadParser.kt +13 -0
- package/android/src/main/java/voltra/parsing/VoltraDecompressor.kt +10 -10
- package/android/src/main/java/voltra/parsing/VoltraPayloadParser.kt +11 -7
- package/android/src/main/java/voltra/parsing/VoltraSerializers.kt +231 -0
- package/android/src/main/java/voltra/styling/JSColorParser.kt +10 -6
- package/android/src/main/java/voltra/styling/JSStyleParser.kt +1 -1
- package/android/src/main/java/voltra/styling/StyleConverter.kt +2 -2
- package/android/src/main/java/voltra/styling/StyleModifiers.kt +10 -9
- package/android/src/main/java/voltra/styling/StyleStructures.kt +4 -6
- package/android/src/main/java/voltra/styling/VoltraColorValue.kt +101 -0
- package/android/src/main/java/voltra/widget/VoltraRefreshActionCallback.kt +1 -12
- package/android/src/main/java/voltra/widget/VoltraWidgetUpdateRequest.kt +30 -0
- package/android/src/main/java/voltra/widget/VoltraWidgetUpdateWorker.kt +1 -12
- package/build/cjs/VoltraModule.js.map +1 -1
- package/build/cjs/android/client.js +1 -1
- package/build/cjs/android/client.js.map +1 -1
- package/build/cjs/android/components/VoltraView.js +3 -77
- package/build/cjs/android/components/VoltraView.js.map +1 -1
- package/build/cjs/android/components/VoltraWidgetPreview.js +3 -30
- package/build/cjs/android/components/VoltraWidgetPreview.js.map +1 -1
- package/build/cjs/android/dynamic-colors.js +6 -0
- package/build/cjs/android/dynamic-colors.js.map +1 -0
- package/build/cjs/android/index.js +28 -4
- package/build/cjs/android/index.js.map +1 -1
- package/build/cjs/android/jsx/AreaMark.js.map +1 -1
- package/build/cjs/android/jsx/BarMark.js.map +1 -1
- package/build/cjs/android/jsx/LineMark.js.map +1 -1
- package/build/cjs/android/jsx/PointMark.js.map +1 -1
- package/build/cjs/android/jsx/RuleMark.js.map +1 -1
- package/build/cjs/android/jsx/SectorMark.js.map +1 -1
- package/build/cjs/android/jsx/props/CheckBox.js.map +1 -1
- package/build/cjs/android/jsx/props/CircleIconButton.js.map +1 -1
- package/build/cjs/android/jsx/props/CircularProgressIndicator.js.map +1 -1
- package/build/cjs/android/jsx/props/FilledButton.js.map +1 -1
- package/build/cjs/android/jsx/props/Image.js.map +1 -1
- package/build/cjs/android/jsx/props/LinearProgressIndicator.js.map +1 -1
- package/build/cjs/android/jsx/props/OutlineButton.js.map +1 -1
- package/build/cjs/android/jsx/props/RadioButton.js.map +1 -1
- package/build/cjs/android/jsx/props/Scaffold.js.map +1 -1
- package/build/cjs/android/jsx/props/SquareIconButton.js.map +1 -1
- package/build/cjs/android/jsx/props/Switch.js.map +1 -1
- package/build/cjs/android/jsx/props/TitleBar.js.map +1 -1
- package/build/cjs/android/server.js +9 -15
- package/build/cjs/android/server.js.map +1 -1
- package/build/cjs/android/styles/types.js.map +1 -1
- package/build/cjs/android/widgets/api.js +8 -152
- package/build/cjs/android/widgets/api.js.map +1 -1
- package/build/cjs/android/widgets/renderer.js +5 -53
- package/build/cjs/android/widgets/renderer.js.map +1 -1
- package/build/cjs/client.js +24 -24
- package/build/cjs/client.js.map +1 -1
- package/build/cjs/live-activity/api.js +1 -1
- package/build/cjs/live-activity/api.js.map +1 -1
- package/build/cjs/styles/index.js.map +1 -1
- package/build/cjs/styles/types.js.map +1 -1
- package/build/cjs/types.js.map +1 -1
- package/build/cjs/widget-server.js +17 -16
- package/build/cjs/widget-server.js.map +1 -1
- package/build/cjs/widgets/renderer.js +1 -1
- package/build/cjs/widgets/renderer.js.map +1 -1
- package/build/esm/VoltraModule.js.map +1 -1
- package/build/esm/android/client.js +1 -1
- package/build/esm/android/client.js.map +1 -1
- package/build/esm/android/components/VoltraView.js +1 -43
- package/build/esm/android/components/VoltraView.js.map +1 -1
- package/build/esm/android/components/VoltraWidgetPreview.js +1 -26
- package/build/esm/android/components/VoltraWidgetPreview.js.map +1 -1
- package/build/esm/android/dynamic-colors.js +2 -0
- package/build/esm/android/dynamic-colors.js.map +1 -0
- package/build/esm/android/index.js +3 -1
- package/build/esm/android/index.js.map +1 -1
- package/build/esm/android/jsx/AreaMark.js.map +1 -1
- package/build/esm/android/jsx/BarMark.js.map +1 -1
- package/build/esm/android/jsx/LineMark.js.map +1 -1
- package/build/esm/android/jsx/PointMark.js.map +1 -1
- package/build/esm/android/jsx/RuleMark.js.map +1 -1
- package/build/esm/android/jsx/SectorMark.js.map +1 -1
- package/build/esm/android/jsx/props/CheckBox.js.map +1 -1
- package/build/esm/android/jsx/props/CircleIconButton.js.map +1 -1
- package/build/esm/android/jsx/props/CircularProgressIndicator.js.map +1 -1
- package/build/esm/android/jsx/props/FilledButton.js.map +1 -1
- package/build/esm/android/jsx/props/Image.js.map +1 -1
- package/build/esm/android/jsx/props/LinearProgressIndicator.js.map +1 -1
- package/build/esm/android/jsx/props/OutlineButton.js.map +1 -1
- package/build/esm/android/jsx/props/RadioButton.js.map +1 -1
- package/build/esm/android/jsx/props/Scaffold.js.map +1 -1
- package/build/esm/android/jsx/props/SquareIconButton.js.map +1 -1
- package/build/esm/android/jsx/props/Switch.js.map +1 -1
- package/build/esm/android/jsx/props/TitleBar.js.map +1 -1
- package/build/esm/android/server.js +2 -1
- package/build/esm/android/server.js.map +1 -1
- package/build/esm/android/styles/types.js.map +1 -1
- package/build/esm/android/widgets/api.js +1 -142
- package/build/esm/android/widgets/api.js.map +1 -1
- package/build/esm/android/widgets/renderer.js +1 -50
- package/build/esm/android/widgets/renderer.js.map +1 -1
- package/build/esm/client.js +1 -1
- package/build/esm/client.js.map +1 -1
- package/build/esm/live-activity/api.js +1 -1
- package/build/esm/live-activity/api.js.map +1 -1
- package/build/esm/styles/index.js.map +1 -1
- package/build/esm/styles/types.js.map +1 -1
- package/build/esm/types.js.map +1 -1
- package/build/esm/widget-server.js +13 -12
- package/build/esm/widget-server.js.map +1 -1
- package/build/esm/widgets/renderer.js +1 -1
- package/build/esm/widgets/renderer.js.map +1 -1
- package/build/types/VoltraModule.d.ts +1 -24
- package/build/types/VoltraModule.d.ts.map +1 -1
- package/build/types/android/client.d.ts +1 -1
- package/build/types/android/components/VoltraView.d.ts +1 -28
- package/build/types/android/components/VoltraView.d.ts.map +1 -1
- package/build/types/android/components/VoltraWidgetPreview.d.ts +1 -21
- package/build/types/android/components/VoltraWidgetPreview.d.ts.map +1 -1
- package/build/types/android/dynamic-colors.d.ts +2 -0
- package/build/types/android/dynamic-colors.d.ts.map +1 -0
- package/build/types/android/index.d.ts +18 -1
- package/build/types/android/index.d.ts.map +1 -1
- package/build/types/android/jsx/AreaMark.d.ts +2 -1
- package/build/types/android/jsx/AreaMark.d.ts.map +1 -1
- package/build/types/android/jsx/BarMark.d.ts +2 -1
- package/build/types/android/jsx/BarMark.d.ts.map +1 -1
- package/build/types/android/jsx/LineMark.d.ts +2 -1
- package/build/types/android/jsx/LineMark.d.ts.map +1 -1
- package/build/types/android/jsx/PointMark.d.ts +2 -1
- package/build/types/android/jsx/PointMark.d.ts.map +1 -1
- package/build/types/android/jsx/RuleMark.d.ts +2 -1
- package/build/types/android/jsx/RuleMark.d.ts.map +1 -1
- package/build/types/android/jsx/SectorMark.d.ts +2 -1
- package/build/types/android/jsx/SectorMark.d.ts.map +1 -1
- package/build/types/android/jsx/props/CheckBox.d.ts +3 -2
- package/build/types/android/jsx/props/CheckBox.d.ts.map +1 -1
- package/build/types/android/jsx/props/CircleIconButton.d.ts +3 -2
- package/build/types/android/jsx/props/CircleIconButton.d.ts.map +1 -1
- package/build/types/android/jsx/props/CircularProgressIndicator.d.ts +2 -1
- package/build/types/android/jsx/props/CircularProgressIndicator.d.ts.map +1 -1
- package/build/types/android/jsx/props/FilledButton.d.ts +3 -2
- package/build/types/android/jsx/props/FilledButton.d.ts.map +1 -1
- package/build/types/android/jsx/props/Image.d.ts +3 -2
- package/build/types/android/jsx/props/Image.d.ts.map +1 -1
- package/build/types/android/jsx/props/LinearProgressIndicator.d.ts +3 -2
- package/build/types/android/jsx/props/LinearProgressIndicator.d.ts.map +1 -1
- package/build/types/android/jsx/props/OutlineButton.d.ts +2 -1
- package/build/types/android/jsx/props/OutlineButton.d.ts.map +1 -1
- package/build/types/android/jsx/props/RadioButton.d.ts +3 -2
- package/build/types/android/jsx/props/RadioButton.d.ts.map +1 -1
- package/build/types/android/jsx/props/Scaffold.d.ts +2 -1
- package/build/types/android/jsx/props/Scaffold.d.ts.map +1 -1
- package/build/types/android/jsx/props/SquareIconButton.d.ts +3 -2
- package/build/types/android/jsx/props/SquareIconButton.d.ts.map +1 -1
- package/build/types/android/jsx/props/Switch.d.ts +5 -4
- package/build/types/android/jsx/props/Switch.d.ts.map +1 -1
- package/build/types/android/jsx/props/TitleBar.d.ts +3 -2
- package/build/types/android/jsx/props/TitleBar.d.ts.map +1 -1
- package/build/types/android/server.d.ts +4 -1
- package/build/types/android/server.d.ts.map +1 -1
- package/build/types/android/styles/types.d.ts +5 -4
- package/build/types/android/styles/types.d.ts.map +1 -1
- package/build/types/android/widgets/api.d.ts +1 -130
- package/build/types/android/widgets/api.d.ts.map +1 -1
- package/build/types/android/widgets/renderer.d.ts +1 -21
- package/build/types/android/widgets/renderer.d.ts.map +1 -1
- package/build/types/client.d.ts +2 -2
- package/build/types/styles/index.d.ts +1 -1
- package/build/types/styles/index.d.ts.map +1 -1
- package/build/types/styles/types.d.ts +1 -1
- package/build/types/styles/types.d.ts.map +1 -1
- package/build/types/types.d.ts +2 -1
- package/build/types/types.d.ts.map +1 -1
- package/build/types/widget-server.d.ts +4 -4
- package/build/types/widget-server.d.ts.map +1 -1
- package/ios/shared/ShortNames.swift +1 -0
- package/package.json +10 -8
- package/android/src/main/java/voltra/parsing/VoltraNodeDeserializer.kt +0 -43
- package/build/cjs/android/live-update/api.js +0 -215
- package/build/cjs/android/live-update/api.js.map +0 -1
- package/build/cjs/android/live-update/renderer.js +0 -46
- package/build/cjs/android/live-update/renderer.js.map +0 -1
- package/build/cjs/android/live-update/types.js +0 -3
- package/build/cjs/android/live-update/types.js.map +0 -1
- package/build/esm/android/live-update/api.js +0 -203
- package/build/esm/android/live-update/api.js.map +0 -1
- package/build/esm/android/live-update/renderer.js +0 -41
- package/build/esm/android/live-update/renderer.js.map +0 -1
- package/build/esm/android/live-update/types.js +0 -2
- package/build/esm/android/live-update/types.js.map +0 -1
- package/build/types/android/live-update/api.d.ts +0 -126
- package/build/types/android/live-update/api.d.ts.map +0 -1
- package/build/types/android/live-update/renderer.d.ts +0 -11
- package/build/types/android/live-update/renderer.d.ts.map +0 -1
- package/build/types/android/live-update/types.d.ts +0 -100
- package/build/types/android/live-update/types.d.ts.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,30 @@
|
|
|
1
1
|
# voltra
|
|
2
2
|
|
|
3
|
+
## 1.4.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- Android home-screen widgets can use colors that follow the user’s theme and wallpaper (including Material You), so widgets feel native in light, dark, and dynamic setups. If you drive widgets from your own server, you can read the full request URL—including query parameters—when handling updates, which makes it easier to personalize or A/B content per link. Widget updates on iOS are a bit more forgiving when variant data is missing.
|
|
8
|
+
- 14d4fa5: Add Android ongoing notification support, including richer notification content, remote update flows, and server-side payload rendering APIs. This release also expands the Expo integration and documentation so apps can configure, send, and manage Android ongoing notifications more easily.
|
|
9
|
+
|
|
10
|
+
### Patch Changes
|
|
11
|
+
|
|
12
|
+
- Android apps built for production (minified / release) are less likely to crash or mis-render widgets because of how widget payloads are processed on the device.
|
|
13
|
+
- 8cedb47: Fix iOS Live Activity naming so named activities can be reused more reliably across app launches.
|
|
14
|
+
- Work on decomposing Voltra into smaller packages continues, and more pieces have moved from the umbrella package into the respective `@use-voltra/*` packages. You should still use the `voltra` umbrella for your app.
|
|
15
|
+
- Updated dependencies
|
|
16
|
+
- Updated dependencies [14d4fa5]
|
|
17
|
+
- Updated dependencies
|
|
18
|
+
- @use-voltra/android@1.4.0
|
|
19
|
+
- @use-voltra/android-server@1.4.0
|
|
20
|
+
- @use-voltra/ios-server@1.3.2
|
|
21
|
+
- @use-voltra/server@1.4.0
|
|
22
|
+
- @use-voltra/expo-plugin@1.4.0
|
|
23
|
+
- @use-voltra/android-client@1.4.0
|
|
24
|
+
- @use-voltra/core@1.4.0
|
|
25
|
+
- @use-voltra/ios@1.4.0
|
|
26
|
+
- @use-voltra/ios-client@1.4.0
|
|
27
|
+
|
|
3
28
|
## 1.3.0
|
|
4
29
|
|
|
5
30
|
### Patch Changes
|
package/android/build.gradle
CHANGED
|
@@ -102,9 +102,6 @@ dependencies {
|
|
|
102
102
|
// Google Tink (encryption for credential storage)
|
|
103
103
|
implementation "com.google.crypto.tink:tink-android:1.19.0"
|
|
104
104
|
|
|
105
|
-
// JSON parsing
|
|
106
|
-
implementation "com.google.code.gson:gson:2.10.1"
|
|
107
|
-
|
|
108
105
|
// Coroutines
|
|
109
106
|
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:1.8.1"
|
|
110
107
|
|
|
@@ -114,4 +111,5 @@ dependencies {
|
|
|
114
111
|
// Unit tests
|
|
115
112
|
testImplementation "junit:junit:4.13.2"
|
|
116
113
|
testImplementation "org.jetbrains.kotlinx:kotlinx-coroutines-test:1.8.1"
|
|
114
|
+
testImplementation "org.robolectric:robolectric:4.14.1"
|
|
117
115
|
}
|
|
@@ -1,6 +1,4 @@
|
|
|
1
1
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
|
|
2
|
-
<uses-permission android:name="android.permission.POST_NOTIFICATIONS"/>
|
|
3
|
-
|
|
4
2
|
<application>
|
|
5
3
|
<provider
|
|
6
4
|
android:name="androidx.core.content.FileProvider"
|
|
@@ -12,4 +10,4 @@
|
|
|
12
10
|
android:resource="@xml/voltra_file_paths" />
|
|
13
11
|
</provider>
|
|
14
12
|
</application>
|
|
15
|
-
</manifest>
|
|
13
|
+
</manifest>
|
|
@@ -67,54 +67,151 @@ class VoltraModule : Module() {
|
|
|
67
67
|
eventBusUnsubscribe = null
|
|
68
68
|
}
|
|
69
69
|
|
|
70
|
-
// Android
|
|
70
|
+
// Android ongoing notification APIs
|
|
71
71
|
|
|
72
|
-
AsyncFunction("
|
|
72
|
+
AsyncFunction("startAndroidOngoingNotification") {
|
|
73
73
|
payload: String,
|
|
74
74
|
options: Map<String, Any?>,
|
|
75
75
|
->
|
|
76
76
|
|
|
77
|
-
Log.d(TAG, "
|
|
77
|
+
Log.d(TAG, "startAndroidOngoingNotification called")
|
|
78
78
|
|
|
79
|
-
val
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
79
|
+
val ongoingNotificationOptions =
|
|
80
|
+
AndroidOngoingNotificationOptions(
|
|
81
|
+
notificationId = options["notificationId"] as? String,
|
|
82
|
+
channelId = options["channelId"] as? String,
|
|
83
|
+
smallIcon = options["smallIcon"] as? String,
|
|
84
|
+
deepLinkUrl = options["deepLinkUrl"] as? String,
|
|
85
|
+
requestPromotedOngoing = options["requestPromotedOngoing"] as? Boolean,
|
|
86
|
+
fallbackBehavior = options["fallbackBehavior"] as? String,
|
|
87
|
+
)
|
|
83
88
|
|
|
84
89
|
val result =
|
|
85
90
|
runBlocking {
|
|
86
|
-
notificationManager.
|
|
91
|
+
notificationManager.startOngoingNotification(payload, ongoingNotificationOptions)
|
|
87
92
|
}
|
|
88
93
|
|
|
89
|
-
Log.d(TAG, "
|
|
90
|
-
|
|
94
|
+
Log.d(TAG, "startAndroidOngoingNotification returning: $result")
|
|
95
|
+
mapOf(
|
|
96
|
+
"ok" to result.ok,
|
|
97
|
+
"notificationId" to result.notificationId,
|
|
98
|
+
"action" to result.action,
|
|
99
|
+
"reason" to result.reason,
|
|
100
|
+
)
|
|
91
101
|
}
|
|
92
102
|
|
|
93
|
-
AsyncFunction("
|
|
103
|
+
AsyncFunction("updateAndroidOngoingNotification") {
|
|
94
104
|
notificationId: String,
|
|
95
105
|
payload: String,
|
|
106
|
+
options: Map<String, Any?>?,
|
|
96
107
|
->
|
|
97
108
|
|
|
98
|
-
Log.d(TAG, "
|
|
109
|
+
Log.d(TAG, "updateAndroidOngoingNotification called with notificationId=$notificationId")
|
|
99
110
|
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
111
|
+
val ongoingNotificationOptions =
|
|
112
|
+
AndroidOngoingNotificationOptions(
|
|
113
|
+
channelId = options?.get("channelId") as? String,
|
|
114
|
+
smallIcon = options?.get("smallIcon") as? String,
|
|
115
|
+
deepLinkUrl = options?.get("deepLinkUrl") as? String,
|
|
116
|
+
requestPromotedOngoing = options?.get("requestPromotedOngoing") as? Boolean,
|
|
117
|
+
fallbackBehavior = options?.get("fallbackBehavior") as? String,
|
|
118
|
+
)
|
|
119
|
+
|
|
120
|
+
val result =
|
|
121
|
+
runBlocking {
|
|
122
|
+
notificationManager.updateOngoingNotification(
|
|
123
|
+
notificationId,
|
|
124
|
+
payload,
|
|
125
|
+
ongoingNotificationOptions,
|
|
126
|
+
)
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
Log.d(TAG, "updateAndroidOngoingNotification returning: $result")
|
|
130
|
+
mapOf(
|
|
131
|
+
"ok" to result.ok,
|
|
132
|
+
"notificationId" to result.notificationId,
|
|
133
|
+
"action" to result.action,
|
|
134
|
+
"reason" to result.reason,
|
|
135
|
+
)
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
AsyncFunction("upsertAndroidOngoingNotification") {
|
|
139
|
+
payload: String,
|
|
140
|
+
options: Map<String, Any?>,
|
|
141
|
+
->
|
|
142
|
+
|
|
143
|
+
Log.d(TAG, "upsertAndroidOngoingNotification called")
|
|
144
|
+
|
|
145
|
+
val ongoingNotificationOptions =
|
|
146
|
+
AndroidOngoingNotificationOptions(
|
|
147
|
+
notificationId = options["notificationId"] as? String,
|
|
148
|
+
channelId = options["channelId"] as? String,
|
|
149
|
+
smallIcon = options["smallIcon"] as? String,
|
|
150
|
+
deepLinkUrl = options["deepLinkUrl"] as? String,
|
|
151
|
+
requestPromotedOngoing = options["requestPromotedOngoing"] as? Boolean,
|
|
152
|
+
fallbackBehavior = options["fallbackBehavior"] as? String,
|
|
153
|
+
)
|
|
154
|
+
|
|
155
|
+
val result =
|
|
156
|
+
runBlocking {
|
|
157
|
+
notificationManager.upsertOngoingNotification(payload, ongoingNotificationOptions)
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
Log.d(TAG, "upsertAndroidOngoingNotification returning: $result")
|
|
161
|
+
mapOf(
|
|
162
|
+
"ok" to result.ok,
|
|
163
|
+
"notificationId" to result.notificationId,
|
|
164
|
+
"action" to result.action,
|
|
165
|
+
"reason" to result.reason,
|
|
166
|
+
)
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
AsyncFunction("stopAndroidOngoingNotification") { notificationId: String ->
|
|
170
|
+
Log.d(TAG, "stopAndroidOngoingNotification called with notificationId=$notificationId")
|
|
171
|
+
val result = notificationManager.stopOngoingNotification(notificationId)
|
|
172
|
+
mapOf(
|
|
173
|
+
"ok" to result.ok,
|
|
174
|
+
"notificationId" to result.notificationId,
|
|
175
|
+
"action" to result.action,
|
|
176
|
+
"reason" to result.reason,
|
|
177
|
+
)
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
Function("isAndroidOngoingNotificationActive") { notificationId: String ->
|
|
181
|
+
notificationManager.isOngoingNotificationActive(notificationId)
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
Function("getAndroidOngoingNotificationStatus") { notificationId: String ->
|
|
185
|
+
val status = notificationManager.getOngoingNotificationStatus(notificationId)
|
|
186
|
+
mapOf(
|
|
187
|
+
"isActive" to status.isActive,
|
|
188
|
+
"isDismissed" to status.isDismissed,
|
|
189
|
+
"isPromoted" to status.isPromoted,
|
|
190
|
+
"hasPromotableCharacteristics" to status.hasPromotableCharacteristics,
|
|
191
|
+
)
|
|
192
|
+
}
|
|
103
193
|
|
|
104
|
-
|
|
194
|
+
AsyncFunction("endAllAndroidOngoingNotifications") {
|
|
195
|
+
notificationManager.endAllOngoingNotifications()
|
|
105
196
|
}
|
|
106
197
|
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
notificationManager.stopLiveUpdate(notificationId)
|
|
198
|
+
Function("canPostPromotedAndroidNotifications") {
|
|
199
|
+
notificationManager.canPostPromotedAndroidNotifications()
|
|
110
200
|
}
|
|
111
201
|
|
|
112
|
-
Function("
|
|
113
|
-
notificationManager.
|
|
202
|
+
Function("getAndroidOngoingNotificationCapabilities") {
|
|
203
|
+
val capabilities = notificationManager.getOngoingNotificationCapabilities()
|
|
204
|
+
mapOf(
|
|
205
|
+
"apiLevel" to capabilities.apiLevel,
|
|
206
|
+
"notificationsEnabled" to capabilities.notificationsEnabled,
|
|
207
|
+
"supportsPromotedNotifications" to capabilities.supportsPromotedNotifications,
|
|
208
|
+
"canPostPromotedNotifications" to capabilities.canPostPromotedNotifications,
|
|
209
|
+
"canRequestPromotedOngoing" to capabilities.canRequestPromotedOngoing,
|
|
210
|
+
)
|
|
114
211
|
}
|
|
115
212
|
|
|
116
|
-
AsyncFunction("
|
|
117
|
-
notificationManager.
|
|
213
|
+
AsyncFunction("openAndroidNotificationSettings") {
|
|
214
|
+
notificationManager.openPromotedNotificationSettings()
|
|
118
215
|
}
|
|
119
216
|
|
|
120
217
|
// Android Widget APIs
|