@capacitor/android 3.2.4 → 3.3.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.
- package/CHANGELOG.md +47 -0
- package/capacitor/src/main/assets/native-bridge.js +3 -18
- package/capacitor/src/main/java/com/getcapacitor/Bridge.java +7 -0
- package/capacitor/src/main/java/com/getcapacitor/BridgeWebChromeClient.java +8 -1
- package/capacitor/src/main/java/com/getcapacitor/FileUtils.java +1 -1
- package/capacitor/src/main/java/com/getcapacitor/Plugin.java +3 -1
- package/capacitor/src/main/java/com/getcapacitor/cordova/MockCordovaInterfaceImpl.java +2 -2
- package/package.json +3 -3
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,53 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [3.3.2](https://github.com/ionic-team/capacitor/compare/3.3.1...3.3.2) (2021-11-17)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Bug Fixes
|
|
10
|
+
|
|
11
|
+
* **android:** Allow web geolocation if only COARSE_LOCATION is granted ([#5236](https://github.com/ionic-team/capacitor/issues/5236)) ([bc7b24e](https://github.com/ionic-team/capacitor/commit/bc7b24e9b58b194b32b750c5816c8d8ef180834a))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
## [3.3.1](https://github.com/ionic-team/capacitor/compare/3.3.0...3.3.1) (2021-11-05)
|
|
18
|
+
|
|
19
|
+
**Note:** Version bump only for package @capacitor/android
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
# [3.3.0](https://github.com/ionic-team/capacitor/compare/3.2.5...3.3.0) (2021-11-03)
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
### Bug Fixes
|
|
29
|
+
|
|
30
|
+
* **core:** avoid crash on logging circular objects ([#5186](https://github.com/ionic-team/capacitor/issues/5186)) ([1451ec8](https://github.com/ionic-team/capacitor/commit/1451ec850a9ef73267a032638e73f1fc440647b9))
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
### Features
|
|
34
|
+
|
|
35
|
+
* **android:** ability to reload the webview ([#5184](https://github.com/ionic-team/capacitor/issues/5184)) ([c495bed](https://github.com/ionic-team/capacitor/commit/c495bed216ddf05450f185d2d3f09b4052b281a8))
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
## [3.2.5](https://github.com/ionic-team/capacitor/compare/3.2.4...3.2.5) (2021-10-13)
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
### Bug Fixes
|
|
45
|
+
|
|
46
|
+
* **android:** Avoid ConcurrentModificationException on notifyListeners ([#5125](https://github.com/ionic-team/capacitor/issues/5125)) ([b82bfe0](https://github.com/ionic-team/capacitor/commit/b82bfe0db2e38fa286eb18391b1d5e2f86a1b35c))
|
|
47
|
+
* **android:** Support cordova-android 10 ([#5103](https://github.com/ionic-team/capacitor/issues/5103)) ([e238233](https://github.com/ionic-team/capacitor/commit/e238233dcf34a183af4861176789d1feb1eb51fa))
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
|
|
6
53
|
## [3.2.4](https://github.com/ionic-team/capacitor/compare/3.2.3...3.2.4) (2021-09-27)
|
|
7
54
|
|
|
8
55
|
|
|
@@ -167,21 +167,6 @@ const nativeBridge = (function (exports) {
|
|
|
167
167
|
win.Capacitor = cap;
|
|
168
168
|
win.Ionic.WebView = IonicWebView;
|
|
169
169
|
};
|
|
170
|
-
const safeStringify = (value) => {
|
|
171
|
-
const seen = new Set();
|
|
172
|
-
return JSON.stringify(value, (_k, v) => {
|
|
173
|
-
if (seen.has(v)) {
|
|
174
|
-
if (v === null)
|
|
175
|
-
return null;
|
|
176
|
-
else
|
|
177
|
-
return '...';
|
|
178
|
-
}
|
|
179
|
-
if (typeof v === 'object') {
|
|
180
|
-
seen.add(v);
|
|
181
|
-
}
|
|
182
|
-
return v;
|
|
183
|
-
});
|
|
184
|
-
};
|
|
185
170
|
const initLogger = (win, cap) => {
|
|
186
171
|
const BRIDGED_CONSOLE_METHODS = [
|
|
187
172
|
'debug',
|
|
@@ -248,7 +233,7 @@ const nativeBridge = (function (exports) {
|
|
|
248
233
|
const serializeConsoleMessage = (msg) => {
|
|
249
234
|
if (typeof msg === 'object') {
|
|
250
235
|
try {
|
|
251
|
-
msg =
|
|
236
|
+
msg = JSON.stringify(msg);
|
|
252
237
|
}
|
|
253
238
|
catch (e) {
|
|
254
239
|
// ignore
|
|
@@ -317,7 +302,7 @@ const nativeBridge = (function (exports) {
|
|
|
317
302
|
postToNative = data => {
|
|
318
303
|
var _a;
|
|
319
304
|
try {
|
|
320
|
-
win.androidBridge.postMessage(
|
|
305
|
+
win.androidBridge.postMessage(JSON.stringify(data));
|
|
321
306
|
}
|
|
322
307
|
catch (e) {
|
|
323
308
|
(_a = win === null || win === void 0 ? void 0 : win.console) === null || _a === void 0 ? void 0 : _a.error(e);
|
|
@@ -348,7 +333,7 @@ const nativeBridge = (function (exports) {
|
|
|
348
333
|
url: url,
|
|
349
334
|
line: lineNo,
|
|
350
335
|
col: columnNo,
|
|
351
|
-
errorObject:
|
|
336
|
+
errorObject: JSON.stringify(err),
|
|
352
337
|
},
|
|
353
338
|
};
|
|
354
339
|
if (err !== null) {
|
|
@@ -1148,6 +1148,13 @@ public class Bridge {
|
|
|
1148
1148
|
webView.post(() -> webView.loadUrl(appUrl));
|
|
1149
1149
|
}
|
|
1150
1150
|
|
|
1151
|
+
/**
|
|
1152
|
+
* Reload the WebView
|
|
1153
|
+
*/
|
|
1154
|
+
public void reload() {
|
|
1155
|
+
webView.post(() -> webView.loadUrl(appUrl));
|
|
1156
|
+
}
|
|
1157
|
+
|
|
1151
1158
|
public String getLocalUrl() {
|
|
1152
1159
|
return localUrl;
|
|
1153
1160
|
}
|
|
@@ -7,6 +7,7 @@ import android.app.AlertDialog;
|
|
|
7
7
|
import android.content.ActivityNotFoundException;
|
|
8
8
|
import android.content.Intent;
|
|
9
9
|
import android.net.Uri;
|
|
10
|
+
import android.os.Build;
|
|
10
11
|
import android.os.Environment;
|
|
11
12
|
import android.provider.MediaStore;
|
|
12
13
|
import android.view.View;
|
|
@@ -280,7 +281,13 @@ public class BridgeWebChromeClient extends WebChromeClient {
|
|
|
280
281
|
if (isGranted) {
|
|
281
282
|
callback.invoke(origin, true, false);
|
|
282
283
|
} else {
|
|
283
|
-
|
|
284
|
+
final String[] coarsePermission = { Manifest.permission.ACCESS_COARSE_LOCATION };
|
|
285
|
+
// TODO replace with Build.VERSION_CODES.S once we target SDK 31
|
|
286
|
+
if (Build.VERSION.SDK_INT >= 31 && PermissionHelper.hasPermissions(bridge.getContext(), coarsePermission)) {
|
|
287
|
+
callback.invoke(origin, true, false);
|
|
288
|
+
} else {
|
|
289
|
+
callback.invoke(origin, false, false);
|
|
290
|
+
}
|
|
284
291
|
}
|
|
285
292
|
};
|
|
286
293
|
permissionLauncher.launch(geoPermissions);
|
|
@@ -146,7 +146,7 @@ public class FileUtils {
|
|
|
146
146
|
*/
|
|
147
147
|
static String readFile(AssetManager assetManager, String fileName) throws IOException {
|
|
148
148
|
try (BufferedReader reader = new BufferedReader(new InputStreamReader(assetManager.open(fileName)))) {
|
|
149
|
-
|
|
149
|
+
StringBuilder buffer = new StringBuilder();
|
|
150
150
|
String line;
|
|
151
151
|
while ((line = reader.readLine()) != null) {
|
|
152
152
|
buffer.append(line + "\n");
|
|
@@ -29,6 +29,7 @@ import java.util.List;
|
|
|
29
29
|
import java.util.Locale;
|
|
30
30
|
import java.util.Map;
|
|
31
31
|
import java.util.Set;
|
|
32
|
+
import java.util.concurrent.CopyOnWriteArrayList;
|
|
32
33
|
import org.json.JSONException;
|
|
33
34
|
|
|
34
35
|
/**
|
|
@@ -668,7 +669,8 @@ public class Plugin {
|
|
|
668
669
|
return;
|
|
669
670
|
}
|
|
670
671
|
|
|
671
|
-
|
|
672
|
+
CopyOnWriteArrayList<PluginCall> listenersCopy = new CopyOnWriteArrayList(listeners);
|
|
673
|
+
for (PluginCall call : listenersCopy) {
|
|
672
674
|
call.resolve(data);
|
|
673
675
|
}
|
|
674
676
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
package com.getcapacitor.cordova;
|
|
2
2
|
|
|
3
|
-
import android.app.Activity;
|
|
4
3
|
import android.util.Pair;
|
|
4
|
+
import androidx.appcompat.app.AppCompatActivity;
|
|
5
5
|
import java.util.concurrent.Executors;
|
|
6
6
|
import org.apache.cordova.CordovaInterfaceImpl;
|
|
7
7
|
import org.apache.cordova.CordovaPlugin;
|
|
@@ -9,7 +9,7 @@ import org.json.JSONException;
|
|
|
9
9
|
|
|
10
10
|
public class MockCordovaInterfaceImpl extends CordovaInterfaceImpl {
|
|
11
11
|
|
|
12
|
-
public MockCordovaInterfaceImpl(
|
|
12
|
+
public MockCordovaInterfaceImpl(AppCompatActivity activity) {
|
|
13
13
|
super(activity, Executors.newCachedThreadPool());
|
|
14
14
|
}
|
|
15
15
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@capacitor/android",
|
|
3
|
-
"version": "3.2
|
|
3
|
+
"version": "3.3.2",
|
|
4
4
|
"description": "Capacitor: Cross-platform apps with JavaScript and the web",
|
|
5
5
|
"homepage": "https://capacitorjs.com",
|
|
6
6
|
"author": "Ionic Team <hi@ionic.io> (https://ionic.io)",
|
|
@@ -22,10 +22,10 @@
|
|
|
22
22
|
"verify": "./gradlew clean lint build test -b capacitor/build.gradle"
|
|
23
23
|
},
|
|
24
24
|
"peerDependencies": {
|
|
25
|
-
"@capacitor/core": "^3.
|
|
25
|
+
"@capacitor/core": "^3.3.0"
|
|
26
26
|
},
|
|
27
27
|
"publishConfig": {
|
|
28
28
|
"access": "public"
|
|
29
29
|
},
|
|
30
|
-
"gitHead": "
|
|
30
|
+
"gitHead": "3158cd9a293ac79de801c833bb937d2df54e0d96"
|
|
31
31
|
}
|