50
50
import java .beans .PropertyChangeEvent ;
51
51
import java .beans .PropertyChangeListener ;
52
52
import java .io .File ;
53
+ import java .net .URL ;
54
+ import java .net .URLConnection ;
53
55
import java .util .*;
54
56
import java .util .List ;
55
57
import java .util .concurrent .CancellationException ;
@@ -71,6 +73,9 @@ public class SDKUpdater extends JFrame implements PropertyChangeListener, Tool {
71
73
private final Vector <String > columns_platforms = new Vector <>(Arrays .asList ("Select" ,"Platform" ,
72
74
"Revision" ,"Status" ));
73
75
private static final String PROPERTY_CHANGE_QUERY = "query" ;
76
+ private final String errorTitle = "Internet connection not available" ;
77
+ private final String errorMessage = "SDK Updater needs internet connection." +
78
+ " Check your internet connection and restart the SDK Updater." ;
74
79
75
80
private File sdkFolder ;
76
81
@@ -103,17 +108,22 @@ public void init(Base base) {
103
108
createLayout (base .getActiveEditor () == null );
104
109
}
105
110
111
+
106
112
107
113
@ Override
108
114
public void run () {
109
115
setVisible (true );
110
116
String path = Preferences .get ("android.sdk.path" );
111
- sdkFolder = new File (path );
112
- queryTask = new QueryTask ();
113
- queryTask .addPropertyChangeListener (this );
114
- queryTask .execute ();
115
- status .setText ("Querying packages..." );
116
- statusPlatform .setText ("Querying packages... " );
117
+ sdkFolder = new File (path );
118
+
119
+ //start by checking internet connection:
120
+ if (checkConnectivity ()) {
121
+ queryTask = new QueryTask ();
122
+ queryTask .addPropertyChangeListener (this );
123
+ queryTask .execute ();
124
+ status .setText ("Querying packages..." );
125
+ statusPlatform .setText ("Querying packages... " );
126
+ }
117
127
}
118
128
119
129
@@ -166,7 +176,7 @@ protected Object doInBackground() throws Exception {
166
176
with some changes
167
177
*/
168
178
AndroidSdkHandler mHandler = AndroidSdkHandler .getInstance (sdkFolder );
169
-
179
+
170
180
FileSystemFileOp fop = (FileSystemFileOp ) FileOpUtils .create ();
171
181
RepoManager mRepoManager = mHandler .getSdkManager (progress );
172
182
mRepoManager .loadSynchronously (0 , progress , new LegacyDownloader (fop , new SettingsController () {
@@ -224,7 +234,7 @@ public Channel getChannel() {
224
234
for (UpdatablePackage update : packages .getUpdatedPkgs ()) {
225
235
String path = update .getPath ();
226
236
String loc = update .getLocal ().getVersion ().toString ();
227
- String rem = update .getRemote ().getVersion ().toString ();
237
+ String rem = update .getRemote ().getVersion ().toString ();
228
238
updated .put (path , Arrays .asList (loc , rem ));
229
239
}
230
240
@@ -466,6 +476,21 @@ public java.util.List<String> getPaths(RepoManager mgr,Boolean isPlatform) {
466
476
}
467
477
}
468
478
479
+ private Boolean checkConnectivity () {
480
+ URL url = null ;
481
+ try {
482
+ url = new URL ("https://dl.google.com" );
483
+ URLConnection connection = url .openConnection ();
484
+ connection .connect ();
485
+ } catch (Exception e ) {
486
+ Messages .showWarning (errorTitle ,errorMessage );
487
+ this .setVisible (false );
488
+ this .dispose ();
489
+ return false ;
490
+ }
491
+ return true ;
492
+ }
493
+
469
494
private void startProgressThread (final JProgressBar bar ){
470
495
Thread update = new Thread () {
471
496
@ Override
0 commit comments