Commit graph

8 commits

Author SHA1 Message Date
5b9aedd109 Update all dependencies to March 2026 versions
Major version bumps:
- AGP 8.7.3 → 9.1.0 (remove kotlin-android plugin, now built-in)
- Kotlin 2.0.21 → 2.3.20
- Gradle 8.9 → 9.4.0
- Compose BOM 2024.12.01 → 2026.03.00
- compileSdk/targetSdk 35 → 36

Library updates:
- core-ktx 1.15.0 → 1.18.0
- lifecycle 2.8.7 → 2.10.0
- activity-compose 1.9.3 → 1.13.0
- CameraX 1.4.1 → 1.5.1
- exifinterface 1.3.7 → 1.4.2

AGP 9 migration: removed org.jetbrains.kotlin.android plugin (Kotlin
support is now built into AGP), removed kotlinOptions block (JVM
target handled by compileOptions).

Bump version to 1.1.4.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-18 17:46:37 +01:00
aab1ff38a4 Add unit tests for BlurParameters and LensController
First test coverage for the project: 17 tests covering BlurParameters
constraint clamping (size, blur, falloff, aspect ratio, position),
data class equality, field preservation across with* methods, and
LensController pre-initialization edge cases.

Adds JUnit 4.13.2 as a test dependency.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-18 16:48:21 +01:00
878c23bf89 Replace Accompanist Permissions with first-party activity-compose API
Accompanist Permissions (0.36.0) is deprecated and experimental. Migrate
to the stable ActivityResultContracts.RequestPermission /
RequestMultiplePermissions APIs already available via activity-compose.

Adds explicit state tracking with a cameraResultReceived flag to
correctly distinguish "never asked" from "permanently denied" — an
improvement over the previous Accompanist-based detection.

Bump version to 1.1.2.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-18 16:43:56 +01:00
52af9f6047 Add version management with auto-bump script
Version is tracked in version.properties and read by build.gradle.kts.
Run ./bump-version.sh [major|minor|patch] before release builds.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-05 13:58:22 +01:00
6a1d66bd4b Add ViewModel for state preservation and centralize color constants
- Create CameraViewModel with AndroidViewModel to survive configuration
  changes (rotation). All blur params, capture state, gallery preview,
  and thumbnail state now live in StateFlow fields
- Create AppColors object to centralize the 12+ hardcoded color literals
  into a single source of truth
- Add lifecycle-viewmodel-compose dependency

Fixes: state lost on rotation, orphaned capture coroutines on config
change, accent color maintenance risk

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-05 12:07:39 +01:00
b235231390 Add release signing configuration
- Load signing credentials from local.properties (not committed)
- Keystore stored in .signing/ directory (not committed)
- Release builds are now signed and installable

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 17:23:00 +01:00
d3ca23b71c Add radial mode, UI controls, front camera, update to API 35
- Add radial/elliptical blur mode with aspect ratio control
- Add UI sliders for blur intensity, falloff, and shape
- Add front camera support with flip button
- Update minimum SDK to API 35 (Android 15)
- Enable landscape orientation (fullSensor)
- Rename app to "Naiv Tilt Shift Camera"
- Set APK output name to naiv-tilt-shift
- Add project specification document

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 11:13:31 +01:00
07e10ac9c3 Initial implementation of Tilt-Shift Camera Android app
A dedicated camera app for tilt-shift photography with:
- Real-time OpenGL ES 2.0 shader-based blur preview
- Touch gesture controls (drag, rotate, pinch) for adjusting effect
- CameraX integration for camera preview and high-res capture
- EXIF metadata with GPS location support
- MediaStore integration for saving to gallery
- Jetpack Compose UI with haptic feedback

Tech stack: Kotlin, CameraX, OpenGL ES 2.0, Jetpack Compose
Min SDK: 26 (Android 8.0), Target SDK: 35 (Android 15)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 15:26:41 +01:00