# 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