|
| 1 | +# PDAI v0.7.1 — Release Notes |
| 2 | + |
| 3 | +## New Features |
| 4 | + |
| 5 | +### Favorites (Like) |
| 6 | + |
| 7 | +- "Favorite" button (heart) in image detail view |
| 8 | +- Like indicator in gallery grid (red heart in the top right corner) |
| 9 | +- Bulk like: "Like" button in selection mode likes all selected images |
| 10 | +- "Delete Unliked" function in gallery menu — deletes all images without a like |
| 11 | +- Real-time sync of like status between detail view and grid |
| 12 | +- Like status persists between sessions |
| 13 | + |
| 14 | +### Hide Images |
| 15 | + |
| 16 | +- Bulk hide: "Hide" button in selection mode hides all selected images |
| 17 | +- Real-time sync of hide status between detail view and grid |
| 18 | +- Fallback for Android < 12: dimming with icon instead of blur |
| 19 | + |
| 20 | +### Image Editor |
| 21 | + |
| 22 | +Built-in editor for generated images: |
| 23 | + |
| 24 | +- Rotate left/right |
| 25 | +- Flip horizontally and vertically |
| 26 | +- Adjust brightness, contrast, and saturation |
| 27 | +- Save changes to original or as a new image |
| 28 | + |
| 29 | +--- |
| 30 | + |
| 31 | +### Completely Redesigned Gallery with Improved Performance |
| 32 | + |
| 33 | +**Smart Loading:** |
| 34 | +- Thumbnails load only for visible items |
| 35 | +- File-based thumbnail loading (no Base64) — fixed OOM on fast scrolling |
| 36 | +- BlurHash placeholders — blurred preview while thumbnail loads |
| 37 | +- Shimmer animation for items without BlurHash |
| 38 | +- Two-level cache for thumbnails and full images |
| 39 | + |
| 40 | +**Grid Management:** |
| 41 | +- Grid size from 1 to 6 columns (previously 2-5) |
| 42 | +- Pinch to resize thumbnails |
| 43 | +- Draggable scrollbar for fast navigation |
| 44 | + |
| 45 | +**Drag Selection:** |
| 46 | +- Long press activates selection mode |
| 47 | +- Dragging finger selects a range of images |
| 48 | +- Dragging back deselects |
| 49 | +- Auto-scroll when reaching screen edges |
| 50 | +- Smooth animations when opening images |
| 51 | + |
| 52 | +**Selection Mode Actions:** |
| 53 | +- Like (heart) — like all selected |
| 54 | +- Hide (eye) — hide all selected |
| 55 | +- Delete — delete all selected |
| 56 | +- Save to device gallery |
| 57 | +- Export |
| 58 | + |
| 59 | +**Update on Delete:** |
| 60 | +- Gallery auto-updates when deleting images from detail view |
| 61 | +- Gallery auto-updates after generation completes |
| 62 | + |
| 63 | +--- |
| 64 | + |
| 65 | +### UI Improvements |
| 66 | + |
| 67 | +**Floating Generation Indicator:** |
| 68 | +- Global generation status widget over all screens |
| 69 | +- Swipe left/right to temporarily hide |
| 70 | +- Automatically appears on status change (generation start/result) |
| 71 | +- Does not block navigation (drawer opens over widget) |
| 72 | + |
| 73 | +**Collapsible Header:** |
| 74 | +- Top bar hides on scroll down |
| 75 | +- Appears on scroll up or when reaching top of list |
| 76 | +- Standard NestedScrollConnection pattern (like Google Photos) |
| 77 | +- Unified height of 72dp on all screens |
| 78 | + |
| 79 | +**Swipe Navigation:** |
| 80 | +- Swipe between home screen tabs (HorizontalPager) |
| 81 | +- Drawer opens only by button (not edge swipe) |
| 82 | + |
| 83 | +**Image Viewing:** |
| 84 | +- Double tap to zoom/reset |
| 85 | +- Swipe up/down to show/hide info |
| 86 | +- Fixed artifacts when swiping between images |
| 87 | + |
| 88 | +**Navigation Bar:** |
| 89 | +- Smoothly hides in fullscreen view |
| 90 | +- Automatically appears when returning to gallery |
| 91 | + |
| 92 | +**Image Details:** |
| 93 | +- "Share" button |
| 94 | +- "Save to device gallery" button |
| 95 | +- "Favorite" (like) button |
| 96 | + |
| 97 | +--- |
| 98 | + |
| 99 | +## Fixes |
| 100 | + |
| 101 | +### Image Export |
| 102 | +- Fixed OOM when exporting many images |
| 103 | +- Direct file copy instead of loading into memory (Base64) |
| 104 | +- Parallel processing (4 threads) for faster export |
| 105 | + |
| 106 | +### "Report" Button |
| 107 | +- Disabled for Full and FOSS builds (Play Store only) |
| 108 | + |
| 109 | +### Aspect Ratio |
| 110 | +- Aspect ratio now always uses width as the base (not the longer side) |
| 111 | + |
| 112 | +### Fal AI |
| 113 | +- Fixed issue with API keys containing control characters |
| 114 | +- `requestId` field in Fal AI response is now optional (fixed crash on fast completion) |
| 115 | + |
| 116 | +--- |
| 117 | + |
| 118 | +## Visual Changes |
| 119 | + |
| 120 | +- Updated notification icon |
| 121 | + |
| 122 | +--- |
| 123 | + |
| 124 | +## Technical Changes |
| 125 | + |
| 126 | +### Dependencies |
| 127 | + |
| 128 | +- Added BlurHash 0.3.0 for blurred placeholders in gallery |
| 129 | + |
| 130 | +### Database |
| 131 | + |
| 132 | +- Migration v10 → v11: added `blur_hash` field to generation results table |
| 133 | +- Migration v11 → v12: added `liked` field for favorites feature |
| 134 | + |
| 135 | +### New Components |
| 136 | + |
| 137 | +- `ImageEditor` — image editing screen |
| 138 | +- `CollapsibleScaffold` — scaffold with collapsible header |
| 139 | +- `DraggableScrollbar` — draggable scrollbar |
| 140 | +- `DragSelectionState` / `DragSelectionUtils` — drag selection |
| 141 | +- `ThumbnailGenerator` — thumbnail generator |
| 142 | +- `ImageCacheManager` — image cache manager |
| 143 | +- `BlurHashEncoder` / `BlurHashDecoder` — BlurHash encoding/decoding |
| 144 | +- `GalleryItemStateEvent` — real-time sync of hide/like states |
| 145 | +- `GetThumbnailInfoUseCase` / `GetGalleryItemsRawUseCase` — use cases for file-based thumbnail loading |
| 146 | +- `ToggleLikeUseCase` / `DeleteAllUnlikedUseCase` — use cases for favorites feature |
| 147 | +- `LikeItemsUseCase` / `HideItemsUseCase` — use cases for bulk operations |
| 148 | + |
| 149 | +--- |
| 150 | + |
| 151 | +## Localization |
| 152 | + |
| 153 | +Added strings: |
| 154 | +- Share, Edit, Save to gallery |
| 155 | +- Rotate, Settings, Brightness, Contrast, Saturation |
| 156 | +- Delete unliked, confirm delete unliked |
| 157 | + |
0 commit comments