aboutsummaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
authorCamil Staps2015-04-10 23:52:39 +0200
committerCamil Staps2015-04-10 23:52:39 +0200
commitdc4bb981827dc16b9a55c896c82cfe0fed3dbf8e (patch)
tree5f28892edfce7ade29199f740a648db83589ff12 /app
parentMore cleanup (diff)
Swiping to previous dates works for daily readings (not for their bible texts)
Diffstat (limited to 'app')
-rw-r--r--app/src/main/java/com/camilstaps/common/Date.java24
-rw-r--r--app/src/main/java/com/camilstaps/rss/RetrieveFeedTask.java3
-rw-r--r--app/src/main/java/com/camilstaps/taize/DailyReadingFragment.java26
-rw-r--r--app/src/main/java/com/camilstaps/taize/MainActivity.java36
-rw-r--r--app/src/main/java/com/camilstaps/taize/Taize.java72
-rw-r--r--app/src/main/res/menu/global.xml12
-rw-r--r--app/src/main/res/values/strings.xml1
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>