@@ -54,8 +54,10 @@ public class SDKDownloader extends JDialog implements PropertyChangeListener {
54
54
private static final String URL_USB_DRIVER = "https://dl-ssl.google.com//android/repository/latest_usb_driver_windows.zip" ;
55
55
private static final String URL_SYS_IMAGES = "https://dl-ssl.google.com/android/repository/sys-img/android/sys-img.xml" ;
56
56
private static final String URL_SYS_IMAGES_FOLDER = "http://dl-ssl.google.com/android/repository/sys-img/android/" ;
57
- private static final String SYSTEM_IMAGE = "Intel x86 Atom System Image" ;
58
- // private static final String URL_SYS_IMAGES_WEAR = "https://dl-ssl.google.com/android/repository/sys-img/android-wear/sys-img.xml";
57
+ private static final String URL_SYS_IMAGES_WEAR = "https://dl-ssl.google.com/android/repository/sys-img/android-wear/sys-img.xml" ;
58
+ private static final String URL_SYS_IMAGES_WEAR_FOLDER = "https://dl-ssl.google.com/android/repository/sys-img/android-wear" ;
59
+ private static final String SYSTEM_IMAGE = "Intel x86 Atom System Image" ;
60
+ private static final String SYSTEM_IMAGE_WEAR = "Android Wear Intel x86 Atom System Image" ;
59
61
60
62
private static final String PROPERTY_CHANGE_EVENT_TOTAL = "total" ;
61
63
private static final String PROPERTY_CHANGE_EVENT_DOWNLOADED = "downloaded" ;
@@ -74,8 +76,10 @@ public class SDKDownloader extends JDialog implements PropertyChangeListener {
74
76
75
77
class SDKUrlHolder {
76
78
public String platformVersion ;
77
- public String platformToolsUrl , buildToolsUrl , platformUrl , sysImgUrl , sysImgTag , toolsUrl ;
78
- public String platformToolsFilename , buildToolsFilename , platformFilename , sysImgFilename , toolsFilename ;
79
+ public String platformToolsUrl , buildToolsUrl , platformUrl , toolsUrl ;
80
+ public String sysImgUrl , sysImgTag , sysImgWearUrl , sysImgWearTag ;
81
+ public String platformToolsFilename , buildToolsFilename , platformFilename , toolsFilename ;
82
+ public String sysImgFilename , sysImgWearFilename ;
79
83
public int totalSize = 0 ;
80
84
}
81
85
@@ -111,7 +115,8 @@ protected Object doInBackground() throws Exception {
111
115
if (!tempFolder .exists ()) tempFolder .mkdir ();
112
116
113
117
try {
114
- SDKUrlHolder downloadUrls = getDownloadUrls (URL_REPOSITORY , URL_SYS_IMAGES , Platform .getName ());
118
+ SDKUrlHolder downloadUrls = getDownloadUrls (URL_REPOSITORY ,
119
+ URL_SYS_IMAGES , URL_SYS_IMAGES_WEAR , Platform .getName ());
115
120
firePropertyChange (PROPERTY_CHANGE_EVENT_TOTAL , 0 , downloadUrls .totalSize );
116
121
totalSize = downloadUrls .totalSize ;
117
122
@@ -137,7 +142,15 @@ protected Object doInBackground() throws Exception {
137
142
if (!tmp .exists ()) tmp .mkdir ();
138
143
File sysImgFinalFolder = new File (tmp , downloadUrls .sysImgTag );
139
144
if (!sysImgFinalFolder .exists ()) sysImgFinalFolder .mkdir ();
140
- downloadAndUnpack (downloadUrls .sysImgUrl , downloadedSysImg , sysImgFinalFolder , false );
145
+ downloadAndUnpack (downloadUrls .sysImgUrl , downloadedSysImg , sysImgFinalFolder , false );
146
+
147
+ // wear system images
148
+ File downloadedSysImgWear = new File (tempFolder , downloadUrls .sysImgWearFilename );
149
+ tmp = new File (sysImgFolder , "android-" + AndroidBuild .target_sdk );
150
+ if (!tmp .exists ()) tmp .mkdir ();
151
+ File sysImgWearFinalFolder = new File (tmp , downloadUrls .sysImgWearTag );
152
+ if (!sysImgWearFinalFolder .exists ()) sysImgWearFinalFolder .mkdir ();
153
+ downloadAndUnpack (downloadUrls .sysImgUrl , downloadedSysImgWear , sysImgWearFinalFolder , false );
141
154
142
155
// usb driver
143
156
if (Platform .isWindows ()) {
@@ -223,7 +236,8 @@ private void downloadAndUnpack(String urlString, File saveTo,
223
236
}
224
237
225
238
private SDKUrlHolder getDownloadUrls (String repositoryUrl ,
226
- String repositorySysImgUrlString , String requiredHostOs )
239
+ String repositorySysImgUrlString , String repositorySysImgWearUrlString ,
240
+ String requiredHostOs )
227
241
throws ParserConfigurationException , IOException , SAXException {
228
242
SDKUrlHolder urlHolder = new SDKUrlHolder ();
229
243
@@ -322,6 +336,31 @@ private SDKUrlHolder getDownloadUrls(String repositoryUrl,
322
336
}
323
337
}
324
338
339
+ // system image
340
+ Document docSysImgWear = db .parse (new URL (repositorySysImgWearUrlString ).openStream ());
341
+ NodeList sysImgWearList = docSysImgWear .getElementsByTagName ("sdk:system-image" );
342
+ for (int i = 0 ; i < sysImgWearList .getLength (); i ++) {
343
+ Node img = sysImgWearList .item (i );
344
+ NodeList level = ((Element ) img ).getElementsByTagName ("sdk:api-level" );
345
+ NodeList desc = ((Element ) img ).getElementsByTagName ("sdk:description" );
346
+ NodeList codename = ((Element ) img ).getElementsByTagName ("sdk:codename" );
347
+ // Only considering nodes without a codename, which correspond to the platform
348
+ // pre-releases.
349
+ if (level .item (0 ).getTextContent ().equals (AndroidBuild .target_sdk ) &&
350
+ desc .item (0 ).getTextContent ().equals (SYSTEM_IMAGE_WEAR ) &&
351
+ codename .item (0 ) == null ) {
352
+ NodeList tag = ((Element ) img ).getElementsByTagName ("sdk:tag-id" );
353
+ urlHolder .sysImgWearTag = tag .item (0 ).getTextContent ();
354
+ archiveListItem = ((Element ) img ).getElementsByTagName ("sdk:archives" ).item (0 );
355
+ Node archiveItem = ((Element ) archiveListItem ).getElementsByTagName ("sdk:archive" ).item (0 );
356
+ urlHolder .sysImgWearFilename = ((Element ) archiveItem ).getElementsByTagName ("sdk:url" ).item (0 ).getTextContent ();
357
+ urlHolder .sysImgWearUrl = URL_SYS_IMAGES_WEAR_FOLDER + urlHolder .sysImgFilename ;
358
+ urlHolder .totalSize += Integer .parseInt (((Element ) archiveItem ).getElementsByTagName ("sdk:size" ).item (0 ).getTextContent ());
359
+ break ;
360
+ }
361
+ }
362
+
363
+
325
364
return urlHolder ;
326
365
}
327
366
}
0 commit comments