Commit graph

205 commits

Author SHA1 Message Date
Vadim
d67b75cbca fixed unit tests 2025-07-18 01:16:19 +02:00
Vadim
c5ef878ddb migrated to new iap service 2025-07-17 23:02:07 +02:00
Vadim
91a1942191 wip 2025-07-16 21:24:37 +02:00
Vadim
a6d2892d5c made note field multiline 2025-07-11 22:54:30 +02:00
Vadim
65e3724ce8 made image preview full-width 2025-07-11 22:50:54 +02:00
Vadim
cfff85a7f3 made DialogPicker content scrollable 2025-07-11 22:49:16 +02:00
Vadim
02f60956e3 fixed updating photos 2025-07-11 22:36:03 +02:00
Vadim
812d3b281a added saveLogbookPhotos option 2025-07-11 11:37:59 +02:00
Vadim
416c3b7d9c added empty logbook state 2025-07-10 16:23:37 +02:00
Vadim
84c8973690 fixed logbook list updates 2025-07-10 16:18:12 +02:00
Vadim
ca6b921b6b added hero animation 2025-07-10 16:12:36 +02:00
Vadim
84e77d0620 adjusted logbook grid 2025-07-10 16:05:35 +02:00
Vadim
02c6c2fc6f added CameraSettingsSection 2025-07-10 15:43:54 +02:00
Vadim
39501ee4ac save geolocation 2025-07-10 15:18:47 +02:00
Vadim
1412ce2b3e added photo update 2025-07-10 13:52:48 +02:00
Vadim
4e7c080b97 implemented LogbookPhotoEditScreen 2025-07-10 00:08:57 +02:00
Vadim
a517a28daf implemented LogbookScreen 2025-07-09 21:48:24 +02:00
Vadim
73c1c0d66e added LogbookPhotosProvider 2025-06-13 22:54:02 +02:00
Vadim
435a551235 typos 2025-06-13 22:53:49 +02:00
Vadim
7c96b5a47d
ML-220 Show focal length when zooming (#233)
* extract focal length from exif

* added focal length section

* wip

* [android] calculate EFL

* split other platform handlers to separate files

* [ios] calculate EFL

* updated translations

* deleted `focalLengthFromTags`

* fixed unit tests

* [ios] link missing files

* updated Pro features screen

* [ios] fixed signing

* fixed screenshot generator

* updated goldens

* [android] updated store screenshots

* wip

* [ios] updated store screenshots

* enable focal length feature by default

* mock camera focal length for integration tests

* cleanup

* added logging to `CameraInfoService`
2025-05-14 10:26:59 +02:00
Vadim
f820f9fbba
ML-218 Changing app resets EV and Zoom values (#231)
* preserve camera controls values after controller dispose

* notify camera bloc about equipment profile changes

* fixed tests

* lint
2025-05-04 11:21:37 +02:00
Vadim
79f702f7ea
ML-228 Name textfield keeps focus after editing on other sections (#229)
* unfocus textfield when tapped outside

* autofocus equipment profile name

* upload diagnostic screenshots

* typo

* wip

* typo

* more diagnostic screenshots

* removed diagnostic screenshots

* returned diagnostic screenshots

* skip failing step (wip)

* cleanup
2025-04-01 22:35:24 +02:00
Linus von Drenkmann
f0110e0edf
Add German translation (#222)
* l10n: add German translation

* l10n: add German to supported locales

* l10n(german): improve translation of "none"

* l10n(german): change about title

* style: alphabetical sorting of languages
2025-03-22 11:23:18 +01:00
Vadim
0e45d98060
ML-221 Spot Metering only available when Histogram is enabled (#225) 2025-03-17 22:43:00 +01:00
Vadim
2dee63e78e
Updated screenshots with v1.0.3 (#219)
* fixed errors

* removed autofocus from name textfield

* fixed equipment profiles find

* updated ios screenshots

* deleted redundant "light_equipment-profiles-iso-picker"

* merged scripts per platform

* updated android screenshots

* fixed flutter version

* Update README.md

* skip codesign for PR ipa
2025-02-16 12:41:56 +01:00
Vadim
492cbaa7ee
ML-209 Camera preview orientation is wrong (#216)
* lock orientation to `portraitUp`

* removed custom rotator for camera preview

* downgraded to Flutter 3.24.5

* purchasable product

* updated goldens

* skip artifact upload for PR checks

* iap 2.1.3

* Update update_goldens.sh
2025-01-27 21:32:41 +01:00
ScaredCube
461efc7ffd
Modify Chinese Translations (#214) 2025-01-27 21:11:16 +01:00
Vadim
38407d6c08
Moved Firebase options to .gitignore (#212)
* fixed builds being pushed to main

* restore firebase options in workflows

* moved firebase options to gitignore
2025-01-23 18:24:32 +01:00
Vadim
8ecab836a3 ML-209 Camera preview orientation is wrong (#210)
* lock orientation to `portraitUp`

* removed custom rotator for camera preview
2025-01-23 18:05:39 +01:00
Vadim
e334f0f8da
ML-175 Improved logging for missing EXIF fields (#207)
* include only the necessary values in logs

* added runtime type to iso
2025-01-20 20:03:02 +01:00
Vadim
fb58b6cd9f
Upgrade project to the latest stable Flutter version (#201)
* fixed fvm path typo

* Update pubspec.yaml

* version control pubspec.lock

* fixed ios build

* deleted `ExpandableSectionList`

* removed redundant default cases

* avoided async gaps

* replaced deprecated color value getter

* `WillPopScope` -> `PopScope`

* removed theme deprecations

* replaced text scale deprecation

* updated goldens

* updated flutter version across workflows

* [android] migrated to the new gradle

* upgraded dependencies

* [android] fixed build

* [ios] fixed build

* updated config

* allow release notes to fail

* updated stub pubspec

* [android] use java 17

* [ios] enable flutterfire

* added firebase.json to secrets

* typo

* update color utils

* use exact versions

* reverted color utils

* updated goldens
2025-01-20 19:32:57 +01:00
Vadim
c0e26b8840
ML-196 Allow to select equipment profile in use (#199)
* fixed equipment profile pickers updates
2024-11-17 09:49:01 +01:00
Vadim
1d22ec5439
Removed language switch from release notes dialog (#198)
* Removed language switch from release notes dialog
2024-11-11 18:51:16 +01:00
Vadim
30418a9cfd
ML-196 Allow to select equipment profile in use (#197)
* integrated `EquipmentProfilesStorageService`

* implemented `EquipmentProfileEditScreen`

* added equipment profiles screens to navigation

* fixed tests

* fixed splashscreen removal

* replaced old `EquipmentProfilesScreen`

* typo

* use outlined icons

* fixed storage mock for integration tests

* recovered copy feature for profiles

* added profile deletion to e2e test

* added translations

* added film translations

* wip

* add ability to toggle equipment profiles

* lints

* fixed tests

* sync with iap rename

* use `Toggleable` from resources

* use iap 2.1.0

* use outlined edit icon
2024-11-11 17:20:12 +01:00
Vadim
c66381f813
ML-191 Add an ability to add a generic film, that will accept a formula (#195)
* sync with resources

* separated `ExpandableSectionList` as widget

* fixed generic type

* implemented `FilmsScreen` (wip)

* made `SliverScreen` title a widget

* [`FilmEditScreen`] wip

* [`FilmEditScreen`] added validation

* fixed title overflow for `SliverScreen`

* [`FilmEditScreen`] separated add and edit blocs

* [`FilmEditScreen`] split into separate components

* added bottom widget to `SliverScreen`

* implemented films list tabs fo `FilmsScreen`

* added films screen to navigation

* replaced explicit routes names with enum values

* implemented CRUD for custom films

* added placeholder for empty custom films list

* added `FilmsStorageService`

* fixed unit tests

* fixed integration tests

* lint

* fixed golden tests

* added iap stub methods

* added custom films to features list

* use 2.0.0 resouces

* fixed film picket tests

* migrated to iap 1.0.1

* autofocus film name field

* wait for the film to edited

* migrated to iap 1.1.0

* typo

* wait for storage initialization

* migrated to iap 1.1.1

* fixed films initialization

* added conditions to films model `updateShouldNotifyDependent`

* typo

* fixed select film discard notify

* covered films model `updateShouldNotifyDependent`
2024-11-03 20:16:01 +01:00
Vadim
63ff6cc867
ML-189 Auto-downsize exposure pairs items for big display sizes (#190)
* added autosize text

* added more room for exposure pairs list

* downsize text only for long values
2024-09-23 16:08:30 +02:00
Vadim
9d5860a53f
ML-184 Make "Restore purchases" option more accessible (#185)
* moved "Restore purchases" to the Pro section

* updated goldens

* downgraded dependencies

* upgraded again

* added resources to dependency_overrides
2024-07-28 14:37:37 +02:00
Vadim
f0d707b071
Show Lightmeter Pro price before purchase (#183)
* Upgraded `targetSdkVersion` to 34

* added price to `IAPProduct`

* implemented `ProFeaturesScreen` (wip)

* finalized `ProFeaturesScreen` layout

* replaced `ProFeaturesDialog` with `ProFeaturesScreen`

* added translations

* fixed feature checkbox width calculation

* fixed tests

* separated android & ios features

* NPE

* changed "get pro" tile colors

* unified Lightmeter Pro related naming

* typo

* updated golden tests

* use iap 0.11.0

* revert unrelated changes

This reverts commit bae5ead8f0.

* lint

* adjusted eng translation

* updated goldens
2024-07-23 23:19:41 +02:00
Vadim
90bfe7c7b8 Fixed integration tests 2024-05-23 11:34:11 +02:00
Vadim
7f8ea54c6e Fixed duplicate release notes dialog 2024-05-23 09:08:16 +02:00
Vadim
d4deae57ef Fixed release notes dialog logic 2024-05-22 22:50:47 +02:00
Vadim
881778b313
Show release notes after update (#178)
* replace generated release notes with pre-built assets

* implemented release notes dialog

* store release notes for version

* show release notes dialog after update

* added release notes dialog to settings

* allow blank values in settings

* updated release notes
2024-05-22 22:46:46 +02:00
Vadim
f62f658be8
Automated release screenshots generation (#177)
* added system overlays for iPhone 8 Plus & iPhone 13 Pro

* add device frame (wip)

* scale device frame (wip)

* add text to screenshots (wip)

* added screenshots config json

* reorganized screenshot models

* cleanup

* added fonts for dark screenshots

* typo

* store raw screenshots

* added standalone script to update screenshots

* wip

* refined screenshots naming

* skip metering layout dialog screenshot

* parse ipad name

* added assets for Pixel 6

* typo

* added text for incident light metering

* reorganized store script

* typo

* wip

* synced outlined icons

* added timer screen to screenshot generator

* constrained timer screen timeline for tablets

* added timer screenshot title

* typo

* revised scripts

* track release screenshots

* Update README.md

* iphone 6.5" -> iphone 6.7"

* Update google_play_resources.md

* softened screenshot font colors

* cleanup
2024-05-21 19:13:33 +02:00
Vadim
8c016e548b
Unified the app's color palette & icons (#176)
* unified scaffold background color

* unified components elevation

* use filled tonal icon buttons

* aligned slider colors with guidelines

* removed unused `CloseButton`

* migrated to outlined icons

* moved timer list tile to the top of the section

* updated goldens

* migrated to the latest material utils

* reaplced `SchemeTonalSpot` with `SchemeRainbow`

* fixed ruler slider ticks color

* update goldens

* fixed tests

* fixed scheme mapping and returned to `SchemeTonalSpot`
2024-05-20 17:08:37 +02:00
Vadim
5c27f726c5
ML-173 Add a timer for long exposures (#174)
* wip

* added start/stop button

* animated timeline

* fixed timer stop state

* added reset button (wip)

* added `onExposurePairTap` callback

* integrated `TimerScreen` to navigation

* separated `TimerTimeline`

* fixed timeline flickering

* added milliseconds to timer

* synchronized timeline with actual timer

* reused `BottomControlsBar`

* fixed default scaffold background color

* moved center button size to the bar itself

* display selected exposure pair on timer screen

* separated reusable `AnimatedCircluarButton`

* release camera when timer is opened

* added `TimerInteractor`

* added `TimerBloc` test

* fixed hours parsing

* added scenarios for timer golden test

* adjusted timer timeline colors

* show iso & nd values on timer screen

* automatically close timer screen after timeout

* added timer autostart

* reverted theme changes

* updated goldens

* typo

* removed timer screen auto-dismiss

* increased timer vibration duration

* replaced outlined locks

* increased 1/3 values font size
2024-05-07 19:24:51 +02:00
Vadim
bc7e6e14d0
ML-170 Show long shutter speeds for all selected aperture values (#172)
* generate exposures > 1"

* fixed unit tests

* added manual shutter speed to equipment profiles

* fixed integration tests

* fixed unit tests

* fixed long exposures overflow

* migrated to resources 1.2.0 and iap 0.10.0

* removed unnecessary loop

* fixed extreme exposure pairs test

* updated master screenshots

* fixed iap stub
2024-04-30 12:44:01 +02:00
Vadim
59977cc9b5
ML-134 Set Feature.showUnlockProOnMainScreen: true (#169)
* Set `Feature.showUnlockProOnMainScreen: true`

* update metering goldens
2024-04-15 13:18:50 +02:00
Vadim
27d56d1061
ML-166 Golden tests (#167)
* setup golden toolkit

* implemented `GoldenTestApplicationMock`

* added devices with dark theme

* implemented MeteringScreen golden test

* moved platform channel logic to app mock

* implemented SettingsScreen golden test

* gitignore golden tests failures

* Create dart_test.yaml

* adjusted `RulerSlider` ticks height

* set master screenshots

* run golden tests on ci

* fixed `LightSensorService` tests

* removed golden workflow call from PR check

* Update pr_check.yml
2024-04-12 08:07:20 +02:00
Vadim
2f8bb983d5
MLI-7 Manually restore purchases (#165)
* added `RestorePurchasesListTile`

* added `restorePurchases` to iap stub

* reordered settings

* migrated to iap 0.9.0

* migrated to iap 0.9.1

* use version in release commit

* Revert "use version in release commit"

This reverts commit 513b13eb96.

* migrated to iap 0.9.2

* allow manual restore if Pro features are not unlocked
2024-04-10 22:30:35 +02:00
Vadim
2117df2f11
ML-44 Save zoom level for equipment profile (#164)
* made zoom slider vertical & added more ticks to ruler

* show sliders values

* increased slider tappable area

* more accurate sliders values

* added zoom slider to equipment profiles settings

* split `EquipmentListTiles` widget

* set zoom on equipment profile change

* clamp zoom to the nearest value

* added missing translations

* added zoom checks to e2e test

* removed unused import
2024-04-07 10:54:57 +02:00