Fix Google Photos pagination (#155) & Add Spanish translation (i18n) - #164
Fix Google Photos pagination (#155) & Add Spanish translation (i18n)#164miguelsg29 wants to merge 10 commits into
Conversation
…e aplicaciones al espanol
starbrightlab
left a comment
There was a problem hiding this comment.
Thanks for the big contribution here. After a full review I'd like to restructure how this lands, because it currently bundles three separable things (Google Photos fix + Spanish i18n, with #165/#166 stacked on top).
Plan:
-
Google Photos fix → taken separately. The
8a31deccommit that closes #155 is being merged on its own via #168 (your authorship preserved), decoupled from the i18n so it can ship immediately. Once #168 lands, a rebase here will drop8a31decautomatically (same patch already inmain), leaving this PR as i18n-only. -
Spanish i18n — accepted in principle, and the architecture is safe (English
strings.xmluntouched,translate()degrades to English,languagefield has anEnumSpecso the tripwire stays green). One change required before merge:- English regression:
SettingsDomains.kt:238lowercased the fit toggle to"fill"/"fit". SinceI18n.translatereturns English verbatim, English users now see lowercase "fill"/"fit" on the fit control and in the fleet/remote JSON. Please restore"Fill"/"Fit"(and key the ES dict on the capitalized strings, or add"fill"->"Fill"to the English path). - Nit: call sites use the fully-qualified
com.immortal.launcher.i18n.I18n.translate(...)everywhere — an import alias / top-leveltrwould cut a lot of diff noise.
- English regression:
So: rebase onto main after #168 merges, fix the fill/fit labels, and this becomes a clean i18n-only PR I can take. Really appreciate the localization work.
Closes #155
Summary of Changes
This PR addresses Issue #155 regarding Google Photos shared album crawling and portrait photo display quality, and introduces full Spanish language support (i18n) across the entire Immortal launcher ecosystem.
1. Google Photos Album Pagination & High Resolution
extractGoogleAlbumKey,extractGoogleContinuationToken, andfetchGoogleBatchRpccrawling inRemoteAlbum.ktso shared albums with >30 photos load all items (up to 100 pages / 10,000 photos) instead of capping at the initial HTML chunk.=w${maxDim}-h${maxDim}-nowheremaxDim = maxOf(screenW, screenH). This prevents 9:16 portrait photos from downscaling to low resolution inside the bounding box.2. Portrait Photo Display & Motion Enhancements
blurPhoto) for portrait photos. Eliminates black side bars without squishing or stretching the image.layerA&layerB) crossfade transition for smooth photo changes without visual pops or black flashes.photoFrameContainer(clipChildren = true,clipToOutline = true), so Ken Burns zoom/pan motion occurs gracefully inside the frame without edge flickering.cropVertical): Added a user-configurable toggle inScreensaverConfig(cropVertical) andSettingsDomains.screensaver("Crop vertical photos (~20%)") to trim ~10% off top and bottom of portrait photos.3. Complete Spanish Language Support (i18n)
immortal,screensaver,calendar,welcome,sunrise,chime,mqtt,quickbar,digitalclock) into Spanish.4. Verification & Unit Tests
./gradlew :app:testDebugUnitTest(BUILD SUCCESSFUL).RemoteAlbumTest.kt../gradlew :app:assembleDebug).