diff options
author | Camil Staps | 2015-04-15 23:20:51 +0200 |
---|---|---|
committer | Camil Staps | 2015-04-15 23:20:51 +0200 |
commit | 1b81225d50ce80240bfeb60ef7c520f33bfb668d (patch) | |
tree | aaf6ddccdde7967673d1306dba2a3ad0f4ee747e /app | |
parent | Added share both option for daily readings; javadoc DailyReadingFragment (diff) |
javadoc & cleanup MainActivity
Diffstat (limited to 'app')
-rw-r--r-- | app/src/main/java/com/camilstaps/taize/MainActivity.java | 23 |
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; |