Releases: zac15987/LockView
LockView v1.2.0 - Image Rotation & Locked Controls
🚀 New Features
-
Two-Finger Image Rotation
- Rotate images using intuitive two-finger gesture
- Toggle rotation on/off with dedicated rotation button
- Rotation state persists with image transformations
-
Locked Controls Setting
- New preference to allow gestures (zoom, pan, rotate) even when image is locked
- Perfect for users who want interaction protection without losing gesture controls
- Accessible from settings menu with full i18n support
🔧 Technical Improvements
-
Unified Transform Gesture Handler
- Replaced separate zoom and rotation handlers with unified
detectTransformGestures - Created custom
TransformGestureDetectorfor precise gesture control - Normalized rotation deltas to -180° to 180° range for consistent behavior
- Replaced separate zoom and rotation handlers with unified
-
Improved Gesture Accuracy
- Fixed pan gesture alignment when image is rotated - panning now moves correctly relative to rotated coordinate system
- Fixed drag gesture rotation transformation with proper forward rotation
- Added 1.0° rotation threshold to reduce jitter during zoom gestures
-
Enhanced Scale Management
- Renamed
minScaletofitScalefor clearer semantics - Initial image scale now properly set to fit-to-screen
- Double-tap zoom uses fitScale as reference point
- Renamed
-
Better State Management
- Fixed
lockedControlsPreferencestate collection withcollectAsStateWithLifecycle - Added
LockedControlsRepositoryfor preference persistence with DataStore
- Fixed
🌐 Internationalization
- Full English and Traditional Chinese support for all new UI elements
- Localized strings for rotation toggle and locked controls setting
📦 Versioning
- Bumped version from 1.1.0 to 1.2.0
- Version code: 4
This feature update adds powerful image rotation capabilities and flexible locked controls, giving users more control over their viewing experience while maintaining protection against accidental interactions.
What's Changed
Full Changelog: v1.1.0...v1.2.0
LockView v1.1.0 - Touch-Safe Protection with System Bars Auto-Hide
🚀 New Features
- Complete Touch-Safe Protection with Immersive Lock Mode
- System bars (status bar and navigation bar) now automatically hide when an image is locked, providing complete protection from accidental touches on system controls
- Uses modern WindowCompat API with immersive sticky mode for optimal user experience
- System bars automatically reappear when device is unlocked or image is manually unlocked
- Perfect for secure viewing without worrying about unintended interactions with navigation buttons or status bar notifications
🔧 Technical Improvements
-
Modern System UI Integration
- Implemented WindowCompat and WindowInsetsControllerCompat for better Android version compatibility (API 24-36)
- Added
WindowCompat.setDecorFitsSystemWindows(window, false)for proper edge-to-edge display - Replaced deprecated system UI visibility flags with modern Window Insets APIs
-
Enhanced State Management
- Fixed StateFlow emission issues in ImageViewerViewModel using proper
update()pattern - Replaced DisposableEffect with LaunchedEffect for better state reactivity
- Added
areSystemBarsHiddenproperty to ImageViewerState for reactive system bars control - Improved state persistence across configuration changes
- Fixed StateFlow emission issues in ImageViewerViewModel using proper
-
Better Context Handling
- Added safe Activity context resolution helper function for Composables
- Improved error handling for system bars control operations
📦 Versioning
- Bumped version from 1.0.1 to 1.1.0
This major feature update significantly enhances the lock functionality by providing true immersive protection, ensuring users can view locked images without any risk of accidental system interactions.
What's Changed
Full Changelog: v1.0.1...v1.1.0
LockView v1.0.1 - UI Fixes & Dynamic Versioning
🔧 Fixes & Improvements
-
Fixed UI Overlap with Navigation Bar Buttons
AppliednavigationBarsPadding()to prevent bottom UI elements (like the lock button and add image button) from being hidden when system navigation is set to button mode. -
Enabled Dynamic Version Display
BuildConfig.VERSION_NAMEis now used to display version info in the About dialog.- Removed hardcoded version strings from
strings.xml. - Introduced localized
version_formatstrings for proper internationalization. - Enabled
buildConfig = trueinbuild.gradle.ktsto auto-generate version constants.
📦 Versioning
- Bumped version from 1.0.0 to 1.0.1
These updates improve visual consistency and reduce manual effort when updating the app version.
What's Changed
Full Changelog: v1.0.0...v1.0.1
LockView v1.0.0 - Initial Release
LockView v1.0.0
The first public release of LockView - an image viewer for Android with lock functionality.
🎉 What's New
Core Features
- Lock Protection - Lock your images with a single tap to prevent accidental interactions
- Auto-Unlock - Automatically unlocks when you unlock your device
- Common Gestures - Pinch-to-zoom, pan, and double-tap zoom with smooth animations
- Theme Support - Light, Dark, and System themes with Material You dynamic colors (Android 12+)
- Multi-Language - English and Traditional Chinese with instant switching
- Privacy-First - No data collection, no network access, no analytics
Technical Highlights
- Built with Jetpack Compose and Material 3
- MVVM architecture with StateFlow
- Supports Android 7.0 (API 24) through Android 15 (API 36)
- Optimized with R8 minification
📱 Installation
APK
Download lockview-v1.0.0-release.apk below and install directly on your device.
🚀 Use Cases
Perfect for:
- Displaying QR codes or barcodes at security checkpoints
- Showing tickets or passes without worry
- Presenting contractor IDs at facility entrances
- Any situation where you need to hand your phone to someone
🔧 For Developers
To build from source:
git clone https://github.com/zac15987/LockView.git
cd LockView
./gradlew assembleReleaseSee the https://github.com/zac15987/LockView for detailed build instructions.
📄 License
MIT License - See https://github.com/zac15987/LockView/blob/main/LICENSE for details.
🙏 Acknowledgments
Built with https://claude.ai/code - Anthropic's AI coding assistant.
Full Changelog: This is the initial release