aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCamil Staps2015-04-16 14:19:12 +0200
committerCamil Staps2015-04-16 14:19:12 +0200
commit5d379af84d583d8598396f03fb50fef25cb76091 (patch)
treef7ce2412e6df1b8e1212b2be0fb7e9d98d09a173
parentUpdate daily meditations automatically when the user changes the language (diff)
Added first, basic version of daily reading widget, with non-working-yet settings
-rw-r--r--app/src/main/AndroidManifest.xml21
-rw-r--r--app/src/main/java/com/camilstaps/taize/Bible.java2
-rw-r--r--app/src/main/java/com/camilstaps/taize/DailyReadingWidgetProvider.java39
-rw-r--r--app/src/main/java/com/camilstaps/taize/SettingsActivity.java14
-rw-r--r--app/src/main/java/com/camilstaps/taize/Taize.java4
-rw-r--r--app/src/main/res/layout/daily_reading_widget.xml14
-rw-r--r--app/src/main/res/values-nl/strings.xml8
-rw-r--r--app/src/main/res/values-v14/dimens.xml4
-rw-r--r--app/src/main/res/values/dimens.xml2
-rw-r--r--app/src/main/res/values/preference_values.xml15
-rw-r--r--app/src/main/res/values/strings.xml5
-rw-r--r--app/src/main/res/xml/daily_reading_widget_info.xml14
-rw-r--r--app/src/main/res/xml/preferences.xml16
13 files changed, 145 insertions, 13 deletions
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index ef7c43a..cd5b09f 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -1,6 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
-<manifest xmlns:android="http://schemas.android.com/apk/res/android"
- package="com.camilstaps.taize" >
+<manifest
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ package="com.camilstaps.taize"
+ android:installLocation="internalOnly">
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
@@ -9,7 +11,8 @@
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
- android:theme="@style/AppTheme" >
+ android:theme="@style/AppTheme">
+
<activity
android:name=".MainActivity"
android:label="@string/app_name">
@@ -26,6 +29,18 @@
android:name="android.support.PARENT_ACTIVITY"
android:value=".MainActivity" />
</activity>
+
+ <receiver
+ android:name=".DailyReadingWidgetProvider"
+ android:enabled="true"
+ android:label="@string/widget_daily_reading">
+ <intent-filter>
+ <action android:name="android.appwidget.action.APPWIDGET_UPDATE"/>
+ </intent-filter>
+ <meta-data
+ android:name="android.appwidget.provider"
+ android:resource="@xml/daily_reading_widget_info"/>
+ </receiver>
</application>
</manifest>
diff --git a/app/src/main/java/com/camilstaps/taize/Bible.java b/app/src/main/java/com/camilstaps/taize/Bible.java
index 0e90ccb..abb1890 100644
--- a/app/src/main/java/com/camilstaps/taize/Bible.java
+++ b/app/src/main/java/com/camilstaps/taize/Bible.java
@@ -50,7 +50,7 @@ public class Bible {
* @return the version from the preferences
*/
public static String getVersion(Context context) {
- return PreferenceManager.getDefaultSharedPreferences(context).getString(SettingsActivity.GeneralSettingsFragment.PREF_VERSION_BIBLE, context.getResources().getString(R.string.pref_version_bible_default));
+ return PreferenceManager.getDefaultSharedPreferences(context).getString(SettingsActivity.SettingsFragment.PREF_VERSION_BIBLE, context.getResources().getString(R.string.pref_version_bible_default));
}
/**
diff --git a/app/src/main/java/com/camilstaps/taize/DailyReadingWidgetProvider.java b/app/src/main/java/com/camilstaps/taize/DailyReadingWidgetProvider.java
new file mode 100644
index 0000000..158f71e
--- /dev/null
+++ b/app/src/main/java/com/camilstaps/taize/DailyReadingWidgetProvider.java
@@ -0,0 +1,39 @@
+package com.camilstaps.taize;
+
+import android.appwidget.AppWidgetManager;
+import android.appwidget.AppWidgetProvider;
+import android.appwidget.AppWidgetProviderInfo;
+import android.content.Context;
+import android.os.Bundle;
+import android.widget.RemoteViews;
+import android.widget.Toast;
+
+import com.camilstaps.common.Date;
+import com.camilstaps.common.Listener;
+
+/**
+ * AppWidgetProvider for Daily Readings
+ * @author Camil Staps
+ */
+public class DailyReadingWidgetProvider extends AppWidgetProvider {
+
+ @Override
+ public void onUpdate(final Context context, final AppWidgetManager appWidgetManager, final int[] appWidgetIds) {
+
+ Taize.getDailyReading(context, new Listener<DailyReading>() {
+ @Override
+ public void success(DailyReading data) {
+ RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.daily_reading_widget);
+ views.setTextViewText(R.id.widget_daily_reading_text, data.getString());
+ for (int i = 0; i < appWidgetIds.length; i++) {
+ appWidgetManager.updateAppWidget(appWidgetIds[i], views);
+ }
+ }
+
+ @Override
+ public void failure() {
+ }
+ }, new Date());
+ }
+
+}
diff --git a/app/src/main/java/com/camilstaps/taize/SettingsActivity.java b/app/src/main/java/com/camilstaps/taize/SettingsActivity.java
index bdf6187..96d8ef8 100644
--- a/app/src/main/java/com/camilstaps/taize/SettingsActivity.java
+++ b/app/src/main/java/com/camilstaps/taize/SettingsActivity.java
@@ -20,7 +20,7 @@ public class SettingsActivity extends PreferenceActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
- getFragmentManager().beginTransaction().replace(android.R.id.content, new GeneralSettingsFragment()).commit();
+ getFragmentManager().beginTransaction().replace(android.R.id.content, new SettingsFragment()).commit();
}
/**
@@ -44,7 +44,7 @@ public class SettingsActivity extends PreferenceActivity {
};
/**
- * Bind the summary of a prefernce to its value
+ * Bind the summary of a preference to its value
* @param pref
*/
private static void bindSummaryToValue(Preference pref) {
@@ -53,11 +53,12 @@ public class SettingsActivity extends PreferenceActivity {
}
/**
- * The general settings fragment
+ * The settings fragment
*/
- public static class GeneralSettingsFragment extends PreferenceFragment {
+ public static class SettingsFragment extends PreferenceFragment {
public static final String PREF_LANGUAGE_READINGS = "pref_language_reading";
public static final String PREF_VERSION_BIBLE = "pref_version_bible";
+ public static final String PREF_THEME_WIDGET = "pref_theme_widget";
private SharedPreferences.OnSharedPreferenceChangeListener sharedPreferenceChangeListener;
@@ -72,14 +73,15 @@ public class SettingsActivity extends PreferenceActivity {
bindSummaryToValue(findPreference(PREF_LANGUAGE_READINGS));
bindSummaryToValue(findPreference(PREF_VERSION_BIBLE));
+ bindSummaryToValue(findPreference(PREF_THEME_WIDGET));
sharedPreferenceChangeListener = new SharedPreferences.OnSharedPreferenceChangeListener() {
@Override
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
- if (key.equals(GeneralSettingsFragment.PREF_LANGUAGE_READINGS)) {
+ if (key.equals(SettingsFragment.PREF_LANGUAGE_READINGS)) {
DatedStringPreferenceSet.clear(context, "dailyreadings");
DatedStringPreferenceSet.clear(context, "dailymeditations");
- } else if (key.equals(GeneralSettingsFragment.PREF_VERSION_BIBLE)) {
+ } else if (key.equals(SettingsFragment.PREF_VERSION_BIBLE)) {
DatedStringPreferenceSet.clear(context, "dailyreadingbibletexts");
}
}
diff --git a/app/src/main/java/com/camilstaps/taize/Taize.java b/app/src/main/java/com/camilstaps/taize/Taize.java
index 1f902e0..32619ea 100644
--- a/app/src/main/java/com/camilstaps/taize/Taize.java
+++ b/app/src/main/java/com/camilstaps/taize/Taize.java
@@ -204,7 +204,7 @@ public class Taize {
try {
retrieve.execute(url_reading_feed
- + "?lang=" + PreferenceManager.getDefaultSharedPreferences(context).getString(SettingsActivity.GeneralSettingsFragment.PREF_LANGUAGE_READINGS, "en")
+ + "?lang=" + PreferenceManager.getDefaultSharedPreferences(context).getString(SettingsActivity.SettingsFragment.PREF_LANGUAGE_READINGS, "en")
+ "&date=" + date.toString()
).get();
} catch (Exception e) {
@@ -269,7 +269,7 @@ public class Taize {
try {
retrieve.execute(url_meditation_feed
+ "?lang=" + PreferenceManager.getDefaultSharedPreferences(context).getString(
- SettingsActivity.GeneralSettingsFragment.PREF_LANGUAGE_READINGS,
+ SettingsActivity.SettingsFragment.PREF_LANGUAGE_READINGS,
context.getString(R.string.pref_language_dailyreading_default))
+ "&date=" + date.toString()
).get();
diff --git a/app/src/main/res/layout/daily_reading_widget.xml b/app/src/main/res/layout/daily_reading_widget.xml
new file mode 100644
index 0000000..dead194
--- /dev/null
+++ b/app/src/main/res/layout/daily_reading_widget.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="utf-8"?>
+<FrameLayout
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:padding="@dimen/widget_margin">
+
+ <TextView
+ android:id="@+id/widget_daily_reading_text"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text=""/>
+
+</FrameLayout> \ No newline at end of file
diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml
index cb56a78..0116ed6 100644
--- a/app/src/main/res/values-nl/strings.xml
+++ b/app/src/main/res/values-nl/strings.xml
@@ -4,4 +4,12 @@
<string name="action_settings">Instellingen</string>
<string name="action_share">Delen</string>
<string name="action_today">Vandaag</string>
+ <string name="action_share_bibletext">Deel bijbeltekst</string>
+ <string name="action_share_reading">Deel korte lezing</string>
+ <string name="action_share_reading_with_bibletext">Deel beide</string>
+ <string name="failure_fetching_podcasts">Kon de podcasts niet ophalen</string>
+ <string name="widget_daily_reading">Dagelijkse lezing</string>
+ <string name="settings_general">Algemeen</string>
+ <string name="settings_widget">Widget</string>
+ <string name="pref_title_theme_widget">Thema widget</string>
</resources>
diff --git a/app/src/main/res/values-v14/dimens.xml b/app/src/main/res/values-v14/dimens.xml
new file mode 100644
index 0000000..378aaaf
--- /dev/null
+++ b/app/src/main/res/values-v14/dimens.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <dimen name="widget_margin">0dp</dimen>
+</resources> \ No newline at end of file
diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml
index 8486494..5c1363e 100644
--- a/app/src/main/res/values/dimens.xml
+++ b/app/src/main/res/values/dimens.xml
@@ -3,4 +3,6 @@
<dimen name="podcast_row_padding">10dp</dimen>
<dimen name="large_text_size">18sp</dimen>
+ <dimen name="widget_margin">8dp</dimen>
+
</resources>
diff --git a/app/src/main/res/values/preference_values.xml b/app/src/main/res/values/preference_values.xml
index fbf01fd..e2d3574 100644
--- a/app/src/main/res/values/preference_values.xml
+++ b/app/src/main/res/values/preference_values.xml
@@ -147,4 +147,19 @@
<item>xhosa</item>
</string-array>
+ <string-array name="pref_themes_widget_entries">
+ <item>Light</item>
+ <item>Dark</item>
+ <item>Transparent, light text</item>
+ <item>Transparent, dark text</item>
+ </string-array>
+ <string-array name="pref_themes_widget_values">
+ <item>light</item>
+ <item>dark</item>
+ <item>transparent-light</item>
+ <item>transparent-dark</item>
+ </string-array>
+ <string name="pref_theme_widget_default" translatable="false">light</string>
+ <string name="pref_theme_widget_default_entry">Light</string>
+
</resources>
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 68af279..1b7f4b6 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -11,4 +11,9 @@
<string name="title_activity_settings" translatable="false">@string/action_settings</string>
<string name="failure_fetching_podcasts">Couldn\'t fetch podcasts</string>
+
+ <string name="widget_daily_reading">Daily Reading</string>
+ <string name="settings_general">General</string>
+ <string name="settings_widget">Widget</string>
+ <string name="pref_title_theme_widget">Widget theme</string>
</resources>
diff --git a/app/src/main/res/xml/daily_reading_widget_info.xml b/app/src/main/res/xml/daily_reading_widget_info.xml
new file mode 100644
index 0000000..1014ed8
--- /dev/null
+++ b/app/src/main/res/xml/daily_reading_widget_info.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="utf-8"?>
+<appwidget-provider
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:minWidth="36dp"
+ android:minHeight="36dp"
+ android:minResizeHeight="36dp"
+ android:minResizeWidth="36dp"
+ android:updatePeriodMillis="86400000"
+ android:previewImage="@drawable/ic_action_reading"
+ android:resizeMode="horizontal|vertical"
+ android:widgetCategory="home_screen|keyguard"
+ android:initialLayout="@layout/daily_reading_widget"
+ android:initialKeyguardLayout="@layout/daily_reading_widget"
+ android:label="@string/widget_daily_reading"/> \ No newline at end of file
diff --git a/app/src/main/res/xml/preferences.xml b/app/src/main/res/xml/preferences.xml
index 1525761..baff3a7 100644
--- a/app/src/main/res/xml/preferences.xml
+++ b/app/src/main/res/xml/preferences.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<PreferenceCategory
- android:title="@string/title_activity_settings"
+ android:title="@string/settings_general"
android:key="preferences_key">
<ListPreference
@@ -24,4 +24,18 @@
</PreferenceCategory>
+ <PreferenceCategory
+ android:title="@string/settings_widget">
+
+ <ListPreference
+ android:key="pref_theme_widget"
+ android:title="@string/pref_title_theme_widget"
+ android:entries="@array/pref_themes_widget_entries"
+ android:entryValues="@array/pref_themes_widget_values"
+ android:persistent="true"
+ android:defaultValue="@string/pref_theme_widget_default"
+ android:summary="@string/pref_theme_widget_default_entry"/>
+
+ </PreferenceCategory>
+
</PreferenceScreen> \ No newline at end of file