Skip to content

Commit 1fc5f20

Browse files
committed
share v8.1.0
1 parent 4dbedd7 commit 1fc5f20

Some content is hidden

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

76 files changed

+437
-226
lines changed

docs/share/changelog.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,9 @@
1+
### 2025.06.13 [v8.1.0]
2+
3+
```
4+
feat(sms,android): add the ability to read sms from the device
5+
```
6+
17
### 2024.12.16 [v8.0.0]
28

39
```

docs/share/migrating-to-v7.4.mdx

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
---
22
title: Migrating to v7.4
3-
sidebar_label: Migrating to v7.4
43
---
54

65
import Tabs from '@theme/Tabs'

docs/share/migrating-to-v8.0.mdx

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
---
2+
title: Migrating to v8.1
3+
---
4+
5+
import Tabs from '@theme/Tabs'
6+
import TabItem from '@theme/TabItem'
7+
8+
9+
This latest release brings a number of updates to the extension particularly around the Android integration.
10+
11+
12+
## Android Integration
13+
14+
### Gradle Dependencies
15+
16+
We have moved to using gradle dependencies within our extensions which will improve dependency resolution, reduce update times and improve compatibility with other extensions.
17+
18+
This also reduces the amount of work required to manually integrate the extensions, reducing the additions to the manifest in your application descriptor.
19+
20+
We highly recommend using the [apm](https://airnativeextensions.com/docs/using-apm) tool to manage the integration of the extensions in your application and to generate your application descriptor:
21+
22+
```bash
23+
apm update
24+
apm generate app-descriptor
25+
```
26+
27+
However, you can still integrate the manifest additions manually if you prefer. With this update we recommend starting fresh as there have been a lot of entries to be removed.
28+
29+
30+
31+
### Updating code
32+
33+
There should be no changes to your code required for this update.
34+
35+
36+
### Updating the manifest
37+
38+
You can simplify the manifest now as well as the gradle implementation will add a significant amount of the required manifest entries for you.
39+
If you use the `apm` tool to generate your application descriptor you will see the manifest entries are significantly reduced and simply running the commands above will update the manifest for you.
40+
41+
If you manually update the manifest then, as mentioned above, we recommend starting fresh as there have been a lot of entries to be removed.
42+
The minimum manifest additions now looks like the following:
43+
44+
```xml
45+
<manifest android:installLocation="auto" >
46+
<uses-sdk android:minSdkVersion="21" android:targetSdkVersion="34"/>
47+
<uses-permission android:name="android.permission.INTERNET"/>
48+
49+
<queries>
50+
<!-- query for checking email apps -->
51+
<intent>
52+
<action android:name="android.intent.action.SEND" />
53+
<data android:mimeType="message/rfc822" />
54+
</intent>
55+
</queries>
56+
57+
<application>
58+
<meta-data android:name="android.max_aspect" android:value="2.5"/>
59+
<meta-data android:name="android.notch_support" android:value="true"/>
60+
61+
<provider android:name="com.distriqt.extension.share.content.ShareFileProvider" android:authorities="APPLICATION_PACKAGE.sharefileprovider" android:exported="false" android:grantUriPermissions="true">
62+
<meta-data android:name="android.support.FILE_PROVIDER_PATHS" android:resource="@xml/distriqt_share_paths"/>
63+
</provider>
64+
65+
<activity android:name="com.distriqt.core.auth.AuthorisationActivity" android:exported="false" android:theme="@android:style/Theme.Translucent.NoTitleBar"/>
66+
</application>
67+
</manifest>
68+
```
69+
70+
There are still some meta-data entries that you may need to add for specific features, but these are minimal.

docs/share/migrating-to-v8.1.mdx

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
---
2+
title: Migrating to v8.1
3+
---
4+
5+
6+
7+
## Read SMS Messages
8+
9+
The Share ANE now supports reading SMS messages on Android. This is a new feature that allows your application to access SMS messages stored on the device.
10+
To read SMS messages, you can use the `Share.service.sms.readSMS()` method. This method returns an array of `SMS` objects representing the SMS messages on the device.
11+
12+
13+
14+
## Android Gradle Version
15+
16+
We have updated the required gradle version used to build your application to be higher than the default AIR currently uses.
17+
18+
To specify a higher version add the following to your android node in your application descriptor:
19+
20+
```xml
21+
<android>
22+
<gradleVersion>8.9</gradleVersion>
23+
<androidGradlePluginVersion>8.7.3</androidGradlePluginVersion>
24+
25+
...
26+
</android>
27+
```
28+
29+
If you don't do this you will see the following error when building your application:
30+
31+
```
32+
Unexpected failure: Unable to run java: com.adobe.air.ADTException: gradle tool failed:
33+
FAILURE: Build failed with an exception.
34+
35+
...
36+
37+
> BUG! exception in phase 'semantic analysis' in source unit '_BuildScript_' Unsupported class file major version 65
38+
```
39+
40+
:::note
41+
April 2025: This is not currently automatically handled by `apm` so you will need to add this manually to your application descriptor.
42+
43+
We are working on an update to handle this.
44+
:::
45+

docs/share/simple-share.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ if (Share.isSupported)
105105
image2.bitmapData
106106
];
107107
108-
Share.service.share( "Multiple Images", images );
108+
Share.service.shareMultiple( "Multiple Images", images );
109109
}
110110
111111
function share_shareHandler( event:ShareEvent ):void

docs/share/sms.mdx

Lines changed: 30 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -119,8 +119,7 @@ private void SMS_OnSMSSent(SMSEvent e)
119119

120120
## Android Advanced SMS operations
121121

122-
On Android you can request permission to directly send and receive SMS messages without
123-
user interaction.
122+
On Android you can request permission to directly read, send and receive SMS messages.
124123

125124

126125
### Manifest Additions
@@ -157,7 +156,6 @@ These are optional and so should be added manually currently.
157156

158157

159158

160-
161159
### Requesting Authorisation
162160

163161
Firstly you must request authorisation to send and receive messages.
@@ -364,3 +362,32 @@ function smsEventHandler( event:SMSEvent ):void
364362
</TabItem>
365363
</Tabs>
366364

365+
366+
367+
### Read SMS
368+
369+
You can read SMS messages from the user's device using the `readSMS` call.
370+
This will return an array of `SMS` objects representing the SMS messages on the device.
371+
372+
The parameter is the maximum number of messages to return (or `0` for all messages).
373+
374+
375+
<Tabs groupId="framework" defaultValue="air" values={[
376+
{label: 'AIR', value: 'air'},
377+
{label: 'Unity', value: 'unity'},
378+
]}>
379+
<TabItem value="air" >
380+
381+
```actionscript
382+
var smsList:Array = Share.service.sms.readSMS(10);
383+
```
384+
385+
</TabItem>
386+
<TabItem value="unity" >
387+
388+
```csharp
389+
List<SMS> smsList = Share.Instance.SMS.ReadSMS(10);
390+
```
391+
392+
</TabItem>
393+
</Tabs>

sidebars.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3088,6 +3088,8 @@ module.exports = {
30883088
},
30893089
{
30903090
Troubleshooting: [
3091+
"share/migrating-to-v8.1",
3092+
"share/migrating-to-v8.0",
30913093
"share/migrating-to-v7.4",
30923094
"share/migrating-from-message",
30933095
"share/migrating-to-androidx",

static/asdocs/share/all-classes.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><!-- saved from url=(0014)about:internet --><html>
22
<head>
33
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
4-
<title>All Classes - distriqt // Share</title>
4+
<title>All Classes - Share</title>
55
<base target="classFrame">
66
<link rel="stylesheet" href="style.css" type="text/css" media="screen">
77
<link rel="stylesheet" href="print.css" type="text/css" media="print">
@@ -82,4 +82,4 @@ <h3><a href="class-summary.html" target="classFrame" style="color:black">All Cla
8282
</table>
8383
</body>
8484
</html>
85-
<!--Copyright distriqt 2016<br/>Mon Dec 16 2024, 01:28 PM +10:00 -->
85+
<!--Copyright Michael Archbold 2025<br/>Fri Jun 13 2025, 02:46 PM +10:00 -->

static/asdocs/share/all-index-A.html

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><!-- saved from url=(0014)about:internet --><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>A </title><link rel="stylesheet" href="style.css" type="text/css" media="screen"><link rel="stylesheet" href="print.css" type="text/css" media="print"><link rel="stylesheet" href="override.css" type="text/css"></head><body><script language="javascript" type="text/javascript" src="asdoc.js"></script><script language="javascript" type="text/javascript" src="help.js"></script><script language="javascript" type="text/javascript" src="cookies.js"></script><script language="javascript" type="text/javascript"><!--
2-
asdocTitle = 'A Index - distriqt // Share';
2+
asdocTitle = 'A Index - Share';
33
var baseRef = '';
44
window.onload = configPage;
55
--></script>
66
<script type="text/javascript">
77
scrollToNameAnchor();
8-
</script><table class="titleTable" cellpadding="0" cellspacing="0" id="titleTable" style="display:none"><tr><td class="titleTableTitle" align="left">distriqt // Share Native Extension Documentation</td><td class="titleTableTopNav" align="right"><a href="package-summary.html" onclick="loadClassListFrame('all-classes.html')">All Packages</a>&nbsp;|&nbsp;<a href="class-summary.html" onclick="loadClassListFrame('all-classes.html')">All Classes</a>&nbsp;|&nbsp;<a id="framesLink1" href="index.html?all-index-A.html&amp;index-list.html">Frames</a><a id="noFramesLink1" style="display:none" href="" onclick="parent.location=document.location"> No Frames </a></td><td class="titleTableLogo" align="right" rowspan="3"><img src="images/logo.jpg" class="logoImage" alt=" Adobe Logo " title=" Adobe Logo "></td></tr><tr class="titleTableRow2"><td class="titleTableSubTitle" id="subTitle" align="left">A&nbsp;Index</td><td class="titleTableSubNav" id="subNav" align="right"></td></tr><tr class="titleTableRow3"><td colspan="3">&nbsp;</td></tr></table><script language="javascript" type="text/javascript" xml:space="preserve">
8+
</script><table class="titleTable" cellpadding="0" cellspacing="0" id="titleTable" style="display:none"><tr><td class="titleTableTitle" align="left">Share Native Extension Documentation</td><td class="titleTableTopNav" align="right"><a href="package-summary.html" onclick="loadClassListFrame('all-classes.html')">All Packages</a>&nbsp;|&nbsp;<a href="class-summary.html" onclick="loadClassListFrame('all-classes.html')">All Classes</a>&nbsp;|&nbsp;<a id="framesLink1" href="index.html?all-index-A.html&amp;index-list.html">Frames</a><a id="noFramesLink1" style="display:none" href="" onclick="parent.location=document.location"> No Frames </a></td><td class="titleTableLogo" align="right" rowspan="3"><img src="images/logo.jpg" class="logoImage" alt=" Adobe Logo " title=" Adobe Logo "></td></tr><tr class="titleTableRow2"><td class="titleTableSubTitle" id="subTitle" align="left">A&nbsp;Index</td><td class="titleTableSubNav" id="subNav" align="right"></td></tr><tr class="titleTableRow3"><td colspan="3">&nbsp;</td></tr></table><script language="javascript" type="text/javascript" xml:space="preserve">
99
<!--
1010

1111
if (!isEclipse() || window.name != ECLIPSE_FRAME_NAME) {titleBar_setSubTitle("A Index"); titleBar_setSubNav(false,false,false,false,false,false,false,false,false,false,false ,false,false,false,false,false);}
@@ -64,9 +64,9 @@
6464
Retrieves the current authorisation status of this application.</td></tr><tr><td class="idxrow" colspan="2"><a href="com/distriqt/extension/share/AuthorisationStatus.html" onclick="javascript:loadClassListFrame('com/distriqt/extension/share/class-list.html');">AuthorisationStatus</a> &mdash; class, package <a href="com/distriqt/extension/share/package-detail.html" onclick="javascript:loadClassListFrame('com/distriqt/extension/share/class-list.html');">com.distriqt.extension.share</a></td></tr><tr><td width="20"></td><td></td></tr><tr><td class="idxrow" colspan="2"><a href="com/distriqt/extension/share/AuthorisationStatus.html#AuthorisationStatus()" onclick="javascript:loadClassListFrame('com/distriqt/extension/share/class-list.html');">AuthorisationStatus</a>() &mdash; Constructor, class com.distriqt.extension.share.<a href="com/distriqt/extension/share/AuthorisationStatus.html" onclick="javascript:loadClassListFrame('com/distriqt/extension/share/class-list.html');">AuthorisationStatus</a></td></tr><tr><td width="20"></td><td>
6565
Constructor
6666
</td></tr><tr><td class="idxrow" colspan="2"><a href="com/distriqt/extension/share/AuthorisationStatus.html#AUTHORISED" onclick="javascript:loadClassListFrame('com/distriqt/extension/share/class-list.html');">AUTHORISED</a> &mdash; Constant Static Property, class com.distriqt.extension.share.<a href="com/distriqt/extension/share/AuthorisationStatus.html" onclick="javascript:loadClassListFrame('com/distriqt/extension/share/class-list.html');">AuthorisationStatus</a></td></tr><tr><td width="20"></td><td>
67-
The client is authorized to access the hardware supporting a media type
67+
The client is authorised to access to the permission
6868
</td></tr><tr><td class="idxrow" colspan="2"><a href="com/distriqt/extension/share/ShareOptions.html#autoScale" onclick="javascript:loadClassListFrame('com/distriqt/extension/share/class-list.html');">autoScale</a> &mdash; Property, class com.distriqt.extension.share.<a href="com/distriqt/extension/share/ShareOptions.html" onclick="javascript:loadClassListFrame('com/distriqt/extension/share/class-list.html');">ShareOptions</a></td></tr><tr><td width="20"></td><td>
6969

7070
The autoScale feature allows you to specify position and size based
7171
on the devices dip which will automatically scale the popover
72-
based on the device display resolution.</td></tr><tr><td colspan="2" style="padding-bottom:20px"></td></tr><tr><td colspan="2"><font color="black" size="10px" style="bold">A</font>&nbsp;&nbsp;<a href="all-index-B.html" onclick="javascript:loadClassListFrame('index-list.html');">B</a>&nbsp;&nbsp;<a href="all-index-C.html" onclick="javascript:loadClassListFrame('index-list.html');">C</a>&nbsp;&nbsp;<a href="all-index-D.html" onclick="javascript:loadClassListFrame('index-list.html');">D</a>&nbsp;&nbsp;<a href="all-index-E.html" onclick="javascript:loadClassListFrame('index-list.html');">E</a>&nbsp;&nbsp;<a href="all-index-F.html" onclick="javascript:loadClassListFrame('index-list.html');">F</a>&nbsp;&nbsp;<a href="all-index-G.html" onclick="javascript:loadClassListFrame('index-list.html');">G</a>&nbsp;&nbsp;<a href="all-index-H.html" onclick="javascript:loadClassListFrame('index-list.html');">H</a>&nbsp;&nbsp;<a href="all-index-I.html" onclick="javascript:loadClassListFrame('index-list.html');">I</a>&nbsp;&nbsp;<a href="all-index-J.html" onclick="javascript:loadClassListFrame('index-list.html');">J</a>&nbsp;&nbsp;<a href="all-index-K.html" onclick="javascript:loadClassListFrame('index-list.html');">K</a>&nbsp;&nbsp;<a href="all-index-L.html" onclick="javascript:loadClassListFrame('index-list.html');">L</a>&nbsp;&nbsp;<a href="all-index-M.html" onclick="javascript:loadClassListFrame('index-list.html');">M</a>&nbsp;&nbsp;<a href="all-index-N.html" onclick="javascript:loadClassListFrame('index-list.html');">N</a>&nbsp;&nbsp;<a href="all-index-O.html" onclick="javascript:loadClassListFrame('index-list.html');">O</a>&nbsp;&nbsp;<a href="all-index-P.html" onclick="javascript:loadClassListFrame('index-list.html');">P</a>&nbsp;&nbsp;<a href="all-index-Q.html" onclick="javascript:loadClassListFrame('index-list.html');">Q</a>&nbsp;&nbsp;<a href="all-index-R.html" onclick="javascript:loadClassListFrame('index-list.html');">R</a>&nbsp;&nbsp;<a href="all-index-S.html" onclick="javascript:loadClassListFrame('index-list.html');">S</a>&nbsp;&nbsp;<a href="all-index-T.html" onclick="javascript:loadClassListFrame('index-list.html');">T</a>&nbsp;&nbsp;<a href="all-index-U.html" onclick="javascript:loadClassListFrame('index-list.html');">U</a>&nbsp;&nbsp;<a href="all-index-V.html" onclick="javascript:loadClassListFrame('index-list.html');">V</a>&nbsp;&nbsp;<a href="all-index-W.html" onclick="javascript:loadClassListFrame('index-list.html');">W</a>&nbsp;&nbsp;<a href="all-index-X.html" onclick="javascript:loadClassListFrame('index-list.html');">X</a>&nbsp;&nbsp;<a href="all-index-Y.html" onclick="javascript:loadClassListFrame('index-list.html');">Y</a>&nbsp;&nbsp;<a href="all-index-Z.html" onclick="javascript:loadClassListFrame('index-list.html');">Z</a>&nbsp;&nbsp;</td></tr></table><p></p><center class="copyright"><footer>Copyright <a href="https://distriqt.com" target="_top">distriqt</a> 2016</footer><br/>Mon Dec 16 2024, 01:28 PM +10:00 </center></div></body></html><!--Copyright distriqt 2016<br/>Mon Dec 16 2024, 01:28 PM +10:00 -->
72+
based on the device display resolution.</td></tr><tr><td colspan="2" style="padding-bottom:20px"></td></tr><tr><td colspan="2"><font color="black" size="10px" style="bold">A</font>&nbsp;&nbsp;<a href="all-index-B.html" onclick="javascript:loadClassListFrame('index-list.html');">B</a>&nbsp;&nbsp;<a href="all-index-C.html" onclick="javascript:loadClassListFrame('index-list.html');">C</a>&nbsp;&nbsp;<a href="all-index-D.html" onclick="javascript:loadClassListFrame('index-list.html');">D</a>&nbsp;&nbsp;<a href="all-index-E.html" onclick="javascript:loadClassListFrame('index-list.html');">E</a>&nbsp;&nbsp;<a href="all-index-F.html" onclick="javascript:loadClassListFrame('index-list.html');">F</a>&nbsp;&nbsp;<a href="all-index-G.html" onclick="javascript:loadClassListFrame('index-list.html');">G</a>&nbsp;&nbsp;<a href="all-index-H.html" onclick="javascript:loadClassListFrame('index-list.html');">H</a>&nbsp;&nbsp;<a href="all-index-I.html" onclick="javascript:loadClassListFrame('index-list.html');">I</a>&nbsp;&nbsp;<a href="all-index-J.html" onclick="javascript:loadClassListFrame('index-list.html');">J</a>&nbsp;&nbsp;<a href="all-index-K.html" onclick="javascript:loadClassListFrame('index-list.html');">K</a>&nbsp;&nbsp;<a href="all-index-L.html" onclick="javascript:loadClassListFrame('index-list.html');">L</a>&nbsp;&nbsp;<a href="all-index-M.html" onclick="javascript:loadClassListFrame('index-list.html');">M</a>&nbsp;&nbsp;<a href="all-index-N.html" onclick="javascript:loadClassListFrame('index-list.html');">N</a>&nbsp;&nbsp;<a href="all-index-O.html" onclick="javascript:loadClassListFrame('index-list.html');">O</a>&nbsp;&nbsp;<a href="all-index-P.html" onclick="javascript:loadClassListFrame('index-list.html');">P</a>&nbsp;&nbsp;<a href="all-index-Q.html" onclick="javascript:loadClassListFrame('index-list.html');">Q</a>&nbsp;&nbsp;<a href="all-index-R.html" onclick="javascript:loadClassListFrame('index-list.html');">R</a>&nbsp;&nbsp;<a href="all-index-S.html" onclick="javascript:loadClassListFrame('index-list.html');">S</a>&nbsp;&nbsp;<a href="all-index-T.html" onclick="javascript:loadClassListFrame('index-list.html');">T</a>&nbsp;&nbsp;<a href="all-index-U.html" onclick="javascript:loadClassListFrame('index-list.html');">U</a>&nbsp;&nbsp;<a href="all-index-V.html" onclick="javascript:loadClassListFrame('index-list.html');">V</a>&nbsp;&nbsp;<a href="all-index-W.html" onclick="javascript:loadClassListFrame('index-list.html');">W</a>&nbsp;&nbsp;<a href="all-index-X.html" onclick="javascript:loadClassListFrame('index-list.html');">X</a>&nbsp;&nbsp;<a href="all-index-Y.html" onclick="javascript:loadClassListFrame('index-list.html');">Y</a>&nbsp;&nbsp;<a href="all-index-Z.html" onclick="javascript:loadClassListFrame('index-list.html');">Z</a>&nbsp;&nbsp;</td></tr></table><p></p><center class="copyright"><footer>Copyright <a href="https://michaelarchbold.com" target="_top">Michael Archbold</a> 2025</footer><br/>Fri Jun 13 2025, 02:46 PM +10:00 </center></div></body></html><!--Copyright Michael Archbold 2025<br/>Fri Jun 13 2025, 02:46 PM +10:00 -->

0 commit comments

Comments
 (0)