summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--AndroidManifest.xml1
-rw-r--r--res/layout/miroguide_category.xml21
-rw-r--r--res/values/strings.xml2
-rw-r--r--src/de/danoeh/antennapod/activity/MiroGuideCategoryActivity.java107
-rw-r--r--src/de/danoeh/antennapod/activity/MiroGuideMainActivity.java12
5 files changed, 143 insertions, 0 deletions
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 154688714..949d5db3f 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -195,6 +195,7 @@
android:name="android.app.default_searchable"
android:value=".activity.MiroSearchActivity" />
</activity>
+ <activity android:name=".activity.MiroGuideCategoryActivity" android:configChanges="keyboardHidden|orientation" android:theme="@style/StyledIndicators"></activity>
</application>
</manifest> \ No newline at end of file
diff --git a/res/layout/miroguide_category.xml b/res/layout/miroguide_category.xml
new file mode 100644
index 000000000..1ab614050
--- /dev/null
+++ b/res/layout/miroguide_category.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:id="@+id/main_view"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:orientation="vertical" >
+
+ <com.viewpagerindicator.TabPageIndicator
+ android:id="@+id/tabs"
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content"
+ />
+
+ <android.support.v4.view.ViewPager
+ android:id="@+id/viewpager"
+ android:layout_width="match_parent"
+ android:layout_height="0px"
+ android:layout_weight="1">
+ </android.support.v4.view.ViewPager>
+
+</LinearLayout>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index cf55941af..2cc096574 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -164,6 +164,8 @@
<string name="miro_guide_label">Miro Guide</string>
<string name="loading_label">Loading...</string>
<string name="miro_search_hint">Search Miro Guide</string>
+ <string name="popular_label">Popular</string>
+ <string name="best_rating_label">Best rating</string>
</resources> \ No newline at end of file
diff --git a/src/de/danoeh/antennapod/activity/MiroGuideCategoryActivity.java b/src/de/danoeh/antennapod/activity/MiroGuideCategoryActivity.java
new file mode 100644
index 000000000..553ba0bf6
--- /dev/null
+++ b/src/de/danoeh/antennapod/activity/MiroGuideCategoryActivity.java
@@ -0,0 +1,107 @@
+package de.danoeh.antennapod.activity;
+
+import android.os.Bundle;
+import android.support.v4.app.Fragment;
+import android.support.v4.app.FragmentManager;
+import android.support.v4.app.FragmentStatePagerAdapter;
+import android.support.v4.view.ViewPager;
+import android.util.Log;
+
+import com.actionbarsherlock.app.SherlockFragmentActivity;
+import com.actionbarsherlock.view.Menu;
+import com.actionbarsherlock.view.MenuItem;
+import com.viewpagerindicator.TabPageIndicator;
+
+import de.danoeh.antennapod.R;
+import de.danoeh.antennapod.fragment.MiroGuideChannellistFragment;
+
+public class MiroGuideCategoryActivity extends SherlockFragmentActivity {
+ private static final String TAG = "MiroGuideCategoryActivity";
+
+ public static String EXTRA_CATEGORY = "category";
+
+ private ViewPager viewpager;
+ private CategoryPagerAdapter pagerAdapter;
+ private TabPageIndicator tabs;
+
+ private String category;
+
+ @Override
+ protected void onCreate(Bundle arg0) {
+ super.onCreate(arg0);
+ getSupportActionBar().setDisplayHomeAsUpEnabled(true);
+ setContentView(R.layout.miroguide_category);
+
+ viewpager = (ViewPager) findViewById(R.id.viewpager);
+ tabs = (TabPageIndicator) findViewById(R.id.tabs);
+
+ category = getIntent().getStringExtra(EXTRA_CATEGORY);
+ if (category != null) {
+ getSupportActionBar().setTitle(category);
+ pagerAdapter = new CategoryPagerAdapter(getSupportFragmentManager());
+ viewpager.setAdapter(pagerAdapter);
+ tabs.setViewPager(viewpager);
+ } else {
+ Log.e(TAG, "Activity was started with invalid arguments");
+ }
+
+ }
+
+ @Override
+ public boolean onCreateOptionsMenu(Menu menu) {
+ return true;
+ }
+
+ @Override
+ public boolean onOptionsItemSelected(MenuItem item) {
+ switch (item.getItemId()) {
+ case android.R.id.home:
+ finish();
+ return true;
+ default:
+ return false;
+ }
+ }
+
+ public class CategoryPagerAdapter extends FragmentStatePagerAdapter {
+
+ public CategoryPagerAdapter(FragmentManager fm) {
+ super(fm);
+ }
+
+ private static final int NUM_ITEMS = 2;
+ private static final int POS_RATING = 0;
+ private static final int POS_POPULAR = 1;
+
+ @Override
+ public Fragment getItem(int position) {
+ switch (position) {
+ case POS_RATING:
+ return MiroGuideChannellistFragment.newInstance("category",
+ category, "rating");
+ case POS_POPULAR:
+ return MiroGuideChannellistFragment.newInstance("category",
+ category, "popular");
+ default:
+ return null;
+ }
+ }
+
+ @Override
+ public CharSequence getPageTitle(int position) {
+ switch (position) {
+ case POS_RATING:
+ return getString(R.string.best_rating_label);
+ case POS_POPULAR:
+ return getString(R.string.popular_label);
+ default:
+ return null;
+ }
+ }
+
+ @Override
+ public int getCount() {
+ return NUM_ITEMS;
+ }
+ }
+}
diff --git a/src/de/danoeh/antennapod/activity/MiroGuideMainActivity.java b/src/de/danoeh/antennapod/activity/MiroGuideMainActivity.java
index 9331436a5..ff37b4e76 100644
--- a/src/de/danoeh/antennapod/activity/MiroGuideMainActivity.java
+++ b/src/de/danoeh/antennapod/activity/MiroGuideMainActivity.java
@@ -1,10 +1,13 @@
package de.danoeh.antennapod.activity;
import android.annotation.SuppressLint;
+import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
import android.util.Log;
+import android.view.View;
import android.widget.ArrayAdapter;
+import android.widget.ListView;
import android.widget.TextView;
import com.actionbarsherlock.app.SherlockListActivity;
@@ -49,6 +52,15 @@ public class MiroGuideMainActivity extends SherlockListActivity {
}
}
+ @Override
+ protected void onListItemClick(ListView l, View v, int position, long id) {
+ super.onListItemClick(l, v, position, id);
+ String selection = listAdapter.getItem(position);
+ Intent launchIntent = new Intent(this, MiroGuideCategoryActivity.class);
+ launchIntent.putExtra(MiroGuideCategoryActivity.EXTRA_CATEGORY, selection);
+ startActivity(launchIntent);
+ }
+
private void createAdapter() {
if (categories != null) {
listAdapter = new ArrayAdapter<String>(this,