in src/extension-runners/firefox-android.js [282:329]
async apkPackagesDiscoveryAndSelect() {
const {
adbUtils,
selectedAdbDevice,
params: { firefoxApk },
} = this;
// Discovery and select a Firefox for Android version.
const packages = await adbUtils.discoverInstalledFirefoxAPKs(
selectedAdbDevice,
firefoxApk,
);
if (packages.length === 0) {
throw new UsageError(
'No Firefox packages were found on the selected Android device',
);
}
const pkgsListMsg = (pkgs) => {
return pkgs.map((pkg) => ` - ${pkg}`).join('\n');
};
if (!firefoxApk) {
log.info(`\nPackages found:\n${pkgsListMsg(packages)}`);
if (packages.length > 1) {
throw new UsageError('Select one of the packages using --firefox-apk');
}
// If only one APK has been found, select it even if it has not been
// specified explicitly on the comment line.
this.selectedFirefoxApk = packages[0];
log.info(`Selected Firefox for Android APK: ${this.selectedFirefoxApk}`);
return;
}
const filteredPackages = packages.filter((line) => line === firefoxApk);
if (filteredPackages.length === 0) {
const pkgsList = pkgsListMsg(filteredPackages);
throw new UsageError(
`Package ${firefoxApk} was not found in list: ${pkgsList}`,
);
}
this.selectedFirefoxApk = filteredPackages[0];
log.debug(`Selected Firefox for Android APK: ${this.selectedFirefoxApk}`);
}