Skip to content

Commit b150659

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. Remove check for java, as javac check is enough for us.
1 parent 43ef688 commit b150659

File tree

6 files changed

+30
-18
lines changed

6 files changed

+30
-18
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-15
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.");
@@ -67,16 +63,6 @@ class DoctorService implements IDoctorService {
6763
this.$logger.out("To be able to work with iOS devices and projects, you need Mac OS X Mavericks or later." + EOL);
6864
}
6965

70-
if(!sysInfo.javaVer) {
71-
this.$logger.warn("WARNING: The Java Development Kit (JDK) is not installed or is not configured properly.");
72-
this.$logger.out("You will not be able to work with the Android SDK and you might not be able" + EOL
73-
+ "to perform some Android-related operations. To ensure that you can develop and" + EOL
74-
+ "test your apps for Android, verify that you have installed the JDK as" + EOL
75-
+ "described in http://docs.oracle.com/javase/8/docs/technotes/guides/install/install_overview.html (for JDK 8)" + EOL
76-
+ "or http://docs.oracle.com/javase/7/docs/webnotes/install/ (for JDK 7)." + EOL);
77-
result = true;
78-
}
79-
8066
let androidToolsIssues = this.$androidToolsInfo.validateInfo().wait();
8167
let javaVersionIssue = this.$androidToolsInfo.validateJavacVersion(sysInfo.javacVersion).wait();
8268
return result || androidToolsIssues || javaVersionIssue;

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)