summaryrefslogtreecommitdiffstats
path: root/src/de/animux/android/andmal/AnimeListActivity.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/de/animux/android/andmal/AnimeListActivity.java')
-rw-r--r--src/de/animux/android/andmal/AnimeListActivity.java91
1 files changed, 91 insertions, 0 deletions
diff --git a/src/de/animux/android/andmal/AnimeListActivity.java b/src/de/animux/android/andmal/AnimeListActivity.java
new file mode 100644
index 0000000..8db6635
--- /dev/null
+++ b/src/de/animux/android/andmal/AnimeListActivity.java
@@ -0,0 +1,91 @@
+package de.animux.android.andmal;
+
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.LinkedList;
+import java.util.Map;
+
+import de.animux.android.andmal.api.anime.Anime;
+import de.animux.android.andmal.api.anime.AnimeList;
+import de.animux.android.andmal.api.anime.State;
+import de.animux.android.andmal.util.SeparatedListAdapter;
+
+import android.app.Activity;
+import android.app.Dialog;
+import android.app.ProgressDialog;
+import android.os.Bundle;
+import android.widget.ListView;
+import android.widget.SimpleAdapter;
+
+public class AnimeListActivity extends Activity {
+
+ public final static String ITEM_TITLE = "title";
+ public final static String ITEM_CAPTION = "caption";
+
+ public final static int INITIAL_SYNC = 0;
+
+ public Map<String, ?> createItem(String title, String caption) {
+ Map<String, String> item = new HashMap<String, String>();
+ item.put(ITEM_TITLE, title);
+ item.put(ITEM_CAPTION, caption);
+ return item;
+ }
+
+ /** Called when the activity is first created. */
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+
+ showDialog(INITIAL_SYNC);
+
+ AnimeList animeList = null;
+ try {
+ animeList = new AnimeList("AlexanderS");
+ } catch (Exception e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+
+ dismissDialog(INITIAL_SYNC);
+
+ SeparatedListAdapter adapter = new SeparatedListAdapter(this);
+ Map<State, java.util.List<Anime>> animes = animeList.getAnimes();
+
+ for (State s : State.values())
+ addAnimes(adapter, animes.get(s), s.toString());
+
+ ListView list = new ListView(this);
+ list.setAdapter(adapter);
+ this.setContentView(list);
+ }
+
+ private void addAnimes(SeparatedListAdapter adapter,
+ Collection<Anime> animes, String sectionName) {
+ if (animes != null && animes.size() > 0) {
+ java.util.List<Map<String, ?>> listSection = new LinkedList<Map<String, ?>>();
+
+ for (Anime a : animes) {
+ listSection.add(createItem(a.getTitle(), a.getWatchedEpisodes()
+ + "/" + a.getEpisodes()));
+ }
+
+ adapter.addSection(sectionName, new SimpleAdapter(this,
+ listSection, R.layout.list_item, new String[] { ITEM_TITLE,
+ ITEM_CAPTION }, new int[] { R.id.list_item_title,
+ R.id.list_item_other }));
+ }
+ }
+
+ @Override
+ protected Dialog onCreateDialog(int id) {
+ switch (id) {
+ case INITIAL_SYNC:
+ ProgressDialog dialog = ProgressDialog.show(this, "",
+ "Loading list. Please wait...", true);
+ return dialog;
+ default:
+ return super.onCreateDialog(id);
+ }
+ }
+
+} \ No newline at end of file