summaryrefslogtreecommitdiff
path: root/vdrmanager
diff options
context:
space:
mode:
Diffstat (limited to 'vdrmanager')
-rw-r--r--vdrmanager/res/layout/epg_detail.xml30
-rw-r--r--vdrmanager/res/values/common.xml2
-rw-r--r--vdrmanager/res/values/epg.xml1
-rw-r--r--vdrmanager/res/values/progress.xml1
-rw-r--r--vdrmanager/src/de/bjusystems/vdrmanager/gui/EpgDetailsActivity.java184
5 files changed, 146 insertions, 72 deletions
diff --git a/vdrmanager/res/layout/epg_detail.xml b/vdrmanager/res/layout/epg_detail.xml
index bc64690..b7761be 100644
--- a/vdrmanager/res/layout/epg_detail.xml
+++ b/vdrmanager/res/layout/epg_detail.xml
@@ -51,17 +51,24 @@
</LinearLayout>
-
+ <LinearLayout android:layout_width="fill_parent" android:padding="3dip" android:paddingBottom="1dip"
+ android:layout_height="wrap_content" android:layout_marginTop="0dip"
+ android:orientation="horizontal">
+
+ <ImageView android:id="@+id/epg_timer_state" android:layout_marginRight="5dip"
+ android:layout_width="wrap_content" android:layout_height="fill_parent"
+ android:layout_centerVertical="true" android:visibility="gone" />
+
<TextView
android:id="@+id/epg_detail_shorttext"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="left"
+ android:layout_weight="1"
android:text="Krimikömedie"
- android:textAppearance="?android:textAppearanceSmall"
- android:layout_below="@id/epg_detail_time"/>
-
-
+ android:textAppearance="?android:textAppearanceSmall"/>
+
+ </LinearLayout>
<TextView
@@ -153,6 +160,19 @@
style="?android:attr/buttonStyleSmall"
android:text="@string/epg_event_imdb_text"/>
+
+ <!--
+ <ImageButton
+ android:id="@+id/epg_event_share"
+ android:src="@android:drawable/ic_menu_share"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content" android:layout_marginLeft="20dip" android:layout_marginRight="20dip"
+ android:layout_gravity="center_horizontal"
+ android:layout_centerHorizontal="true"
+ android:background="@android:drawable/list_selector_background"
+ style="?android:attr/buttonStyleSmall"
+ android:text="@string/epg_event_share_text"/>
+ -->
<!--
<ImageButton
diff --git a/vdrmanager/res/values/common.xml b/vdrmanager/res/values/common.xml
index 340b42b..9d1670e 100644
--- a/vdrmanager/res/values/common.xml
+++ b/vdrmanager/res/values/common.xml
@@ -7,4 +7,6 @@
<string name="no_connection_retry">Retry</string>
<string name="refresh">Refresh</string>
<string name="done">Done</string>
+ <string name="share">Share</string>
+ <string name="share_chooser">Share EPG Entry</string>
</resources>
diff --git a/vdrmanager/res/values/epg.xml b/vdrmanager/res/values/epg.xml
index db84fdd..3936bf4 100644
--- a/vdrmanager/res/values/epg.xml
+++ b/vdrmanager/res/values/epg.xml
@@ -9,6 +9,7 @@
<string name="epg_list_search_label">Search results</string>
<!-- create timer -->
+ <string name="epg_event_share_text">Share</string>
<string name="epg_event_imdb_text">IMDB Search</string>
<string name="epg_eent_livetv_text">Stream</string>
<string name="epg_event_create_timer_text">Add timer</string>
diff --git a/vdrmanager/res/values/progress.xml b/vdrmanager/res/values/progress.xml
index 8007725..0f27c03 100644
--- a/vdrmanager/res/values/progress.xml
+++ b/vdrmanager/res/values/progress.xml
@@ -16,6 +16,7 @@
<string name="progress_wakeup_error">Error sending wakeup request: %1$s</string>
<string name="progress_timer_save">Saving timer …</string>
<string name="progress_timer_delete">Deleting timer …</string>
+ <string name="progress_recording_delete">Deleting recording …</string>
<string name="progress_timer_enable">Enabling timer …</string>
<string name="progress_timer_modify">Updating timer …</string>
<string name="progress_timer_disable">Disabling timer …</string>
diff --git a/vdrmanager/src/de/bjusystems/vdrmanager/gui/EpgDetailsActivity.java b/vdrmanager/src/de/bjusystems/vdrmanager/gui/EpgDetailsActivity.java
index b0a7c01..ca492d5 100644
--- a/vdrmanager/src/de/bjusystems/vdrmanager/gui/EpgDetailsActivity.java
+++ b/vdrmanager/src/de/bjusystems/vdrmanager/gui/EpgDetailsActivity.java
@@ -8,10 +8,16 @@ import android.content.Intent;
import android.net.Uri;
import android.os.AsyncTask;
import android.os.Bundle;
+import android.view.ContextMenu;
+import android.view.Menu;
+import android.view.MenuItem;
import android.view.MotionEvent;
import android.view.View;
+import android.view.ContextMenu.ContextMenuInfo;
import android.view.View.OnClickListener;
+import android.widget.AdapterView;
import android.widget.ImageButton;
+import android.widget.ImageView;
import android.widget.ProgressBar;
import android.widget.TextView;
import android.widget.Toast;
@@ -22,9 +28,11 @@ import de.bjusystems.vdrmanager.data.Channel;
import de.bjusystems.vdrmanager.data.Epg;
import de.bjusystems.vdrmanager.data.Event;
import de.bjusystems.vdrmanager.data.EventFormatter;
+import de.bjusystems.vdrmanager.data.EventListItem;
import de.bjusystems.vdrmanager.data.Preferences;
import de.bjusystems.vdrmanager.data.Timer;
import de.bjusystems.vdrmanager.gui.SimpleGestureFilter.SimpleGestureListener;
+import de.bjusystems.vdrmanager.utils.date.DateFormatter;
import de.bjusystems.vdrmanager.utils.svdrp.EpgClient;
import de.bjusystems.vdrmanager.utils.svdrp.SvdrpException;
@@ -37,79 +45,83 @@ public class EpgDetailsActivity extends Activity implements OnClickListener,
SimpleGestureListener {
public static String IMDB_URL = "http://www.%s/find?s=all&q=%s";
-
+
private SimpleGestureFilter detector;
-
+
private String highlight = null;
-
+
ImageButton event_left;
-
+
ImageButton event_right;
-
+
+ Event cEvent;
+
@Override
protected void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
- Intent i = getIntent();
- highlight = i.getStringExtra(Intents.HIGHLIGHT);
-
+ Intent i = getIntent();
+ highlight = i.getStringExtra(Intents.HIGHLIGHT);
+
// Attach view
setContentView(R.layout.epg_detail);
-
-
+
detector = new SimpleGestureFilter(this, this);
- //event_left = (ImageButton) findViewById(R.id.epg_event_left);
- //event_right = (ImageButton) findViewById(R.id.epg_event_right);
-
-
+ // event_left = (ImageButton) findViewById(R.id.epg_event_left);
+ // event_right = (ImageButton) findViewById(R.id.epg_event_right);
+
// current event
final VdrManagerApp app = (VdrManagerApp) getApplication();
epgs = app.getCurrentEpgList();
Event epg = app.getCurrentEvent();
-
-
+
counter = 0;
- for(Event e : epgs){
- if(epg == e){
+ for (Event e : epgs) {
+ if (epg == e) {
break;
}
counter++;
}
-
-
- new AsyncTask<Void,Void,Void>(){
-
+ new AsyncTask<Void, Void, Void>() {
+
protected void onPreExecute() {
-// event_left.setEnabled(false);
- // event_right.setEnabled(false);
+ // event_left.setEnabled(false);
+ // event_right.setEnabled(false);
};
-
- protected Void doInBackground(Void... params) {
+
+ protected Void doInBackground(Void... params) {
initEPGs();
return null;
};
-
+
protected void onPostExecute(Void result) {
- // event_left.setEnabled(true);
- // event_right.setEnabled(true);
+ // event_left.setEnabled(true);
+ // event_right.setEnabled(true);
};
-
- }.execute((Void)null);
+
+ }.execute((Void) null);
publishEPG(epg);
-
- //TODO was ist das?
+
+ // TODO was ist das?
app.clearActivitiesToFinish();
}
+ private void setState(ImageView view, int res) {
+ view.setVisibility(View.VISIBLE);
+ view.setImageResource(res);
+ }
+
public void publishEPG(Event event) {
-
+
+ cEvent = event;
+
String cn = event.getChannelName();
-
- setTitle(getString(R.string.epg_of_a_channel,cn));
-
+
+ setTitle(getString(R.string.epg_of_a_channel, cn));
+
final EventFormatter formatter = new EventFormatter(event);
final TextView title = (TextView) findViewById(R.id.epg_detail_title);
@@ -120,18 +132,30 @@ public class EpgDetailsActivity extends Activity implements OnClickListener,
((TextView) findViewById(R.id.epg_detail_time)).setText(formatter
.getDate() + " " + formatter.getTime());
-
+
TextView dura = (TextView) findViewById(R.id.epg_detail_duration);
-
+
((TextView) findViewById(R.id.epg_detail_channel)).setText(event
.getChannelName());
- //((TextView) findViewById(R.id.epg_detail_date)).setText(formatter
- // .getLongDate());
-
+ // ((TextView) findViewById(R.id.epg_detail_date)).setText(formatter
+ // .getLongDate());
+ ImageView state = (ImageView) findViewById(R.id.epg_timer_state);
+
+ switch (event.getTimerState()) {
+ case Active:
+ setState(state, R.drawable.timer_active);
+ break;
+ case Inactive:
+ setState(state, R.drawable.timer_inactive);
+ break;
+ case Recording:
+ setState(state, R.drawable.timer_recording);
+ break;
+ }
+
final TextView shortText = (TextView) findViewById(R.id.epg_detail_shorttext);
shortText.setText(Utils.highlight(formatter.getShortText(), highlight));
-
final TextView textView = (TextView) findViewById(R.id.epg_detail_description);
textView.setText(Utils.highlight(formatter.getDescription(), highlight));
@@ -141,13 +165,13 @@ public class EpgDetailsActivity extends Activity implements OnClickListener,
// .setBackgroundColor(color);
int p = Utils.getProgress(event);
-
- ((ProgressBar) findViewById(R.id.epg_detail_progress))
- .setProgress(p);
+
+ ((ProgressBar) findViewById(R.id.epg_detail_progress)).setProgress(p);
int dm = Utils.getDuration(event);
- if(Utils.isLive(event)){
+ if (Utils.isLive(event)) {
int rest = dm - (dm * p / 100);
- dura.setText(getString(R.string.epg_duration_template_live, rest, dm));
+ dura.setText(getString(R.string.epg_duration_template_live, rest,
+ dm));
} else {
dura.setText(getString(R.string.epg_duration_template, dm));
}
@@ -157,17 +181,16 @@ public class EpgDetailsActivity extends Activity implements OnClickListener,
// register button handler
setThisAsOnClickListener(R.id.epg_event_create_timer);
-
-
+
View b = findViewById(R.id.epg_event_imdb);
-
- if(Preferences.get().isShowImdbButton() == false){
+
+ if (Preferences.get().isShowImdbButton() == false) {
b.setVisibility(View.GONE);
} else {
b.setVisibility(View.VISIBLE);
setThisAsOnClickListener(b);
}
-
+
b = findViewById(R.id.epg_event_livetv);
if (Utils.isLive(event) == false) {
b.setVisibility(View.GONE);
@@ -175,8 +198,8 @@ public class EpgDetailsActivity extends Activity implements OnClickListener,
b.setVisibility(View.VISIBLE);
setThisAsOnClickListener(b);
}
-// setThisAsOnClickListener(R.id.epg_event_left);
-// setThisAsOnClickListener(R.id.epg_event_right);
+ // setThisAsOnClickListener(R.id.epg_event_left);
+ // setThisAsOnClickListener(R.id.epg_event_right);
// set button text
if (event instanceof Timer) {
@@ -200,9 +223,9 @@ public class EpgDetailsActivity extends Activity implements OnClickListener,
@Override
protected void onResume() {
super.onResume();
- //TODO Check here whether the config has changed for imdb
- //TODO check here if we are still live ?
-
+ // TODO Check here whether the config has changed for imdb
+ // TODO check here if we are still live ?
+
}
@Override
@@ -211,23 +234,26 @@ public class EpgDetailsActivity extends Activity implements OnClickListener,
}
public void onClick(final View v) {
-
- final VdrManagerApp app = (VdrManagerApp) getApplication();
switch (v.getId()) {
case R.id.epg_event_livetv:
- Event event = app.getCurrentEvent();
- Utils.stream(this, event.getChannelNumber());
+ Utils.stream(this, cEvent.getChannelNumber());
break;
case R.id.epg_event_create_timer:
- Toast.makeText(this, "Soon we get here the timer menu", Toast.LENGTH_SHORT).show();
+ Toast.makeText(this, "Soon we get here the timer menu",
+ Toast.LENGTH_SHORT).show();
break;
case R.id.epg_event_imdb:
final TextView title = (TextView) findViewById(R.id.epg_detail_title);
- String url = String.format(IMDB_URL,Preferences.get().getImdbUrl(), String.valueOf(title.getText()));
+ String url = String.format(IMDB_URL,
+ Preferences.get().getImdbUrl(),
+ String.valueOf(title.getText()));
Intent i = new Intent(Intent.ACTION_VIEW);
i.setData(Uri.parse(url));
startActivity(i);
break;
+// case R.id.epg_event_share:
+// shareEvent(cEvent);
+// break;
}
}
@@ -258,7 +284,7 @@ public class EpgDetailsActivity extends Activity implements OnClickListener,
int counter = 0;
public void initEPGs() {
-
+
if (epgs != null) {
return;
}
@@ -299,8 +325,8 @@ public class EpgDetailsActivity extends Activity implements OnClickListener,
}
private void nextEPG() {
- if(counter < epgs.size() - 1){
- counter ++ ;
+ if (counter < epgs.size() - 1) {
+ counter++;
}
Event epg = epgs.get(counter);
publishEPG(epg);
@@ -316,4 +342,28 @@ public class EpgDetailsActivity extends Activity implements OnClickListener,
return super.dispatchTouchEvent(me);
}
+ private static final int MENU_SHARE = 0;
+
+ @Override
+ public final boolean onCreateOptionsMenu(final Menu menu) {
+ super.onCreateOptionsMenu(menu);
+ MenuItem item;
+ item = menu.add(MENU_SHARE, MENU_SHARE, 0, R.string.share);
+ item.setIcon(android.R.drawable.ic_menu_share);
+ item.setAlphabeticShortcut('s');
+ return true;
+ }
+
+ private void shareEvent(Event event) {
+ Utils.shareEvent(this, event);
+ }
+
+ @Override
+ public boolean onOptionsItemSelected(MenuItem item) {
+ if (item.getItemId() == MENU_SHARE) {
+ shareEvent(cEvent);
+ return true;
+ }
+ return super.onOptionsItemSelected(item);
+ }
}