Skip to content

Commit 50d213b

Browse files
Merge branch 'android-0274-v4.1.0-beta3' into GSoC19-p1.1
2 parents 9703021 + 6d8aa4d commit 50d213b

File tree

4 files changed

+268
-60
lines changed

4 files changed

+268
-60
lines changed

mode/languages/mode.properties

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -259,6 +259,8 @@ sdk_downloader.error_cannot_find_emulator = Cannot find the emulator
259259
sdk_downloader.error.cannot_unpack_platform = Error unpacking platform to "%s"
260260
sdk_downloader.download_title = SDK download
261261
sdk_downloader.download_sdk_label = Downloading Android SDK...
262+
sdk_downloader.download_error_title = Incomplete download
263+
sdk_downloader.download_error_message = SDK Installation is incomplete due to: \n%s
262264

263265
# ---------------------------------------
264266
# System image downloader

mode/src/processing/mode/android/AndroidMode.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -171,8 +171,8 @@ public void checkSDK(Editor editor) {
171171
}
172172
}
173173
if (sdk == null) {
174-
Messages.showWarning(AndroidMode.getTextString("android_mode.warn.cannot_load_sdk_title"),
175-
AndroidMode.getTextString("android_mode.warn.cannot_load_sdk_body",tr.getMessage()), tr);
174+
Messages.showWarning(AndroidMode.getTextString("android_mode.warn.cannot_load_sdk_title"),
175+
AndroidMode.getTextString("android_mode.warn.cannot_load_sdk_body"), tr);
176176
} else {
177177
Devices devices = Devices.getInstance();
178178
devices.setSDK(sdk);

mode/src/processing/mode/android/AndroidSDK.java

Lines changed: 22 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,8 @@ class AndroidSDK {
9292
private static final int INVALID_SDK = 3;
9393
private static int loadError = NO_ERROR;
9494

95+
private static boolean backOptionSelected;
96+
9597
public AndroidSDK(File folder) throws BadSDKException, IOException {
9698
this.folder = folder;
9799
if (!folder.exists()) {
@@ -411,11 +413,17 @@ public static AndroidSDK load(boolean checkEnvSDK, Frame editor) throws IOExcept
411413

412414
static public AndroidSDK locate(final Frame window, final AndroidMode androidMode)
413415
throws BadSDKException, CancelException, IOException {
414-
416+
backOptionSelected = false;
417+
415418
if (loadError == SKIP_ENV_SDK) {
416419
// The user does not want to use the environment SDK, so let's simply
417420
// download a new one to the sketchbook folder.
418-
return download(window, androidMode);
421+
AndroidSDK sdk = download(window, androidMode);
422+
if(sdk==null && backOptionSelected){
423+
return locate(window,androidMode);
424+
} else {
425+
return sdk;
426+
}
419427
}
420428

421429
// At this point, there is no ANDROID_SDK env variable, no SDK in the preferences,
@@ -424,7 +432,11 @@ static public AndroidSDK locate(final Frame window, final AndroidMode androidMod
424432
int result = showLocateDialog(window);
425433

426434
if (result == JOptionPane.YES_OPTION) {
427-
return download(window, androidMode);
435+
AndroidSDK sdk = download(window, androidMode);
436+
if(sdk==null && backOptionSelected){
437+
return locate(window,androidMode);
438+
}
439+
return sdk;
428440
} else if (result == JOptionPane.NO_OPTION) {
429441
// User will manually select folder containing SDK folder
430442
File folder = selectFolder(AndroidMode.getTextString("android_sdk.dialog.select_sdk_folder"), null, window);
@@ -456,9 +468,13 @@ static public boolean locateSysImage(final Frame window,
456468
static public AndroidSDK download(final Frame editor, final AndroidMode androidMode)
457469
throws BadSDKException, CancelException {
458470
final SDKDownloader downloader = new SDKDownloader(editor);
459-
downloader.run(); // This call blocks until the SDK download complete, or user cancels.
460-
461-
if (downloader.cancelled()) {
471+
//downloader.run(); // This call blocks until the SDK download complete, or user cancels.
472+
473+
if (downloader.isGoBack()){
474+
backOptionSelected = true;
475+
return null;
476+
}
477+
else if (downloader.cancelled()) {
462478
throw new CancelException(AndroidMode.getTextString("android_sdk.error.sdk_download_canceled"));
463479
}
464480
AndroidSDK sdk = downloader.getSDK();

0 commit comments

Comments
 (0)