voltra 1.3.1 → 1.4.0-rc.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/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/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
|