@Override protected ArrayList<LevelItem> doInBackground(Void... params) { String[] files = FileHandler.getFileList(FileHandler.download_dir); ArrayList<LevelItem> levels = new ArrayList<LevelItem>(); for (int i = files.length - 1; i >= 0; i--) { String full_file = files[i]; String the_level = FileHandler.readTextFile(FileHandler.download_dir, full_file); if (the_level == null || the_level.equals(Constants.empty)) continue; LevelItem temp = new LevelItem(); try { temp.lid = Integer.valueOf(RawTextReader.findValueInXML(the_level, lid)); temp.name = RawTextReader.findValueInXML(the_level, name); temp.changed = Long.valueOf(RawTextReader.findValueInXML(the_level, changed)); temp.download_time = Long.valueOf(RawTextReader.findValueInXML(the_level, download_time)); temp.this_state = LevelItem.EnumButtonStates.play; // finally add and commit levels.add(temp); the_level = null; } catch (java.lang.NumberFormatException e) { // could not format, do nothing. } catch (java.lang.IllegalStateException e) { // bad download, do nothing. } } checkUpdates(levels); return levels; }