From a3a982892d07914c1d31eefa62ffc20ab32cb20e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lars=20Jans=F8n=20Engvik?= Date: Mon, 5 Dec 2011 21:30:42 +0100 Subject: [PATCH] New buy tickets. --- AndroidManifest.xml | 1 + default.properties | 11 ++ .../app/ui/DnsActivity.java | 5 +- .../app/ui/EventListActivity.java | 106 ++++++++++-------- .../app/ui/EventListTicketsActivity.java | 52 +++++++++ 5 files changed, 128 insertions(+), 47 deletions(-) create mode 100644 default.properties create mode 100644 src/com/studentersamfundet/app/ui/EventListTicketsActivity.java diff --git a/AndroidManifest.xml b/AndroidManifest.xml index 4a55d07..f547fb9 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -20,6 +20,7 @@ + \ No newline at end of file diff --git a/default.properties b/default.properties new file mode 100644 index 0000000..ea89160 --- /dev/null +++ b/default.properties @@ -0,0 +1,11 @@ +# This file is automatically generated by Android Tools. +# Do not modify this file -- YOUR CHANGES WILL BE ERASED! +# +# This file must be checked in Version Control Systems. +# +# To customize properties used by the Ant build system use, +# "ant.properties", and override values to adapt the script to your +# project structure. + +# Project target. +target=android-8 diff --git a/src/com/studentersamfundet/app/ui/DnsActivity.java b/src/com/studentersamfundet/app/ui/DnsActivity.java index 97edb80..2ad8117 100644 --- a/src/com/studentersamfundet/app/ui/DnsActivity.java +++ b/src/com/studentersamfundet/app/ui/DnsActivity.java @@ -150,8 +150,9 @@ public class DnsActivity extends BaseDnsActivity { public void ticketButton(View v) { Intent intent = new Intent(); - intent.setAction(Intent.ACTION_VIEW); - intent.setData(Uri.parse("http://m.billettservice.no/ticket/search.do?articles=tmno&query=studentersamfundet&submit=S%C3%B8k")); + intent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT + | Intent.FLAG_ACTIVITY_SINGLE_TOP); + intent.setClass(this, EventListTicketsActivity.class); startActivity(intent); } diff --git a/src/com/studentersamfundet/app/ui/EventListActivity.java b/src/com/studentersamfundet/app/ui/EventListActivity.java index 9159417..91c7d9d 100644 --- a/src/com/studentersamfundet/app/ui/EventListActivity.java +++ b/src/com/studentersamfundet/app/ui/EventListActivity.java @@ -5,6 +5,7 @@ import java.text.SimpleDateFormat; import org.w3c.dom.NodeList; +import android.R.bool; import android.app.Dialog; import android.content.ActivityNotFoundException; import android.content.Intent; @@ -36,9 +37,9 @@ import com.studentersamfundet.app.ui.ChooseCategoryDialog.Callback; public class EventListActivity extends BaseDnsActivity { public static final String feedURL = "http://studentersamfundet.no/rss/lars_program_feed.php"; - private FeedFetcher feed; - private RSSParserProgram parser; - private DataHandler dataHandler; + protected FeedFetcher feed; + protected RSSParserProgram parser; + protected DataHandler dataHandler; private String currentCategory = Event.ALL; @@ -50,7 +51,7 @@ public class EventListActivity extends BaseDnsActivity { this.feed = new FeedFetcher(this, feedURL); this.parser = new RSSParserProgram(); - ListCreator lc = new ListCreator(Event.ALL, false); + ListCreator lc = getListCreator(Event.ALL, false); lc.execute(); } @@ -66,7 +67,7 @@ public class EventListActivity extends BaseDnsActivity { switch (item.getItemId()) { case R.id.menu_refresh: - ListCreator lc = new ListCreator(Event.ALL, true); + ListCreator lc = getListCreator(Event.ALL, true); lc.execute(); return true; @@ -84,14 +85,13 @@ public class EventListActivity extends BaseDnsActivity { if (currentCategory.equals(Event.ALL)) { super.onBackPressed(); } else { - ListCreator lc = new ListCreator(Event.ALL, false); + ListCreator lc = getListCreator(Event.ALL, false); lc.execute(); } } - protected ListAdapter createAdapter(String category) { - Event[] events = dataHandler.getEvents(category); + protected ListAdapter createAdapter(Event[] events) { ListAdapter adapter = new ArrayAdapter(this, R.layout.event_list_row, R.id.event_list_row_text, events) { @Override @@ -129,41 +129,8 @@ public class EventListActivity extends BaseDnsActivity { priceView.setTextAppearance(EventListActivity.this, R.style.ListItemTextDate); /* Add onClickListeners: */ - row.setOnClickListener(new OnClickListener() { - - public void onClick(View v) { - Intent intent = new Intent(EventListActivity.this, EventViewActivity.class); - intent.putExtra("event", e); - - startActivity(intent); - } - }); - - row.setOnLongClickListener(new OnLongClickListener() { - - public boolean onLongClick(View v) { - if (e.getDate() == null) - return false; - - long startDate = e.getDate().getTime(); - - try { - Intent intent = new Intent(Intent.ACTION_EDIT); - intent.setType("vnd.android.cursor.item/event"); - intent.putExtra("title", e.title); - intent.putExtra("beginTime", startDate); - intent.putExtra("endTime", startDate + (2*60*60*1000)); // Two hours - intent.putExtra("allDay", false); - intent.putExtra("eventLocation", e.getLocation()); - intent.putExtra("reminder", false); - - startActivity(intent); - return true; - } catch (ActivityNotFoundException e) { - return false; - } - } - }); + row.setOnClickListener(getShortClickListener(e)); + row.setOnLongClickListener(getLongClickListener(e)); return row; } @@ -179,7 +146,7 @@ public class EventListActivity extends BaseDnsActivity { if (message.length < 1) message = new String[] { Event.ALL }; - ListCreator lc = new ListCreator(message[0], false); + ListCreator lc = getListCreator(message[0], false); lc.execute(); } }; @@ -235,7 +202,8 @@ public class EventListActivity extends BaseDnsActivity { protected void onPostExecute(Boolean result) { if (result) { ListView list = (ListView)findViewById(R.id.event_list); - ListAdapter adapter = createAdapter(this.category); + Event[] events = getEvents(); + ListAdapter adapter = createAdapter(events); list.setAdapter(adapter); list.setVisibility(View.VISIBLE); @@ -248,5 +216,53 @@ public class EventListActivity extends BaseDnsActivity { toast.show(); } } + + protected Event[] getEvents() { + return dataHandler.getEvents(this.category); + } + } + + protected ListCreator getListCreator(String category, boolean forcedUpdate) { + return new ListCreator(category, forcedUpdate); + } + + protected OnClickListener getShortClickListener (final Event e) { + return new OnClickListener() { + + @Override + public void onClick(View v) { + Intent intent = new Intent(EventListActivity.this, EventViewActivity.class); + intent.putExtra("event", e); + + startActivity(intent); + } + }; + } + + protected OnLongClickListener getLongClickListener (final Event e) { + return new OnLongClickListener() { + public boolean onLongClick(View v) { + if (e.getDate() == null) + return false; + + long startDate = e.getDate().getTime(); + + try { + Intent intent = new Intent(Intent.ACTION_EDIT); + intent.setType("vnd.android.cursor.item/event"); + intent.putExtra("title", e.title); + intent.putExtra("beginTime", startDate); + intent.putExtra("endTime", startDate + (2*60*60*1000)); // Two hours + intent.putExtra("allDay", false); + intent.putExtra("eventLocation", e.getLocation()); + intent.putExtra("reminder", false); + + startActivity(intent); + return true; + } catch (ActivityNotFoundException e) { + return false; + } + } + }; } } diff --git a/src/com/studentersamfundet/app/ui/EventListTicketsActivity.java b/src/com/studentersamfundet/app/ui/EventListTicketsActivity.java new file mode 100644 index 0000000..6bbd874 --- /dev/null +++ b/src/com/studentersamfundet/app/ui/EventListTicketsActivity.java @@ -0,0 +1,52 @@ +package com.studentersamfundet.app.ui; + +import android.content.Intent; +import android.net.Uri; +import android.view.View; +import android.view.View.OnClickListener; +import android.view.View.OnLongClickListener; + +import com.studentersamfundet.app.Event; + +public class EventListTicketsActivity extends EventListActivity { + + class TicketListCreator extends ListCreator { + public TicketListCreator(String category, boolean forcedUpdate) { + super(category, forcedUpdate); + } + + @Override + protected Event[] getEvents() { + return dataHandler.getEventsWithTickets(); + } + } + + @Override + protected ListCreator getListCreator(String category, boolean forcedUpdate) { + return new TicketListCreator(category, forcedUpdate); + } + + protected OnClickListener getShortClickListener (final Event e) { + return new OnClickListener() { + + @Override + public void onClick(View v) { + Uri webDestination = e.getTicketUri(); + + Intent webIntent = new Intent(Intent.ACTION_VIEW, webDestination); + startActivity(webIntent); + + } + }; + } + + protected OnLongClickListener getLongClickListener (final Event e) { + return new OnLongClickListener() { + + @Override + public boolean onLongClick(View v) { + return false; + } + }; + } +}