aboutsummaryrefslogtreecommitdiff
path: root/app/src
diff options
context:
space:
mode:
Diffstat (limited to 'app/src')
-rw-r--r--app/src/main/java/com/camilstaps/taize/MainActivity.java23
1 files changed, 20 insertions, 3 deletions
diff --git a/app/src/main/java/com/camilstaps/taize/MainActivity.java b/app/src/main/java/com/camilstaps/taize/MainActivity.java
index 2fc256a..9b4695f 100644
--- a/app/src/main/java/com/camilstaps/taize/MainActivity.java
+++ b/app/src/main/java/com/camilstaps/taize/MainActivity.java
@@ -32,18 +32,18 @@ public class MainActivity extends ActionBarActivity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
+ // Remove too many texts from the SharedPreferences (they slow down the DatedStringPreferenceSet methods, and waste the user's memory)
Taize.cleanTextSets(this);
setContentView(R.layout.activity_main);
+ // Setup the viewPager & its PagerAdapter
pagerAdapter = new TaizePagerAdapter(getSupportFragmentManager());
viewPager = (DisablableViewPager) findViewById(R.id.pager);
viewPager.setAdapter(pagerAdapter);
viewPager.setOffscreenPageLimit(3);
- actionBar = getSupportActionBar();
- actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
-
+ // Setup ActionBar tabs
tabListener = new ActionBar.TabListener() {
@Override
public void onTabSelected(ActionBar.Tab tab, FragmentTransaction fragmentTransaction) {
@@ -55,6 +55,7 @@ public class MainActivity extends ActionBarActivity {
viewPager.setCurrentItem(TaizePagerAdapter.DAILYMEDITATION_TODAY, false);
break;
case 2:
+ // Disable the share action; PodcastFragment has nothing to share
viewPager.setCurrentItem(TaizePagerAdapter.PODCAST_TODAY, false);
findViewById(R.id.action_share).setVisibility(View.GONE);
break;
@@ -65,6 +66,7 @@ public class MainActivity extends ActionBarActivity {
public void onTabUnselected(ActionBar.Tab tab, FragmentTransaction fragmentTransaction) {
switch (tab.getPosition()) {
case 2:
+ // Restore the share action
viewPager.setPagingEnabled(true);
findViewById(R.id.action_share).setVisibility(View.VISIBLE);
break;
@@ -76,6 +78,9 @@ public class MainActivity extends ActionBarActivity {
}
};
+ actionBar = getSupportActionBar();
+ actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
+
actionBar.addTab(actionBar.newTab().setText("Reading").setIcon(R.drawable.ic_action_reading).setTabListener(tabListener));
actionBar.addTab(actionBar.newTab().setText("Meditation").setIcon(R.drawable.ic_action_meditation).setTabListener(tabListener));
actionBar.addTab(actionBar.newTab().setText("Podcast").setIcon(R.drawable.ic_action_podcast).setTabListener(tabListener));
@@ -97,6 +102,7 @@ public class MainActivity extends ActionBarActivity {
startActivity(intent);
return true;
case R.id.action_share:
+ // See if the Fragment currently in the ViewPager has something to share
final Sharable<String> sharable = (Sharable) pagerAdapter.instantiateItem(viewPager, viewPager.getCurrentItem());
if (sharable.getMenuId() == -1) {
@@ -130,8 +136,14 @@ public class MainActivity extends ActionBarActivity {
return super.onOptionsItemSelected(item);
}
+ /**
+ * Special FragmentStatePagerAdapter with some extra logic
+ */
private class TaizePagerAdapter extends FragmentStatePagerAdapter {
+ /**
+ * The 'field' of indexes is divided over the ActionBar tabs: 200 daily readings, 200 daily meditations, 1 podcast (since that one is a list)
+ */
public static final int DAILYREADING_PAST_LIMIT = 100, DAILYREADING_TODAY = 200, DAILYREADING_FUTURE_LIMIT = 299;
public static final int DAILYMEDITATION_PAST_LIMIT = 300, DAILYMEDITATION_TODAY = 400, DAILYMEDITATION_FUTURE_LIMIT = 499;
public static final int PODCAST_PAST_LIMIT = 500, PODCAST_TODAY = 500, PODCAST_FUTURE_LIMIT = 500;
@@ -181,6 +193,11 @@ public class MainActivity extends ActionBarActivity {
super.destroyItem(container, fakePosition(position), object);
}
+ /**
+ * Remap the position, because at startup 0 and 1 will be requested
+ * @param requestedPosition
+ * @return
+ */
private int fakePosition(int requestedPosition) {
if (requestedPosition < 2) {
return DAILYREADING_TODAY;