@josuelmm/cordova-background-geolocation 4.2.2 → 4.5.1

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 (86) hide show
  1. package/.npmignore +11 -0
  2. package/CHANGELOG.md +213 -0
  3. package/HISTORY.md +73 -0
  4. package/README.md +45 -74
  5. package/android/CDVBackgroundGeolocation/src/main/java/com/marianhello/bgloc/cordova/ConfigMapper.java +24 -0
  6. package/android/CDVBackgroundGeolocation/src/main/java/com/tenforwardconsulting/bgloc/cordova/BackgroundGeolocationPlugin.java +61 -1
  7. package/android/common/src/main/AndroidManifest.xml +1 -1
  8. package/android/common/src/main/java/com/marianhello/bgloc/BootCompletedReceiver.java +6 -3
  9. package/android/common/src/main/java/com/marianhello/bgloc/Config.java +65 -1
  10. package/android/common/src/main/java/com/marianhello/bgloc/PostLocationTask.java +1 -1
  11. package/android/common/src/main/java/com/marianhello/bgloc/data/BackgroundLocation.java +94 -0
  12. package/android/common/src/main/java/com/marianhello/bgloc/data/ConfigJsonMapper.java +205 -0
  13. package/android/common/src/main/java/com/marianhello/bgloc/data/LocationTemplateFactory.java +6 -0
  14. package/android/common/src/main/java/com/marianhello/bgloc/data/sqlite/SQLiteConfigurationContract.java +5 -1
  15. package/android/common/src/main/java/com/marianhello/bgloc/data/sqlite/SQLiteConfigurationDAO.java +32 -1
  16. package/android/common/src/main/java/com/marianhello/bgloc/data/sqlite/SQLiteLocationContract.java +12 -2
  17. package/android/common/src/main/java/com/marianhello/bgloc/data/sqlite/SQLiteLocationDAO.java +33 -2
  18. package/android/common/src/main/java/com/marianhello/bgloc/data/sqlite/SQLiteOpenHelper.java +15 -1
  19. package/android/common/src/main/java/com/marianhello/bgloc/provider/DistanceFilterLocationProvider.java +23 -8
  20. package/android/common/src/main/java/com/marianhello/bgloc/service/LocationServiceImpl.java +246 -21
  21. package/android/common/src/main/java/com/marianhello/bgloc/service/LocationServiceProxy.java +5 -2
  22. package/android/common/src/main/java/com/marianhello/bgloc/sync/BatchManager.java +46 -13
  23. package/ios/CDVBackgroundGeolocation/CDVBackgroundGeolocation.m +23 -1
  24. package/ios/common/BackgroundGeolocation/MAURBackgroundGeolocationFacade.m +111 -5
  25. package/ios/common/BackgroundGeolocation/MAURBackgroundSync.m +20 -0
  26. package/ios/common/BackgroundGeolocation/MAURConfig.h +2 -0
  27. package/ios/common/BackgroundGeolocation/MAURConfig.m +16 -2
  28. package/ios/common/BackgroundGeolocation/MAURConfigurationContract.h +3 -0
  29. package/ios/common/BackgroundGeolocation/MAURConfigurationContract.m +3 -1
  30. package/ios/common/BackgroundGeolocation/MAURGeolocationOpenHelper.m +15 -1
  31. package/ios/common/BackgroundGeolocation/MAURLocation.h +12 -0
  32. package/ios/common/BackgroundGeolocation/MAURLocation.m +33 -4
  33. package/ios/common/BackgroundGeolocation/MAURLocationContract.h +4 -0
  34. package/ios/common/BackgroundGeolocation/MAURLocationContract.m +5 -1
  35. package/ios/common/BackgroundGeolocation/MAURPostLocationTask.h +9 -0
  36. package/ios/common/BackgroundGeolocation/MAURPostLocationTask.m +59 -1
  37. package/ios/common/BackgroundGeolocation/MAURSQLiteConfigurationDAO.m +54 -4
  38. package/ios/common/BackgroundGeolocation/MAURSQLiteLocationDAO.h +12 -0
  39. package/ios/common/BackgroundGeolocation/MAURSQLiteLocationDAO.m +125 -5
  40. package/package.json +36 -1
  41. package/plugin.xml +3 -2
  42. package/www/BackgroundGeolocation.d.ts +114 -3
  43. package/www/BackgroundGeolocation.js +11 -4
  44. package/CLAUDE.md +0 -56
  45. package/android/CDVBackgroundGeolocation/src/test/java/com/marianhello/ConfigMapperTest.java +0 -220
  46. package/android/common/src/androidTest/java/com/marianhello/bgloc/BackgroundGeolocationFacadeTest.java +0 -45
  47. package/android/common/src/androidTest/java/com/marianhello/bgloc/BatchManagerTest.java +0 -570
  48. package/android/common/src/androidTest/java/com/marianhello/bgloc/ConfigTest.java +0 -76
  49. package/android/common/src/androidTest/java/com/marianhello/bgloc/ContentProviderLocationDAOTest.java +0 -437
  50. package/android/common/src/androidTest/java/com/marianhello/bgloc/DBLogReaderTest.java +0 -95
  51. package/android/common/src/androidTest/java/com/marianhello/bgloc/LocationContentProviderTest.java +0 -159
  52. package/android/common/src/androidTest/java/com/marianhello/bgloc/LocationServiceProxyTest.java +0 -161
  53. package/android/common/src/androidTest/java/com/marianhello/bgloc/LocationServiceTest.java +0 -247
  54. package/android/common/src/androidTest/java/com/marianhello/bgloc/SQLiteConfigurationDAOTest.java +0 -200
  55. package/android/common/src/androidTest/java/com/marianhello/bgloc/SQLiteLocationDAOTest.java +0 -457
  56. package/android/common/src/androidTest/java/com/marianhello/bgloc/SQLiteLocationDAOThreadTest.java +0 -96
  57. package/android/common/src/androidTest/java/com/marianhello/bgloc/SQLiteOpenHelperTest.java +0 -225
  58. package/android/common/src/androidTest/java/com/marianhello/bgloc/TestPluginDelegate.java +0 -46
  59. package/android/common/src/androidTest/java/com/marianhello/bgloc/TestResourceResolver.java +0 -14
  60. package/android/common/src/androidTest/java/com/marianhello/bgloc/provider/MockLocationProvider.java +0 -50
  61. package/android/common/src/androidTest/java/com/marianhello/bgloc/provider/TestLocationProviderFactory.java +0 -17
  62. package/android/common/src/androidTest/java/com/marianhello/bgloc/sqlite/SQLiteOpenHelper10.java +0 -92
  63. package/android/common/src/androidTest/java/com/marianhello/bgloc/test/LocationProviderTestCase.java +0 -107
  64. package/android/common/src/androidTest/java/com/marianhello/bgloc/test/TestConstants.java +0 -5
  65. package/android/common/src/test/java/com/marianhello/backgroundgeolocation/ArrayListLocationTemplateTest.java +0 -82
  66. package/android/common/src/test/java/com/marianhello/backgroundgeolocation/BackgroundLocationTest.java +0 -128
  67. package/android/common/src/test/java/com/marianhello/backgroundgeolocation/ConfigTest.java +0 -191
  68. package/android/common/src/test/java/com/marianhello/backgroundgeolocation/DBLogReaderTest.java +0 -37
  69. package/android/common/src/test/java/com/marianhello/backgroundgeolocation/HashMapLocationTemplateTest.java +0 -216
  70. package/android/common/src/test/java/com/marianhello/backgroundgeolocation/HttpPostServiceTest.java +0 -223
  71. package/android/common/src/test/java/com/marianhello/backgroundgeolocation/LocationTemplateFactoryTest.java +0 -50
  72. package/android/common/src/test/java/com/marianhello/backgroundgeolocation/PostLocationTaskTest.java +0 -180
  73. package/android/common/src/test/java/com/marianhello/backgroundgeolocation/TestHelper.java +0 -16
  74. package/ios/common/BackgroundGeolocationTests/Info.plist +0 -24
  75. package/ios/common/BackgroundGeolocationTests/MAURBackgroundLocationTest.m +0 -185
  76. package/ios/common/BackgroundGeolocationTests/MAURConfigTest.m +0 -161
  77. package/ios/common/BackgroundGeolocationTests/MAURGeolocationOpenHelperTest.m +0 -102
  78. package/ios/common/BackgroundGeolocationTests/MAURLocationTest.m +0 -216
  79. package/ios/common/BackgroundGeolocationTests/MAURLocationUploaderTest.m +0 -55
  80. package/ios/common/BackgroundGeolocationTests/MAURLogReaderTest.m +0 -43
  81. package/ios/common/BackgroundGeolocationTests/MAURSQLiteConfigurationDAOTest.m +0 -102
  82. package/ios/common/BackgroundGeolocationTests/MAURSQLiteHelperTest.m +0 -41
  83. package/ios/common/BackgroundGeolocationTests/MAURSQLiteLocationDAOTests.m +0 -240
  84. package/ios/common/BackgroundGeolocationTests/MAURSQLiteLocationDAOThreadTest.m +0 -84
  85. package/ios/common/BackgroundGeolocationTests/MAURSQLiteOpenHelperTest.m +0 -144
  86. package/ios/common/scripts/xcode-refactor.js +0 -184
