Commit graph

67 commits

Author SHA1 Message Date
Vadim
d17894d4a5 disable volume handling when on Settings screen 2023-07-05 15:45:36 +02:00
Vadim
1b19b417dc deinitialize camera when on Settings screen 2023-07-05 15:45:14 +02:00
Vadim
dc53982ebb implemented VolumeKeysNotifier 2023-07-05 12:46:03 +02:00
Vadim
e20b9f76b9 implemented VolumeKeysListener (wip) 2023-07-03 17:19:48 +02:00
Vadim
74d0a7101c
ML-62 Bloc's tests (#78)
* removed redundant `UserPreferencesService` from `MeteringBloc`

* wip

* post-merge fixes

* `MeasureEvent` tests

* `MeasureEvent` tests revision

* `MeasureEvent` tests added timeout

* added stubs for other `MeteringBloc` events

* rewritten `MeteringBloc` logic

* wip

* `IsoChangedEvent` tests

* refined `IsoChangedEvent` tests

* `NdChangedEvent` tests

* `FilmChangedEvent` tests

* `MeteringCommunicationBloc` tests

* added test run to ci

* overriden `==` for `MeasuredState`

* `LuxMeteringEvent` tests

* refined `LuxMeteringEvent` tests

* rename

* wip

* wip

* `InitializeEvent`/`DeinitializeEvent` tests

* clamp minZoomLevel

* fixed `MeteringCommunicationBloc` tests

* wip

* `ZoomChangedEvent` tests

* `ExposureOffsetChangedEvent`/`ExposureOffsetResetEvent` tests

* renamed test groups

* added test coverage script

* improved `CameraContainerBloc` test coverage

* `EquipmentProfileChangedEvent` tests

* verify response vibration

* fixed running all tests

* `MeteringCommunicationBloc` equality tests

* `CameraContainerBloc` equality tests

