io.appium.settings 5.12.24 → 5.14.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.
package/CHANGELOG.md CHANGED
@@ -1,3 +1,15 @@
1
+ ## [5.14.0](https://github.com/appium/io.appium.settings/compare/v5.13.0...v5.14.0) (2025-02-24)
2
+
3
+ ### Features
4
+
5
+ * add bearing and accuracy params into setGeoLocation ([#213](https://github.com/appium/io.appium.settings/issues/213)) ([a684a98](https://github.com/appium/io.appium.settings/commit/a684a98b3d919d7af4e9f5d2aeabdd09561ba0e8))
6
+
7
+ ## [5.13.0](https://github.com/appium/io.appium.settings/compare/v5.12.24...v5.13.0) (2025-02-23)
8
+
9
+ ### Features
10
+
11
+ * Add accuracy to the location builder ([#212](https://github.com/appium/io.appium.settings/issues/212)) ([360fd3b](https://github.com/appium/io.appium.settings/commit/360fd3b315a4aee16af8cc872cdc23e6b67d55f4))
12
+
1
13
  ## [5.12.24](https://github.com/appium/io.appium.settings/compare/v5.12.23...v5.12.24) (2025-02-21)
2
14
 
3
15
  ### Bug Fixes
package/README.md CHANGED
@@ -203,7 +203,7 @@ Or `adb shell appops set io.appium.settings android:mock_location allow` let you
203
203
  Start sending scheduled updates (every 2s) for mock location with the specified values by executing:
204
204
  (API versions 26+):
205
205
  ```shell
206
- $ adb shell am start-foreground-service --user 0 -n io.appium.settings/.LocationService --es longitude {longitude-value} --es latitude {latitude-value} [--es altitude {altitude-value}]
206
+ $ adb shell am start-foreground-service --user 0 -n io.appium.settings/.LocationService --es longitude {longitude-value} --es latitude {latitude-value} [--es altitude {altitude-value}] [--es speed {speed-value}] [--es bearing {bearing-value}] [--es accuracy {accuracy-value}]
207
207
  ```
208
208
  (Older versions):
209
209
  ```shell
Binary file
@@ -2,10 +2,16 @@
2
2
  * @typedef {Object} Location
3
3
  * @property {number|string} longitude - Valid longitude value.
4
4
  * @property {number|string} latitude - Valid latitude value.
5
- * @property {?number|string} [altitude] - Valid altitude value.
6
- * @property {?number|string} [satellites=12] - Number of satellites being tracked (1-12).
5
+ * @property {number|string|null} [altitude] - Valid altitude value.
6
+ * @property {number|string|null} [satellites=12] - Number of satellites being tracked (1-12).
7
7
  * This value is ignored on real devices.
8
- * @property {?number|string} [speed] - Valid speed value.
8
+ * @property {number|string|null} [speed] - Valid speed value.
9
+ * https://developer.android.com/reference/android/location/Location#setSpeed(float)
10
+ * @property {number|string|null} [bearing] - Valid bearing value.
11
+ * https://developer.android.com/reference/android/location/Location#setBearing(float)
12
+ * @property {number|string|null} [accuracy] - Valid accuracy value.
13
+ * https://developer.android.com/reference/android/location/Location#setAccuracy(float),
14
+ * https://developer.android.com/reference/android/location/Criteria
9
15
  * Should be greater than 0.0 meters/second for real devices or 0.0 knots
10
16
  * for emulators.
11
17
  */
@@ -62,9 +68,21 @@ export type Location = {
62
68
  satellites?: string | number | null | undefined;
63
69
  /**
64
70
  * - Valid speed value.
71
+ * https://developer.android.com/reference/android/location/Location#setSpeed(float)
72
+ */
73
+ speed?: string | number | null | undefined;
74
+ /**
75
+ * - Valid bearing value.
76
+ * https://developer.android.com/reference/android/location/Location#setBearing(float)
77
+ */
78
+ bearing?: string | number | null | undefined;
79
+ /**
80
+ * - Valid accuracy value.
81
+ * https://developer.android.com/reference/android/location/Location#setAccuracy(float),
82
+ * https://developer.android.com/reference/android/location/Criteria
65
83
  * Should be greater than 0.0 meters/second for real devices or 0.0 knots
66
84
  * for emulators.
67
85
  */
68
- speed?: string | number | null | undefined;
86
+ accuracy?: string | number | null | undefined;
69
87
  };
70
88
  //# sourceMappingURL=geolocation.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"geolocation.d.ts","sourceRoot":"","sources":["../../../lib/commands/geolocation.js"],"names":[],"mappings":"AAoBA;;;;;;;;;;GAUG;AAEH;;;;;;;;GAQG;AACH,gFALW,QAAQ,eAER,OAAO,iBAkEjB;AAED;;;;;;GAMG;AACH,uEAHa,OAAO,CAAC,QAAQ,CAAC,CAoB7B;AAED;;;;;;;;;;;;;GAaG;AACH,2FANW,MAAM,iBAwDhB;;;;;eA9Ka,MAAM,GAAC,MAAM;;;;cACb,MAAM,GAAC,MAAM"}
1
+ {"version":3,"file":"geolocation.d.ts","sourceRoot":"","sources":["../../../lib/commands/geolocation.js"],"names":[],"mappings":"AAoBA;;;;;;;;;;;;;;;;GAgBG;AAEH;;;;;;;;GAQG;AACH,gFALW,QAAQ,eAER,OAAO,iBAmFjB;AAED;;;;;;GAMG;AACH,uEAHa,OAAO,CAAC,QAAQ,CAAC,CAoB7B;AAED;;;;;;;;;;;;;GAaG;AACH,2FANW,MAAM,iBAwDhB;;;;;eArMa,MAAM,GAAC,MAAM;;;;cACb,MAAM,GAAC,MAAM"}
@@ -23,10 +23,16 @@ const GPS_COORDINATES_PATTERN = /data="(-?[\d.]+)\s+(-?[\d.]+)\s+(-?[\d.]+)"/;
23
23
  * @typedef {Object} Location
24
24
  * @property {number|string} longitude - Valid longitude value.
25
25
  * @property {number|string} latitude - Valid latitude value.
26
- * @property {?number|string} [altitude] - Valid altitude value.
27
- * @property {?number|string} [satellites=12] - Number of satellites being tracked (1-12).
26
+ * @property {number|string|null} [altitude] - Valid altitude value.
27
+ * @property {number|string|null} [satellites=12] - Number of satellites being tracked (1-12).
28
28
  * This value is ignored on real devices.
29
- * @property {?number|string} [speed] - Valid speed value.
29
+ * @property {number|string|null} [speed] - Valid speed value.
30
+ * https://developer.android.com/reference/android/location/Location#setSpeed(float)
31
+ * @property {number|string|null} [bearing] - Valid bearing value.
32
+ * https://developer.android.com/reference/android/location/Location#setBearing(float)
33
+ * @property {number|string|null} [accuracy] - Valid accuracy value.
34
+ * https://developer.android.com/reference/android/location/Location#setAccuracy(float),
35
+ * https://developer.android.com/reference/android/location/Criteria
30
36
  * Should be greater than 0.0 meters/second for real devices or 0.0 knots
31
37
  * for emulators.
32
38
  */
@@ -61,6 +67,8 @@ async function setGeoLocation(location, isEmulator = false) {
61
67
  const latitude = /** @type {string} */ (formatLocationValue('latitude'));
62
68
  const altitude = formatLocationValue('altitude', false);
63
69
  const speed = formatLocationValue('speed', false);
70
+ const bearing = formatLocationValue('bearing', false);
71
+ const accuracy = formatLocationValue('accuracy', false);
64
72
  if (isEmulator) {
65
73
  /** @type {string[]} */
66
74
  const args = [longitude, latitude];
@@ -98,8 +106,23 @@ async function setGeoLocation(location, isEmulator = false) {
98
106
  args.push('-e', 'altitude', altitude);
99
107
  }
100
108
  if (!lodash_1.default.isNil(speed)) {
109
+ if (lodash_1.default.toNumber(speed) < 0) {
110
+ throw new Error(`${speed} is expected to be 0.0 or greater.`);
111
+ }
101
112
  args.push('-e', 'speed', speed);
102
113
  }
114
+ if (!lodash_1.default.isNil(bearing)) {
115
+ if (!lodash_1.default.inRange(lodash_1.default.toNumber(bearing), 0, 360)) {
116
+ throw new Error(`${accuracy} is expected to be in [0, 360) range.`);
117
+ }
118
+ args.push('-e', 'bearing', bearing);
119
+ }
120
+ if (!lodash_1.default.isNil(accuracy)) {
121
+ if (lodash_1.default.toNumber(accuracy) < 0) {
122
+ throw new Error(`${accuracy} is expected to be 0.0 or greater.`);
123
+ }
124
+ args.push('-e', 'accuracy', accuracy);
125
+ }
103
126
  args.push(constants_js_1.LOCATION_SERVICE);
104
127
  await this.adb.shell(args);
105
128
  }
@@ -1 +1 @@
1
- {"version":3,"file":"geolocation.js","sourceRoot":"","sources":["../../../lib/commands/geolocation.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"geolocation.js","sourceRoot":"","sources":["../../../lib/commands/geolocation.js"],"names":[],"mappings":"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"}
@@ -22,10 +22,16 @@ const GPS_COORDINATES_PATTERN = /data="(-?[\d.]+)\s+(-?[\d.]+)\s+(-?[\d.]+)"/;
22
22
  * @typedef {Object} Location
23
23
  * @property {number|string} longitude - Valid longitude value.
24
24
  * @property {number|string} latitude - Valid latitude value.
25
- * @property {?number|string} [altitude] - Valid altitude value.
26
- * @property {?number|string} [satellites=12] - Number of satellites being tracked (1-12).
25
+ * @property {number|string|null} [altitude] - Valid altitude value.
26
+ * @property {number|string|null} [satellites=12] - Number of satellites being tracked (1-12).
27
27
  * This value is ignored on real devices.
28
- * @property {?number|string} [speed] - Valid speed value.
28
+ * @property {number|string|null} [speed] - Valid speed value.
29
+ * https://developer.android.com/reference/android/location/Location#setSpeed(float)
30
+ * @property {number|string|null} [bearing] - Valid bearing value.
31
+ * https://developer.android.com/reference/android/location/Location#setBearing(float)
32
+ * @property {number|string|null} [accuracy] - Valid accuracy value.
33
+ * https://developer.android.com/reference/android/location/Location#setAccuracy(float),
34
+ * https://developer.android.com/reference/android/location/Criteria
29
35
  * Should be greater than 0.0 meters/second for real devices or 0.0 knots
30
36
  * for emulators.
31
37
  */
@@ -61,6 +67,8 @@ export async function setGeoLocation (location, isEmulator = false) {
61
67
  const latitude = /** @type {string} */ (formatLocationValue('latitude'));
62
68
  const altitude = formatLocationValue('altitude', false);
63
69
  const speed = formatLocationValue('speed', false);
70
+ const bearing = formatLocationValue('bearing', false);
71
+ const accuracy = formatLocationValue('accuracy', false);
64
72
  if (isEmulator) {
65
73
  /** @type {string[]} */
66
74
  const args = [longitude, latitude];
@@ -97,8 +105,23 @@ export async function setGeoLocation (location, isEmulator = false) {
97
105
  args.push('-e', 'altitude', altitude);
98
106
  }
99
107
  if (!_.isNil(speed)) {
108
+ if (_.toNumber(speed) < 0) {
109
+ throw new Error(`${speed} is expected to be 0.0 or greater.`);
110
+ }
100
111
  args.push('-e', 'speed', speed);
101
112
  }
113
+ if (!_.isNil(bearing)) {
114
+ if (!_.inRange(_.toNumber(bearing), 0, 360)) {
115
+ throw new Error(`${accuracy} is expected to be in [0, 360) range.`);
116
+ }
117
+ args.push('-e', 'bearing', bearing);
118
+ }
119
+ if (!_.isNil(accuracy)) {
120
+ if (_.toNumber(accuracy) < 0) {
121
+ throw new Error(`${accuracy} is expected to be 0.0 or greater.`);
122
+ }
123
+ args.push('-e', 'accuracy', accuracy);
124
+ }
102
125
  args.push(LOCATION_SERVICE);
103
126
  await this.adb.shell(args);
104
127
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "io.appium.settings",
3
- "version": "5.12.24",
3
+ "version": "5.14.0",
4
4
  "description": "App for dealing with Android settings",
5
5
  "main": "./build/lib/index.js",
6
6
  "types": "./build/lib/index.d.ts",