Vadim
82669bc5e5
allow more free actions
2025-08-11 12:31:38 +02:00
Vadim
e4bb7588ef
reworked DialogSwitchListItem
2025-08-11 12:25:38 +02:00
Vadim
709d19bb73
brought back enabled adapter
2025-08-11 12:04:58 +02:00
Vadim
a7c0282e5a
fixed pro features width
2025-08-11 11:42:16 +02:00
Vadim
4032a510a6
fixed offering padding
2025-08-11 11:20:10 +02:00
Vadim
c0881e5b24
Merge branch 'main' of https://github.com/vodemn/m3_lightmeter into feature/ML-248
2025-08-11 11:10:43 +02:00
Vadim
056cf4f44b
ML-247 Revise translations + Add PL locale ( #249 )
...
* wip
* wip
* reviewed punctuation
* Create intl_pl.arb
* Update metering_screen.png
* fixed polish translations
* shortened Russian translations
* Added missing translations
* Update intl_ru.arb
2025-08-11 11:09:29 +02:00
Vadim
c6a5649d25
updated goldens
2025-08-09 19:36:12 +02:00
Vadim
655e3ff512
made Pro badge smaller
2025-08-09 19:32:21 +02:00
Vadim
eb768daa6a
removed Pro section from Settings screen
2025-08-09 18:46:24 +02:00
Vadim
c8e75167eb
open Pro screen on tap
2025-08-09 18:40:35 +02:00
Vadim
f9246e15d6
ML-245 Add support for subscriptions ( #246 )
...
* typos
* added `LogbookPhotosProvider`
* implemented `LogbookScreen`
* implemented `LogbookPhotoEditScreen`
* added photo update
* save geolocation
* added `CameraSettingsSection`
* adjusted logbook grid
* added hero animation
* fixed logbook list updates
* added empty logbook state
* added `saveLogbookPhotos` option
* fixed updating photos
* made `DialogPicker` content scrollable
* added tests for `LogbookPhotosProvider`
* made image preview full-width
* made note field multiline
* wip
* migrated to new iap service
* fixed unit tests
* typo
* fixed arb formatting
* stub logbook photos for tests
* implemented integration test for logbook
* moved date to title
* redundant bottom padding
* added logbook photo screen to screenshots generator
* Update settings.gradle
* aligned iap stub with iap release
* sync
* made logbook iap
* debug screenshots
* Update runner.dart
* fixed dialog picker of optional values
* added bottom padding to logbook edit screen
* fixed tests
* Create camera_stub_image.jpg
* Update films_provider_test.dart
* rename
* aligned with iap
* added missing translations
* theme
* adjusted products color
* check pro status on settings open
* added yearly subscription
* handle purchase errors
* fixed bottom navigation bar behaviour
* handle only lifetime product case
* don't fetch products
* reworked restoring purchases
* fixed mocks
* fixed golden tests
* fixed logbook integration test
* sync pubspec
* sync stub
2025-08-09 17:22:34 +02:00
Vadim
7ad47c0636
ML-203 Logging EXIF data ( #239 )
...
* typos
* added `LogbookPhotosProvider`
* implemented `LogbookScreen`
* implemented `LogbookPhotoEditScreen`
* added photo update
* save geolocation
* added `CameraSettingsSection`
* adjusted logbook grid
* added hero animation
* fixed logbook list updates
* added empty logbook state
* added `saveLogbookPhotos` option
* fixed updating photos
* made `DialogPicker` content scrollable
* added tests for `LogbookPhotosProvider`
* made image preview full-width
* made note field multiline
* wip
* migrated to new iap service
* fixed unit tests
* typo
* fixed arb formatting
* stub logbook photos for tests
* implemented integration test for logbook
* moved date to title
* redundant bottom padding
* added logbook photo screen to screenshots generator
* Update settings.gradle
* aligned iap stub with iap release
* sync
* made logbook iap
* debug screenshots
* Update runner.dart
* fixed dialog picker of optional values
* added bottom padding to logbook edit screen
* fixed tests
* Create camera_stub_image.jpg
* Update films_provider_test.dart
* rename
* Update pubspec.yaml
* added logbook to pro features
2025-07-29 12:38:48 +02:00
Vadim
dfe10493b8
ML-236 Exposure offset for equipment profiles ( #238 )
...
* Set `targetSdkVersion ` to 35
* unified zoom icons
* expose exposure and zoom ranges
* added list tile to set exposure offset for equipment profile
* added translations
* Update metering_screen.png
* use latest m3 packages
* fixed iap stub
* added missing field
2025-07-09 19:27:46 +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
Vadim
bfd0bfe531
ML-108 First exposure metering seems to be wrong ( #163 )
...
* use latest `camera_android_camerax`
* fixed trailing commas
* moved ci/cd to 3.13.9
* removed focus & exposure fix
* fixed camera not being initialized on Android
* removed unused import
2024-04-06 19:14:37 +02:00
Vadim
2128e7c2e9
Fixed test coverage script
2024-03-17 20:18:00 +01:00
Vadim
134af8ad28
ML-141 Prepare iOS release ( #144 )
...
* implemented `MockCameraContainerBloc` to stub camera on simulator
* [iOS] fixed camera preview aspect ratio
* place screenshots in platform-specific folders
* [iOS] updated buildable name
* [iOS] fixed stub image cover fit
* [iOS] implemented screenshots generator for all target devices
* store screenshots in _generated_ folder
* Update .gitignore
* Created "Build Prod .ipa" workflow
* added. certs to .ipa workflow
* test ipa building
* fixed provision cert path
* set provision profile in XCode
* set automatic signing for dev builds
* set ios version in Podfile
* renamed provision file
* renamed provision profile
* fixed cert folder...
* changed provision path
* typo
* typo
* try automatic signing
* use manual profile installation
* added export options
* typo
* increased timeout
* increased ipa timeout
* Update README.md
* typo
* [iOS] separated camera handling logic
* [iOS] fixed vibration
* migrated to http server iap
* [iOS] fixed histogram
* replaced distribution profile with development profile
* removed constants from env to the separate file
* removed duplicate launch schema
* fixed PR check workflow
* [iOS] set `ITSAppUsesNonExemptEncryption` to NO
* [iOS] removed java reference from "Build .ipa" workflow
2024-02-21 12:33:25 +01:00
Vadim
a1ce17d675
ML-154 Improved EXIF errors reporting ( #159 )
...
* removed unused analytics event & added `logCrash`
* added analytics to `RemoteConfigService`
* run app with `runZonedGuarded`
* added crash logging to `CameraContainerBloc`
* log product id for IAP errors
* typo
* log crashes in `RemoteConfigService`
* ignore silent `FlutterError`
* fixed `evFromImage` test
* fixed `showBuyProDialog` test
* log errors in console
* depend on iap 0.7.2
* Made errors non-fatal by default
* improved EXIF errors reporting
* fixed tests
2024-02-13 19:33:40 +01:00
Vadim
4f4b6cf1eb
ML-154 Made errors non-fatal by default ( #158 )
...
* removed unused analytics event & added `logCrash`
* added analytics to `RemoteConfigService`
* run app with `runZonedGuarded`
* added crash logging to `CameraContainerBloc`
* log product id for IAP errors
* typo
* log crashes in `RemoteConfigService`
* ignore silent `FlutterError`
* fixed `evFromImage` test
* fixed `showBuyProDialog` test
* log errors in console
* depend on iap 0.7.2
* Made errors non-fatal by default
2024-02-13 18:19:43 +01:00