Commit c71e1d9317f997a15325064090dbe3bfd437e7e9

Authored by Imanol-Mikel Barba Sabariego
1 parent 9d2a6958

--no commit message

gen/com/upc/pbe/upcnews/R.java
1 -/* AUTO-GENERATED FILE. DO NOT MODIFY.  
2 - *  
3 - * This class was automatically generated by the  
4 - * aapt tool from the resource data it found. It  
5 - * should not be modified by hand.  
6 - */  
7 -  
8 -package com.upc.pbe.upcnews;  
9 -  
10 -public final class R {  
11 - public static final class attr {  
12 - }  
13 - public static final class color {  
14 - public static final int Black=0x7f050002;  
15 - public static final int Blue=0x7f050004;  
16 - public static final int BlueAndroid=0x7f050005;  
17 - public static final int Gay=0x7f050007;  
18 - public static final int Gray=0x7f05000a;  
19 - public static final int Green=0x7f050009;  
20 - public static final int Orange=0x7f050003;  
21 - public static final int Red=0x7f050008;  
22 - public static final int White=0x7f050006;  
23 - public static final int Whyte_POwaH=0x7f050001;  
24 - public static final int backgroundmain=0x7f050000;  
25 - }  
26 - public static final class dimen {  
27 - public static final int TitleSize=0x7f060000;  
28 - public static final int lesize=0x7f060001;  
29 - }  
30 - public static final class drawable {  
31 - public static final int ic_action_search=0x7f020000;  
32 - public static final int ic_launcher=0x7f020001;  
33 - public static final int ic_ledarklogo=0x7f020002;  
34 - public static final int ic_menu_name=0x7f020003;  
35 - public static final int ic_startbutton=0x7f020004;  
36 - public static final int selectedonlist=0x7f020005;  
37 - public static final int selectedonlist2=0x7f020006;  
38 - public static final int startbuttontoggle=0x7f020007;  
39 - }  
40 - public static final class id {  
41 - public static final int LinearLayout1=0x7f0a0001;  
42 - public static final int RelativeLayout1=0x7f0a0006;  
43 - public static final int button=0x7f0a0007;  
44 - public static final int itemhelp=0x7f0a000d;  
45 - public static final int itemprefs=0x7f0a000c;  
46 - public static final int listView1=0x7f0a0003;  
47 - public static final int menu_settings=0x7f0a000b;  
48 - public static final int rowTextView=0x7f0a000a;  
49 - public static final int textView1=0x7f0a0004;  
50 - public static final int textView2=0x7f0a0005;  
51 - public static final int textViewTitle=0x7f0a0002;  
52 - public static final int textViewUrl=0x7f0a0009;  
53 - public static final int textViewXml=0x7f0a0008;  
54 - public static final int videoView1=0x7f0a0000;  
55 - }  
56 - public static final class layout {  
57 - public static final int activity_video=0x7f030000;  
58 - public static final int dirs=0x7f030001;  
59 - public static final int help=0x7f030002;  
60 - public static final int main_activity=0x7f030003;  
61 - public static final int rowlayout=0x7f030004;  
62 - }  
63 - public static final class menu {  
64 - public static final int activity_main=0x7f090000;  
65 - public static final int activity_video=0x7f090001;  
66 - public static final int menu=0x7f090002;  
67 - }  
68 - public static final class string {  
69 - public static final int app_name=0x7f070000;  
70 - public static final int button=0x7f07000c;  
71 - public static final int button1=0x7f07000d;  
72 - public static final int defaultURL=0x7f070013;  
73 - public static final int desc=0x7f070009;  
74 - public static final int descarregar=0x7f070003;  
75 - public static final int dir=0x7f07000a;  
76 - public static final int directoris=0x7f07000b;  
77 - public static final int hello_world=0x7f070010;  
78 - public static final int help=0x7f070008;  
79 - public static final int helpText=0x7f070012;  
80 - public static final int hint=0x7f070004;  
81 - public static final int menu_settings=0x7f070001;  
82 - public static final int prefs=0x7f070007;  
83 - public static final int startbuttondescription=0x7f07000f;  
84 - public static final int title=0x7f07000e;  
85 - public static final int title_activity_main=0x7f070002;  
86 - public static final int title_activity_video=0x7f070011;  
87 - public static final int url=0x7f070005;  
88 - public static final int urlhint=0x7f070006;  
89 - }  
90 - public static final class style {  
91 - public static final int AppTheme=0x7f080000;  
92 - public static final int leBoldText=0x7f080001;  
93 - }  
94 - public static final class xml {  
95 - public static final int prefs=0x7f040000;  
96 - }  
97 -} 1 +/* AUTO-GENERATED FILE. DO NOT MODIFY.
  2 + *
  3 + * This class was automatically generated by the
  4 + * aapt tool from the resource data it found. It
  5 + * should not be modified by hand.
  6 + */
  7 +
  8 +package com.upc.pbe.upcnews;
  9 +
  10 +public final class R {
  11 + public static final class attr {
  12 + }
  13 + public static final class color {
  14 + public static final int Black=0x7f050002;
  15 + public static final int Blue=0x7f050004;
  16 + public static final int BlueAndroid=0x7f050005;
  17 + public static final int Gay=0x7f050007;
  18 + public static final int Gray=0x7f05000a;
  19 + public static final int Green=0x7f050009;
  20 + public static final int Orange=0x7f050003;
  21 + public static final int Red=0x7f050008;
  22 + public static final int White=0x7f050006;
  23 + public static final int Whyte_POwaH=0x7f050001;
  24 + public static final int backgroundmain=0x7f050000;
  25 + }
  26 + public static final class dimen {
  27 + public static final int TitleSize=0x7f060000;
  28 + public static final int lesize=0x7f060001;
  29 + }
  30 + public static final class drawable {
  31 + public static final int ic_action_search=0x7f020000;
  32 + public static final int ic_launcher=0x7f020001;
  33 + public static final int ic_ledarklogo=0x7f020002;
  34 + public static final int ic_menu_name=0x7f020003;
  35 + public static final int ic_startbutton=0x7f020004;
  36 + public static final int selectedonlist=0x7f020005;
  37 + public static final int selectedonlist2=0x7f020006;
  38 + public static final int startbuttontoggle=0x7f020007;
  39 + }
  40 + public static final class id {
  41 + public static final int LinearLayout1=0x7f0a0001;
  42 + public static final int RelativeLayout1=0x7f0a0006;
  43 + public static final int button=0x7f0a0007;
  44 + public static final int itemhelp=0x7f0a000d;
  45 + public static final int itemprefs=0x7f0a000c;
  46 + public static final int listView1=0x7f0a0003;
  47 + public static final int menu_settings=0x7f0a000b;
  48 + public static final int rowTextView=0x7f0a000a;
  49 + public static final int textView1=0x7f0a0004;
  50 + public static final int textView2=0x7f0a0005;
  51 + public static final int textViewTitle=0x7f0a0002;
  52 + public static final int textViewUrl=0x7f0a0009;
  53 + public static final int textViewXml=0x7f0a0008;
  54 + public static final int videoView1=0x7f0a0000;
  55 + }
  56 + public static final class layout {
  57 + public static final int activity_video=0x7f030000;
  58 + public static final int dirs=0x7f030001;
  59 + public static final int help=0x7f030002;
  60 + public static final int main_activity=0x7f030003;
  61 + public static final int rowlayout=0x7f030004;
  62 + }
  63 + public static final class menu {
  64 + public static final int activity_main=0x7f090000;
  65 + public static final int activity_video=0x7f090001;
  66 + public static final int menu=0x7f090002;
  67 + }
  68 + public static final class string {
  69 + public static final int app_name=0x7f070000;
  70 + public static final int button=0x7f07000c;
  71 + public static final int button1=0x7f07000d;
  72 + public static final int defaultURL=0x7f070013;
  73 + public static final int desc=0x7f070009;
  74 + public static final int descarregar=0x7f070003;
  75 + public static final int dir=0x7f07000a;
  76 + public static final int directoris=0x7f07000b;
  77 + public static final int hello_world=0x7f070010;
  78 + public static final int help=0x7f070008;
  79 + public static final int helpText=0x7f070012;
  80 + public static final int hint=0x7f070004;
  81 + public static final int menu_settings=0x7f070001;
  82 + public static final int prefs=0x7f070007;
  83 + public static final int startbuttondescription=0x7f07000f;
  84 + public static final int title=0x7f07000e;
  85 + public static final int title_activity_main=0x7f070002;
  86 + public static final int title_activity_video=0x7f070011;
  87 + public static final int url=0x7f070005;
  88 + public static final int urlhint=0x7f070006;
  89 + }
  90 + public static final class style {
  91 + public static final int AppTheme=0x7f080000;
  92 + public static final int leBoldText=0x7f080001;
  93 + }
  94 + public static final class xml {
  95 + public static final int prefs=0x7f040000;
  96 + }
  97 +}
