Commit 7db9ecc933478247f685a757c3582ec35828584b
1 parent
ad11fa86
--no commit message
Showing
3 changed files
with
170 additions
and
263 deletions
AndroidManifest.xml
@@ -36,14 +36,7 @@ | @@ -36,14 +36,7 @@ | ||
36 | </activity> | 36 | </activity> |
37 | <activity android:name=".Directoris" > | 37 | <activity android:name=".Directoris" > |
38 | </activity> | 38 | </activity> |
39 | - <activity | ||
40 | - android:name=".VideoActivity" | ||
41 | - android:label="@string/title_activity_video" > | ||
42 | - <intent-filter> | ||
43 | - <action android:name="android.intent.action.MAIN" /> | ||
44 | - | ||
45 | - <category android:name="android.intent.category.LAUNCHER" /> | ||
46 | - </intent-filter> | 39 | + <activity android:name=".VideoActivity" > |
47 | </activity> | 40 | </activity> |
48 | </application> | 41 | </application> |
49 | 42 |
src/com/upc/pbe/upcnews/Directoris.java
@@ -118,7 +118,7 @@ public class Directoris extends Activity implements OnClickListener { | @@ -118,7 +118,7 @@ public class Directoris extends Activity implements OnClickListener { | ||
118 | String m3u8 = d.doInBackground(urlvideo); | 118 | String m3u8 = d.doInBackground(urlvideo); |
119 | Log.d(TAG, m3u8); | 119 | Log.d(TAG, m3u8); |
120 | Parser p = new Parser(); | 120 | Parser p = new Parser(); |
121 | - /* | 121 | + |
122 | try { | 122 | try { |
123 | ArrayList<ParentList> m3u8parsed = p.parseFile(m3u8); | 123 | ArrayList<ParentList> m3u8parsed = p.parseFile(m3u8); |
124 | 124 | ||
@@ -132,13 +132,14 @@ public class Directoris extends Activity implements OnClickListener { | @@ -132,13 +132,14 @@ public class Directoris extends Activity implements OnClickListener { | ||
132 | } catch (InfoException e) { | 132 | } catch (InfoException e) { |
133 | Toast.makeText(this, e.getMessage(), Toast.LENGTH_SHORT).show(); | 133 | Toast.makeText(this, e.getMessage(), Toast.LENGTH_SHORT).show(); |
134 | Log.d(TAG, e.getMessage()); | 134 | Log.d(TAG, e.getMessage()); |
135 | - }*/ | 135 | + } |
136 | } | 136 | } |
137 | 137 | ||
138 | //VideoPlayer | 138 | //VideoPlayer |
139 | + /* | ||
139 | String urlvid = null; | 140 | String urlvid = null; |
140 | ((UpcApp) getApplication()).setDesc(urlvid); | 141 | ((UpcApp) getApplication()).setDesc(urlvid); |
141 | 142 | ||
142 | - startActivity(new Intent(this, VideoActivity.class)); | 143 | + startActivity(new Intent(this, VideoActivity.class));*/ |
143 | } | 144 | } |
144 | } | 145 | } |
145 | \ No newline at end of file | 146 | \ No newline at end of file |
src/com/upc/pbe/upcnews/Parser.java
@@ -5,272 +5,216 @@ import java.util.ArrayList; | @@ -5,272 +5,216 @@ import java.util.ArrayList; | ||
5 | 5 | ||
6 | import android.util.Log; | 6 | import android.util.Log; |
7 | 7 | ||
8 | -public class Parser | ||
9 | -{ | 8 | +public class Parser { |
10 | private static final String STARTWORD = "#EXTM3U"; | 9 | private static final String STARTWORD = "#EXTM3U"; |
11 | private static String TAG = "Parser"; | 10 | private static String TAG = "Parser"; |
12 | - private int fileType; //indicates if segment list or media list | 11 | + private int fileType; // indicates if segment list or media list |
13 | private int currentLine; | 12 | private int currentLine; |
14 | - private int currentSegment; //Cada segmento de cada calidad distinta | ||
15 | - private int currentList; //Indice de cada recurso distinto | 13 | + private int currentSegment; // Cada segmento de cada calidad distinta |
14 | + private int currentList; // Indice de cada recurso distinto | ||
16 | private boolean expectSegment = false; | 15 | private boolean expectSegment = false; |
17 | private boolean expectList = false; | 16 | private boolean expectList = false; |
18 | private Descarrega download; | 17 | private Descarrega download; |
19 | - | ||
20 | - public Parser() | ||
21 | - { | 18 | + |
19 | + public Parser() { | ||
22 | currentLine = 0; | 20 | currentLine = 0; |
23 | currentSegment = 0; | 21 | currentSegment = 0; |
24 | currentList = 0; | 22 | currentList = 0; |
25 | fileType = -1; | 23 | fileType = -1; |
26 | /* | 24 | /* |
27 | - * -1 indicates UNDETERMINED | ||
28 | - * 0 indicates SEGMENTS | ||
29 | - * 1 indicates MEDIA | 25 | + * -1 indicates UNDETERMINED 0 indicates SEGMENTS 1 indicates MEDIA |
30 | */ | 26 | */ |
31 | download = new Descarrega(); | 27 | download = new Descarrega(); |
32 | } | 28 | } |
33 | - | ||
34 | - public ArrayList<ParentList> parseFile(String file) throws ErrorException, WarningException, InfoException | ||
35 | - { | 29 | + |
30 | + public ArrayList<ParentList> parseFile(String file) throws ErrorException, | ||
31 | + WarningException, InfoException { | ||
36 | ArrayList<ParentList> lists = new ArrayList<ParentList>(); | 32 | ArrayList<ParentList> lists = new ArrayList<ParentList>(); |
37 | lists.add(new ParentList("")); | 33 | lists.add(new ParentList("")); |
38 | lists.get(0).getLists().add(new List(-1)); | 34 | lists.get(0).getLists().add(new List(-1)); |
39 | String[] lines = file.split("\n"); | 35 | String[] lines = file.split("\n"); |
40 | - Log.d(TAG, "" + lines.length); | ||
41 | - for(int i = 0; i < lines.length; i++) //la primera linea = null | 36 | + |
37 | + for (int i = 0; i < lines.length; i++) // la primera linea = null | ||
42 | { | 38 | { |
43 | - if(lines[i].endsWith("\\")) | ||
44 | - { | ||
45 | - lines[i] = lines[i].substring(0, lines[i].indexOf("\\")) + lines[++i]; | 39 | + if (lines[i].endsWith("\\")) { |
40 | + lines[i] = lines[i].substring(0, lines[i].indexOf("\\")) | ||
41 | + + lines[++i]; | ||
46 | } | 42 | } |
47 | - try | ||
48 | - { | ||
49 | - | 43 | + try { |
44 | + | ||
50 | Log.d(TAG, lines[i]); | 45 | Log.d(TAG, lines[i]); |
51 | - parseLine(lines[i],lists); | ||
52 | - } | ||
53 | - catch(InfoException iE) | ||
54 | - { | ||
55 | - //Toast.makeText(this, iE.getMessage(), Toast.LENGTH_SHORT).show(); | ||
56 | - } | ||
57 | - catch(WarningException wE) | ||
58 | - { | ||
59 | - | 46 | + parseLine(lines[i], lists); |
47 | + } catch (InfoException iE) { | ||
48 | + // Toast.makeText(this, iE.getMessage(), | ||
49 | + // Toast.LENGTH_SHORT).show(); | ||
50 | + } catch (WarningException wE) { | ||
51 | + | ||
60 | } | 52 | } |
61 | } | 53 | } |
62 | - /* | ||
63 | - * Esto contiene una lista de RECURSOS, | ||
64 | - * que a su vez contiene una lista de CALIDADES. | ||
65 | - * Si no te gusta mis VERSOS, | ||
66 | - * te mando a la mierda sin SUTILIDADES. | 54 | + /* |
55 | + * Esto contiene una lista de RECURSOS, que a su vez contiene una lista | ||
56 | + * de CALIDADES. Si no te gusta mis VERSOS, te mando a la mierda sin | ||
57 | + * SUTILIDADES. | ||
67 | * | 58 | * |
68 | * -- Imanol, hasta las cejas de cafeรญna. | 59 | * -- Imanol, hasta las cejas de cafeรญna. |
69 | * | 60 | * |
70 | - * PD: En el รบltimo nivel de profundidad hay una lista de segmentos (debajo de calidades). | ||
71 | - * Allรญ estรก el autรฉntico tesoro de Narnia. | 61 | + * PD: En el รบltimo nivel de profundidad hay una lista de segmentos |
62 | + * (debajo de calidades). Allรญ estรก el autรฉntico tesoro de Narnia. | ||
72 | */ | 63 | */ |
73 | - for(int i = 0; i < lists.size(); i++) | ||
74 | - { | 64 | + for (int i = 0; i < lists.size(); i++) { |
75 | sortQuality(lists.get(i)); | 65 | sortQuality(lists.get(i)); |
76 | } | 66 | } |
77 | - return lists; | 67 | + return lists; |
78 | } | 68 | } |
79 | - | ||
80 | - private int searchID(String ID, ArrayList<ParentList> lists) | ||
81 | - { | ||
82 | - for(int i = 0; i < lists.size(); i++) | ||
83 | - { | ||
84 | - if(lists.get(i).getID().equals(ID)) | ||
85 | - { | 69 | + |
70 | + private int searchID(String ID, ArrayList<ParentList> lists) { | ||
71 | + for (int i = 0; i < lists.size(); i++) { | ||
72 | + if (lists.get(i).getID().equals(ID)) { | ||
86 | return i; | 73 | return i; |
87 | } | 74 | } |
88 | } | 75 | } |
89 | return -1; | 76 | return -1; |
90 | } | 77 | } |
91 | - | ||
92 | - private void sortQuality(ParentList ppls) | ||
93 | - { | 78 | + |
79 | + private void sortQuality(ParentList ppls) { | ||
94 | ArrayList<List> lists = ppls.getLists(); | 80 | ArrayList<List> lists = ppls.getLists(); |
95 | - if(lists.get(0).getQuality() == -1) | ||
96 | - { | 81 | + if (lists.get(0).getQuality() == -1) { |
97 | /* | 82 | /* |
98 | * Se trata de ext-x-media's y estos no van por calidad | 83 | * Se trata de ext-x-media's y estos no van por calidad |
99 | */ | 84 | */ |
100 | return; | 85 | return; |
101 | } | 86 | } |
102 | - //BUBBLE-SORT!! (Me da un poco de verguenza, pero no quiero ponerme con quicksort... | ||
103 | - while(true) | ||
104 | - { | 87 | + // BUBBLE-SORT!! (Me da un poco de verguenza, pero no quiero ponerme con |
88 | + // quicksort... | ||
89 | + while (true) { | ||
105 | boolean sorted = true; | 90 | boolean sorted = true; |
106 | int i = 0; | 91 | int i = 0; |
107 | - do | ||
108 | - { | ||
109 | - if(lists.get(i).getQuality() < lists.get(i+1).getQuality()) | ||
110 | - { | 92 | + do { |
93 | + if (lists.get(i).getQuality() < lists.get(i + 1).getQuality()) { | ||
111 | sorted = false; | 94 | sorted = false; |
112 | List aux = lists.get(i); | 95 | List aux = lists.get(i); |
113 | - lists.set(i, lists.get(i+1)); | ||
114 | - lists.set(i+1, aux); | 96 | + lists.set(i, lists.get(i + 1)); |
97 | + lists.set(i + 1, aux); | ||
115 | } | 98 | } |
116 | - | ||
117 | - }while(++i != lists.size()); | ||
118 | - if(sorted) | ||
119 | - { | 99 | + |
100 | + } while (++i != lists.size()); | ||
101 | + if (sorted) { | ||
120 | break; | 102 | break; |
121 | } | 103 | } |
122 | } | 104 | } |
123 | 105 | ||
124 | } | 106 | } |
125 | - | ||
126 | - public void parseLine(String line, ArrayList<ParentList> lists) throws ErrorException, WarningException, InfoException | ||
127 | - { | ||
128 | - if(line.isEmpty()) | ||
129 | - { | 107 | + |
108 | + public void parseLine(String line, ArrayList<ParentList> lists) | ||
109 | + throws ErrorException, WarningException, InfoException { | ||
110 | + if (line.isEmpty()) { | ||
130 | currentLine++; | 111 | currentLine++; |
131 | return; | 112 | return; |
132 | - } | ||
133 | - else | ||
134 | - { | ||
135 | - ParentList ppls = lists.get(currentList); //VIVA HONDURAS!!! | 113 | + } else { |
114 | + ParentList ppls = lists.get(currentList); // VIVA HONDURAS!!! | ||
136 | List pls = ppls.getLists().get(ppls.getCurrentQuality()); | 115 | List pls = ppls.getLists().get(ppls.getCurrentQuality()); |
137 | - if(!pls.getValidated()) | ||
138 | - { | ||
139 | - if(line.equals(STARTWORD)) | ||
140 | - { | 116 | + if (!pls.getValidated()) { |
117 | + if (line.equals(STARTWORD)) { | ||
141 | pls.setValidated(true); | 118 | pls.setValidated(true); |
142 | - } | ||
143 | - else | ||
144 | - { | 119 | + } else { |
145 | throw new ErrorException("Playlist is not valid"); | 120 | throw new ErrorException("Playlist is not valid"); |
146 | } | 121 | } |
147 | - } | ||
148 | - else | ||
149 | - { | ||
150 | - if(line.charAt(0) == '#') | ||
151 | - { | ||
152 | - if(line.substring(0,4).equals("#EXT")) | ||
153 | - { | 122 | + } else { |
123 | + if (line.charAt(0) == '#') { | ||
124 | + if (line.substring(0, 4).equals("#EXT")) { | ||
154 | String[] extTag = line.split(":"); | 125 | String[] extTag = line.split(":"); |
155 | - if(extTag[0].equals("#EXT-X-MEDIA-SEQUENCE")) | ||
156 | - { | 126 | + if (extTag[0].equals("#EXT-X-MEDIA-SEQUENCE")) { |
157 | pls.setSequence(Integer.parseInt(extTag[1])); | 127 | pls.setSequence(Integer.parseInt(extTag[1])); |
158 | - } | ||
159 | - else if(extTag[0].equals("#EXT-X-TARGETDURATION")) | ||
160 | - { | 128 | + } else if (extTag[0].equals("#EXT-X-TARGETDURATION")) { |
161 | pls.setMaxDuration(Integer.parseInt(extTag[1])); | 129 | pls.setMaxDuration(Integer.parseInt(extTag[1])); |
162 | - } | ||
163 | - else if(extTag[0].equals("#EXTINF")) | ||
164 | - { | ||
165 | - if(fileType == -1) | ||
166 | - { | 130 | + } else if (extTag[0].equals("#EXTINF")) { |
131 | + if (fileType == -1) { | ||
167 | fileType = 0; | 132 | fileType = 0; |
133 | + } else if (fileType == 1) { | ||
134 | + throw new ErrorException( | ||
135 | + "Invalid file, should contain Lists, " | ||
136 | + + "but segments were found."); | ||
168 | } | 137 | } |
169 | - else if(fileType == 1) | ||
170 | - { | ||
171 | - throw new ErrorException("Invalid file, should contain Lists, " + | ||
172 | - "but segments were found."); | ||
173 | - } | ||
174 | - if(expectSegment) | ||
175 | - { | ||
176 | - throw new ErrorException("Expected segment URI, got a different" + | ||
177 | - "segment declaration"); | 138 | + if (expectSegment) { |
139 | + throw new ErrorException( | ||
140 | + "Expected segment URI, got a different" | ||
141 | + + "segment declaration"); | ||
178 | } | 142 | } |
179 | String[] args = extTag[1].split(","); | 143 | String[] args = extTag[1].split(","); |
180 | int duration = Integer.parseInt(args[0]); | 144 | int duration = Integer.parseInt(args[0]); |
181 | - if (duration > pls.getMaxDuration()) | ||
182 | - { | ||
183 | - throw new ErrorException("Segment " + currentSegment + " on line " + currentLine | ||
184 | - +" exceeds max duration"); | 145 | + if (duration > pls.getMaxDuration()) { |
146 | + throw new ErrorException("Segment " | ||
147 | + + currentSegment + " on line " | ||
148 | + + currentLine + " exceeds max duration"); | ||
185 | } | 149 | } |
186 | Segment s = new Segment(duration); | 150 | Segment s = new Segment(duration); |
187 | - if(args.length == 1) | ||
188 | - { | 151 | + if (args.length == 1) { |
189 | s.setName(""); | 152 | s.setName(""); |
190 | - } | ||
191 | - else | ||
192 | - { | 153 | + } else { |
193 | s.setName(args[1]); | 154 | s.setName(args[1]); |
194 | } | 155 | } |
195 | pls.getSegments().add(s); | 156 | pls.getSegments().add(s); |
196 | expectSegment = true; | 157 | expectSegment = true; |
197 | } | 158 | } |
198 | - | ||
199 | - else if(extTag[0].equals("#EXT-X-STREAM-INF")) | ||
200 | - { | ||
201 | - if(fileType == -1) | ||
202 | - { | 159 | + |
160 | + else if (extTag[0].equals("#EXT-X-STREAM-INF")) { | ||
161 | + if (fileType == -1) { | ||
203 | fileType = 1; | 162 | fileType = 1; |
204 | - } | ||
205 | - else if(fileType == 0) | ||
206 | - { | ||
207 | - throw new ErrorException("Invalid file, should contain Segments, " + | ||
208 | - "but lists were found."); | 163 | + } else if (fileType == 0) { |
164 | + throw new ErrorException( | ||
165 | + "Invalid file, should contain Segments, " | ||
166 | + + "but lists were found."); | ||
209 | } | 167 | } |
210 | expectList = true; | 168 | expectList = true; |
211 | String programID = ""; | 169 | String programID = ""; |
212 | int bandwidth = -1; | 170 | int bandwidth = -1; |
213 | String[] arguments = extTag[1].split(","); | 171 | String[] arguments = extTag[1].split(","); |
214 | - for(int i = 0; i < arguments.length; i++) | ||
215 | - { | 172 | + for (int i = 0; i < arguments.length; i++) { |
216 | String[] argument = arguments[i].split("="); | 173 | String[] argument = arguments[i].split("="); |
217 | - if(argument[0].equals("PROGRAM-ID")) | ||
218 | - { | 174 | + if (argument[0].equals("PROGRAM-ID")) { |
219 | programID = argument[1]; | 175 | programID = argument[1]; |
220 | - } | ||
221 | - else if(argument[0].equals("BANDWIDTH")) | ||
222 | - { | 176 | + } else if (argument[0].equals("BANDWIDTH")) { |
223 | bandwidth = Integer.parseInt(argument[1]); | 177 | bandwidth = Integer.parseInt(argument[1]); |
224 | } | 178 | } |
225 | } | 179 | } |
226 | - if(programID.equals("")|| bandwidth == -1) | ||
227 | - { | ||
228 | - throw new ErrorException("Playlist on line " + currentLine + | ||
229 | - " has missing arguments"); | 180 | + if (programID.equals("") || bandwidth == -1) { |
181 | + throw new ErrorException("Playlist on line " | ||
182 | + + currentLine | ||
183 | + + " has missing arguments"); | ||
230 | } | 184 | } |
231 | - if(!programID.equals(ppls.getID())) | ||
232 | - { | ||
233 | - if(ppls.getID().equals("")) | ||
234 | - { | 185 | + if (!programID.equals(ppls.getID())) { |
186 | + if (ppls.getID().equals("")) { | ||
235 | /* | 187 | /* |
236 | - * Este caso se da cuando no se ha creado ninguna lista. | ||
237 | - * Hay que sustituir la por defecto por una lista real. | 188 | + * Este caso se da cuando no se ha creado |
189 | + * ninguna lista. Hay que sustituir la por | ||
190 | + * defecto por una lista real. | ||
238 | */ | 191 | */ |
239 | - lists.add(0,new ParentList(programID)); | ||
240 | - } | ||
241 | - else | ||
242 | - { | 192 | + lists.add(0, new ParentList(programID)); |
193 | + } else { | ||
243 | currentList = searchID(ppls.getID(), lists); | 194 | currentList = searchID(ppls.getID(), lists); |
244 | - if(currentList == -1) | ||
245 | - { | 195 | + if (currentList == -1) { |
246 | lists.add(new ParentList(programID)); | 196 | lists.add(new ParentList(programID)); |
247 | - currentList = lists.size()+1; | 197 | + currentList = lists.size() + 1; |
248 | /* | 198 | /* |
249 | - * ppls y pls se actualizan en la siguiente linea procesada | 199 | + * ppls y pls se actualizan en la |
200 | + * siguiente linea procesada | ||
250 | */ | 201 | */ |
251 | - } | ||
252 | - else | ||
253 | - { | 202 | + } else { |
254 | ppls = lists.get(currentList); | 203 | ppls = lists.get(currentList); |
255 | - ppls.getLists().add(new List(bandwidth)); | 204 | + ppls.getLists() |
205 | + .add(new List(bandwidth)); | ||
256 | } | 206 | } |
257 | } | 207 | } |
258 | - } | ||
259 | - else | ||
260 | - { | 208 | + } else { |
261 | ppls.getLists().add(new List(bandwidth)); | 209 | ppls.getLists().add(new List(bandwidth)); |
262 | } | 210 | } |
263 | - } | ||
264 | - else if(extTag[0].equals("#EXT-X-MEDIA")) | ||
265 | - { | ||
266 | - if(fileType == -1) | ||
267 | - { | 211 | + } else if (extTag[0].equals("#EXT-X-MEDIA")) { |
212 | + if (fileType == -1) { | ||
268 | fileType = 1; | 213 | fileType = 1; |
269 | - } | ||
270 | - else if(fileType == 0) | ||
271 | - { | ||
272 | - throw new ErrorException("Invalid file, should contain Segments, " + | ||
273 | - "but lists were found."); | 214 | + } else if (fileType == 0) { |
215 | + throw new ErrorException( | ||
216 | + "Invalid file, should contain Segments, " | ||
217 | + + "but lists were found."); | ||
274 | } | 218 | } |
275 | String Type = ""; | 219 | String Type = ""; |
276 | String Name = ""; | 220 | String Name = ""; |
@@ -278,46 +222,33 @@ public class Parser | @@ -278,46 +222,33 @@ public class Parser | ||
278 | String URI = ""; | 222 | String URI = ""; |
279 | boolean Default = false; | 223 | boolean Default = false; |
280 | String[] arguments = extTag[1].split(","); | 224 | String[] arguments = extTag[1].split(","); |
281 | - for(int i = 0; i < arguments.length; i++) | ||
282 | - { | 225 | + for (int i = 0; i < arguments.length; i++) { |
283 | String[] argument = arguments[i].split("="); | 226 | String[] argument = arguments[i].split("="); |
284 | - if(argument[0].equals("NAME")) | ||
285 | - { | 227 | + if (argument[0].equals("NAME")) { |
286 | Name = argument[1]; | 228 | Name = argument[1]; |
287 | - } | ||
288 | - else if(argument[0].equals("TYPE")) | ||
289 | - { | 229 | + } else if (argument[0].equals("TYPE")) { |
290 | Type = argument[1]; | 230 | Type = argument[1]; |
291 | - } | ||
292 | - else if(argument[0].equals("GROUP-ID")) | ||
293 | - { | 231 | + } else if (argument[0].equals("GROUP-ID")) { |
294 | GroupID = argument[1]; | 232 | GroupID = argument[1]; |
295 | - } | ||
296 | - else if(argument[0].equals("DEFAULT")) | ||
297 | - { | ||
298 | - if(argument[1].equals("YES")) | ||
299 | - { | 233 | + } else if (argument[0].equals("DEFAULT")) { |
234 | + if (argument[1].equals("YES")) { | ||
300 | Default = true; | 235 | Default = true; |
301 | - } | ||
302 | - else if(argument[1].equals("NO")) | ||
303 | - { | 236 | + } else if (argument[1].equals("NO")) { |
304 | Default = true; | 237 | Default = true; |
238 | + } else { | ||
239 | + throw new ErrorException( | ||
240 | + "Invalid value for argument DEFAULT on line " | ||
241 | + + currentLine); | ||
305 | } | 242 | } |
306 | - else | ||
307 | - { | ||
308 | - throw new ErrorException("Invalid value for argument DEFAULT on line " + | ||
309 | - currentLine); | ||
310 | - } | ||
311 | - } | ||
312 | - else if(argument[0].equals("URI")) | ||
313 | - { | 243 | + } else if (argument[0].equals("URI")) { |
314 | URI = argument[1]; | 244 | URI = argument[1]; |
315 | } | 245 | } |
316 | } | 246 | } |
317 | - if(Type.equals("") || Name.equals("") || URI.equals("") || GroupID.equals("")) | ||
318 | - { | ||
319 | - throw new ErrorException("Playlist on line " + currentLine + | ||
320 | - " has missing arguments"); | 247 | + if (Type.equals("") || Name.equals("") |
248 | + || URI.equals("") || GroupID.equals("")) { | ||
249 | + throw new ErrorException("Playlist on line " | ||
250 | + + currentLine | ||
251 | + + " has missing arguments"); | ||
321 | } | 252 | } |
322 | ParentList pl = new ParentList(GroupID); | 253 | ParentList pl = new ParentList(GroupID); |
323 | pl.setDefault(Default); | 254 | pl.setDefault(Default); |
@@ -326,92 +257,74 @@ public class Parser | @@ -326,92 +257,74 @@ public class Parser | ||
326 | Parser p = new Parser(); | 257 | Parser p = new Parser(); |
327 | p.parseFile(download.doInBackground(URI)); | 258 | p.parseFile(download.doInBackground(URI)); |
328 | /* | 259 | /* |
329 | - * Procesar URI y descargar listas recursivamente y aรฑadir a la lista actual. | 260 | + * Procesar URI y descargar listas recursivamente y |
261 | + * aรฑadir a la lista actual. | ||
330 | * | 262 | * |
331 | * TO-DO: Necesito la funcion de Marc | 263 | * TO-DO: Necesito la funcion de Marc |
332 | */ | 264 | */ |
333 | List l = new List(-1); | 265 | List l = new List(-1); |
334 | - if(!GroupID.equals(ppls.getID())) | ||
335 | - { | ||
336 | - if(ppls.getID().equals("")) | ||
337 | - { | 266 | + if (!GroupID.equals(ppls.getID())) { |
267 | + if (ppls.getID().equals("")) { | ||
338 | /* | 268 | /* |
339 | - * Este caso se da cuando no se ha creado ninguna lista. | ||
340 | - * Hay que sustituir la por defecto por una lista real. | 269 | + * Este caso se da cuando no se ha creado |
270 | + * ninguna lista. Hay que sustituir la por | ||
271 | + * defecto por una lista real. | ||
341 | */ | 272 | */ |
342 | - lists.add(0,pl); | ||
343 | - } | ||
344 | - else | ||
345 | - { | 273 | + lists.add(0, pl); |
274 | + } else { | ||
346 | 275 | ||
347 | currentList = searchID(ppls.getID(), lists); | 276 | currentList = searchID(ppls.getID(), lists); |
348 | - if(currentList == -1) | ||
349 | - { | 277 | + if (currentList == -1) { |
350 | lists.add(pl); | 278 | lists.add(pl); |
351 | - currentList = lists.size()+1; | ||
352 | - } | ||
353 | - else | ||
354 | - { | 279 | + currentList = lists.size() + 1; |
280 | + } else { | ||
355 | ppls = lists.get(currentList); | 281 | ppls = lists.get(currentList); |
356 | ppls.getLists().add(l); | 282 | ppls.getLists().add(l); |
357 | } | 283 | } |
358 | } | 284 | } |
359 | - } | ||
360 | - else | ||
361 | - { | 285 | + } else { |
362 | ppls.getLists().add(l); | 286 | ppls.getLists().add(l); |
363 | } | 287 | } |
364 | } | 288 | } |
365 | - | ||
366 | - else if(extTag[0].equals("#EXT-X-ENDLIST")) | ||
367 | - { | ||
368 | - if(expectSegment || expectList) | ||
369 | - { | ||
370 | - throw new ErrorException("Unexpected end of list!"); | 289 | + |
290 | + else if (extTag[0].equals("#EXT-X-ENDLIST")) { | ||
291 | + if (expectSegment || expectList) { | ||
292 | + throw new ErrorException( | ||
293 | + "Unexpected end of list!"); | ||
371 | } | 294 | } |
372 | - //END REACHED, IGNORE AND LET THE FILE REACH EOF | 295 | + // END REACHED, IGNORE AND LET THE FILE REACH EOF |
373 | } | 296 | } |
374 | - | ||
375 | - else | ||
376 | - { | 297 | + |
298 | + else { | ||
377 | currentLine++; | 299 | currentLine++; |
378 | - throw new WarningException("Tag not implemented: " + extTag[0]); | 300 | + throw new WarningException("Tag not implemented: " |
301 | + + extTag[0]); | ||
379 | } | 302 | } |
380 | - } | ||
381 | - else | ||
382 | - { | 303 | + } else { |
383 | String comment = line.substring(1); | 304 | String comment = line.substring(1); |
384 | - throw new InfoException("Comment on line " + currentLine++ + " " + comment); | 305 | + throw new InfoException("Comment on line " |
306 | + + currentLine++ + " " + comment); | ||
385 | } | 307 | } |
386 | - } | ||
387 | - else | ||
388 | - { | ||
389 | - if(expectSegment) | ||
390 | - { | 308 | + } else { |
309 | + if (expectSegment) { | ||
391 | expectSegment = false; | 310 | expectSegment = false; |
392 | - try | ||
393 | - { | 311 | + try { |
394 | pls.getSegments().get(currentSegment).setURL(line); | 312 | pls.getSegments().get(currentSegment).setURL(line); |
395 | - } | ||
396 | - catch (MalformedURLException e) | ||
397 | - { | 313 | + } catch (MalformedURLException e) { |
398 | throw new ErrorException(e.getMessage()); | 314 | throw new ErrorException(e.getMessage()); |
399 | } | 315 | } |
400 | currentSegment++; | 316 | currentSegment++; |
401 | - } | ||
402 | - else if(expectList) | ||
403 | - { | 317 | + } else if (expectList) { |
404 | expectList = false; | 318 | expectList = false; |
405 | Parser p = new Parser(); | 319 | Parser p = new Parser(); |
406 | p.parseFile(download.doInBackground(line)); | 320 | p.parseFile(download.doInBackground(line)); |
407 | - } | ||
408 | - else | ||
409 | - { | ||
410 | - throw new ErrorException("ERROR: Unexpected string " + line); | 321 | + } else { |
322 | + throw new ErrorException("ERROR: Unexpected string " | ||
323 | + + line); | ||
411 | } | 324 | } |
412 | } | 325 | } |
413 | } | 326 | } |
414 | currentLine++; | 327 | currentLine++; |
415 | - } | 328 | + } |
416 | } | 329 | } |
417 | } | 330 | } |
418 | \ No newline at end of file | 331 | \ No newline at end of file |