io.appium.settings 5.14.5 → 5.14.7
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 +12 -0
- package/apks/settings_apk-debug.apk +0 -0
- package/build/lib/client.d.ts +7 -0
- package/build/lib/client.d.ts.map +1 -1
- package/build/lib/client.js +11 -3
- package/build/lib/client.js.map +1 -1
- package/build/lib/commands/locale.d.ts.map +1 -1
- package/build/lib/commands/locale.js +14 -1
- package/build/lib/commands/locale.js.map +1 -1
- package/lib/client.js +15 -6
- package/lib/commands/locale.js +14 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,15 @@
|
|
|
1
|
+
## [5.14.7](https://github.com/appium/io.appium.settings/compare/v5.14.6...v5.14.7) (2025-04-22)
|
|
2
|
+
|
|
3
|
+
### Miscellaneous Chores
|
|
4
|
+
|
|
5
|
+
* Retry setting locale once to make sure hidden API policies were picked up ([#223](https://github.com/appium/io.appium.settings/issues/223)) ([2dd61fa](https://github.com/appium/io.appium.settings/commit/2dd61fa6ff080a143487a8f32569dc2d687d6327))
|
|
6
|
+
|
|
7
|
+
## [5.14.6](https://github.com/appium/io.appium.settings/compare/v5.14.5...v5.14.6) (2025-04-22)
|
|
8
|
+
|
|
9
|
+
### Miscellaneous Chores
|
|
10
|
+
|
|
11
|
+
* **deps:** bump com.android.tools.build:gradle from 8.9.1 to 8.9.2 ([#222](https://github.com/appium/io.appium.settings/issues/222)) ([e882561](https://github.com/appium/io.appium.settings/commit/e882561ff5b0ceaf8139dab87fc324465a86715c))
|
|
12
|
+
|
|
1
13
|
## [5.14.5](https://github.com/appium/io.appium.settings/compare/v5.14.4...v5.14.5) (2025-03-26)
|
|
2
14
|
|
|
3
15
|
### Miscellaneous Chores
|
|
Binary file
|
package/build/lib/client.d.ts
CHANGED
|
@@ -17,6 +17,8 @@ export class SettingsApp {
|
|
|
17
17
|
* to wait until the app has started
|
|
18
18
|
* @property {boolean} [shouldRestoreCurrentApp=false] Whether to restore
|
|
19
19
|
* the activity which was the current one before Settings startup
|
|
20
|
+
* @property {boolean} [forceRestart=false] Whether to forcefully restart
|
|
21
|
+
* the Settings app if it is already running
|
|
20
22
|
*/
|
|
21
23
|
/**
|
|
22
24
|
* Ensures that Appium Settings helper application is running
|
|
@@ -37,6 +39,11 @@ export class SettingsApp {
|
|
|
37
39
|
* the activity which was the current one before Settings startup
|
|
38
40
|
*/
|
|
39
41
|
shouldRestoreCurrentApp?: boolean | undefined;
|
|
42
|
+
/**
|
|
43
|
+
* Whether to forcefully restart
|
|
44
|
+
* the Settings app if it is already running
|
|
45
|
+
*/
|
|
46
|
+
forceRestart?: boolean | undefined;
|
|
40
47
|
}): Promise<SettingsApp>;
|
|
41
48
|
/**
|
|
42
49
|
* If the io.appium.settings package has running foreground service.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../lib/client.js"],"names":[],"mappings":"AAmBA;;;GAGG;AAGH;IAOE;;OAEG;IACH,kBAFW,eAAe,EAKzB;IAZD,uCAAuC;IACvC,KADW,OAAO,YAAY,EAAE,GAAG,CAC/B;IAEJ,8CAA8C;IAC9C,KADW,OAAO,gBAAgB,EAAE,MAAM,CACtC;IAUJ
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../lib/client.js"],"names":[],"mappings":"AAmBA;;;GAGG;AAGH;IAOE;;OAEG;IACH,kBAFW,eAAe,EAKzB;IAZD,uCAAuC;IACvC,KADW,OAAO,YAAY,EAAE,GAAG,CAC/B;IAEJ,8CAA8C;IAC9C,KADW,OAAO,gBAAgB,EAAE,MAAM,CACtC;IAUJ;;;;;;;;OAQG;IAEH;;;;;;;OAOG;IACH;;;;;;;;;;;;;;;;QAFa,OAAO,CAAC,WAAW,CAAC,CAgDhC;IAED;;;;;;;OAOG;IACH,yBAFa,OAAO,CAAC,OAAO,CAAC,CAY5B;IAED;;;;;;;OAOG;IACH,qBALW,MAAM,EAAE,UACR,MAAM,sBACN,OAAO,GACL,OAAO,CAAC,MAAM,CAAC,CAmB3B;IAED;;;;;;;;;;OAUG;IACH,uBAPW,MAAM,cACN,MAAM,OAgChB;IAED,4CAAsC;IAEtC,4CAAsC;IACtC,4DAAsD;IAEtD,kCAA4B;IAE5B,sCAAgC;IAChC,sCAAgC;IAChC,wDAAkD;IAElD,kDAA4C;IAC5C,wCAAkC;IAElC,4BAAsB;IAEtB,kCAA4B;IAC5B,kCAA4B;IAE5B,0CAAoC;IACpC,sEAAgE;IAChE,8BAAwB;IAExB,gDAA0C;IAC1C,gCAA0B;IAE1B,gEAA0D;IAC1D,wFAAkF;CACnF;;SAvMa,OAAO,YAAY,EAAE,GAAG;;kCAjBJ,sBAAsB;kCACK,sBAAsB;0CAAtB,sBAAsB;6BACtD,sBAAsB;+BACqB,wBAAwB;+BAAxB,wBAAwB;wCAAxB,wBAAwB;qCAC1C,mBAAmB;gCAAnB,mBAAmB;0BAC/C,kBAAkB;6BACD,oBAAoB;6BAApB,oBAAoB;iCACE,0BAA0B;+CAA1B,0BAA0B;2BAChE,gBAAgB;oCACM,mBAAmB;4BAAnB,mBAAmB;4CAI7D,6BAA6B;wDAA7B,6BAA6B"}
|
package/build/lib/client.js
CHANGED
|
@@ -56,6 +56,8 @@ class SettingsApp {
|
|
|
56
56
|
* to wait until the app has started
|
|
57
57
|
* @property {boolean} [shouldRestoreCurrentApp=false] Whether to restore
|
|
58
58
|
* the activity which was the current one before Settings startup
|
|
59
|
+
* @property {boolean} [forceRestart=false] Whether to forcefully restart
|
|
60
|
+
* the Settings app if it is already running
|
|
59
61
|
*/
|
|
60
62
|
/**
|
|
61
63
|
* Ensures that Appium Settings helper application is running
|
|
@@ -66,11 +68,14 @@ class SettingsApp {
|
|
|
66
68
|
* @returns {Promise<SettingsApp>} self instance for chaining
|
|
67
69
|
*/
|
|
68
70
|
async requireRunning(opts = {}) {
|
|
69
|
-
|
|
71
|
+
const { timeout = 5000, shouldRestoreCurrentApp = false, forceRestart = false, } = opts;
|
|
72
|
+
if (forceRestart) {
|
|
73
|
+
await this.adb.forceStop(constants_js_1.SETTINGS_HELPER_ID);
|
|
74
|
+
}
|
|
75
|
+
else if (await this.isRunningInForeground()) {
|
|
70
76
|
return this;
|
|
71
77
|
}
|
|
72
78
|
this.log.debug(logger_1.LOG_PREFIX, 'Starting Appium Settings app');
|
|
73
|
-
const { timeout = 5000, shouldRestoreCurrentApp = false, } = opts;
|
|
74
79
|
let appPackage;
|
|
75
80
|
if (shouldRestoreCurrentApp) {
|
|
76
81
|
try {
|
|
@@ -143,7 +148,10 @@ class SettingsApp {
|
|
|
143
148
|
]);
|
|
144
149
|
if (!output.includes('result=-1')) {
|
|
145
150
|
this.log.debug(logger_1.LOG_PREFIX, output);
|
|
146
|
-
|
|
151
|
+
const error = new Error(`Cannot execute the '${action}' action. Check the logcat output for more details.`);
|
|
152
|
+
// @ts-ignore This is fine
|
|
153
|
+
error.output = output;
|
|
154
|
+
throw error;
|
|
147
155
|
}
|
|
148
156
|
return output;
|
|
149
157
|
}
|
package/build/lib/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../lib/client.js"],"names":[],"mappings":";;;;;;AAAA,qCAA2C;AAC3C,oDAAuB;AACvB,uCAA4C;AAC5C,iDAAmF;AACnF,oDAAyD;AACzD,oDAAoF;AACpF,oDAAoD;AACpD,wDAAiG;AACjG,8CAA0E;AAC1E,4CAA6C;AAC7C,gDAAgE;AAChE,4DAA4F;AAC5F,wCAA4C;AAC5C,8CAAqE;AACrE,kEAGqC;AAErC;;;GAGG;AAGH,MAAa,WAAW;IAOtB;;OAEG;IACH,YAAa,IAAI;
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../lib/client.js"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"locale.d.ts","sourceRoot":"","sources":["../../../lib/commands/locale.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"locale.d.ts","sourceRoot":"","sources":["../../../lib/commands/locale.js"],"names":[],"mappings":"AA+CA;;;;;;;;;;GAUG;AACH,iFAPW,MAAM,WAEN,MAAM,WAEN,MAAM,OAAC,iBAmCjB;AAED;;;;;GAKG;AAEH;;;;;GAKG;AACH,6EAFa,OAAO,CAAC,eAAe,EAAE,CAAC,CAetC;;cAxBa,MAAM;aACN,MAAM"}
|
|
@@ -30,7 +30,20 @@ async function setDeviceLocaleInternal(language, country, script = null) {
|
|
|
30
30
|
if (script) {
|
|
31
31
|
params.push('--es', 'script', script);
|
|
32
32
|
}
|
|
33
|
-
|
|
33
|
+
for (let retry = 0; retry < 2; retry++) {
|
|
34
|
+
try {
|
|
35
|
+
await this.checkBroadcast(params, 'set device locale');
|
|
36
|
+
}
|
|
37
|
+
catch (err) {
|
|
38
|
+
if (retry === 0 && lodash_1.default.has(err, 'output') && err.output.includes('NoSuchMethodException')) {
|
|
39
|
+
// The above exception may be thrown if hidden API policies have not been picked up by
|
|
40
|
+
// Settings app yet. Restart might fix this issue.
|
|
41
|
+
await this.requireRunning({ shouldRestoreCurrentApp: true, forceRestart: true });
|
|
42
|
+
continue;
|
|
43
|
+
}
|
|
44
|
+
throw err;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
34
47
|
}
|
|
35
48
|
/**
|
|
36
49
|
* Set the locale name of the device under test.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"locale.js","sourceRoot":"","sources":["../../../lib/commands/locale.js"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"locale.js","sourceRoot":"","sources":["../../../lib/commands/locale.js"],"names":[],"mappings":"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"}
|
package/lib/client.js
CHANGED
|
@@ -44,6 +44,8 @@ export class SettingsApp {
|
|
|
44
44
|
* to wait until the app has started
|
|
45
45
|
* @property {boolean} [shouldRestoreCurrentApp=false] Whether to restore
|
|
46
46
|
* the activity which was the current one before Settings startup
|
|
47
|
+
* @property {boolean} [forceRestart=false] Whether to forcefully restart
|
|
48
|
+
* the Settings app if it is already running
|
|
47
49
|
*/
|
|
48
50
|
|
|
49
51
|
/**
|
|
@@ -55,15 +57,19 @@ export class SettingsApp {
|
|
|
55
57
|
* @returns {Promise<SettingsApp>} self instance for chaining
|
|
56
58
|
*/
|
|
57
59
|
async requireRunning (opts = {}) {
|
|
58
|
-
if (await this.isRunningInForeground()) {
|
|
59
|
-
return this;
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
this.log.debug(LOG_PREFIX, 'Starting Appium Settings app');
|
|
63
60
|
const {
|
|
64
61
|
timeout = 5000,
|
|
65
62
|
shouldRestoreCurrentApp = false,
|
|
63
|
+
forceRestart = false,
|
|
66
64
|
} = opts;
|
|
65
|
+
|
|
66
|
+
if (forceRestart) {
|
|
67
|
+
await this.adb.forceStop(SETTINGS_HELPER_ID);
|
|
68
|
+
} else if (await this.isRunningInForeground()) {
|
|
69
|
+
return this;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
this.log.debug(LOG_PREFIX, 'Starting Appium Settings app');
|
|
67
73
|
let appPackage;
|
|
68
74
|
if (shouldRestoreCurrentApp) {
|
|
69
75
|
try {
|
|
@@ -137,7 +143,10 @@ export class SettingsApp {
|
|
|
137
143
|
]);
|
|
138
144
|
if (!output.includes('result=-1')) {
|
|
139
145
|
this.log.debug(LOG_PREFIX, output);
|
|
140
|
-
|
|
146
|
+
const error = new Error(`Cannot execute the '${action}' action. Check the logcat output for more details.`);
|
|
147
|
+
// @ts-ignore This is fine
|
|
148
|
+
error.output = output;
|
|
149
|
+
throw error;
|
|
141
150
|
}
|
|
142
151
|
return output;
|
|
143
152
|
}
|
package/lib/commands/locale.js
CHANGED
|
@@ -29,7 +29,20 @@ async function setDeviceLocaleInternal (language, country, script = null) {
|
|
|
29
29
|
if (script) {
|
|
30
30
|
params.push('--es', 'script', script);
|
|
31
31
|
}
|
|
32
|
-
|
|
32
|
+
|
|
33
|
+
for (let retry = 0; retry < 2; retry++) {
|
|
34
|
+
try {
|
|
35
|
+
await this.checkBroadcast(params, 'set device locale');
|
|
36
|
+
} catch (err) {
|
|
37
|
+
if (retry === 0 && _.has(err, 'output') && err.output.includes('NoSuchMethodException')) {
|
|
38
|
+
// The above exception may be thrown if hidden API policies have not been picked up by
|
|
39
|
+
// Settings app yet. Restart might fix this issue.
|
|
40
|
+
await this.requireRunning({shouldRestoreCurrentApp: true, forceRestart: true});
|
|
41
|
+
continue;
|
|
42
|
+
}
|
|
43
|
+
throw err;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
33
46
|
}
|
|
34
47
|
|
|
35
48
|
/**
|