* removed generated code from coverage
2023-06-20 08:43:49 +02:00
Vadim
cdf7372913
ML-77 Redundant vibrations (#76)
* wip

* `MeteringScreenLayout = InheritedModelBase<MeteringScreenLayoutFeature, bool>`

* removed `Provider` from providers folder

* wip

* Update pubspec.yaml

* `context.get<MeteringInteractor>()`

* `context.get<Environment>()`

* `context.get<SettingsInteractor>()`

* typo

* fixed `MeteringScreenLayout`

* fixed redundant vibrations
2023-06-04 13:04:04 +02:00
Vadim
c63b5a420d
ML-74 CameraContainerBloc crashes (#75)
* nullable var instead of `late`

* `.then((_) => _cameraController = null));`
2023-05-21 11:50:46 +02:00
Vadim
8b74c4e1a4
ML-72 buildPreview() was called on a disposed CameraController (#73)
* added `DeinitializeEvent`

* typo
2023-05-19 11:12:10 +02:00
Vadim
00b2728453 Updated dependencies versions + lints 2023-05-19 10:47:58 +02:00
Vadim
ec9ba1a779
ML-58 Metering UX improvements (#63)
* indicate EV value error

* allow nullable ev100 in `CameraContainerBloc`

* log exif keys

* wip

* removed `UserPreferencesService` from `MeteringBloc`

* added error toast

* conflicts

* lints

* allow stop metering if `hasError`

* fixed `AnimatedDialogPicker` inability to close

* Update build.gradle
2023-05-16 11:47:53 +02:00
Vadim
5602b1ed80
ML-70 Migrate to Dart 3 + stricter lints (#71)
* updated pub version

* added lint

* --code=always_use_package_imports

* dart fixes

* format

* other lints
2023-05-11 15:30:18 +02:00
Vadim
34ea034e67 Build appbundle & apk
Build appbundle & apk

Renamed github workflows
2023-05-04 18:18:21 +02:00
Vadim
2102213344
ML-54 AnimatedDialogState issues (#56)
* LateInitializationError: Field '_foregroundColorAnimation@1004358584'

* FlutterError: Null check operator used on a null value
2023-05-04 13:14:53 +02:00
Vadim
0583b07cb9
ML-53 Unsupported operation: Infinity or NaN toInt (#54)
added `isNan` & `isInfinite` checks
2023-05-04 12:49:26 +02:00
Vadim
aaadd1ded6
ML-48 Allow users to hide fastest/shortest exposure pairs #48 (#49)
* implemented `MeteringScreenLayoutProvider`

* refined topbar height difference calculation

* implemented `MeteringScreenLayoutFeaturesDialog`

* added icons to all dialogs

* save & restore `MeteringScreenLayoutConfig`

* reset film on film picker disabling

* fixed Fomapan reciprocity

* fixed dependencies

* added translations
2023-04-05 22:15:11 +03:00
Vadim
be0617a99c
ML-46 Add reciprocity failure formulas for some films (#47)
* added `Film` model with reciprocity formulas

* added `FeaturesConfig`

* added film picker

* unused import

* get ISO and ND from equipment profile

* udpate iso on film changed

* typo
2023-04-01 22:04:55 +03:00
Vadim
6bf059ed4d
ML-42 Implement equipment profiles creating (#45)
* added Equipment section placeholder

* get iso & nd values from equipment profile

* use photography values from remote repo

* removed equipment section

* wip

* moved `EquipmentProfileProvider` from iap repo

* wip

* moved equipment profiles screen from iap

* improved equipment profiles screen

* mock add/delete

* collapse on expand

* add profile with name

* show selected values count (wip)

* fixed profile update

* cleanup

* Update pubspec.yaml

* made `AnimatedDialogPicker` more generic

* switched to local `Dimens`

* fixed `MeteringTopBarShape`

* rename

* animated `EquipmentProfileContainer`

* added default equipment profile

* change equipment profile name via dialog

* fixed profile selection

* filter equipment profile update/delete

* removed `enabled` param from settings section

* non-null `EquipmentProfile`

* fixed duplicate GlobalKeys

* animated equipment list

* Update ci.yml

* fixed shutter speed anchor issue

* autofocus

* added firebase to project

* save/restore equipment profiles

* unified `SliverList`

* added SSH key to iap repo

* Update ci.yml

* ci recursive submodules

* try full url

* Revert "try full url"

This reverts commit a9b692b60e.

* restore firebase_options.dart

* changed runner to macos

* restore options earlier

* removed problematic file from analysis :)

* removed launch_app

* textoverflow

* implemented `DialogRangePicker`

* add iap repo to cd

* typo

* added    workflow_dispatch to crowdin push

* removed `equipmentProfileValuesCount` from intl

* fr & ru translations

* style

* removed iap
2023-03-30 22:24:18 +03:00
Vadim
e6338157bf
ML-5 Measure button needs loading state (#41)
* added

* Version bump

* Fixed indicator initial position

* Revert "Version bump"

This reverts commit 92793e013d.
2023-02-19 18:15:36 +03:00
Vadim
b7639740f3
ML-5 Measure button needs loading state (#40) 2023-02-19 13:26:14 +03:00
Vadim
cbee0f350a
ML-37 Fix exposure pairs list creation (#39)
* integrated EV value to measure button

* fixed
2023-02-18 20:17:39 +03:00
Vadim
485636c706
ML-28 Implement language picker (#29)
* added language picker

* Create intl_ru.arb

* Update README.md
2023-02-11 22:19:18 +03:00
Vadim
a183a5433e
ML-25 Revise permission handling (#26)
* fixed permission handling

* translations cleanup

* [Android] removed unused permissions
2023-02-11 00:49:51 +03:00
Vadim
8d73a7d2e3
ML-20 Dialog pickers content jumps when selected item is out of vie (#21)
* fixed primary color picker overscroll

* dialog cleanup

* fixed photography value picker overscroll

* Update widget_dialog_picker_photography_value.dart
2023-02-05 17:20:36 +03:00
Vadim
9436a59094 Added camera and exposurepairs list placeholders 2023-02-05 16:56:04 +03:00
Vadim
9cfffc3377
ML-18 Implement primary color picker (#19)
* wip

* hide `DynamicColorListTile` if unavailable

* added color animation for `AnimatedDialog`

* adjusted some colors

* sync `AnimatedDialog` insets with material

* scroll to selected color
2023-02-01 00:24:26 +03:00
Vadim
cb4e91cb0a Folders cleanup 2023-01-29 20:02:18 +03:00
Vadim
9ffb5112c1
ML-16 [Android] Implement incident light metering (#17)
* wip

* rename

* wip

* rename

* fixed camera screen layout

* omit camera measure on startup

* added calibration for light sensor

* save evsource

* Update widget_button_measure.dart

* fixed iOS init

* hide light sensor calibration on ios

* cleanup
2023-01-29 19:57:47 +03:00
Vadim
42fe5d45bc Format & tasks 2023-01-26 18:03:48 +03:00
Vadim
130f5ff0b2
ML-14 Implement EV calibration legacy feature (#15)
* wip

* implemented `CalibrationDialog`

* integrated calibration to the metering bloc

* checked legacy feature
2023-01-26 12:10:23 +03:00
Vadim
c7ed4d332e Added haptics
added `HapticsService`

added haptics handling

added `HapticsInteractor`
2023-01-21 14:17:44 +03:00
Vadim
02e5fc582c Removed source-swap button 2023-01-20 23:39:01 +03:00
Vadim
bdf03f708f ReadingsContainer -> SizeRenderWidget 2023-01-20 23:09:17 +03:00
Vadim
5bea96669d Made TopBarShape responsive
returned `TopBarShape`

fixed `TopBarShape`
2023-01-20 23:03:55 +03:00
Vadim
5eb0869aa0 Fixed CameraPreview aspect ratio
Probably will be changed in future, is it currently relies on the `ResolutionPreset` being tied with aspect ratio
2023-01-07 13:23:54 +03:00
Vadim
56480cca0a Fixed navigation bar color
Cleanup
2023-01-07 12:22:50 +03:00
Vadim
3ccabbfac4 Reverse EV compensation values 2023-01-05 19:41:37 +03:00
Vadim
abd07764fd Added zoom and exposure sliders
added `ZoomSlider` (wip)

wip

implemented horizontal slider

implemented vertical slider

integrated 2 sliders to metering screen (wip)

removed filled track

placed camera slider in the proper folder

temp fix for exposure list fonts

update exposure event

added ruler to `CameraExposureSlider`

moved slider sizes to dimens

moved `CameraZoomSlider` to the separate folder
2023-01-01 22:00:26 +03:00
Vadim
14bac950cf Fixed _models_ and _screens_ folders structure
proper folders for models

unified _screen_ folder filenames
2022-12-18 14:39:02 +03:00
Vadim
fb0923903a Prettified ExposurePairsList ruler 2022-12-17 00:25:08 +03:00
Vadim
52d8578d77 Added UserPreferencesService 2022-12-16 11:08:12 +03:00
Vadim
07dc5d8f57 Added mock ev bloc 2022-12-15 14:00:28 +03:00
Vadim
a054a55f15 Logic & UI improvements
added inner insets to `ReadingContainer`

provide bloc for `CameraView` in dialog

measure on camera loaded
2022-12-15 12:59:04 +03:00
Vadim
9b0b387514 Added camera package to project
added camera plugin to project

more reverse naming

added communication bloc

layout fix
2022-12-15 11:33:00 +03:00
Vadim
7018f06270 Open AnimatedDialog with Navigator 2022-12-11 19:19:38 +03:00
Vadim
9abad012e3 2-column layout
2-column layout

removed settings screen route animation
2022-12-11 17:49:54 +03:00
Vadim
8381e5b753 Enhanced picker dialogs
added picker dialogs subtitle

show EV difference (wip)

jump to selected value

added EV difference to pickers

hide inkwell overflow

thirds iso normal style

fixed picker ev difference order

more picker typdefs
2022-12-05 19:50:31 +03:00
Vadim
0a45a2719b Clean up
transparent status bar on Android

unified metering screen dialogs
2022-12-04 23:01:15 +03:00
Vadim
1c344da29f Recalculate EV on ND change
Recalculate EV on ND change

`PhotographyValue` -> `PhotographyStopValue`
2022-12-04 22:33:20 +03:00
Vadim
dbbc5738ce Recalculate EV on Iso change 2022-12-04 22:00:43 +03:00
Vadim
00c0a6134d Implemented metering dialog picker
typo

fixed closed container scale

fixed dialog title animation

implemented `AnimatedDialog`

added open/close children transition

clean up

close dialog
2022-12-04 16:22:39 +03:00