MiniABS 1.2: Galician interface, larger text and touch targets

- Translate the interface to Galician (tools/translate_gl.py), including
  Galician month abbreviations for dates, which Android 2.3 lacks
- Resize for the Galaxy Mini's 240x320 screen: larger text, rows, tabs and
  buttons; all sizes now live in res/values/dimens.xml
- Redraw play/pause/refresh icons for every density; slightly brighter
  secondary text colours

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
xockoandClaude Opus 5.5 committed 2026-10-14 21:29:17 +02:00
1 parent b7e43d7d61
commit 275bee3c11
51 files changed
+704 -372

No files matched your search

+21 -21
View File
@@ -202,7 +202,7 @@ public class HomeActivity extends BaseActivity {
}
void done(Integer n) {
if (n > 0) toast("Synced offline progress");
if (n > 0) toast("Sincronizouse o progreso gardado sen conexión");
}
}.start();
}
@@ -222,7 +222,7 @@ public class HomeActivity extends BaseActivity {
found.add(new String[]{Util.str(l, "id"), Util.str(l, "name")});
}
}
if (found.isEmpty()) throw new IOException("This server has no podcast libraries.");
if (found.isEmpty()) throw new IOException("Este servidor non ten bibliotecas de podcasts.");
podcastLibs = found;
}
String id = p.libraryId();
@@ -273,10 +273,10 @@ public class HomeActivity extends BaseActivity {
// older servers: just skip this section
}
if (!cont.isEmpty()) {
rows.add(Rows.Row.header("CONTINUE LISTENING"));
rows.add(Rows.Row.header("CONTINUAR ESCOITANDO"));
rows.addAll(cont);
}
rows.add(Rows.Row.header("LATEST EPISODES"));
rows.add(Rows.Row.header("ÚLTIMOS EPISODIOS"));
}
JSONArray eps = Api.recentEpisodes(HomeActivity.this, lib, page, PAGE).optJSONArray("episodes");
int n = eps == null ? 0 : eps.length();
@@ -301,8 +301,8 @@ public class HomeActivity extends BaseActivity {
}
latestPage = page;
latestMore = hasMore;
if (hasMore) latestCache.add(Rows.Row.more("Load more"));
if (tab == TAB_LATEST) show(latestCache, "No episodes yet.");
if (hasMore) latestCache.add(Rows.Row.more("Cargar máis"));
if (tab == TAB_LATEST) show(latestCache, "Aínda non hai episodios.");
}
void failed(Exception e) {
@@ -315,12 +315,12 @@ public class HomeActivity extends BaseActivity {
if (more) {
toast(Util.describe(e));
if (latestCache != null && !latestCache.isEmpty()) {
latestCache.get(latestCache.size() - 1).text = "Load more";
latestCache.get(latestCache.size() - 1).text = "Cargar máis";
adapter.notifyDataSetChanged();
}
return;
}
latestError = Util.describe(e) + "\n\nTap refresh to try again.";
latestError = Util.describe(e) + "\n\nToca o botón de actualizar (arriba á dereita) para tentalo de novo.";
if (offerTrust(retryRefresh)) {
if (tab == TAB_LATEST) show(null, null);
return;
@@ -368,7 +368,7 @@ public class HomeActivity extends BaseActivity {
if (isFinishing()) return;
updateLibraryLabel();
showsCache = rows;
if (tab == TAB_SHOWS) show(rows, "No podcasts in this library.");
if (tab == TAB_SHOWS) show(rows, "Non hai podcasts nesta biblioteca.");
}
void failed(Exception e) {
@@ -378,7 +378,7 @@ public class HomeActivity extends BaseActivity {
showError(e);
return;
}
showsError = Util.describe(e) + "\n\nTap refresh to try again.";
showsError = Util.describe(e) + "\n\nToca o botón de actualizar (arriba á dereita) para tentalo de novo.";
if (offerTrust(retryRefresh)) {
if (tab == TAB_SHOWS) show(null, null);
return;
@@ -391,7 +391,7 @@ public class HomeActivity extends BaseActivity {
/** When the server can't be reached but episodes are saved, show those instead. */
private void offlineFallback(Exception e) {
if (!(e instanceof Api.ApiException) && !Downloads.list(this).isEmpty()) {
toast("Can't reach the server. Showing saved episodes.");
toast("Non se pode acceder ao servidor. Amósanse os episodios gardados.");
selectTab(TAB_SAVED);
} else {
show(null, null);
@@ -405,17 +405,17 @@ public class HomeActivity extends BaseActivity {
savedSignature = (cur == null ? "" : cur.id) + "/" + queued.size() + "/" + DownloadService.lastError;
if (DownloadService.lastError != null) rows.add(Rows.Row.header(DownloadService.lastError));
if (cur != null || !queued.isEmpty()) {
rows.add(Rows.Row.header("DOWNLOADING"));
rows.add(Rows.Row.header("DESCARGANDO"));
if (cur != null) rows.add(Rows.Row.episode(cur));
for (Episode q : queued) rows.add(Rows.Row.episode(q));
}
List<Episode> saved = Downloads.list(this);
if (!saved.isEmpty()) {
rows.add(Rows.Row.header("SAVED ON SD CARD (" + saved.size() + ")"));
rows.add(Rows.Row.header("GARDADOS NA TARXETA SD (" + saved.size() + ")"));
for (Episode e : saved) rows.add(Rows.Row.episode(e));
}
if (rows.isEmpty()) {
show(rows, "Nothing saved yet.\n\nLong-press an episode and choose Download to listen offline.");
show(rows, "Aínda non gardaches nada.\n\nMantén premido un episodio e escolle Descargar para escoitalo sen conexión.");
} else {
show(rows, null);
}
@@ -436,7 +436,7 @@ public class HomeActivity extends BaseActivity {
break;
case Rows.MORE:
if (!loadingLatest && latestMore) {
r.text = "Loading…";
r.text = "Cargando…";
adapter.notifyDataSetChanged();
loadLatest(true);
}
@@ -469,12 +469,12 @@ public class HomeActivity extends BaseActivity {
private void chooseLibrary() {
if (podcastLibs == null || podcastLibs.size() < 2) {
toast(podcastLibs == null ? "Still loading libraries…" : "This is your only podcast library.");
toast(podcastLibs == null ? "Aínda se están cargando as bibliotecas…" : "Esta é a túa única biblioteca de podcasts.");
return;
}
String[] names = new String[podcastLibs.size()];
for (int i = 0; i < names.length; i++) names[i] = podcastLibs.get(i)[1];
new AlertDialog.Builder(this).setTitle("Podcast library")
new AlertDialog.Builder(this).setTitle("Biblioteca de podcasts")
.setItems(names, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface d, int which) {
String[] l = podcastLibs.get(which);
@@ -491,10 +491,10 @@ public class HomeActivity extends BaseActivity {
@Override
public boolean onCreateOptionsMenu(Menu menu) {
menu.add(0, 1, 0, "Refresh").setIcon(android.R.drawable.ic_menu_rotate);
menu.add(0, 2, 0, "Library").setIcon(android.R.drawable.ic_menu_agenda);
menu.add(0, 3, 0, "Now playing").setIcon(android.R.drawable.ic_media_play);
menu.add(0, 4, 0, "Settings").setIcon(android.R.drawable.ic_menu_preferences);
menu.add(0, 1, 0, "Actualizar").setIcon(android.R.drawable.ic_menu_rotate);
menu.add(0, 2, 0, "Biblioteca").setIcon(android.R.drawable.ic_menu_agenda);
menu.add(0, 3, 0, "En reprodución").setIcon(android.R.drawable.ic_media_play);
menu.add(0, 4, 0, "Axustes").setIcon(android.R.drawable.ic_menu_preferences);
return true;
}