@capacitor/android 7.4.5 → 7.6.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.
@@ -54,7 +54,7 @@ android {
54
54
  buildTypes {
55
55
  release {
56
56
  minifyEnabled false
57
- proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
57
+ proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
58
58
  }
59
59
  }
60
60
  lintOptions {
@@ -66,7 +66,9 @@ public class BridgeActivity extends AppCompatActivity {
66
66
  @Override
67
67
  public void onSaveInstanceState(Bundle outState) {
68
68
  super.onSaveInstanceState(outState);
69
- bridge.saveInstanceState(outState);
69
+ if (bridge != null) {
70
+ bridge.saveInstanceState(outState);
71
+ }
70
72
  }
71
73
 
72
74
  @Override
@@ -82,8 +84,10 @@ public class BridgeActivity extends AppCompatActivity {
82
84
  @Override
83
85
  public void onRestart() {
84
86
  super.onRestart();
85
- this.bridge.onRestart();
86
- Logger.debug("App restarted");
87
+ if (this.bridge != null) {
88
+ this.bridge.onRestart();
89
+ Logger.debug("App restarted");
90
+ }
87
91
  }
88
92
 
89
93
  @Override
@@ -131,7 +135,9 @@ public class BridgeActivity extends AppCompatActivity {
131
135
  @Override
132
136
  public void onDetachedFromWindow() {
133
137
  super.onDetachedFromWindow();
134
- this.bridge.onDetachedFromWindow();
138
+ if (this.bridge != null) {
139
+ this.bridge.onDetachedFromWindow();
140
+ }
135
141
  }
136
142
 
137
143
  /**
@@ -128,9 +128,22 @@ public class WebViewLocalServer {
128
128
  return reasonPhrase;
129
129
  }
130
130
 
131
+ /**
132
+ * @deprecated This method may return incorrect headers in concurrent range requests.
133
+ * <p>
134
+ * Use {@link #buildDefaultResponseHeaders()} instead, which returns a copy of the map.
135
+ * </p>
136
+ * This method will be removed in a future major version of Capacitor.
137
+ * </p>
138
+ */
139
+ @Deprecated(forRemoval = true) // adjust version as appropriate
131
140
  public Map<String, String> getResponseHeaders() {
132
141
  return responseHeaders;
133
142
  }
143
+
144
+ public Map<String, String> buildDefaultResponseHeaders() {
145
+ return new HashMap<>(responseHeaders);
146
+ }
134
147
  }
135
148
 
136
149
  WebViewLocalServer(Context context, Bridge bridge, JSInjector jsInjector, ArrayList<String> authorities, boolean html5mode) {
@@ -326,14 +339,16 @@ public class WebViewLocalServer {
326
339
  private WebResourceResponse handleLocalRequest(WebResourceRequest request, PathHandler handler) {
327
340
  String path = request.getUrl().getPath();
328
341
 
329
- if (request.getRequestHeaders().get("Range") != null) {
342
+ Map<String, String> requestHeaders = request.getRequestHeaders();
343
+ String rangeString = requestHeaders.get("Range") != null ? requestHeaders.get("Range") : requestHeaders.get("range");
344
+
345
+ if (rangeString != null) {
330
346
  InputStream responseStream = new LollipopLazyInputStream(handler, request);
331
347
  String mimeType = getMimeType(path, responseStream);
332
- Map<String, String> tempResponseHeaders = handler.getResponseHeaders();
348
+ Map<String, String> tempResponseHeaders = handler.buildDefaultResponseHeaders();
333
349
  int statusCode = 206;
334
350
  try {
335
351
  int totalRange = responseStream.available();
336
- String rangeString = request.getRequestHeaders().get("Range");
337
352
  String[] parts = rangeString.split("=");
338
353
  String[] streamParts = parts[1].split("-");
339
354
  String fromRange = streamParts[0];
@@ -365,7 +380,7 @@ public class WebViewLocalServer {
365
380
  handler.getEncoding(),
366
381
  statusCode,
367
382
  handler.getReasonPhrase(),
368
- handler.getResponseHeaders(),
383
+ handler.buildDefaultResponseHeaders(),
369
384
  responseStream
370
385
  );
371
386
  }
@@ -376,7 +391,7 @@ public class WebViewLocalServer {
376
391
  handler.getEncoding(),
377
392
  handler.getStatusCode(),
378
393
  handler.getReasonPhrase(),
379
- handler.getResponseHeaders(),
394
+ handler.buildDefaultResponseHeaders(),
380
395
  null
381
396
  );
382
397
  }
@@ -411,7 +426,7 @@ public class WebViewLocalServer {
411
426
  handler.getEncoding(),
412
427
  statusCode,
413
428
  handler.getReasonPhrase(),
414
- handler.getResponseHeaders(),
429
+ handler.buildDefaultResponseHeaders(),
415
430
  responseStream
416
431
  );
417
432
  }
@@ -442,7 +457,7 @@ public class WebViewLocalServer {
442
457
  handler.getEncoding(),
443
458
  statusCode,
444
459
  handler.getReasonPhrase(),
445
- handler.getResponseHeaders(),
460
+ handler.buildDefaultResponseHeaders(),
446
461
  responseStream
447
462
  );
448
463
  }
@@ -517,7 +532,7 @@ public class WebViewLocalServer {
517
532
  handler.getEncoding(),
518
533
  handler.getStatusCode(),
519
534
  handler.getReasonPhrase(),
520
- handler.getResponseHeaders(),
535
+ handler.buildDefaultResponseHeaders(),
521
536
  responseStream
522
537
  );
523
538
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@capacitor/android",
3
- "version": "7.4.5",
3
+ "version": "7.6.0",
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)",
@@ -23,7 +23,7 @@
23
23
  "verify": "./gradlew clean lint build test -b capacitor/build.gradle"
24
24
  },
25
25
  "peerDependencies": {
26
- "@capacitor/core": "^7.4.0"
26
+ "@capacitor/core": "^7.6.0"
27
27
  },
28
28
  "publishConfig": {
29
29
  "access": "public"