expo-invoke 3.1.0 → 3.1.2

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.
@@ -5,14 +5,12 @@ android {
5
5
  namespace "expo.modules.invoke"
6
6
  compileSdkVersion safeExtGet("compileSdkVersion", 34)
7
7
 
8
- compileOptions {
9
- sourceCompatibility JavaVersion.VERSION_11
10
- targetCompatibility JavaVersion.VERSION_11
11
- }
12
-
13
- kotlinOptions {
14
- jvmTarget = JavaVersion.VERSION_11.majorVersion
15
- }
8
+ // No explicit compileOptions/kotlinOptions JVM target here — React Native's
9
+ // Gradle plugin forces every subproject's Java tasks to JVM 17 globally, but
10
+ // does not override an already-set Kotlin jvmTarget the same way. Pinning
11
+ // this module to 11 left Java at 17 and Kotlin at 11, which Gradle rejects
12
+ // as an inconsistent JVM target. Let both inherit the project-wide default,
13
+ // same as expo-modules-core and other Expo-maintained native modules do.
16
14
 
17
15
  defaultConfig {
18
16
  minSdkVersion safeExtGet("minSdkVersion", 24)
@@ -58,7 +58,11 @@ const withAndroidInvoke = (config, options) => {
58
58
  app.service.push({
59
59
  $: {
60
60
  'android:name': 'expo.modules.invoke.QuickTileService',
61
- 'android:icon': '@drawable/ic_launcher_foreground',
61
+ // Expo's icon generator only ever produces `@mipmap/ic_launcher_foreground`,
62
+ // never a `drawable` copy — referencing `@drawable/...` here fails AAPT
63
+ // resource linking on every release build with the consuming app's own
64
+ // icon set, regardless of what that app's icons actually look like.
65
+ 'android:icon': '@mipmap/ic_launcher_foreground',
62
66
  'android:label': '@string/app_name',
63
67
  'android:permission': 'android.permission.BIND_QUICK_SETTINGS_TILE',
64
68
  'android:exported': 'true',
@@ -148,6 +152,7 @@ const withAndroidInvoke = (config, options) => {
148
152
  };
149
153
  writeXml(path.join(resXmlDir, 'actions.xml'), (0, generateActionsXml_1.generateActionsXml)(intents, packageName));
150
154
  writeXml(path.join(resXmlDir, 'shortcuts.xml'), (0, generateShortcutsXml_1.generateShortcutsXml)(intents, packageName));
155
+ writeXml(path.join(resValuesDir, 'shortcut_strings.xml'), (0, generateShortcutsXml_1.generateShortcutStringsXml)(intents));
151
156
  // Slice string resources
152
157
  if (slices.length > 0) {
153
158
  const sliceStrings = slices.map((s) => ` <string name="slice_${s.id}_title">${s.title}</string>`).join('\n');
@@ -1 +1 @@
1
- {"version":3,"file":"withAndroidInvoke.js","sourceRoot":"","sources":["../../../plugin/android/withAndroidInvoke.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"withAndroidInvoke.js","sourceRoot":"","sources":["../../../plugin/android/withAndroidInvoke.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,8 @@
1
1
  import type { IntentDefinition } from '../../src/types';
2
2
  export declare function generateShortcutsXml(intents: IntentDefinition[], packageName: string): string;
3
+ /**
4
+ * String resources backing shortcuts.xml's shortcutShortLabel/shortcutLongLabel —
5
+ * Android requires those attributes to be @string/... references, not literal
6
+ * text, so this must be written alongside shortcuts.xml into res/values/.
7
+ */
8
+ export declare function generateShortcutStringsXml(intents: IntentDefinition[]): string;
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.generateShortcutsXml = generateShortcutsXml;
4
+ exports.generateShortcutStringsXml = generateShortcutStringsXml;
4
5
  function escapeXml(s) {
5
6
  return s
6
7
  .replace(/&/g, '&amp;')
@@ -8,6 +9,11 @@ function escapeXml(s) {
8
9
  .replace(/>/g, '&gt;')
9
10
  .replace(/"/g, '&quot;');
10
11
  }
12
+ // Android resource names must match [a-zA-Z_][a-zA-Z0-9_]* — intent ids are
13
+ // snake_case by convention but this guards against any other characters.
14
+ function toResourceName(id) {
15
+ return id.replace(/[^a-zA-Z0-9_]/g, '_');
16
+ }
11
17
  function generateShortcutsXml(intents, packageName) {
12
18
  const shortcutIntents = intents.filter((i) => i.shortTitle);
13
19
  if (shortcutIntents.length === 0) {
@@ -22,13 +28,13 @@ function generateShortcutsXml(intents, packageName) {
22
28
  `only the first 5 will be included. Remove shortTitle from lower-priority intents.`);
23
29
  }
24
30
  const items = shortcutIntents.slice(0, 5).map((intent, idx) => {
25
- var _a;
26
31
  const rank = idx + 1;
32
+ const resourceName = toResourceName(intent.id);
27
33
  return ` <shortcut
28
34
  android:shortcutId="${escapeXml(intent.id)}"
29
35
  android:enabled="true"
30
- android:shortcutShortLabel="${escapeXml(((_a = intent.shortTitle) !== null && _a !== void 0 ? _a : intent.title).slice(0, 10))}"
31
- android:shortcutLongLabel="${escapeXml((intent.title).slice(0, 25))}"
36
+ android:shortcutShortLabel="@string/shortcut_short_label_${resourceName}"
37
+ android:shortcutLongLabel="@string/shortcut_long_label_${resourceName}"
32
38
  android:rank="${rank}">
33
39
  <intent
34
40
  android:action="${escapeXml(packageName)}.SHORTCUT"
@@ -47,4 +53,24 @@ ${items}
47
53
  </shortcuts>
48
54
  `;
49
55
  }
56
+ /**
57
+ * String resources backing shortcuts.xml's shortcutShortLabel/shortcutLongLabel —
58
+ * Android requires those attributes to be @string/... references, not literal
59
+ * text, so this must be written alongside shortcuts.xml into res/values/.
60
+ */
61
+ function generateShortcutStringsXml(intents) {
62
+ const shortcutIntents = intents.filter((i) => i.shortTitle).slice(0, 5);
63
+ if (shortcutIntents.length === 0) {
64
+ return `<?xml version="1.0" encoding="utf-8"?>\n<resources />\n`;
65
+ }
66
+ const strings = shortcutIntents.flatMap((intent) => {
67
+ var _a;
68
+ const resourceName = toResourceName(intent.id);
69
+ return [
70
+ ` <string name="shortcut_short_label_${resourceName}">${escapeXml(((_a = intent.shortTitle) !== null && _a !== void 0 ? _a : intent.title).slice(0, 10))}</string>`,
71
+ ` <string name="shortcut_long_label_${resourceName}">${escapeXml(intent.title.slice(0, 25))}</string>`,
72
+ ];
73
+ }).join('\n');
74
+ return `<?xml version="1.0" encoding="utf-8"?>\n<resources>\n${strings}\n</resources>\n`;
75
+ }
50
76
  //# sourceMappingURL=generateShortcutsXml.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"generateShortcutsXml.js","sourceRoot":"","sources":["../../../plugin/codegen/generateShortcutsXml.ts"],"names":[],"mappings":";;AAUA,oDA8CC;AAtDD,SAAS,SAAS,CAAC,CAAS;IAC1B,OAAO,CAAC;SACL,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;SACtB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AAC7B,CAAC;AAED,SAAgB,oBAAoB,CAClC,OAA2B,EAC3B,WAAmB;IAEnB,MAAM,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;IAE5D,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjC,OAAO;;;CAGV,CAAC;IACA,CAAC;IAED,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/B,OAAO,CAAC,IAAI,CACV,0DAA0D;YAC1D,YAAY,eAAe,CAAC,MAAM,6BAA6B;YAC/D,mFAAmF,CACpF,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE;;QAC5D,MAAM,IAAI,GAAG,GAAG,GAAG,CAAC,CAAC;QACrB,OAAO;0BACe,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;;kCAEZ,SAAS,CAAC,CAAC,MAAA,MAAM,CAAC,UAAU,mCAAI,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;iCAC5D,SAAS,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBACnD,IAAI;;wBAEA,SAAS,CAAC,WAAW,CAAC;+BACf,SAAS,CAAC,WAAW,CAAC;6BACxB,SAAS,CAAC,WAAW,CAAC;sBAC7B,SAAS,CAAC,WAAW,CAAC,aAAa,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;;cAE/D,CAAC;IACb,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAEhB,OAAO;;;;EAIP,KAAK;;;CAGN,CAAC;AACF,CAAC"}
1
+ {"version":3,"file":"generateShortcutsXml.js","sourceRoot":"","sources":["../../../plugin/codegen/generateShortcutsXml.ts"],"names":[],"mappings":";;AAgBA,oDA+CC;AAOD,gEAgBC;AApFD,SAAS,SAAS,CAAC,CAAS;IAC1B,OAAO,CAAC;SACL,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;SACtB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AAC7B,CAAC;AAED,4EAA4E;AAC5E,yEAAyE;AACzE,SAAS,cAAc,CAAC,EAAU;IAChC,OAAO,EAAE,CAAC,OAAO,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAC;AAC3C,CAAC;AAED,SAAgB,oBAAoB,CAClC,OAA2B,EAC3B,WAAmB;IAEnB,MAAM,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;IAE5D,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjC,OAAO;;;CAGV,CAAC;IACA,CAAC;IAED,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/B,OAAO,CAAC,IAAI,CACV,0DAA0D;YAC1D,YAAY,eAAe,CAAC,MAAM,6BAA6B;YAC/D,mFAAmF,CACpF,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE;QAC5D,MAAM,IAAI,GAAG,GAAG,GAAG,CAAC,CAAC;QACrB,MAAM,YAAY,GAAG,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC/C,OAAO;0BACe,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;;+DAEiB,YAAY;6DACd,YAAY;oBACrD,IAAI;;wBAEA,SAAS,CAAC,WAAW,CAAC;+BACf,SAAS,CAAC,WAAW,CAAC;6BACxB,SAAS,CAAC,WAAW,CAAC;sBAC7B,SAAS,CAAC,WAAW,CAAC,aAAa,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;;cAE/D,CAAC;IACb,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAEhB,OAAO;;;;EAIP,KAAK;;;CAGN,CAAC;AACF,CAAC;AAED;;;;GAIG;AACH,SAAgB,0BAA0B,CAAC,OAA2B;IACpE,MAAM,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAExE,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjC,OAAO,yDAAyD,CAAC;IACnE,CAAC;IAED,MAAM,OAAO,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;;QACjD,MAAM,YAAY,GAAG,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC/C,OAAO;YACL,wCAAwC,YAAY,KAAK,SAAS,CAAC,CAAC,MAAA,MAAM,CAAC,UAAU,mCAAI,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,WAAW;YAC/H,uCAAuC,YAAY,KAAK,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,WAAW;SACxG,CAAC;IACJ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEd,OAAO,wDAAwD,OAAO,kBAAkB,CAAC;AAC3F,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "expo-invoke",
3
- "version": "3.1.0",
3
+ "version": "3.1.2",
4
4
  "description": "The complete native-surface-to-JS bridge for Expo. One intent config → Siri, Google Assistant, home screen widgets, Dynamic Island, app icon menus, notification actions, NFC, QR, deep links and more — all through a single useInvoke() hook.",
5
5
  "main": "build/src/index.js",
6
6
  "module": "build/src/index.js",