Commit 22ce9c1c09b7ba6d613366aa52b1d6904a4c3518

Authored by Imanol-Mikel Barba Sabariego
1 parent 74c83a33

mejor gestion de urls invalidas y demas

src/com/upc/pbe/upcnews/Descarrega.java
... ... @@ -74,10 +74,10 @@ public class Descarrega extends AsyncTask<Object, Object, Object> {
74 74 }
75 75 }
76 76  
77   - protected String doInBackground(String u) {
  77 + protected String doInBackground(String u) throws IOException {
78 78 this.url = u;
79 79 html = "";
80   - try {
  80 +
81 81 URLConnection conn = new URL(url).openConnection();
82 82 BufferedReader in = new BufferedReader(new InputStreamReader(
83 83 conn.getInputStream()));
... ... @@ -92,12 +92,6 @@ public class Descarrega extends AsyncTask<Object, Object, Object> {
92 92 Log.d(TAG, "Descarrega finalitzada");
93 93  
94 94 in.close();
95   - } catch (MalformedURLException e) {
96   - Log.d(TAG, "excepcio 1, no sha trobat la URL");
97   - } catch (IOException e) {
98   - Log.d(TAG, "excepcio 2");
99   - }
100   -
101 95 return html;
102 96  
103 97 }
... ...
src/com/upc/pbe/upcnews/Directoris.java
1 1 package com.upc.pbe.upcnews;
2 2  
  3 +import java.io.IOException;
3 4 import java.util.ArrayList;
4 5  
5 6 import android.app.Activity;
... ... @@ -67,8 +68,16 @@ public class Directoris extends Activity implements OnItemClickListener
67 68  
68 69 public void showResources()
69 70 {
70   - ArrayList<String> entries = parser.parse(d.doInBackground(currentFolder));
71   - this.createEntries(entries);
  71 + ArrayList<String> entries;
  72 + try
  73 + {
  74 + entries = parser.parse(d.doInBackground(currentFolder));
  75 + this.createEntries(entries);
  76 + }
  77 + catch (IOException e)
  78 + {
  79 + // Nunca llegará aquí la cosa, y si lo hace ES CULPA DEL SERVIDOR!!
  80 + }
72 81 }
73 82  
74 83 public void createEntries(ArrayList<String> directories)
... ... @@ -86,29 +95,38 @@ public class Directoris extends Activity implements OnItemClickListener
86 95 if(path.endsWith(".m3u8"))
87 96 {
88 97 path = currentFolder + path;
89   - String playlist = d.doInBackground(path);
90   - Parser p = new Parser(path.substring(0, path.lastIndexOf("/") + 1), this);
  98 + String playlist;
91 99 try
92 100 {
93   - ArrayList<ParentList> m3u8parsed = p.parseFile(playlist);
94   - Log.d(TAG, "parsing completed");
95   - HLS h = new HLS(m3u8parsed,((UpcApp)getApplication()).getLocalPath());
96   - h.start();
97   - }
98   - catch (ErrorException e)
99   - {
100   - Toast.makeText(this, e.getMessage(), Toast.LENGTH_SHORT).show();
101   - Log.d(TAG, e.getMessage());
102   - }
103   - catch (WarningException e)
104   - {
105   - Toast.makeText(this, e.getMessage(), Toast.LENGTH_SHORT).show();
106   - Log.d(TAG, e.getMessage());
  101 + playlist = d.doInBackground(path);
  102 +
  103 + Parser p = new Parser(path.substring(0, path.lastIndexOf("/") + 1), this);
  104 + try
  105 + {
  106 + ArrayList<ParentList> m3u8parsed = p.parseFile(playlist);
  107 + Log.d(TAG, "parsing completed");
  108 + HLS h = new HLS(m3u8parsed,((UpcApp)getApplication()).getLocalPath());
  109 + h.start();
  110 + }
  111 + catch (ErrorException e)
  112 + {
  113 + Toast.makeText(this, e.getMessage(), Toast.LENGTH_SHORT).show();
  114 + Log.d(TAG, e.getMessage());
  115 + }
  116 + catch (WarningException e)
  117 + {
  118 + Toast.makeText(this, e.getMessage(), Toast.LENGTH_SHORT).show();
  119 + Log.d(TAG, e.getMessage());
  120 + }
  121 + catch (InfoException e)
  122 + {
  123 + Toast.makeText(this, e.getMessage(), Toast.LENGTH_SHORT).show();
  124 + Log.d(TAG, e.getMessage());
  125 + }
107 126 }
108   - catch (InfoException e)
  127 + catch (IOException e1)
109 128 {
110   - Toast.makeText(this, e.getMessage(), Toast.LENGTH_SHORT).show();
111   - Log.d(TAG, e.getMessage());
  129 + // Nunca llegará aquí la cosa, y si lo hace ES CULPA DEL SERVIDOR!!
112 130 }
113 131  
114 132 }
... ...
src/com/upc/pbe/upcnews/MainActivity.java
1 1 package com.upc.pbe.upcnews;
2 2  
3 3 import java.io.File;
  4 +import java.io.IOException;
  5 +import java.net.MalformedURLException;
4 6  
5 7 import android.app.Activity;
6 8 import android.content.Intent;
... ... @@ -58,14 +60,28 @@ public class MainActivity extends Activity implements OnClickListener {
58 60 public void onClick(View v) {
59 61 Log.d(TAG, "onClicked");
60 62 this.descarregar();
61   - ((UpcApp) getApplication()).setDesc(html);
62   - startActivity(new Intent(this, Directoris.class));
  63 + if(!html.equals("EMPTY"))
  64 + {
  65 + ((UpcApp) getApplication()).setDesc(html);
  66 + startActivity(new Intent(this, Directoris.class));
  67 + }
63 68 }
64 69  
65 70 public void descarregar() {
66 71 Descarrega d = new Descarrega();
67   - Toast.makeText(this, "Download succesfull", Toast.LENGTH_LONG).show();
68   - html = (String) d.doInBackground(((UpcApp)getApplication()).getUrl());
  72 + html="EMPTY";
  73 + try
  74 + {
  75 + html = (String) d.doInBackground(((UpcApp)getApplication()).getUrl());
  76 + }
  77 + catch(MalformedURLException e)
  78 + {
  79 + Toast.makeText(this, "Invalid URL", Toast.LENGTH_LONG).show();
  80 + }
  81 + catch(IOException e)
  82 + {
  83 + Toast.makeText(this, "Can't find URL", Toast.LENGTH_LONG).show();
  84 + }
69 85 }
70 86  
71 87 public boolean onOptionsItemSelected(MenuItem item) {
... ...
src/com/upc/pbe/upcnews/Parser.java
1 1 package com.upc.pbe.upcnews;
2 2  
  3 +import java.io.IOException;
3 4 import java.net.MalformedURLException;
4 5 import java.util.ArrayList;
5 6  
... ... @@ -420,41 +421,49 @@ public class Parser
420 421 + " has missing arguments");
421 422 }
422 423 Parser p = new Parser(URI.substring(0, URI.lastIndexOf("/") + 1), caller);
423   - Video newList = p.parseFile(download.doInBackground(URI)).get(0).getLists().get(0);
424   - if (!GroupID.equals(ppls.getID()))
  424 + Video newList;
  425 + try
425 426 {
426   - if (ppls.getID().equals(""))
  427 + newList = p.parseFile(download.doInBackground(URI)).get(0).getLists().get(0);
  428 + if (!GroupID.equals(ppls.getID()))
427 429 {
428   - /*
429   - * If working with the default ParentList,
430   - * then modify it, don't create a new one.
431   - */
432   - ppls.setDefault(Default);
433   - ppls.setName(Name);
434   - ppls.setType(Type);
435   - ppls.getLists().set(0, newList);
436   - ppls.setID(GroupID);
  430 + if (ppls.getID().equals(""))
  431 + {
  432 + /*
  433 + * If working with the default ParentList,
  434 + * then modify it, don't create a new one.
  435 + */
  436 + ppls.setDefault(Default);
  437 + ppls.setName(Name);
  438 + ppls.setType(Type);
  439 + ppls.getLists().set(0, newList);
  440 + ppls.setID(GroupID);
  441 + }
  442 + else
  443 + {
  444 +
  445 + currentList = searchID(GroupID, lists);
  446 + if (currentList == -1)
  447 + {
  448 + ParentList pl = new ParentList(GroupID);
  449 + pl.setDefault(Default);
  450 + pl.setName(Name);
  451 + pl.setType(Type);
  452 + lists.add(pl);
  453 + currentList = lists.size() - 1;
  454 + }
  455 + ppls = lists.get(currentList);
  456 + ppls.getLists().add(newList);
  457 + }
437 458 }
438 459 else
439 460 {
440   -
441   - currentList = searchID(GroupID, lists);
442   - if (currentList == -1)
443   - {
444   - ParentList pl = new ParentList(GroupID);
445   - pl.setDefault(Default);
446   - pl.setName(Name);
447   - pl.setType(Type);
448   - lists.add(pl);
449   - currentList = lists.size() - 1;
450   - }
451   - ppls = lists.get(currentList);
452 461 ppls.getLists().add(newList);
453 462 }
454 463 }
455   - else
  464 + catch (IOException e)
456 465 {
457   - ppls.getLists().add(newList);
  466 + // Nunca llegará aquí la cosa, y si lo hace ES CULPA DEL SERVIDOR!!
458 467 }
459 468 }
460 469  
... ... @@ -513,12 +522,20 @@ public class Parser
513 522 */
514 523 expectList = false;
515 524 Parser p = new Parser(line.substring(0, line.lastIndexOf("/") + 1), caller);
516   - Video newList = p.parseFile(download.doInBackground(line)).get(0).getLists().get(0);
517   - pls.setMaxDuration(newList.getMaxDuration());
518   - pls.setSequence(newList.getSequence());
519   - for (int i = 0; i < newList.getSegments().size(); i++)
  525 + Video newList;
  526 + try
  527 + {
  528 + newList = p.parseFile(download.doInBackground(line)).get(0).getLists().get(0);
  529 + pls.setMaxDuration(newList.getMaxDuration());
  530 + pls.setSequence(newList.getSequence());
  531 + for (int i = 0; i < newList.getSegments().size(); i++)
  532 + {
  533 + pls.getSegments().add(newList.getSegments().get(i));
  534 + }
  535 + }
  536 + catch (IOException e)
520 537 {
521   - pls.getSegments().add(newList.getSegments().get(i));
  538 + // Nunca llegará aquí la cosa, y si lo hace ES CULPA DEL SERVIDOR!!
522 539 }
523 540 }
524 541 else
... ...