@@ -1,184 +0,0 @@
1
- const fs = require('fs');
2
- const path = require('path');
3
-
4
- const DIRECTORIES = ['BackgroundGeolocation', 'BackgroundGeolocationTests'];
5
- const PBX_PROJ = path.join('BackgroundGeolocation.xcodeproj', 'project.pbxproj');
6
- const PREFIX = 'MAUR';
7
- const FILENAME_INCLUDE_CRITERIA = [
8
- /\.h$/,
9
- /\.m$/,
10
- ];
11
- const FILENAME_EXCLUDE_CRITERIA = [
12
- RegExp(`^${PREFIX}`), // file is already prefixed
13
- /^(?=[A-Z]{2,})((?!SQL)).*/, //match leading 2 capital letters except SQL
14
- /^Reachability/,
15
- /^CocoaLumberjack/,
16
- /^Util/
17
- ];
18
- const IMPORT_REGEXP = /\s*#import\s?\"(\w+\.[a-z]?)\"/g;
19
-
20
- // https://stackoverflow.com/a/6969486/3896616
21
- function escapeRegExp(str) {
22
- return str.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&");
23
- }
24
-
25
- let files = [].concat.apply([], DIRECTORIES.map(dir => fs.readdirSync(dir)
26
- .filter(fileName => {
27
- if (!FILENAME_INCLUDE_CRITERIA.some(regexp => regexp.test(fileName))) {
28
- return false;
29
- }
30
- if (!FILENAME_EXCLUDE_CRITERIA.some(regexp => regexp.test(fileName))) {
31
- return true;
32
- }
33
- return false;
34
- })
35
- .map(fileName => [dir, fileName])
36
- ));
37
-
38
- const refactorTable = files.reduce((memo, [dir, fileName]) => {
39
- memo[fileName] = `${PREFIX}${fileName}`;
40
- return memo;
41
- }, {});
42
-
43
- const objInstances = Object.entries(refactorTable).reduce((memo, [fileName, newFileName]) => {
44
- const [instanceName] = fileName.split('.');
45
- const [newInstanceName] = newFileName.split('.');
46
- memo[instanceName] = newInstanceName;
47
- return memo;
48
- }, {});
49
-
50
- const ref = files.map(([dir, fileName]) => {
51
- let matches;
52
- const imports = [];
53
- const [file, extension = ''] = fileName.split('.');
54
- const fileComment = extension ? `${file}_${extension}` : file;
55
- const oldPath = path.join(dir, fileName);
56
- const newPath = path.join(dir, refactorTable[fileName]);
57
- let content = fs.readFileSync(oldPath, 'utf8');
58
-
59
- // log imports to be returned from function
60
- while ((matches = IMPORT_REGEXP.exec(content)) !== null) {
61
- const [match, p1] = matches;
62
- imports.push(p1);
63
- }
64
-
65
- // replace imports
66
- content = content.replace(IMPORT_REGEXP, (match, fileName) => {
67
- const beginIndex = match.indexOf(fileName);
68
- const begin = match.substring(0, beginIndex);
69
- const end = match.substring(beginIndex + fileName.length);
70
- const refactoredFileName = refactorTable[fileName] || fileName;
71
- return `${begin}${refactoredFileName}${end}`;
72
- });
73
-
74
- /*
75
- replace class name in comment
76
- eg:
77
- // BackgroundGeolocationFacade.h
78
- */
79
- content = content.replace(RegExp(`\/\/\\s*(${escapeRegExp(fileName)})`), (match, p1) => {
80
- const beginIndex = match.indexOf(p1);
81
- const begin = match.substring(0, beginIndex);
82
- const end = match.substring(beginIndex + p1.length);
83
- return `${begin}${PREFIX}${p1}${end}`;
84
- });
85
-
86
- // replace ifdefs and ifndef
87
- content = content.replace(RegExp(`#ifndef\\s*(${escapeRegExp(fileComment)})`), (match, p1) => {
88
- const beginIndex = match.indexOf(p1);
89
- const begin = match.substring(0, beginIndex);
90
- const end = match.substring(beginIndex + p1.length);
91
- return `${begin}${PREFIX}${p1}${end}`;
92
- });
93
-
94
- // replace define
95
- content = content.replace(RegExp(`#define\\s*(${escapeRegExp(fileComment)})`), (match, p1) => {
96
- const beginIndex = match.indexOf(p1);
97
- const begin = match.substring(0, beginIndex);
98
- const end = match.substring(beginIndex + p1.length);
99
- return `${begin}${PREFIX}${p1}${end}`;
100
- });
101
-
102
- // replace endif
103
- content = content.replace(RegExp(`#endif\\s*\\/\\*\\s*(${escapeRegExp(fileComment)})\\s*\\*\\/`), (match, p1) => {
104
- const beginIndex = match.indexOf(p1);
105
- const begin = match.substring(0, beginIndex);
106
- const end = match.substring(beginIndex + p1.length);
107
- return `${begin}${PREFIX}${p1}${end}`;
108
- });
109
-
110
- // replace interface
111
- content = content.replace(RegExp(`\\s*@interface\\s*(${escapeRegExp(file)})\\s*(:\\s*(\\w+)(<\\w+>)?)?`), (match, p1, p2, p3) => {
112
- if (p3) {
113
- const beginIndex = match.indexOf(p1);
114
- const begin = match.substring(0, beginIndex);
115
- const protocolIndex = match.indexOf(p3);
116
- const end = match.substring(protocolIndex + p3.length);
117
- return [
118
- `${begin}${PREFIX}${p1}`,
119
- `${match.substring(beginIndex + p1.length, protocolIndex)}`,
120
- `${objInstances[p3]||p3}`,
121
- `${end}`
122
- ].join('');
123
- } else {
124
- const beginIndex = match.indexOf(p1);
125
- const begin = match.substring(0, beginIndex);
126
- const end = match.substring(beginIndex + p1.length);
127
- return `${begin}${PREFIX}${p1}${end}`;
128
- }
129
- });
130
-
131
- // replace implementation
132
- // TODO: replace protocol too
133
- content = content.replace(RegExp(`\\s*@implementation\\s*(${escapeRegExp(file)})`), (match, p1) => {
134
- let beginIndex = match.indexOf(p1);
135
- let begin = match.substring(0, beginIndex);
136
- let end = match.substring(beginIndex + p1.length);
137
- return `${begin}${PREFIX}${p1}${end}`;
138
- });
139
-
140
- // replace vars
141
- Object.entries(objInstances).forEach(([oldName, newName]) => {
142
- content = content.replace(RegExp(`\\b(${escapeRegExp(oldName)})\\s*(<\\w+>)?\\s*\\*`, 'g'), (match, p1) => {
143
- const beginIndex = match.indexOf(p1);
144
- const begin = match.substring(0, beginIndex);
145
- const end = match.substring(beginIndex + p1.length);
146
- return `${begin}${newName}${end}`;
147
- });
148
- });
149
-
150
- // replace static method calls
151
- Object.entries(objInstances).forEach(([oldName, newName]) => {
152
- content = content.replace(RegExp(`\\[(${escapeRegExp(oldName)})\\s+.*\\]`, 'g'), (match, p1) => {
153
- const beginIndex = match.indexOf(p1);
154
- const begin = match.substring(0, beginIndex);
155
- const end = match.substring(beginIndex + p1.length);
156
- return `${begin}${newName}${end}`;
157
- });
158
- });
159
-
160
- fs.renameSync(oldPath, newPath);
161
- fs.writeFileSync(newPath, content);
162
-
163
- return {
164
- oldPath,
165
- newPath,
166
- imports,
167
- newImports: imports.map(imp => refactorTable[imp]||imp)
168
- }
169
- });
170
-
171
- let pbxProj = fs.readFileSync(PBX_PROJ, 'utf8');
172
- Object.keys(refactorTable).forEach(fileName => {
173
- pbxProj = pbxProj.replace(RegExp(`\\b(${escapeRegExp(fileName)})`, 'g'), (match, fileName) => {
174
- const beginIndex = match.indexOf(fileName);
175
- const begin = match.substring(0, beginIndex);
176
- const end = match.substring(beginIndex + fileName.length);
177
- const refactoredFileName = refactorTable[fileName];
178
- return `${begin}${refactoredFileName}${end}`;
179
- });
180
- });
181
-
182
- fs.writeFileSync(PBX_PROJ, pbxProj);
183
-
184
- console.log(ref);