aboutsummaryrefslogtreecommitdiff
path: root/app/src/main/java/com/camilstaps/taize/MainActivity.java
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main/java/com/camilstaps/taize/MainActivity.java')
-rw-r--r--app/src/main/java/com/camilstaps/taize/MainActivity.java154
1 files changed, 64 insertions, 90 deletions
diff --git a/app/src/main/java/com/camilstaps/taize/MainActivity.java b/app/src/main/java/com/camilstaps/taize/MainActivity.java
index e740cfd..4e05109 100644
--- a/app/src/main/java/com/camilstaps/taize/MainActivity.java
+++ b/app/src/main/java/com/camilstaps/taize/MainActivity.java
@@ -1,31 +1,28 @@
package com.camilstaps.taize;
import android.content.Intent;
+import android.preference.PreferenceManager;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentStatePagerAdapter;
import android.support.v4.app.FragmentTransaction;
+import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
-import android.support.v4.widget.SwipeRefreshLayout;
import android.support.v7.app.ActionBar;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
-import android.util.Log;
-import android.view.HapticFeedbackConstants;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.ViewGroup;
import android.widget.PopupMenu;
-import com.camilstaps.common.Listener;
+public class MainActivity extends ActionBarActivity {
-public class MainActivity extends ActionBarActivity implements SwipeRefreshLayout.OnRefreshListener {
-
- ViewPager pager;
+ ViewPager viewPager;
PagerAdapter pagerAdapter;
- SwipeRefreshLayout swipeRefreshLayout;
- int itemsInRefreshQueue = 0;
+
+ ActionBar.TabListener tabListener;
@Override
protected void onCreate(Bundle savedInstanceState) {
@@ -35,33 +32,46 @@ public class MainActivity extends ActionBarActivity implements SwipeRefreshLayou
setContentView(R.layout.activity_main);
- swipeRefreshLayout = (SwipeRefreshLayout) findViewById(R.id.swiperefresh);
- swipeRefreshLayout.setOnRefreshListener(this);
-
- pager = (ViewPager) findViewById(R.id.pager);
- pagerAdapter = new PagerAdapter(getSupportFragmentManager());
- pager.setAdapter(pagerAdapter);
- pager.setCurrentItem(PagerAdapter.COUNT - PagerAdapter.LOOKAHEAD - 1, false);
+ pagerAdapter = new TaizePagerAdapter(getSupportFragmentManager());
+ viewPager = (ViewPager) findViewById(R.id.pager);
+ viewPager.setAdapter(pagerAdapter);
final ActionBar actionBar = getSupportActionBar();
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
- ActionBar.TabListener tabListener = new ActionBar.TabListener() {
+ PreferenceManager.getDefaultSharedPreferences(this).edit().remove("dailyreadingbibletexts").apply();
+
+ tabListener = new ActionBar.TabListener() {
@Override
- public void onTabSelected(ActionBar.Tab tab, FragmentTransaction fragmentTransaction) {}
+ public void onTabSelected(ActionBar.Tab tab, FragmentTransaction fragmentTransaction) {
+ switch (tab.getPosition()) {
+ case 0:
+ viewPager.setCurrentItem(TaizePagerAdapter.DAILYREADING_TODAY);
+ break;
+ case 1:
+ viewPager.setCurrentItem(TaizePagerAdapter.DAILYMEDITATION_TODAY);
+ break;
+ case 2:
+ viewPager.setCurrentItem(TaizePagerAdapter.PODCAST_TODAY);
+ }
+ }
@Override
- public void onTabUnselected(ActionBar.Tab tab, FragmentTransaction fragmentTransaction) {}
+ public void onTabUnselected(ActionBar.Tab tab, FragmentTransaction fragmentTransaction) {
+ }
@Override
- public void onTabReselected(ActionBar.Tab tab, FragmentTransaction fragmentTransaction) {}
+ public void onTabReselected(ActionBar.Tab tab, FragmentTransaction fragmentTransaction) {
+ }
};
- getWindow().getDecorView().performHapticFeedback(HapticFeedbackConstants.LONG_PRESS);
-
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));
+ //actionBar.addTab(actionBar.newTab().setText("Podcast").setIcon(R.drawable.ic_action_podcast).setTabListener(tabListener));
+ }
+
+ @Override
+ public void onRestoreInstanceState(Bundle savedInstanceState) {
}
@Override
@@ -94,10 +104,10 @@ public class MainActivity extends ActionBarActivity implements SwipeRefreshLayou
intent.setType("text/plain");
switch (item.getItemId()) {
case R.id.action_share_bibletext:
- intent.putExtra(Intent.EXTRA_TEXT, ((DailyReadingFragment) pagerAdapter.instantiateItem(pager, pager.getCurrentItem())).getBibleText());
+ //intent.putExtra(Intent.EXTRA_TEXT, ((DailyReadingFragment) TaizePagerAdapter.instantiateItem(viewPager, viewPager.getCurrentItem())).getBibleText());
break;
case R.id.action_share_reading:
- intent.putExtra(Intent.EXTRA_TEXT, ((DailyReadingFragment) pagerAdapter.instantiateItem(pager, pager.getCurrentItem())).getReading());
+ //intent.putExtra(Intent.EXTRA_TEXT, ((DailyReadingFragment) TaizePagerAdapter.instantiateItem(viewPager, viewPager.getCurrentItem())).getReading());
break;
}
startActivity(intent);
@@ -112,66 +122,35 @@ public class MainActivity extends ActionBarActivity implements SwipeRefreshLayou
return super.onOptionsItemSelected(item);
}
- @Override
- public void onRefresh() {
- increaseRefreshQueue();
- increaseRefreshQueue();
-
- DailyReadingFragment fragment = (DailyReadingFragment) pagerAdapter.instantiateItem(pager, pager.getCurrentItem());
-
- fragment.setDailyReading(new Listener<DailyReading>() {
- @Override
- public void success(DailyReading data) {
- decreaseRefreshQueue();
- }
+ private class TaizePagerAdapter extends FragmentStatePagerAdapter {
- @Override
- public void failure() {
- decreaseRefreshQueue();
- }
- });
+ 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 = 600, PODCAST_FUTURE_LIMIT = 699;
+ public static final int COUNT = 700;
- fragment.setDailyReadingBibleText(new Listener<String>() {
- @Override
- public void success(String data) {
- decreaseRefreshQueue();
- }
-
- @Override
- public void failure() {
- decreaseRefreshQueue();
- }
- });
- }
-
- protected void increaseRefreshQueue() {
- itemsInRefreshQueue++;
- swipeRefreshLayout.setRefreshing(true);
- }
-
- protected void decreaseRefreshQueue() {
- itemsInRefreshQueue--;
- if (itemsInRefreshQueue <= 0) {
- itemsInRefreshQueue = 0;
- swipeRefreshLayout.setRefreshing(false);
- }
- }
-
- private class PagerAdapter extends FragmentStatePagerAdapter {
- public static final int COUNT = Integer.MAX_VALUE;
- public static final int LOOKAHEAD = 31;
-
- public PagerAdapter(FragmentManager fm) {
+ public TaizePagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int i) {
- Fragment fragment = new DailyReadingFragment();
- Bundle args = new Bundle();
- args.putInt("dateOffset", -i + LOOKAHEAD);
- fragment.setArguments(args);
+ Fragment fragment = null;
+
+ if (i >= DAILYREADING_PAST_LIMIT && i <= DAILYREADING_FUTURE_LIMIT) {
+ fragment = new DailyReadingFragment();
+ Bundle args = new Bundle();
+ args.putInt("dateOffset", i - DAILYREADING_TODAY);
+ fragment.setArguments(args);
+ } else if (i >= DAILYMEDITATION_PAST_LIMIT && i <= DAILYMEDITATION_FUTURE_LIMIT) {
+ fragment = new DailyMeditationFragment();
+ Bundle args = new Bundle();
+ args.putInt("dateOffset", i - DAILYMEDITATION_TODAY);
+ fragment.setArguments(args);
+ } else if (i >= PODCAST_PAST_LIMIT && i <= PODCAST_FUTURE_LIMIT) {
+ return getItem(DAILYREADING_TODAY);
+ }
return fragment;
}
@@ -182,25 +161,20 @@ public class MainActivity extends ActionBarActivity implements SwipeRefreshLayou
}
@Override
- public CharSequence getPageTitle(int position) {
- return "OBJECT " + (position + 1);
- }
-
- @Override
public Object instantiateItem(ViewGroup container, int position) {
- if (position < 2) {
- return super.instantiateItem(container, position);
- } else {
- return super.instantiateItem(container, COUNT - position - 1);
- }
+ return super.instantiateItem(container, fakePosition(position));
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
- if (position < 2) {
- super.destroyItem(container, position, object);
+ super.destroyItem(container, fakePosition(position), object);
+ }
+
+ private int fakePosition(int requestedPosition) {
+ if (requestedPosition < 2) {
+ return DAILYREADING_TODAY;
} else {
- super.destroyItem(container, COUNT - position - 1, object);
+ return requestedPosition;
}
}