From c247f717759e0d56c94faa92c15ff0efd81f6610 Mon Sep 17 00:00:00 2001 From: Camil Staps Date: Tue, 7 Apr 2015 16:45:19 +0200 Subject: Better layout --- .../java/com/camilstaps/taize/MainActivity.java | 53 +++++++++++++++++----- .../camilstaps/taize/NavigationDrawerFragment.java | 35 ++------------ .../com/camilstaps/taize/SettingsActivity.java | 17 ++++++- app/src/main/java/com/camilstaps/taize/Taize.java | 18 ++++---- app/src/main/res/layout/activity_main.xml | 31 +++++++++---- 5 files changed, 94 insertions(+), 60 deletions(-) (limited to 'app/src') diff --git a/app/src/main/java/com/camilstaps/taize/MainActivity.java b/app/src/main/java/com/camilstaps/taize/MainActivity.java index b3bf748..8382683 100644 --- a/app/src/main/java/com/camilstaps/taize/MainActivity.java +++ b/app/src/main/java/com/camilstaps/taize/MainActivity.java @@ -2,6 +2,8 @@ package com.camilstaps.taize; import android.app.Activity; import android.content.Intent; +import android.content.SharedPreferences; +import android.preference.PreferenceManager; import android.support.v7.app.ActionBarActivity; import android.support.v7.app.ActionBar; import android.support.v4.app.Fragment; @@ -15,6 +17,8 @@ import android.view.ViewGroup; import android.support.v4.widget.DrawerLayout; import android.widget.TextView; +import com.camilstaps.common.NullListener; + public class MainActivity extends ActionBarActivity implements NavigationDrawerFragment.NavigationDrawerCallbacks { @@ -29,33 +33,58 @@ public class MainActivity extends ActionBarActivity */ private CharSequence mTitle; - private String reading; + private SharedPreferences.OnSharedPreferenceChangeListener sharedPreferenceChangeListener; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); - mNavigationDrawerFragment = (NavigationDrawerFragment) - getSupportFragmentManager().findFragmentById(R.id.navigation_drawer); + mNavigationDrawerFragment = (NavigationDrawerFragment) getSupportFragmentManager().findFragmentById(R.id.navigation_drawer); mTitle = getTitle(); // Set up the drawer. - mNavigationDrawerFragment.setUp( - R.id.navigation_drawer, - (DrawerLayout) findViewById(R.id.drawer_layout)); + mNavigationDrawerFragment.setUp(R.id.navigation_drawer, (DrawerLayout) findViewById(R.id.drawer_layout)); + + setupContent(); + + sharedPreferenceChangeListener = new SharedPreferences.OnSharedPreferenceChangeListener() { + @Override + public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) { + switch (key) { + case "dailyreading": + case "dailyreadingbible": + setupContent(); + break; + } + } + }; + PreferenceManager.getDefaultSharedPreferences(this).registerOnSharedPreferenceChangeListener(sharedPreferenceChangeListener); } @Override - public void onSaveInstanceState(Bundle savedInstanceState) { - super.onSaveInstanceState(savedInstanceState); - savedInstanceState.putString("textview_dailyreading", ((TextView) findViewById(R.id.textDailyReading)).getText().toString()); + public void onRestoreInstanceState(Bundle savedInstanceState) { + super.onRestoreInstanceState(savedInstanceState); + setupContent(); } @Override - public void onRestoreInstanceState(Bundle savedInstanceState) { - super.onRestoreInstanceState(savedInstanceState); - ((TextView) findViewById(R.id.textDailyReading)).setText(savedInstanceState.getString("textview_dailyreading")); + public void onResume() { + super.onResume(); + setupContent(); + } + + protected void setupContent() { + setDailyReading(); + setDailyReadingBibleText(); + } + + private void setDailyReading() { + ((TextView) findViewById(R.id.textDailyReading)).setText(PreferenceManager.getDefaultSharedPreferences(this).getString("dailyreading", "No daily reading found.")); + } + + private void setDailyReadingBibleText() { + ((TextView) findViewById(R.id.textDailyReadingBibleText)).setText(PreferenceManager.getDefaultSharedPreferences(this).getString("dailyreadingbible", "Could not fetch bible text.")); } @Override diff --git a/app/src/main/java/com/camilstaps/taize/NavigationDrawerFragment.java b/app/src/main/java/com/camilstaps/taize/NavigationDrawerFragment.java index 3bb1556..c972e60 100644 --- a/app/src/main/java/com/camilstaps/taize/NavigationDrawerFragment.java +++ b/app/src/main/java/com/camilstaps/taize/NavigationDrawerFragment.java @@ -23,9 +23,11 @@ import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.ListView; import android.widget.TextView; +import android.widget.Toast; import com.android.volley.VolleyError; import com.camilstaps.common.Listener; +import com.camilstaps.common.NullListener; /** * Fragment used for managing interactions for and presentation of a navigation drawer. @@ -252,37 +254,10 @@ public class NavigationDrawerFragment extends Fragment { } if (item.getItemId() == R.id.action_update) { - //Toast.makeText(getActivity(), "Example action.", Toast.LENGTH_SHORT).show(); - - final TextView reading = (TextView) getActivity().findViewById(R.id.textDailyReading); - - Taize.getDailyReading(getActivity(), new Listener() { - @Override - public void success(String data) { - reading.setText(Html.fromHtml(data)); - } - - @Override - public void failure() { - reading.setText("Error fetching reading."); - } - }); - - reading.append("\n\n"); - - Taize.getDailyReadingBibleText(getActivity(), new Listener() { - @Override - public void success(String data) { - Log.i("LOG", "Success."); - Log.i("LOG", data); - reading.append(Html.fromHtml(data)); - } + Taize.getDailyReading(getActivity(), new NullListener()); + Taize.getDailyReadingBibleText(getActivity(), new NullListener()); - @Override - public void failure() { - Log.i("LOG", "Failure."); - } - }); + ((MainActivity) getActivity()).setupContent(); return true; } diff --git a/app/src/main/java/com/camilstaps/taize/SettingsActivity.java b/app/src/main/java/com/camilstaps/taize/SettingsActivity.java index c8f3b3d..13ba910 100644 --- a/app/src/main/java/com/camilstaps/taize/SettingsActivity.java +++ b/app/src/main/java/com/camilstaps/taize/SettingsActivity.java @@ -1,12 +1,14 @@ package com.camilstaps.taize; +import android.content.SharedPreferences; import android.os.Bundle; import android.preference.ListPreference; import android.preference.Preference; import android.preference.PreferenceActivity; import android.preference.PreferenceFragment; import android.preference.PreferenceManager; +import android.util.Log; import com.camilstaps.common.NullListener; @@ -16,6 +18,17 @@ public class SettingsActivity extends PreferenceActivity { public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); getFragmentManager().beginTransaction().replace(android.R.id.content, new SettingsFragment()).commit(); + + PreferenceManager.getDefaultSharedPreferences(this).registerOnSharedPreferenceChangeListener(new SharedPreferences.OnSharedPreferenceChangeListener() { + @Override + public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) { + if (key.equals(SettingsFragment.PREF_LANGUAGE_READINGS)) { // If we select a new language, set the fetch time to 0 to refetch on next request + Taize.forceNewDailyReading(getApplicationContext(), new NullListener()); + } else if (key.equals(SettingsFragment.PREF_VERSION_BIBLE)) { // If we select a new bible, set the fetch time to 0 to refetch on next request + Taize.forceNewDailyReadingBibleText(getApplicationContext(), new NullListener()); + } + } + }); } private static Preference.OnPreferenceChangeListener onPreferenceChangeListener = new Preference.OnPreferenceChangeListener() { @@ -32,13 +45,13 @@ public class SettingsActivity extends PreferenceActivity { } // If the preference actually changed ... - if (!PreferenceManager.getDefaultSharedPreferences(pref.getContext()).getString(pref.getKey(), "").equals(stringValue)) { + /*if (!PreferenceManager.getDefaultSharedPreferences(pref.getContext()).getString(pref.getKey(), "").equals(stringValue)) { if (pref.getKey().equals(SettingsFragment.PREF_LANGUAGE_READINGS)) { // If we select a new language, set the fetch time to 0 to refetch on next request Taize.forceNewDailyReading(pref.getContext(), new NullListener()); } else if (pref.getKey().equals(SettingsFragment.PREF_VERSION_BIBLE)) { // If we select a new bible, set the fetch time to 0 to refetch on next request Taize.forceNewDailyReadingBibleText(pref.getContext(), new NullListener()); } - } + }*/ return true; } diff --git a/app/src/main/java/com/camilstaps/taize/Taize.java b/app/src/main/java/com/camilstaps/taize/Taize.java index edfe9e7..d743e13 100644 --- a/app/src/main/java/com/camilstaps/taize/Taize.java +++ b/app/src/main/java/com/camilstaps/taize/Taize.java @@ -4,6 +4,7 @@ import android.content.Context; import android.content.SharedPreferences; import android.preference.PreferenceManager; import android.util.Log; +import android.widget.Toast; import com.android.volley.Response; import com.android.volley.VolleyError; @@ -52,10 +53,8 @@ public class Taize { @Override public void success(String reading) { - Log.i("LOG", "Matching: " + reading); - Pattern bible_ref = Pattern.compile("\\((\\d? ?[a-zA-Z]+) (\\d{1,2}):(\\d+)-?(\\d+?)\\)"); - Matcher bible_ref_m = bible_ref.matcher(reading); + final Matcher bible_ref_m = bible_ref.matcher(reading); if (!bible_ref_m.find()) { failure(); @@ -67,9 +66,10 @@ public class Taize { text.getText(context, new Response.Listener() { @Override public void onResponse(String s) { - Log.i("LOG", "Bible text: " + s); - PreferenceManager.getDefaultSharedPreferences(context).edit().putString("dailyreadingbible", s).apply(); - listener.success(s); + String formatted_text = "Text: " + bible_ref_m.group(0) + "\n\n" + s; + + PreferenceManager.getDefaultSharedPreferences(context).edit().putString("dailyreadingbible", formatted_text).apply(); + listener.success(formatted_text); } }, new Response.ErrorListener() { @Override @@ -82,6 +82,8 @@ public class Taize { @Override public void failure() { + Toast.makeText(context, "Failed to fetch bible text.", Toast.LENGTH_SHORT).show(); + listener.failure(); } }); @@ -135,7 +137,6 @@ public class Taize { @Override public void failure() { - Log.i("LOG", "Failed to update."); listener.failure(); } }); @@ -199,7 +200,8 @@ public class Taize { @Override public void failure() { - Log.i("LOG", "Failed to update."); + Toast.makeText(context, "Failed to fetch daily reading.", Toast.LENGTH_SHORT).show(); + listener.failure(); } }); diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 17ea429..6a72dc7 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -12,16 +12,31 @@ + android:fillViewport="true" + android:padding="10dp"> - + + + + + + -- cgit v1.2.3