Skip to content

Commit 80044b5

Browse files
Add SysInfo implementation
Add SysInfo class that extends the base SysInfoBase class by calling `getSysInfo` method with correct paths to android and adb.
1 parent 057fc0c commit 80044b5

File tree

6 files changed

+30
-8
lines changed

6 files changed

+30
-8
lines changed

lib/android-tools-info.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -180,7 +180,7 @@ export class AndroidToolsInfo implements IAndroidToolsInfo {
180180
public getPathToAdbFromAndroidHome(): IFuture<string> {
181181
return (() => {
182182
if(this.androidHome) {
183-
let pathToAdb = path.join(this.androidHome, "platform-tools", "adb") + (this.$hostInfo.isWindows ? ".exe" : "");
183+
let pathToAdb = path.join(this.androidHome, "platform-tools", "adb");
184184
try {
185185
this.$childProcess.execFile(pathToAdb, ["help"]).wait();
186186
return pathToAdb;

lib/bootstrap.ts

+1
Original file line numberDiff line numberDiff line change
@@ -84,3 +84,4 @@ $injector.require("androidToolsInfo", "./android-tools-info");
8484

8585
$injector.require("iosUsbLiveSyncServiceLocator", "./services/usb-livesync-service");
8686
$injector.require("androidUsbLiveSyncServiceLocator", "./services/usb-livesync-service");
87+
$injector.require("sysInfo", "./sys-info");

lib/services/android-project-service.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ export class AndroidProjectService extends projectServiceBaseLib.PlatformProject
8181

8282
// this call will fail in case `android` is not set correctly.
8383
this.$androidToolsInfo.getPathToAndroidExecutable().wait();
84-
this.$androidToolsInfo.validateJavacVersion(this.$sysInfo.getSysInfo().javacVersion, {showWarningsAsErrors: true}).wait();
84+
this.$androidToolsInfo.validateJavacVersion(this.$sysInfo.getSysInfo().wait().javacVersion, {showWarningsAsErrors: true}).wait();
8585
}).future<void>()();
8686
}
8787

lib/services/doctor-service.ts

+1-5
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,7 @@ class DoctorService implements IDoctorService {
1313

1414
public printWarnings(): boolean {
1515
let result = false;
16-
let androidToolsInfo = {
17-
pathToAdb: this.$androidToolsInfo.getPathToAdbFromAndroidHome().wait(),
18-
pathToAndroid: this.$androidToolsInfo.getPathToAndroidExecutable().wait()
19-
};
20-
let sysInfo = this.$sysInfo.getSysInfo(androidToolsInfo);
16+
let sysInfo = this.$sysInfo.getSysInfo().wait();
2117

2218
if (!sysInfo.adbVer) {
2319
this.$logger.warn("WARNING: adb from the Android SDK is not installed or is not configured properly.");

lib/sys-info.ts

+25
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
///<reference path=".d.ts"/>
2+
"use strict";
3+
4+
import {SysInfoBase} from "./common/sys-info-base";
5+
6+
export class SysInfo extends SysInfoBase {
7+
constructor(protected $childProcess: IChildProcess,
8+
protected $hostInfo: IHostInfo,
9+
protected $iTunesValidator: Mobile.IiTunesValidator,
10+
protected $logger: ILogger,
11+
private $androidToolsInfo: IAndroidToolsInfo) {
12+
super($childProcess, $hostInfo, $iTunesValidator, $logger);
13+
}
14+
15+
public getSysInfo(androidToolsInfo?: {pathToAdb: string, pathToAndroid: string}): IFuture<ISysInfoData> {
16+
return ((): ISysInfoData => {
17+
let defaultAndroidToolsInfo = {
18+
pathToAdb: this.$androidToolsInfo.getPathToAdbFromAndroidHome().wait(),
19+
pathToAndroid: this.$androidToolsInfo.getPathToAndroidExecutable().wait()
20+
};
21+
return super.getSysInfo(androidToolsInfo || defaultAndroidToolsInfo).wait();
22+
}).future<ISysInfoData>()();
23+
}
24+
}
25+
$injector.register("sysInfo", SysInfo);

0 commit comments

Comments
 (0)