expo-task-manager 58.0.12 → 58.0.13

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.
Files changed (42) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/android/build.gradle +2 -2
  3. package/android/src/main/AndroidManifest.xml +2 -0
  4. package/android/src/main/java/expo/modules/taskmanager/TaskManagerUtils.java +14 -10
  5. package/local-maven-repo/host/exp/exponent/expo.modules.taskmanager/{58.0.12/expo.modules.taskmanager-58.0.12-sources.jar → 58.0.13/expo.modules.taskmanager-58.0.13-sources.jar} +0 -0
  6. package/local-maven-repo/host/exp/exponent/expo.modules.taskmanager/58.0.13/expo.modules.taskmanager-58.0.13-sources.jar.md5 +1 -0
  7. package/local-maven-repo/host/exp/exponent/expo.modules.taskmanager/58.0.13/expo.modules.taskmanager-58.0.13-sources.jar.sha1 +1 -0
  8. package/local-maven-repo/host/exp/exponent/expo.modules.taskmanager/58.0.13/expo.modules.taskmanager-58.0.13-sources.jar.sha256 +1 -0
  9. package/local-maven-repo/host/exp/exponent/expo.modules.taskmanager/58.0.13/expo.modules.taskmanager-58.0.13-sources.jar.sha512 +1 -0
  10. package/local-maven-repo/host/exp/exponent/expo.modules.taskmanager/58.0.13/expo.modules.taskmanager-58.0.13.aar +0 -0
  11. package/local-maven-repo/host/exp/exponent/expo.modules.taskmanager/58.0.13/expo.modules.taskmanager-58.0.13.aar.md5 +1 -0
  12. package/local-maven-repo/host/exp/exponent/expo.modules.taskmanager/58.0.13/expo.modules.taskmanager-58.0.13.aar.sha1 +1 -0
  13. package/local-maven-repo/host/exp/exponent/expo.modules.taskmanager/58.0.13/expo.modules.taskmanager-58.0.13.aar.sha256 +1 -0
  14. package/local-maven-repo/host/exp/exponent/expo.modules.taskmanager/58.0.13/expo.modules.taskmanager-58.0.13.aar.sha512 +1 -0
  15. package/local-maven-repo/host/exp/exponent/expo.modules.taskmanager/{58.0.12/expo.modules.taskmanager-58.0.12.module → 58.0.13/expo.modules.taskmanager-58.0.13.module} +22 -22
  16. package/local-maven-repo/host/exp/exponent/expo.modules.taskmanager/58.0.13/expo.modules.taskmanager-58.0.13.module.md5 +1 -0
  17. package/local-maven-repo/host/exp/exponent/expo.modules.taskmanager/58.0.13/expo.modules.taskmanager-58.0.13.module.sha1 +1 -0
  18. package/local-maven-repo/host/exp/exponent/expo.modules.taskmanager/58.0.13/expo.modules.taskmanager-58.0.13.module.sha256 +1 -0
  19. package/local-maven-repo/host/exp/exponent/expo.modules.taskmanager/58.0.13/expo.modules.taskmanager-58.0.13.module.sha512 +1 -0
  20. package/local-maven-repo/host/exp/exponent/expo.modules.taskmanager/{58.0.12/expo.modules.taskmanager-58.0.12.pom → 58.0.13/expo.modules.taskmanager-58.0.13.pom} +1 -1
  21. package/local-maven-repo/host/exp/exponent/expo.modules.taskmanager/58.0.13/expo.modules.taskmanager-58.0.13.pom.md5 +1 -0
  22. package/local-maven-repo/host/exp/exponent/expo.modules.taskmanager/58.0.13/expo.modules.taskmanager-58.0.13.pom.sha1 +1 -0
  23. package/local-maven-repo/host/exp/exponent/expo.modules.taskmanager/58.0.13/expo.modules.taskmanager-58.0.13.pom.sha256 +1 -0
  24. package/local-maven-repo/host/exp/exponent/expo.modules.taskmanager/58.0.13/expo.modules.taskmanager-58.0.13.pom.sha512 +1 -0
  25. package/package.json +3 -3
  26. package/local-maven-repo/host/exp/exponent/expo.modules.taskmanager/58.0.12/expo.modules.taskmanager-58.0.12-sources.jar.md5 +0 -1
  27. package/local-maven-repo/host/exp/exponent/expo.modules.taskmanager/58.0.12/expo.modules.taskmanager-58.0.12-sources.jar.sha1 +0 -1
  28. package/local-maven-repo/host/exp/exponent/expo.modules.taskmanager/58.0.12/expo.modules.taskmanager-58.0.12-sources.jar.sha256 +0 -1
  29. package/local-maven-repo/host/exp/exponent/expo.modules.taskmanager/58.0.12/expo.modules.taskmanager-58.0.12-sources.jar.sha512 +0 -1
  30. package/local-maven-repo/host/exp/exponent/expo.modules.taskmanager/58.0.12/expo.modules.taskmanager-58.0.12.aar +0 -0
  31. package/local-maven-repo/host/exp/exponent/expo.modules.taskmanager/58.0.12/expo.modules.taskmanager-58.0.12.aar.md5 +0 -1
  32. package/local-maven-repo/host/exp/exponent/expo.modules.taskmanager/58.0.12/expo.modules.taskmanager-58.0.12.aar.sha1 +0 -1
  33. package/local-maven-repo/host/exp/exponent/expo.modules.taskmanager/58.0.12/expo.modules.taskmanager-58.0.12.aar.sha256 +0 -1
  34. package/local-maven-repo/host/exp/exponent/expo.modules.taskmanager/58.0.12/expo.modules.taskmanager-58.0.12.aar.sha512 +0 -1
  35. package/local-maven-repo/host/exp/exponent/expo.modules.taskmanager/58.0.12/expo.modules.taskmanager-58.0.12.module.md5 +0 -1
  36. package/local-maven-repo/host/exp/exponent/expo.modules.taskmanager/58.0.12/expo.modules.taskmanager-58.0.12.module.sha1 +0 -1
  37. package/local-maven-repo/host/exp/exponent/expo.modules.taskmanager/58.0.12/expo.modules.taskmanager-58.0.12.module.sha256 +0 -1
  38. package/local-maven-repo/host/exp/exponent/expo.modules.taskmanager/58.0.12/expo.modules.taskmanager-58.0.12.module.sha512 +0 -1
  39. package/local-maven-repo/host/exp/exponent/expo.modules.taskmanager/58.0.12/expo.modules.taskmanager-58.0.12.pom.md5 +0 -1
  40. package/local-maven-repo/host/exp/exponent/expo.modules.taskmanager/58.0.12/expo.modules.taskmanager-58.0.12.pom.sha1 +0 -1
  41. package/local-maven-repo/host/exp/exponent/expo.modules.taskmanager/58.0.12/expo.modules.taskmanager-58.0.12.pom.sha256 +0 -1
  42. package/local-maven-repo/host/exp/exponent/expo.modules.taskmanager/58.0.12/expo.modules.taskmanager-58.0.12.pom.sha512 +0 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # Changelog
