aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)AuthorFilesLines
42 hoursOptional app PIN, settings header, pink selection ringDanilo M.11-19/+256
- A PIN (4 to 8 digits, salted SHA-256 in prefs) set in Settings shows a logo splash with a PIN prompt at start and whenever the app returns after leaving the screen; Back there leaves the app. - Settings gets the back-arrow header shared with the folder grid (Ui.header) and scrolls, since the PIN fields overflow the screen. - Tile and list focus rings use the icon pink. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
42 hoursDo not clip the focus zoom of icon buttonsDanilo M.1-1/+2
The scaled icon draws into the button padding, which was clipped, so the full-bleed app logo lost its edges. The current-view mark moves down 2dp to clear the zoom. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
42 hoursPink scaled focus, current-view mark, app logo as HomeDanilo M.4-36/+45
From on-device testing: the grey focus box looked heavy, the current tab was not visible once focus moved into the content, and "Settings" was clipped. Focus now scales the icon and tints it with the logo pink; a pink bar marks the current view; the label is WRAP_CONTENT (the vertical default, MATCH_PARENT, did not widen its box). Home uses the app logo instead of loading Foldergram's from the instance. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
43 hoursAdd a launcher icon and banner: a photo glyph on a TVDanilo M.3-4/+30
Replaces the generic folder icon. Foldergram's own logo cannot be bundled (AGPLv3 asset in a GPLv2-only APK), so this is an original vector drawing. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
43 hoursBack icon in folder view, softer focus, Back returns to HomeDanilo M.6-4/+44
From on-device testing: the folder grid had no visible way back, the white focus ring on icons was harsh, and Back on the Liked or Folders tab closed the app. Icon buttons now get a soft rounded highlight, tiles a thinner translucent ring, and Back leaves the app only from Home. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
43 hoursSpec: FolderActivity row matches the lazy folder gridDanilo M.1-1/+1
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
43 hoursLazy-load folder content in random page orderDanilo M.7-60/+153
A folder with several thousand posts took ~10 s to open because FolderActivity and the Home row OK handler fetched every page before showing anything. Pages are now fetched one at a time in a shuffled page order (each page shuffled locally), the grid shows after the first page, and the viewer shares the list and pager so it keeps paging the folder. Reels use the same generic pager. Not a full shuffle: neighbours within a page stay together. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
43 hoursMask password fields, submit login from the keyboard, size picker entriesDanilo M.2-4/+11
setSingleLine() after setInputType() reset the password transformation, so the viewer password showed in clear text in setup and settings. On the TV the on-screen keyboard keeps the D-pad, so the keyboard done key now logs in. Instance entries wrap their text so the focus zoom no longer clips the first letter. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
43 hoursFix viewer timer and lifecycle review findingsDanilo M.1-8/+18
- tick() refreshes lastTick on every tick, so a failed video no longer advances at once with its whole playback time. - Photo timer counts only once the photo is shown (or failed), so a slow load cannot advance before display. - Slides started while the activity is stopped stay paused and stopped; onStart re-prepares them. - toggleLike error UI guard no longer indexes a replaced playlist. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
43 hoursDocument build, deploy and test commandsDanilo M.2-4/+27
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
43 hoursAdd settings screenDanilo M.1-0/+62
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
43 hoursFix viewer review findingsDanilo M.2-14/+59
- Reels paging: drop page callbacks after destroy or a replaced playlist - Scope Glide loads to views and clear them in onDestroy (no deprecated Glide.with(Activity)) - Stop the player in onStop, re-prepare in onStart - Photo timer uses real elapsed time and starts when the photo is on screen - Reels: continue past the old last post when a new page arrives; "No reels" when empty - Likes: ordered single-thread executor, newer toggle wins on error, no "null" in toast - Note the unbounded frame grab limitation Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
43 hoursAdd fullscreen viewer with blurred backdrop, auto-advance and double-OK likesDanilo M.1-0/+364
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
43 hoursFix lifecycle, focus loss, crossfade and tab race review findingsDanilo M.3-17/+54
- MainActivity: remove rotate callbacks in onDestroy, ignore connect results once destroyed, rotate the background only while resumed, guard the fade end action. - HomeRows: each row owns one TileAdapter over a mutable list; rebinds refill it and notifyDataSetChanged instead of setAdapter, so focus and scroll survive a sample arriving (change payload keeps the holder). - Crossfade: flip front only on onResourceReady, cancel the animation before resetting alpha. - Tab loads ignore errors from a tab that is no longer shown; Home does not fire a second /folders request while one is in flight. - Load the instance logo after login in connect(). - FolderActivity: request grid focus after layout. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
43 hoursAdd main screen with top bar, Home rows, Liked and Folders tabsDanilo M.3-0/+390
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
43 hoursFocus the first action, ignore an empty URL, reset tile zoom on rebindDanilo M.2-1/+8
Review follow-ups: after a failed scan or connect nothing had focus, so the first D-pad press was swallowed; an empty manual URL produced a confusing "Cannot reach http://" error; a recycled tile could keep the 1.08 focus zoom. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
43 hoursAdd LAN discovery and instance pickerDanilo M.4-1/+452
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
43 hoursAdd Foldergram API client, likes set and playlist hand-offDanilo M.3-2/+275
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
43 hoursAdd post parsing, URL helpers, health check and double-OK logic with testsDanilo M.5-0/+289
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
43 hoursAdd Android project skeleton and Docker buildDanilo M.28-0/+468
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
43 hoursUse the /images/:id/like alias, present on older instances tooDanilo M.2-2/+3
The live instance predates /api/posts/:id/like; upstream keeps the /images alias. The instance also has no carousel fields, which Post already handles by falling back to the top-level media. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
43 hoursPlan: strip the trailing newline from the password fileDanilo M.1-1/+1
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
43 hoursPlan: read the viewer password from /tmp/mygram.pwDanilo M.1-5/+6
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
43 hoursAdd implementation planDanilo M.1-0/+2616
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
44 hoursSpec: top bar layout with Foldergram logo as HomeDanilo M.1-2/+13
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
44 hoursSpec: prefer icons over text buttonsDanilo M.1-1/+15
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
44 hoursAdd approved app design specDanilo M.2-11/+180
Design for the Android TV client: instance discovery by subnet scan, viewer-password login, Home rows with blurred rotating background, Reels, Liked and Folders tabs, and a fullscreen viewer with blurred backdrop, auto-advance, progress bar and double-OK likes. AGENTS.md now points at the spec instead of listing open decisions. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
44 hoursInitial commit: project docs and licenseDanilo M.4-0/+446
Native Android TV client for browsing a self-hosted Foldergram instance. Adds AGENTS.md with scope, target device and open decisions, a thin CLAUDE.md pointing at it, README and the GPLv2 license. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>