diff options
Diffstat (limited to 'app/src/main')
-rw-r--r-- | app/src/main/java/com/camilstaps/common/Date.java | 24 | ||||
-rw-r--r-- | app/src/main/java/com/camilstaps/rss/RetrieveFeedTask.java | 3 | ||||
-rw-r--r-- | app/src/main/java/com/camilstaps/taize/DailyReadingFragment.java | 26 | ||||
-rw-r--r-- | app/src/main/java/com/camilstaps/taize/MainActivity.java | 36 | ||||
-rw-r--r-- | app/src/main/java/com/camilstaps/taize/Taize.java | 72 | ||||
-rw-r--r-- | app/src/main/res/menu/global.xml | 12 | ||||
-rw-r--r-- | app/src/main/res/values/strings.xml | 1 |
7 files changed, 88 insertions, 86 deletions
diff --git a/app/src/main/java/com/camilstaps/common/Date.java b/app/src/main/java/com/camilstaps/common/Date.java index 94a306d..c01cc0d 100644 --- a/app/src/main/java/com/camilstaps/common/Date.java +++ b/app/src/main/java/com/camilstaps/common/Date.java @@ -66,6 +66,10 @@ public class Date implements Comparable<Date> { year += n; } + public void subtractYears(int n) { + year -= n; + } + public void addMonths(int n) { for (int i = 0; i < n; i++) { month++; @@ -76,6 +80,16 @@ public class Date implements Comparable<Date> { } } + public void subtractMonths(int n) { + for (int i = 0; i < n; i++) { + month--; + if (month <= 0) { + month = 12; + subtractYears(1); + } + } + } + public void addDays(int n) { for (int i = 0; i < n; i++) { day++; @@ -86,6 +100,16 @@ public class Date implements Comparable<Date> { } } + public void subtractDays(int n) { + for (int i = 0; i < n; i++) { + day--; + if (day <= 0) { + month--; + day = daysOfMonth(); + } + } + } + public boolean equals(Date date) { return year == date.year && month == date.month && day == date.day; } diff --git a/app/src/main/java/com/camilstaps/rss/RetrieveFeedTask.java b/app/src/main/java/com/camilstaps/rss/RetrieveFeedTask.java index 543c9d6..d56c48a 100644 --- a/app/src/main/java/com/camilstaps/rss/RetrieveFeedTask.java +++ b/app/src/main/java/com/camilstaps/rss/RetrieveFeedTask.java @@ -1,6 +1,7 @@ package com.camilstaps.rss; import android.os.AsyncTask; +import android.util.Log; import com.camilstaps.common.Listener; @@ -29,8 +30,10 @@ public class RetrieveFeedTask extends AsyncTask<String, Void, RssParser> { @Override protected void onPostExecute(RssParser results) { if (results != null) { + Log.d("RFT", "success"); listener.success(results); } else { + Log.d("RFT", "failure"); listener.failure(); } } diff --git a/app/src/main/java/com/camilstaps/taize/DailyReadingFragment.java b/app/src/main/java/com/camilstaps/taize/DailyReadingFragment.java index 8fc5258..29ae77f 100644 --- a/app/src/main/java/com/camilstaps/taize/DailyReadingFragment.java +++ b/app/src/main/java/com/camilstaps/taize/DailyReadingFragment.java @@ -1,5 +1,6 @@ package com.camilstaps.taize; +import android.content.Context; import android.content.SharedPreferences; import android.os.Bundle; import android.preference.PreferenceManager; @@ -19,8 +20,10 @@ import com.camilstaps.common.Listener; public class DailyReadingFragment extends Fragment { private SharedPreferences.OnSharedPreferenceChangeListener sharedPreferenceChangeListener; + private View rootView; + private Context context; - View rootView; + private Date date; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { @@ -28,8 +31,13 @@ public class DailyReadingFragment extends Fragment { // properly. rootView = inflater.inflate(R.layout.pager_content, container, false); - //Bundle args = getArguments(); - //((TextView) rootView.findViewById(R.id.pager_content_text)).setText(args.getString("text")); + context = container.getContext(); + + Bundle args = getArguments(); + int dateOffset = args.getInt("dateOffset", 0); + + date = new Date(); + date.subtractDays(dateOffset); setupContent(); @@ -51,20 +59,16 @@ public class DailyReadingFragment extends Fragment { } } }; - PreferenceManager.getDefaultSharedPreferences(getActivity()).registerOnSharedPreferenceChangeListener(sharedPreferenceChangeListener); + PreferenceManager.getDefaultSharedPreferences(context).registerOnSharedPreferenceChangeListener(sharedPreferenceChangeListener); } protected void setupContent() { setDailyReading(); setDailyReadingBibleText(); - - Log.d("MAIN", "Setting up content"); } private void setDailyReading() { - Date date = new Date(); - - Taize.getDailyReading(getActivity(), new Listener<DailyReading>() { + Taize.getDailyReading(context, new Listener<DailyReading>() { @Override public void success(DailyReading data) { ((TextView) rootView.findViewById(R.id.textDailyReading)).setText(data.getTextWithoutReference()); @@ -79,13 +83,13 @@ public class DailyReadingFragment extends Fragment { } }, date); - String niceDate = date.toNiceString(getActivity()); + String niceDate = date.toNiceString(context); niceDate = niceDate.substring(0,1).toUpperCase() + niceDate.substring(1); ((TextView) rootView.findViewById(R.id.dateDailyReading)).setText(niceDate); } private void setDailyReadingBibleText() { - Taize.getDailyReadingBibleText(getActivity(), new Listener<String>() { + Taize.getDailyReadingBibleText(context, new Listener<String>() { @Override public void success(String data) { ((TextView) rootView.findViewById(R.id.textDailyReadingBibleText)).setText(data); diff --git a/app/src/main/java/com/camilstaps/taize/MainActivity.java b/app/src/main/java/com/camilstaps/taize/MainActivity.java index 82b7899..bd5ba1e 100644 --- a/app/src/main/java/com/camilstaps/taize/MainActivity.java +++ b/app/src/main/java/com/camilstaps/taize/MainActivity.java @@ -5,13 +5,18 @@ 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.v7.app.ActionBar; import android.support.v7.app.ActionBarActivity; import android.os.Bundle; +import android.util.Log; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; +import android.view.MotionEvent; +import android.view.View; +import android.view.ViewGroup; public class MainActivity extends ActionBarActivity { @@ -22,11 +27,14 @@ public class MainActivity extends ActionBarActivity { protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); + Taize.cleanDailyReadingsSet(this); + setContentView(R.layout.activity_main); pager = (ViewPager) findViewById(R.id.pager); pagerAdapter = new PagerAdapter(getSupportFragmentManager()); pager.setAdapter(pagerAdapter); + pager.setCurrentItem(Integer.MAX_VALUE, false); final ActionBar actionBar = getSupportActionBar(); actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); @@ -94,10 +102,12 @@ public class MainActivity extends ActionBarActivity { @Override public Fragment getItem(int i) { - DailyReadingFragment fragment = new DailyReadingFragment(); - /*Bundle args = new Bundle(); - args.putString("text", "Hello world! " + i); - fragment.setArguments(args);*/ + Fragment fragment = new DailyReadingFragment(); + + Bundle args = new Bundle(); + args.putInt("dateOffset", i); + fragment.setArguments(args); + return fragment; } @@ -110,6 +120,24 @@ public class MainActivity extends ActionBarActivity { 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, Integer.MAX_VALUE - position - 1); + } + } + + @Override + public void destroyItem(ViewGroup container, int position, Object object) { + if (position < 2) { + super.destroyItem(container, position, object); + } else { + super.destroyItem(container, Integer.MAX_VALUE - position - 1, object); + } + } } } diff --git a/app/src/main/java/com/camilstaps/taize/Taize.java b/app/src/main/java/com/camilstaps/taize/Taize.java index 6bea168..00438be 100644 --- a/app/src/main/java/com/camilstaps/taize/Taize.java +++ b/app/src/main/java/com/camilstaps/taize/Taize.java @@ -160,71 +160,6 @@ public class Taize { } } - /** - * Force fetching a new daily reading - * @see this#getDailyReading - * @param context - * @param listener - */ - public static void forceNewDailyReading(final Context context, final Listener<String> listener) { - PreferenceManager.getDefaultSharedPreferences(context).edit().putLong("dailyreadingfetch", 0).commit(); - getDailyReading(context, listener); - } - - /** - * Fetch the daily reading - * @see this#forceNewDailyReading - * @param context - * @param listener - */ - public static void getDailyReading(final Context context, final Listener<String> listener) { - if (System.currentTimeMillis() - PreferenceManager.getDefaultSharedPreferences(context).getLong("dailyreadingfetch", 0) > 3600000) { - - RetrieveFeedTask retrieve = new RetrieveFeedTask(); - retrieve.setRssDownloadListener(new Listener<RssParser>() { - @Override - public void success(RssParser parser) { - try { - String reading = parser.getItem(0).description.trim(); - - if (!reading.equals(PreferenceManager.getDefaultSharedPreferences(context).getString("dailyreading", ""))) { - forceNewDailyReadingBibleText(context, new NullListener<String>()); - } - - SharedPreferences.Editor editor = PreferenceManager.getDefaultSharedPreferences(context).edit(); - editor.putString("dailyreading", reading); - editor.putLong("dailyreadingfetch", System.currentTimeMillis()); - editor.apply(); - - listener.success(reading); - } catch (Exception e) { - failure(); - } - } - - @Override - public void failure() { - Toast.makeText(context, "Failed to fetch daily reading.", Toast.LENGTH_SHORT).show(); - - listener.failure(); - } - }); - - try { - retrieve.execute(url_reading_feed + "?lang=" + PreferenceManager.getDefaultSharedPreferences(context).getString(SettingsActivity.SettingsFragment.PREF_LANGUAGE_READINGS, "en")).get(); - } catch (InterruptedException e) { - e.printStackTrace(); - } catch (ExecutionException e) { - e.printStackTrace(); - } - - } else { - - listener.success(PreferenceManager.getDefaultSharedPreferences(context).getString("dailyreading", "No daily reading found.")); - - } - } - public static void getDailyReading(final Context context, final Listener<DailyReading> listener, Date date) { Set<DailyReading> dailyReadings = getDailyReadingsSet(context); @@ -263,19 +198,18 @@ public class Taize { @Override public void failure() { Toast.makeText(context, "Failed to fetch daily reading.", Toast.LENGTH_SHORT).show(); - listener.failure(); } }); + try { retrieve.execute(url_reading_feed + "?lang=" + PreferenceManager.getDefaultSharedPreferences(context).getString(SettingsActivity.SettingsFragment.PREF_LANGUAGE_READINGS, "en") + "&date=" + date.toString() ).get(); - } catch (InterruptedException e) { - e.printStackTrace(); - } catch (ExecutionException e) { + } catch (Exception e) { e.printStackTrace(); + listener.failure(); } } diff --git a/app/src/main/res/menu/global.xml b/app/src/main/res/menu/global.xml index 326a6a7..cd094ff 100644 --- a/app/src/main/res/menu/global.xml +++ b/app/src/main/res/menu/global.xml @@ -1,5 +1,13 @@ <menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"> - <item android:id="@+id/action_settings" android:title="@string/action_settings" - android:orderInCategory="100" app:showAsAction="never" /> + <item + android:id="@+id/action_settings" + android:title="@string/action_settings" + android:orderInCategory="100" + app:showAsAction="never"/> + <item + android:id="@+id/action_share" + android:title="@string/action_share" + android:orderInCategory="50" + app:showAsAction="ifRoom"/> </menu> diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index fe7fc4f..9e415e0 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -2,6 +2,7 @@ <string name="app_name">Taizé</string> <string name="action_settings">Settings</string> + <string name="action_share">Share</string> <string name="title_activity_settings">@string/action_settings</string> </resources> |