private void updateDeviceList() {
	try {
	    final Process process = new ProcessBuilder("adb", "devices")
		    .redirectErrorStream(true).start();
	    Thread t = new Thread(new Runnable() {

		@Override
		public void run() {
		    ArrayList<Device> tempList = new ArrayList<>();
		    try (BufferedReader reader = new BufferedReader(
			    new InputStreamReader(process.getInputStream()))) {
			String line;
			while ((line = reader.readLine()) != null) {
			    String[] dataline = line.split("\t");
			    if (dataline.length > 1
				    && dataline[1].equals("device")) {
				tempList.add(new Device(dataline[0]));
			    }
			}
		    } catch (IOException e) {
			e.printStackTrace();
		    }
		    mDevices = tempList;
		    SwingUtilities.invokeLater(new Runnable() {

		        @Override
		        public void run() {
		            mDeviceList.removeAll();
		            mDeviceList.setListData(mDevices.toArray(new Device[mDevices.size()]));
		        }
		    });
		}
	    });
	    t.start();
	} catch (IOException e1) {
	    e1.printStackTrace();
	}
    }