diff --git a/app/src/main/java/com/bibliadiaria/app/ExtrasActivity.java b/app/src/main/java/com/bibliadiaria/app/ExtrasActivity.java index f21b778..3dfa942 100644 --- a/app/src/main/java/com/bibliadiaria/app/ExtrasActivity.java +++ b/app/src/main/java/com/bibliadiaria/app/ExtrasActivity.java @@ -23,6 +23,8 @@ public class ExtrasActivity extends Activity { private static final int COLOR_ACCENT = Color.rgb(0, 107, 90); private static final int COLOR_WARM = Color.rgb(217, 75, 61); + private boolean isEnglish; + private static final String VENI_CREATOR_PRAYER = "Ven, Esp\u00edritu Creador,\n" + "visita las almas de tus fieles\n" @@ -135,6 +137,8 @@ public class ExtrasActivity extends Activity { protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); + isEnglish = UpdateManager.isEnglish(this); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { getWindow().setStatusBarColor(COLOR_BACKGROUND); getWindow().setNavigationBarColor(COLOR_BACKGROUND); @@ -143,6 +147,16 @@ public class ExtrasActivity extends Activity { setContentView(createScreen()); } + @Override + protected void onResume() { + super.onResume(); + boolean currentLanguage = UpdateManager.isEnglish(this); + if (currentLanguage != isEnglish) { + isEnglish = currentLanguage; + recreate(); + } + } + @Override public void onBackPressed() { if (detailContainer != null && detailContainer.getVisibility() == View.VISIBLE) { @@ -170,7 +184,7 @@ public class ExtrasActivity extends Activity { content.addView(createTopBar()); - titleText = textView("Extras", 34, COLOR_INK, Typeface.BOLD); + titleText = textView(isEnglish ? "Extras" : "Extras", 34, COLOR_INK, Typeface.BOLD); titleText.setIncludeFontPadding(false); LinearLayout.LayoutParams titleParams = new LinearLayout.LayoutParams( ViewGroup.LayoutParams.MATCH_PARENT, @@ -221,14 +235,14 @@ public class ExtrasActivity extends Activity { topBar.setOrientation(LinearLayout.HORIZONTAL); topBar.setGravity(Gravity.CENTER_VERTICAL); - TextView label = textView("ORACIONES", 12, COLOR_ACCENT, Typeface.BOLD); + TextView label = textView(isEnglish ? "PRAYERS" : "ORACIONES", 12, COLOR_ACCENT, Typeface.BOLD); topBar.addView(label, new LinearLayout.LayoutParams( 0, ViewGroup.LayoutParams.WRAP_CONTENT, 1f )); - TextView settings = textView("Ajustes", 15, COLOR_ACCENT, Typeface.BOLD); + TextView settings = textView(isEnglish ? "Settings" : "Ajustes", 15, COLOR_ACCENT, Typeface.BOLD); settings.setGravity(Gravity.CENTER); settings.setPadding(dp(14), 0, dp(14), 0); settings.setBackground(roundedRect(Color.WHITE, dp(8), Color.rgb(219, 226, 222), dp(1))); @@ -240,7 +254,7 @@ public class ExtrasActivity extends Activity { settingsParams.setMargins(0, 0, dp(8), 0); topBar.addView(settings, settingsParams); - TextView home = textView("Inicio", 15, COLOR_ACCENT, Typeface.BOLD); + TextView home = textView(isEnglish ? "Home" : "Inicio", 15, COLOR_ACCENT, Typeface.BOLD); home.setGravity(Gravity.CENTER); home.setPadding(dp(14), 0, dp(14), 0); home.setBackground(roundedRect(Color.WHITE, dp(8), Color.rgb(219, 226, 222), dp(1))); @@ -316,7 +330,7 @@ public class ExtrasActivity extends Activity { prayerParams.setMargins(0, dp(16), 0, dp(18)); detailContainer.addView(prayer, prayerParams); - TextView backToList = textView("Volver a extras", 15, COLOR_ACCENT, Typeface.BOLD); + TextView backToList = textView(isEnglish ? "Back to extras" : "Volver a extras", 15, COLOR_ACCENT, Typeface.BOLD); backToList.setGravity(Gravity.CENTER); backToList.setPadding(dp(14), 0, dp(14), 0); backToList.setBackground(roundedRect(Color.WHITE, dp(8), Color.rgb(219, 226, 222), dp(1))); @@ -337,7 +351,7 @@ public class ExtrasActivity extends Activity { } private void showPrayerList() { - titleText.setText("Extras"); + titleText.setText(isEnglish ? "Extras" : "Extras"); detailContainer.setVisibility(View.GONE); listContainer.setVisibility(View.VISIBLE); scrollToTop(); diff --git a/app/src/main/java/com/bibliadiaria/app/MainActivity.java b/app/src/main/java/com/bibliadiaria/app/MainActivity.java index fc8872b..a872f0e 100644 --- a/app/src/main/java/com/bibliadiaria/app/MainActivity.java +++ b/app/src/main/java/com/bibliadiaria/app/MainActivity.java @@ -195,7 +195,7 @@ public class MainActivity extends Activity { ViewGroup.LayoutParams.WRAP_CONTENT )); - sourceText = textView("Fuente: Vatican News", 13, COLOR_MUTED, Typeface.NORMAL); + sourceText = textView(isEnglish ? "Source: Vatican News" : "Fuente: Vatican News", 13, COLOR_MUTED, Typeface.NORMAL); LinearLayout.LayoutParams sourceParams = new LinearLayout.LayoutParams( ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT @@ -319,7 +319,7 @@ public class MainActivity extends Activity { } private View createExtrasButton() { - TextView button = textView("Extras", 15, Color.WHITE, Typeface.BOLD); + TextView button = textView(isEnglish ? "Extras" : "Extras", 15, Color.WHITE, Typeface.BOLD); button.setGravity(Gravity.CENTER); button.setPadding(dp(16), 0, dp(16), 0); button.setBackground(roundedRect(COLOR_ACCENT, dp(8), Color.TRANSPARENT, 0)); @@ -409,9 +409,9 @@ public class MainActivity extends Activity { ); quickParams.setMargins(0, dp(10), 0, dp(6)); - quickRow.addView(smallCalendarButton("- Año", view -> changeVisibleYear(-1))); - quickRow.addView(smallCalendarButton("Hoy", view -> selectDate(Calendar.getInstance()))); - quickRow.addView(smallCalendarButton("+ Año", view -> changeVisibleYear(1))); + quickRow.addView(smallCalendarButton(isEnglish ? "- Year" : "- Año", view -> changeVisibleYear(-1))); + quickRow.addView(smallCalendarButton(isEnglish ? "Today" : "Hoy", view -> selectDate(Calendar.getInstance()))); + quickRow.addView(smallCalendarButton(isEnglish ? "+ Year" : "+ Año", view -> changeVisibleYear(1))); panel.addView(quickRow, quickParams); LinearLayout weekdays = new LinearLayout(this); @@ -445,7 +445,7 @@ public class MainActivity extends Activity { button.setGravity(Gravity.CENTER); button.setBackground(roundedRect(Color.rgb(229, 244, 240), dp(8), Color.TRANSPARENT, 0)); button.setOnClickListener(listener); - button.setContentDescription(text.equals("<") ? "Mes anterior" : "Mes siguiente"); + button.setContentDescription(text.equals("<") ? (isEnglish ? "Previous month" : "Mes anterior") : (isEnglish ? "Next month" : "Mes siguiente")); return button; } @@ -997,7 +997,7 @@ public class MainActivity extends Activity { progressParams.setMargins(0, 0, dp(12), 0); row.addView(progressBar, progressParams); - statusText = textView("Cargando la Palabra de hoy...", 16, COLOR_INK, Typeface.NORMAL); + statusText = textView(isEnglish ? "Loading today's Word..." : "Cargando la Palabra de hoy...", 16, COLOR_INK, Typeface.NORMAL); statusText.setLineSpacing(0, 1.16f); row.addView(statusText, new LinearLayout.LayoutParams( 0, @@ -1007,7 +1007,7 @@ public class MainActivity extends Activity { statusBlock.addView(row); retryButton = new Button(this); - retryButton.setText("Reintentar"); + retryButton.setText(isEnglish ? "Retry" : "Reintentar"); retryButton.setTextColor(Color.WHITE); retryButton.setTextSize(14); retryButton.setAllCaps(false); @@ -1043,7 +1043,7 @@ public class MainActivity extends Activity { LinearLayout labelRow = new LinearLayout(this); labelRow.setGravity(Gravity.CENTER_VERTICAL); - TextView label = textView("Tamaño de letra", 15, COLOR_INK, Typeface.BOLD); + TextView label = textView(isEnglish ? "Font size" : "Tamaño de letra", 15, COLOR_INK, Typeface.BOLD); labelRow.addView(label, new LinearLayout.LayoutParams(0, ViewGroup.LayoutParams.WRAP_CONTENT, 1f)); fontValueText = textView(Math.round(readingFontSp) + " sp", 14, COLOR_MUTED, Typeface.BOLD); @@ -1954,7 +1954,7 @@ public class MainActivity extends Activity { DailySection papalWords = DailySection.reflection(cleanSectionText(papalText)); if (gospel.body.isEmpty() && firstReading.body.isEmpty() && papalWords.body.isEmpty()) { - throw new IOException("No encontré las secciones esperadas en la página."); + throw new IOException(isEnglish ? "Could not find the expected sections on the page." : "No encontré las secciones esperadas en la página."); } return new DailyReading( diff --git a/app/src/main/java/com/bibliadiaria/app/SettingsActivity.java b/app/src/main/java/com/bibliadiaria/app/SettingsActivity.java index fd191f9..60dffbe 100644 --- a/app/src/main/java/com/bibliadiaria/app/SettingsActivity.java +++ b/app/src/main/java/com/bibliadiaria/app/SettingsActivity.java @@ -35,6 +35,7 @@ public class SettingsActivity extends Activity { private TextView voiceSubtitleText; private TextView voiceButton; private UpdateManager.UpdateInfo latestInfo; + private boolean isEnglish; @Override protected void onCreate(Bundle savedInstanceState) { @@ -46,6 +47,7 @@ public class SettingsActivity extends Activity { } executor = Executors.newSingleThreadExecutor(); + isEnglish = UpdateManager.isEnglish(this); setContentView(createScreen()); updateInstalledVersionText(); } @@ -89,7 +91,7 @@ public class SettingsActivity extends Activity { content.addView(createVoiceCard()); content.addView(createVersionCard()); - checkButton = actionButton("Check now", COLOR_ACCENT, Color.WHITE); + checkButton = actionButton(isEnglish ? "Check now" : "Comprobar", COLOR_ACCENT, Color.WHITE); checkButton.setOnClickListener(view -> checkForUpdate()); LinearLayout.LayoutParams checkParams = new LinearLayout.LayoutParams( ViewGroup.LayoutParams.MATCH_PARENT, @@ -142,7 +144,7 @@ public class SettingsActivity extends Activity { 1f )); - TextView back = textView("Extras", 15, COLOR_ACCENT, Typeface.BOLD); + TextView back = textView(isEnglish ? "Extras" : "Extras", 15, COLOR_ACCENT, Typeface.BOLD); back.setGravity(Gravity.CENTER); back.setPadding(dp(14), 0, dp(14), 0); back.setBackground(roundedRect(Color.WHITE, dp(8), Color.rgb(219, 226, 222), dp(1))); @@ -181,11 +183,11 @@ public class SettingsActivity extends Activity { 1f )); - TextView langToggle = actionButton(UpdateManager.isEnglish(this) ? "English" : "Spanish", COLOR_ACCENT, Color.WHITE); + TextView langToggle = actionButton(UpdateManager.isEnglish(this) ? "English" : "Español", COLOR_ACCENT, Color.WHITE); langToggle.setOnClickListener(view -> { boolean current = UpdateManager.isEnglish(this); UpdateManager.setEnglish(this, !current); - langToggle.setText(!current ? "English" : "Spanish"); + langToggle.setText(!current ? "English" : "Español"); updateVoiceCard(); }); card.addView(langToggle, new LinearLayout.LayoutParams(dp(100), dp(40))); @@ -336,17 +338,18 @@ public class SettingsActivity extends Activity { String voiceId = UpdateManager.getTtsVoice(this, english); voiceSubtitleText.setText(english ? "English voices are shown while English is selected" - : "Spanish voices are shown while Spanish is selected"); + : "Las voces en español se muestran mientras el español esté seleccionado"); voiceButton.setText(UpdateManager.getTtsVoiceLabel(english, voiceId)); } private void updateInstalledVersionText() { try { - installedVersionText.setText("Installed: " - + UpdateManager.getInstalledVersionName(this) - + " (" + UpdateManager.getInstalledVersionCode(this) + ")"); + installedVersionText.setText( + (isEnglish ? "Installed: " : "Instalada: ") + + UpdateManager.getInstalledVersionName(this) + + " (" + UpdateManager.getInstalledVersionCode(this) + ")"); } catch (Exception error) { - installedVersionText.setText("Installed version unavailable."); + installedVersionText.setText(isEnglish ? "Installed version unavailable." : "Versión instalada no disponible."); } } diff --git a/app/src/main/java/com/bibliadiaria/app/UpdateManager.java b/app/src/main/java/com/bibliadiaria/app/UpdateManager.java index a1850bb..7d6e18d 100644 --- a/app/src/main/java/com/bibliadiaria/app/UpdateManager.java +++ b/app/src/main/java/com/bibliadiaria/app/UpdateManager.java @@ -205,11 +205,12 @@ final class UpdateManager { ? String.valueOf(info.latestVersionCode) : info.latestVersionName + " (" + info.latestVersionCode + ")"; + boolean english = isEnglish(activity); new AlertDialog.Builder(activity) - .setTitle("Update available") - .setMessage("Version " + version + " is ready to download.") - .setPositiveButton("Download", (dialog, which) -> openDownload(activity, info.apkUrl)) - .setNegativeButton("Later", null) + .setTitle(english ? "Update available" : "Actualización disponible") + .setMessage((english ? "Version " : "Versión ") + version + (english ? " is ready to download." : " está lista para descargar.")) + .setPositiveButton(english ? "Download" : "Descargar", (dialog, which) -> openDownload(activity, info.apkUrl)) + .setNegativeButton(english ? "Later" : "Después", null) .show(); }