diff options
-rw-r--r-- | AndroidManifest.xml | 1 | ||||
-rw-r--r-- | res/layout/miroguide_category.xml | 21 | ||||
-rw-r--r-- | res/values/strings.xml | 2 | ||||
-rw-r--r-- | src/de/danoeh/antennapod/activity/MiroGuideCategoryActivity.java | 107 | ||||
-rw-r--r-- | src/de/danoeh/antennapod/activity/MiroGuideMainActivity.java | 12 |
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, |