diff options
author | Camil Staps | 2015-04-16 14:19:12 +0200 |
---|---|---|
committer | Camil Staps | 2015-04-16 14:19:12 +0200 |
commit | 5d379af84d583d8598396f03fb50fef25cb76091 (patch) | |
tree | f7ce2412e6df1b8e1212b2be0fb7e9d98d09a173 | |
parent | Update 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.xml | 21 | ||||
-rw-r--r-- | app/src/main/java/com/camilstaps/taize/Bible.java | 2 | ||||
-rw-r--r-- | app/src/main/java/com/camilstaps/taize/DailyReadingWidgetProvider.java | 39 | ||||
-rw-r--r-- | app/src/main/java/com/camilstaps/taize/SettingsActivity.java | 14 | ||||
-rw-r--r-- | app/src/main/java/com/camilstaps/taize/Taize.java | 4 | ||||
-rw-r--r-- | app/src/main/res/layout/daily_reading_widget.xml | 14 | ||||
-rw-r--r-- | app/src/main/res/values-nl/strings.xml | 8 | ||||
-rw-r--r-- | app/src/main/res/values-v14/dimens.xml | 4 | ||||
-rw-r--r-- | app/src/main/res/values/dimens.xml | 2 | ||||
-rw-r--r-- | app/src/main/res/values/preference_values.xml | 15 | ||||
-rw-r--r-- | app/src/main/res/values/strings.xml | 5 | ||||
-rw-r--r-- | app/src/main/res/xml/daily_reading_widget_info.xml | 14 | ||||
-rw-r--r-- | app/src/main/res/xml/preferences.xml | 16 |
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 |