Files
crosspoint-reader-mod/chat-summaries/2026-02-09_16-35-summary.md
cottongin dfbc931c14 mod: Phase 1 - bring forward mod-exclusive files with ActivityManager migration
Brings ~55 mod-exclusive files to the upstream-based mod/master-resync branch:

Activities (migrated to new ActivityManager pattern):
- Clock/Time: SetTimeActivity, SetTimezoneOffsetActivity, NtpSyncActivity
- Dictionary: DictionaryDefinitionActivity, DictionarySuggestionsActivity,
  DictionaryWordSelectActivity, LookedUpWordsActivity
- Bookmark: EpubReaderBookmarkSelectionActivity
- Book management: BookManageMenuActivity, EndOfBookMenuActivity
- OPDS: OpdsServerListActivity, OpdsSettingsActivity
- Utility: DirectoryPickerActivity, NumericStepperActivity

Utilities (unchanged):
- BookManager, BookSettings, BookmarkStore, BootNtpSync
- Dictionary, LookupHistory, TimeSync, OpdsServerStore

Libraries: PlaceholderCover, TableData, ChapterXPathIndexer
Scripts: inject_mod_version, generate_book_icon, preview_placeholder_cover
Docs: KOReader sync XPath mapping

Migration changes:
- ActivityWithSubactivity -> Activity base class
- Callback constructors -> finish()/setResult() pattern
- enterNewActivity() -> startActivityForResult()
- Activity::RenderLock&& -> RenderLock&&

These files won't compile yet - they reference mod settings and I18n
strings that will be added in subsequent phases.

Made-with: Cursor
2026-03-07 15:10:00 -05:00

1.5 KiB

Letterbox Fill: 4-Mode Restructure (Solid, Blended, Gradient, None)

Task

Restructure the letterbox fill modes from 3 (None, Gradient, Solid) to 4 distinct modes with clearer semantics.

New Modes

  1. Solid (new) - Picks the dominant (average) shade from the edge and fills the entire letterbox area with that single dithered color.
  2. Blended (renamed from old "Solid") - Uses per-pixel sampled edge colors with noise dithering, no distance-based interpolation.
  3. Gradient - Existing gradient behavior (interpolates per-pixel edge color toward a target color).
  4. None - No fill.

Changes Made

src/CrossPointSettings.h

  • Updated SLEEP_SCREEN_LETTERBOX_FILL enum: LETTERBOX_NONE=0, LETTERBOX_SOLID=1, LETTERBOX_BLENDED=2, LETTERBOX_GRADIENT=3.
  • Note: enum values changed from the old 3-value layout. Existing saved settings may need reconfiguring.

src/SettingsList.h

  • Updated "Letterbox Fill" option labels to: "None", "Solid", "Blended", "Gradient".

src/activities/boot_sleep/SleepActivity.cpp

  • drawLetterboxFill(): Changed signature from bool solidFill to uint8_t fillMode. Added dominant shade computation for SOLID mode (averages all edge samples into one value per side). BLENDED and SOLID both skip gradient interpolation; SOLID additionally skips per-pixel edge lookups.
  • renderBitmapSleepScreen(): Removed solidFill bool, passes fillMode directly to drawLetterboxFill. Updated log message to show the mode name.

Follow-up Items

  • None