Skip to content

Commit d67affe

Browse files
committed
some more tweaks in the SDK download/install
1 parent 16b244d commit d67affe

File tree

3 files changed

+34
-14
lines changed

3 files changed

+34
-14
lines changed

src/processing/mode/android/AndroidMode.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -137,6 +137,11 @@ public void resetUserSelection() {
137137
}
138138

139139

140+
public void userCancelledSDKSearch() {
141+
userCancelledSDKSearch = true;
142+
}
143+
144+
140145
public void checkSDK(Editor editor) {
141146
if (checkingSDK) {
142147
// Some other thread has invoked SDK checking, so wait until the first one

src/processing/mode/android/AndroidSDK.java

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import processing.app.exec.ProcessHelper;
66
import processing.app.exec.ProcessResult;
77
import processing.core.PApplet;
8+
import processing.mode.android.AndroidSDK.CancelException;
89

910
import javax.swing.*;
1011
import java.awt.*;
@@ -235,23 +236,28 @@ static public AndroidSDK locate(final Frame window, final AndroidMode androidMod
235236
if (folder == null) {
236237
throw new CancelException("User canceled attempt to find SDK");
237238
} else {
238-
try {
239-
final AndroidSDK androidSDK = new AndroidSDK(folder);
240-
Preferences.set("android.sdk.path", folder.getAbsolutePath());
241-
return androidSDK;
242-
} catch (BadSDKException bad) {
243-
throw bad;
244-
}
239+
final AndroidSDK androidSDK = new AndroidSDK(folder);
240+
Preferences.set("android.sdk.path", folder.getAbsolutePath());
241+
return androidSDK;
245242
}
246243
} else {
247244
throw new CancelException("User canceled attempt to find SDK");
248245
}
249246
}
250247

251-
static public AndroidSDK download(final Frame editor, final AndroidMode androidMode) throws BadSDKException {
248+
static public AndroidSDK download(final Frame editor, final AndroidMode androidMode)
249+
throws BadSDKException, CancelException {
252250
final SDKDownloader downloader = new SDKDownloader(editor, androidMode);
253251
downloader.run(); // This call blocks until the SDK download complete, or user cancels.
254-
return downloader.getSDK();
252+
253+
if (downloader.cancelled()) {
254+
throw new CancelException("User canceled SDK download");
255+
}
256+
AndroidSDK sdk = downloader.getSDK();
257+
if (sdk == null) {
258+
throw new BadSDKException("SDK could not be downloaded");
259+
}
260+
return sdk;
255261
}
256262

257263
static public int showLocateDialog(Frame editor) {

src/processing/mode/android/SDKDownloader.java

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
import processing.app.Preferences;
1111
import processing.app.ui.Toolkit;
1212
import processing.core.PApplet;
13+
import processing.mode.android.AndroidSDK.CancelException;
1314

1415
import javax.swing.*;
1516
import javax.swing.border.EmptyBorder;
@@ -50,6 +51,7 @@ public class SDKDownloader extends JDialog implements PropertyChangeListener {
5051
private Frame editor;
5152
private AndroidMode mode;
5253
private AndroidSDK sdk;
54+
private boolean cancelled;
5355

5456
private int totalSize = 0;
5557
private static ZipFile zip;
@@ -274,21 +276,26 @@ public static String humanReadableByteCount(long bytes, boolean si) {
274276
}
275277

276278
public SDKDownloader(Frame editor, AndroidMode mode) {
277-
super(editor, "Android SDK downloading...", true);
279+
super(editor, "", true);
278280
this.editor = editor;
279281
this.mode = mode;
280-
this.sdk = null;
282+
this.sdk = null;
281283
createLayout();
282284
}
283285

284286
public void run() {
287+
cancelled = false;
285288
downloadTask = new SDKDownloadTask();
286289
downloadTask.addPropertyChangeListener(this);
287290
downloadTask.execute();
288291
setAlwaysOnTop(true);
289292
setVisible(true);
290293
}
291294

295+
public boolean cancelled() {
296+
return cancelled;
297+
}
298+
292299
public AndroidSDK getSDK() {
293300
return sdk;
294301
}
@@ -301,8 +308,7 @@ private void createLayout() {
301308
pain.setBorder(new EmptyBorder(13, 13, 13, 13));
302309
outer.add(pain);
303310

304-
String labelText =
305-
"Downloading Android SDK...";
311+
String labelText = "Downloading Android SDK...";
306312
JLabel textarea = new JLabel(labelText);
307313
textarea.setAlignmentX(LEFT_ALIGNMENT);
308314
pain.add(textarea);
@@ -342,8 +348,11 @@ private void createLayout() {
342348
cancelButton.setPreferredSize(dim);
343349
cancelButton.addActionListener(new ActionListener() {
344350
public void actionPerformed(ActionEvent e) {
345-
if (downloadTask != null) downloadTask.cancel(true);
351+
if (downloadTask != null) {
352+
downloadTask.cancel(true);
353+
}
346354
setVisible(false);
355+
cancelled = true;
347356
}
348357
});
349358
cancelButton.setEnabled(true);

0 commit comments

Comments
 (0)