2
2
 
3
+ ## 58.0.13
4
+
5
+ ### Patch Changes
6
+
7
+ - [Android] Fix an issue where scheduling a job would fail when `RECEIVE_BOOT_COMPLETED` is not in the app manifest, which led to crashes in the background. Add `RECEIVE_BOOT_COMPLETED` permission to the manifest, set job persistence based on whether this permission is in the manifest. ([#51701](https://github.com/expo/expo/pull/51701) by [@HubertBer](https://github.com/HubertBer))
8
+
3
9
  ## 58.0.12
4
10
 
5
11
  ### Patch Changes
@@ -4,13 +4,13 @@ plugins {
4
4
  }
5
5
 
6
6
  group = 'host.exp.exponent'
7
- version = '58.0.12'
7
+ version = '58.0.13'
8
8
 
9
9
  android {
10
10
  namespace "expo.modules.taskmanager"
11
11
  defaultConfig {
12
12
  versionCode 23
13
- versionName "58.0.12"
13
+ versionName "58.0.13"
14
14
  consumerProguardFiles 'proguard-rules.pro'
15
15
  }
16
16
  }
@@ -1,4 +1,6 @@
1
1
  <manifest xmlns:android="http://schemas.android.com/apk/res/android">
2
+ <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
3
+
2
4
  <application>
3
5
  <receiver
4
6
  android:name="expo.modules.taskmanager.TaskBroadcastReceiver"
@@ -1,5 +1,6 @@
1
1
  package expo.modules.taskmanager;
2
2
 
3
+ import android.Manifest;
3
4
  import android.app.PendingIntent;
4
5
  import android.app.job.JobInfo;
5
6
  import android.app.job.JobParameters;
@@ -7,6 +8,7 @@ import android.app.job.JobScheduler;
7
8
  import android.content.ComponentName;
8
9
  import android.content.Context;
9
10
  import android.content.Intent;
11
+ import android.content.pm.PackageManager;
10
12
  import android.net.Uri;
11
13
  import android.os.Build;
12
14
  import android.os.Bundle;
@@ -20,6 +22,7 @@ import java.util.Map;
20
22
 
21
23
  import androidx.annotation.NonNull;
22
24
  import androidx.annotation.Nullable;
25
+ import androidx.core.content.ContextCompat;
23
26
 
24
27
  import expo.modules.interfaces.taskManager.TaskExecutionCallback;
25
28
  import expo.modules.interfaces.taskManager.TaskInterface;
@@ -107,6 +110,7 @@ public class TaskManagerUtils implements TaskManagerUtilsInterface {
107
110
 
108
111
  private void updateOrScheduleJob(Context context, TaskInterface task, List<PersistableBundle> data) {
109
112
  JobScheduler jobScheduler = (JobScheduler) context.getSystemService(Context.JOB_SCHEDULER_SERVICE);
113
+ boolean canPersistJobs = ContextCompat.checkSelfPermission(context, Manifest.permission.RECEIVE_BOOT_COMPLETED) == PackageManager.PERMISSION_GRANTED;
110
114
 
111
115
  if (jobScheduler == null) {
112
116
  Log.e(this.getClass().getName(), "Job scheduler not found!");
@@ -140,10 +144,10 @@ public class TaskManagerUtils implements TaskManagerUtilsInterface {
140
144
  if (pendingJobs.size() >= getJobLimit() - JOB_LIMIT_BUFFER && newestJob != null) {
141
145
  Log.i(TAG, "Approaching job limit (" + pendingJobs.size() + "). Merging data for task '" + task.getName() + "'.");
142
146
  try {
143
- JobInfo mergedJobInfo = createJobInfoByAddingData(newestJob, data);
147
+ JobInfo mergedJobInfo = createJobInfoByAddingData(newestJob, data, canPersistJobs);
144
148
  jobScheduler.cancel(newestJob.getId());
145
149
  jobScheduler.schedule(mergedJobInfo);
146
- } catch (IllegalStateException e) {
150
+ } catch (IllegalArgumentException | IllegalStateException e) {
147
151
  Log.e(this.getClass().getName(), "Unable to merge job: " + e.getMessage());
148
152
  }
149
153
  return;
@@ -151,14 +155,14 @@ public class TaskManagerUtils implements TaskManagerUtilsInterface {
151
155
 
152
156
  // Under limit: schedule as new job. Don't touch existing jobs.
153
157
  try {
154
- JobInfo jobInfo = createJobInfo(context, task, newJobId, data);
158
+ JobInfo jobInfo = createJobInfo(context, task, newJobId, data, canPersistJobs);
155
159
  jobScheduler.schedule(jobInfo);
156
- } catch (IllegalStateException e) {
160
+ } catch (IllegalArgumentException | IllegalStateException e) {
157
161
  Log.e(this.getClass().getName(), "Unable to schedule job: " + e.getMessage());
158
162
  }
159
163
  }
160
164
 
161
- private JobInfo createJobInfoByAddingData(JobInfo jobInfo, List<PersistableBundle> data) {
165
+ private JobInfo createJobInfoByAddingData(JobInfo jobInfo, List<PersistableBundle> data, boolean persisted) {
162
166
  PersistableBundle mergedExtras = jobInfo.getExtras();
163
167
  int dataSize = mergedExtras.getInt("dataSize", 0);
164
168
 
@@ -169,7 +173,7 @@ public class TaskManagerUtils implements TaskManagerUtilsInterface {
169
173
  mergedExtras.putPersistableBundle(String.valueOf(dataSize + i), data.get(i));
170
174
  }
171
175
  }
172
- return createJobInfo(jobInfo.getId(), jobInfo.getService(), mergedExtras);
176
+ return createJobInfo(jobInfo.getId(), jobInfo.getService(), mergedExtras, persisted);
173
177
  }
174
178
 
175
179
  private PendingIntent createTaskIntent(Context context, String appScopeKey, String taskName, int flags) {
@@ -199,10 +203,10 @@ public class TaskManagerUtils implements TaskManagerUtilsInterface {
199
203
  return createTaskIntent(context, appScopeKey, taskName, flags);
200
204
  }
201
205
 
202
- private JobInfo createJobInfo(int jobId, ComponentName jobService, PersistableBundle extras) {
206
+ private JobInfo createJobInfo(int jobId, ComponentName jobService, PersistableBundle extras, boolean persisted) {
203
207
  JobInfo.Builder jobBuilder = new JobInfo.Builder(jobId, jobService)
204
208
  .setExtras(extras)
205
- .setPersisted(true)
209
+ .setPersisted(persisted)
206
210
  .setRequiresDeviceIdle(false);
207
211
 
208
212
  if (Build.VERSION.SDK_INT < 28) {
@@ -221,8 +225,8 @@ public class TaskManagerUtils implements TaskManagerUtilsInterface {
221
225
  return jobBuilder.build();
222
226
  }
223
227
 
224
- private JobInfo createJobInfo(Context context, TaskInterface task, int jobId, List<PersistableBundle> data) {
225
- return createJobInfo(jobId, new ComponentName(context, TaskJobService.class), createExtrasForTask(task, data));
228
+ private JobInfo createJobInfo(Context context, TaskInterface task, int jobId, List<PersistableBundle> data, boolean persisted) {
229
+ return createJobInfo(jobId, new ComponentName(context, TaskJobService.class), createExtrasForTask(task, data), persisted);
226
230
  }
227
231
 
228
232
  private PersistableBundle createExtrasForTask(TaskInterface task, List<PersistableBundle> data) {
@@ -0,0 +1 @@
1
+ a5c46ec79cd89787383465c4daa7ab46ebb696d911ce22fe89fdb71cf4ddc91e
@@ -0,0 +1 @@
1
+ 0132b3672ef39489eab4bc5d651ca92c511d7aeb065ae1b5300f020f964141d13601d9adaafa3242614fdcb411f914107e36eb9b9e468fa236da5270ad925fa8
@@ -0,0 +1 @@
1
+ 7832adffe6649f512f1b1a375e7e7d1d6e148a30e0e3538b5604286d5cfb60af
@@ -0,0 +1 @@
1
+ 499ed2525fd82bbeeb105b3578ec45107039bf3223e55e5af894177e82879ff76d5719ce94278ad743cdb5045f0f08c731e7f7863817a3fdf2f842ee067eba4f
@@ -3,7 +3,7 @@
3
3
  "component": {
4
4
  "group": "host.exp.exponent",
5
5
  "module": "expo.modules.taskmanager",
6
- "version": "58.0.12",
6
+ "version": "58.0.13",
7
7
  "attributes": {
8
8
  "org.gradle.status": "release"
9
9
  }
@@ -33,13 +33,13 @@
33
33
  ],
34
34
  "files": [
35
35
  {
36
- "name": "expo.modules.taskmanager-58.0.12.aar",
37
- "url": "expo.modules.taskmanager-58.0.12.aar",
38
- "size": 68575,
39
- "sha512": "b5ca93c2ef190470e7e1e088b24445fa0c3baa6ebd1f581c3b6720c8f39bb43596044d7aa86901955a7459c587d732f314a697c777ca8e9dbf7ed50aa0e8147b",
40
- "sha256": "21fa0133cb6d7973f336853cc70089c9b8852b50c904d53899ee4dea983cfd0a",
41
- "sha1": "2ff2c545ed319f48df1428f9b826932fa95a2ce0",
42
- "md5": "06f0963ae33af2d8938d94758e46114d"
36
+ "name": "expo.modules.taskmanager-58.0.13.aar",
37
+ "url": "expo.modules.taskmanager-58.0.13.aar",
38
+ "size": 68859,
39
+ "sha512": "499ed2525fd82bbeeb105b3578ec45107039bf3223e55e5af894177e82879ff76d5719ce94278ad743cdb5045f0f08c731e7f7863817a3fdf2f842ee067eba4f",
40
+ "sha256": "7832adffe6649f512f1b1a375e7e7d1d6e148a30e0e3538b5604286d5cfb60af",
41
+ "sha1": "e69afaf5ef970b3d5a0e2cb93d72ad15bfe1842b",
42
+ "md5": "9e6b8c3a7a3a1f0d972cefea4a61c1b0"
43
43
  }
44
44
  ]
45
45
  },
@@ -90,13 +90,13 @@
90
90
  ],
91
91
  "files": [
92
92
  {
93
- "name": "expo.modules.taskmanager-58.0.12.aar",
94
- "url": "expo.modules.taskmanager-58.0.12.aar",
95
- "size": 68575,
96
- "sha512": "b5ca93c2ef190470e7e1e088b24445fa0c3baa6ebd1f581c3b6720c8f39bb43596044d7aa86901955a7459c587d732f314a697c777ca8e9dbf7ed50aa0e8147b",
97
- "sha256": "21fa0133cb6d7973f336853cc70089c9b8852b50c904d53899ee4dea983cfd0a",
98
- "sha1": "2ff2c545ed319f48df1428f9b826932fa95a2ce0",
99
- "md5": "06f0963ae33af2d8938d94758e46114d"
93
+ "name": "expo.modules.taskmanager-58.0.13.aar",
94
+ "url": "expo.modules.taskmanager-58.0.13.aar",
95
+ "size": 68859,
96
+ "sha512": "499ed2525fd82bbeeb105b3578ec45107039bf3223e55e5af894177e82879ff76d5719ce94278ad743cdb5045f0f08c731e7f7863817a3fdf2f842ee067eba4f",
97
+ "sha256": "7832adffe6649f512f1b1a375e7e7d1d6e148a30e0e3538b5604286d5cfb60af",
98
+ "sha1": "e69afaf5ef970b3d5a0e2cb93d72ad15bfe1842b",
99
+ "md5": "9e6b8c3a7a3a1f0d972cefea4a61c1b0"
100
100
  }
101
101
  ]
102
102
  },
@@ -110,13 +110,13 @@
110
110
  },
111
111
  "files": [
112
112
  {
113
- "name": "expo.modules.taskmanager-58.0.12-sources.jar",
114
- "url": "expo.modules.taskmanager-58.0.12-sources.jar",
115
- "size": 23663,
116
- "sha512": "d46fff9238afcda44671454a128c5c4b5ca0b88f64ce7cc413ef45a8d5bc7c416af71620c131efe48683f8d30a240a70c3883ea4a4987b0b7316252138c425c3",
117
- "sha256": "13fb158324d29533525ec15220aff3cef1507dcd3e8612a1b08c2433375dfd58",
118
- "sha1": "98bf36f1b6d6e528ddaf63bb13a4dd276c9de928",
119
- "md5": "c3bb843c0fefe2f478faf6b615e8900c"
113
+ "name": "expo.modules.taskmanager-58.0.13-sources.jar",
114
+ "url": "expo.modules.taskmanager-58.0.13-sources.jar",
115
+ "size": 23796,
116
+ "sha512": "0132b3672ef39489eab4bc5d651ca92c511d7aeb065ae1b5300f020f964141d13601d9adaafa3242614fdcb411f914107e36eb9b9e468fa236da5270ad925fa8",
117
+ "sha256": "a5c46ec79cd89787383465c4daa7ab46ebb696d911ce22fe89fdb71cf4ddc91e",
118
+ "sha1": "cff53ba4584cd742caf011c4a9b02ddf54644d0a",
119
+ "md5": "33bc62bbc5b1a2493b36252d0699dfad"
120
120
  }
121
121
  ]
122
122
  }
@@ -0,0 +1 @@
1
+ 3c0c67074eba6cc0d571674bf1688f05e84cd3d71c71f0727eeb704ec3dae719
@@ -0,0 +1 @@
1
+ e8c797bb000e5f67b0bcb710bdf4f49fac6613ee77ec67bbec586b08d4d926afd9bae5242de1c7ca34902faac2bd76a186a75ea6dd8bcb46d77b19f355bae9d6
@@ -9,7 +9,7 @@
9
9
  <modelVersion>4.0.0</modelVersion>
10
10
  <groupId>host.exp.exponent</groupId>
11
11
  <artifactId>expo.modules.taskmanager</artifactId>
12
- <version>58.0.12</version>
12
+ <version>58.0.13</version>
13
13
  <packaging>aar</packaging>
14
14
  <name>expo.modules.taskmanager</name>
15
15
  <url>https://github.com/expo/expo</url>
@@ -0,0 +1 @@
1
+ 1388191affec5a0bc12dd858542476c4f9654300fa02895946b98654178cb641
@@ -0,0 +1 @@
1
+ aa2e2ec123df8ce2c73618c8c4f0252a0176dd8e3cffde6844a56195d8c911cf59583f9613be322ff5c1ac58decffd1d64a46ff05803cd3e787df373ff3794ad
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "expo-task-manager",
3
- "version": "58.0.12",
3
+ "version": "58.0.13",
4
4
  "description": "Expo module that provides support for tasks that can run in the background.",
5
5
  "keywords": [
6
6
  "background",
@@ -27,10 +27,10 @@
27
27
  "unimodules-app-loader": "~58.0.2"
28
28
  },
29
29
  "devDependencies": {
30
- "@expo/internal-scripts": "58.0.3",
30
+ "@expo/internal-scripts": "58.0.5",
31
31
  "@types/jest": "^30.0.0",
32
32
  "@types/node": "^22.14.0",
33
- "expo": "58.0.11"
33
+ "expo": "58.0.22"
34
34
  },
35
35
  "peerDependencies": {
36
36
  "expo": "*",
@@ -1 +0,0 @@
1
- 13fb158324d29533525ec15220aff3cef1507dcd3e8612a1b08c2433375dfd58
@@ -1 +0,0 @@
1
- d46fff9238afcda44671454a128c5c4b5ca0b88f64ce7cc413ef45a8d5bc7c416af71620c131efe48683f8d30a240a70c3883ea4a4987b0b7316252138c425c3
@@ -1 +0,0 @@
1
- 21fa0133cb6d7973f336853cc70089c9b8852b50c904d53899ee4dea983cfd0a
@@ -1 +0,0 @@
1
- b5ca93c2ef190470e7e1e088b24445fa0c3baa6ebd1f581c3b6720c8f39bb43596044d7aa86901955a7459c587d732f314a697c777ca8e9dbf7ed50aa0e8147b
@@ -1 +0,0 @@
1
- 89c397cf7b8728ae4e6668973f4385f5b9e802fef1c4ec9e25c7bfa1581e24cb
@@ -1 +0,0 @@
1
- 3ca194e9f21b77395f38ee7dad4454f5bbbd9ee42e3e64a90cdb1af1e4b84626dd4daf6583196625c052594d71e3829828aa09511c11b13db609cb412c2ea74e
@@ -1 +0,0 @@
1
- 8f2facd243c4200df94a882a64af070c67a2934755667a51165993dbf804435d
@@ -1 +0,0 @@
1
- c96f87220c189b80cc300007a639152367fe075bdab52539ad7c5b0e16b361bdd47a6643e3d42e62833d1f15d529cdfcade096caa94cd45b5f298a73ccde74d6