src/com/upc/pbe/upcnews/Directoris.java
@@ -63,25 +63,27 @@ public class Directoris extends Activity implements OnItemClickListener { @@ -63,25 +63,27 @@ public class Directoris extends Activity implements OnItemClickListener {
63 public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 63 public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
64 //Determina el funcionament al clickar en una de les entrades de al ListView 64 //Determina el funcionament al clickar en una de les entrades de al ListView
65 String path = ((TextView)view).getText().toString(); 65 String path = ((TextView)view).getText().toString();
66 - //Si es un m3u8, el descarrega, parseja i inicia la reproducci 66 + //Si es un m3u8, el descarrega, parseja i inicia la reproduccio
67 if(path.endsWith(".m3u8")){ 67 if(path.endsWith(".m3u8")){
68 path = currentFolder + path; 68 path = currentFolder + path;
69 String playlist; 69 String playlist;
70 try{ 70 try{
  71 + //Descarreguem m3u8
71 playlist = d.doInBackground(path); 72 playlist = d.doInBackground(path);
72 Parser p = new Parser(path.substring(0, path.lastIndexOf("/") + 1), this); 73 Parser p = new Parser(path.substring(0, path.lastIndexOf("/") + 1), this);
73 try{ 74 try{
  75 + //Parsing m3u8
74 ArrayList<ParentList> m3u8parsed = p.parseFile(playlist); 76 ArrayList<ParentList> m3u8parsed = p.parseFile(playlist);
75 - Log.d(TAG, "parsing completed"); 77 + Log.d(TAG, "Parsing completat");
  78 + //Creem un gestor HLS
76 HLS h = new HLS(m3u8parsed,((UpcApp)getApplication()).getLocalPath()); 79 HLS h = new HLS(m3u8parsed,((UpcApp)getApplication()).getLocalPath());
77 ((UpcApp)getApplication()).setHLS(h); 80 ((UpcApp)getApplication()).setHLS(h);
  81 + //Iniciem la reproduccio
78 Intent mIntent = new Intent(this, VideoActivity.class); 82 Intent mIntent = new Intent(this, VideoActivity.class);
79 - if(((UpcApp)getApplication()).getHLS() != null)  
80 - { 83 + if(((UpcApp)getApplication()).getHLS() != null) {
81 startActivity(mIntent); 84 startActivity(mIntent);
82 } 85 }
83 - else  
84 - { 86 + else {
85 Toast.makeText(this, "HLS engine error", Toast.LENGTH_LONG).show(); 87 Toast.makeText(this, "HLS engine error", Toast.LENGTH_LONG).show();
86 } 88 }
87 } 89 }
src/com/upc/pbe/upcnews/HLS.java
@@ -8,8 +8,8 @@ import android.net.TrafficStats; @@ -8,8 +8,8 @@ import android.net.TrafficStats;
8 import android.util.Log; 8 import android.util.Log;
9 9
10 //Gestor del protocol HTTP Live Streaming 10 //Gestor del protocol HTTP Live Streaming
11 -public class HLS  
12 -{ 11 +public class HLS {
  12 +
13 private static final String TAG = "HLS"; 13 private static final String TAG = "HLS";
14 private ArrayList<ParentList> videos; 14 private ArrayList<ParentList> videos;
15 private ArrayList<Segment> segments; 15 private ArrayList<Segment> segments;
@@ -22,15 +22,11 @@ public class HLS @@ -22,15 +22,11 @@ public class HLS
22 private Descarrega d; 22 private Descarrega d;
23 private BandwidthMeasurer bm; 23 private BandwidthMeasurer bm;
24 24
25 - public HLS(ArrayList<ParentList> parsed, String localFolder)  
26 - {  
27 - /*  
28 - * CLEAN DIRECTORY  
29 - */ 25 + public HLS(ArrayList<ParentList> parsed, String localFolder) {
  26 + //Neteja el directori i inicialitza les variables
30 File dir = new File(localFolder); 27 File dir = new File(localFolder);
31 String[] files = dir.list(); 28 String[] files = dir.list();
32 - for (int i = 0; i < files.length; i++)  
33 - { 29 + for (int i = 0; i < files.length; i++) {
34 File deleteme = new File(dir, files[i]); 30 File deleteme = new File(dir, files[i]);
35 Log.d(TAG, "Deleted " + files[i].toString()); 31 Log.d(TAG, "Deleted " + files[i].toString());
36 deleteme.delete(); 32 deleteme.delete();
@@ -43,22 +39,19 @@ public class HLS @@ -43,22 +39,19 @@ public class HLS
43 d = new Descarrega(); 39 d = new Descarrega();
44 } 40 }
45 41
46 - public void loadVideo()  
47 - { 42 + public void loadVideo() {
  43 + //Carrega la seguent qualitat i, a partir d'aixo, el seguent segment
48 qualities = videos.get(currentVideo++).getLists(); 44 qualities = videos.get(currentVideo++).getLists();
49 segments = qualities.get(currentQuality).getSegments(); 45 segments = qualities.get(currentQuality).getSegments();
50 - if (currentVideo == videos.size())  
51 - { 46 + if (currentVideo == videos.size()) {
52 endReached = true; 47 endReached = true;
53 } 48 }
54 } 49 }
55 50
56 - public String next() throws IOException  
57 - {  
58 - if(currentSegment == segments.size())  
59 - {  
60 - if(endReached)  
61 - { 51 + public String next() throws IOException {
  52 + //Determina la seguent qualitat a partir de la velocitat
  53 + if(currentSegment == segments.size()) {
  54 + if(endReached) {
62 return null; 55 return null;
63 } 56 }
64 loadVideo(); 57 loadVideo();
@@ -70,8 +63,7 @@ public class HLS @@ -70,8 +63,7 @@ public class HLS
70 d.descarregarguardar(seg.getURL(),localFolder); 63 d.descarregarguardar(seg.getURL(),localFolder);
71 double bps = bm.Measure(segmentBytes,startTime); 64 double bps = bm.Measure(segmentBytes,startTime);
72 Log.d(TAG, "Current KB/s: " + (bps/8e3)); 65 Log.d(TAG, "Current KB/s: " + (bps/8e3));
73 - if((bps < qualities.get(currentQuality).getQuality()) && (bps != -1))  
74 - { 66 + if((bps < qualities.get(currentQuality).getQuality()) && (bps != -1)) {
75 currentQuality++; 67 currentQuality++;
76 } 68 }
77 return localFolder + seg.getURL().substring(seg.getURL().lastIndexOf("/")+1, seg.getURL().length()); 69 return localFolder + seg.getURL().substring(seg.getURL().lastIndexOf("/")+1, seg.getURL().length());
src/com/upc/pbe/upcnews/MainActivity.java
@@ -30,7 +30,7 @@ public class MainActivity extends Activity implements OnClickListener { @@ -30,7 +30,7 @@ public class MainActivity extends Activity implements OnClickListener {
30 super.onCreate(savedInstanceState); 30 super.onCreate(savedInstanceState);
31 setContentView(R.layout.main_activity); 31 setContentView(R.layout.main_activity);
32 Log.d(TAG, "onCreated"); 32 Log.d(TAG, "onCreated");
33 - //Especifiquem la ruta de descrrega 33 + //Especifiquem la ruta de descarrega
34 File tempFolder = new File(((UpcApp)getApplication()).getLocalPath()); 34 File tempFolder = new File(((UpcApp)getApplication()).getLocalPath());
35 if(tempFolder.mkdirs()) 35 if(tempFolder.mkdirs())
36 { 36 {
src/com/upc/pbe/upcnews/VideoActivity.java
@@ -12,33 +12,34 @@ import android.widget.MediaController; @@ -12,33 +12,34 @@ import android.widget.MediaController;
12 import android.widget.Toast; 12 import android.widget.Toast;
13 import android.widget.VideoView; 13 import android.widget.VideoView;
14 14
15 -public class VideoActivity extends Activity  
16 -{ 15 +//Tercera activitat principal, executa la reproduccio del video sencer
  16 +public class VideoActivity extends Activity {
  17 +
  18 + private final static String TAG = "VideoActivity";
17 private VideoView video; 19 private VideoView video;
18 private HLS h; 20 private HLS h;
19 - private final static String TAG = "VideoActivity";  
20 21
21 @Override 22 @Override
22 public void onCreate(Bundle savedInstanceState) { 23 public void onCreate(Bundle savedInstanceState) {
  24 + //Creem el layout
23 super.onCreate(savedInstanceState); 25 super.onCreate(savedInstanceState);
24 setContentView(R.layout.activity_video); 26 setContentView(R.layout.activity_video);
25 video = (VideoView) findViewById(R.id.videoView1); 27 video = (VideoView) findViewById(R.id.videoView1);
26 - video.setOnCompletionListener(new MediaPlayer.OnCompletionListener()  
27 - {  
28 - public void onCompletion(MediaPlayer mp)  
29 - { 28 + //Creem un listener associat al fi de l'activitat (el fi de cada ts)
  29 + video.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
  30 + public void onCompletion(MediaPlayer mp) {
  31 + //Al acabar cada ts, reproduit el seguent
30 playNext(); 32 playNext();
31 } 33 }
32 }); 34 });
  35 + //Creem un gestor HLS, carreguem el video i iniciem la reproduccio
33 h = ((UpcApp)getApplication()).getHLS(); 36 h = ((UpcApp)getApplication()).getHLS();
34 h.loadVideo(); 37 h.loadVideo();
35 playNext(); 38 playNext();
36 } 39 }
37 40
38 - public void play(String url)  
39 - {  
40 - if(url == null)  
41 - { 41 + public void play(String url) {
  42 + if(url == null) {
42 super.finish(); 43 super.finish();
43 return; 44 return;
44 } 45 }
@@ -49,16 +50,13 @@ public class VideoActivity extends Activity @@ -49,16 +50,13 @@ public class VideoActivity extends Activity
49 video.requestFocus(); 50 video.requestFocus();
50 } 51 }
51 52
52 - public void playNext()  
53 - {  
54 - try  
55 - { 53 + public void playNext() {
  54 + try {
56 String next = h.next(); 55 String next = h.next();
57 play(next); 56 play(next);
58 } 57 }
59 - catch(IOException e)  
60 - {  
61 - Toast.makeText(this, "Can't find segment", Toast.LENGTH_LONG).show(); 58 + catch(IOException e) {
  59 + Toast.makeText(this, "No s'ha trobat el segment", Toast.LENGTH_LONG).show();
62 super.finish(); 60 super.finish();
63 return; 61 return;
64 } 62 }
@@ -66,6 +64,7 @@ public class VideoActivity extends Activity @@ -66,6 +64,7 @@ public class VideoActivity extends Activity
66 64
67 @Override 65 @Override
68 public boolean onCreateOptionsMenu(Menu menu) { 66 public boolean onCreateOptionsMenu(Menu menu) {
  67 + //Determina el funcionament al apretar la tecla d'opcions
69 getMenuInflater().inflate(R.menu.activity_video, menu); 68 getMenuInflater().inflate(R.menu.activity_video, menu);
70 return true; 69 return true;
71 } 70 }