Commit graph

255 commits

Author SHA1 Message Date
Vadim
234c0f0500 [iOS] generated icons for dev & prod flavors 2023-11-21 20:56:44 +01:00
Vadim
61201c9814 Create README.md 2023-11-21 20:42:27 +01:00
Vadim
87cceaae6d [Android] generated icon for dev & prod flavors 2023-11-21 20:40:24 +01:00
Vadim
3aa9c57e89 replaced flutter_launcher_icons with icons_launcher 2023-11-18 21:33:01 +01:00
Vadim
27b8fedcbf [Android] removed main/res for app to be able to see flavored resources 2023-11-18 21:32:34 +01:00
Vadim
3884214edf [Android] added applicationIdSuffix instead of explicit applicationId 2023-11-18 21:32:02 +01:00
Vadim
546dd46f9a [Android] added (DEV) to dev flavor app name 2023-11-18 21:31:33 +01:00
github-actions[bot]
e340327e32 Version bump 2023-11-14 12:30:33 +00:00
Vadim
19fc039723
ML-137 Dialogs improvements (#138)
* Force dialogs to have the same width

* Fix `DialogPicker` bouncing when the first selected item is near the end
2023-11-14 12:26:34 +01:00
Vadim
6566108994
ML-129 Spot metering (#136)
* imlemented `CameraSpotDetector`

* separated generic `DialogSwitch`

* added `CameraFeature` model

* added `CameraFeaturesListTile` to metering section

* added features dialog subtitles

* added long press to remove metering spot

* translations

* hide camera features for purchasable status

* hide `CameraHistogram` & `CameraSpotDetector` if purchasable

* bumped iap version

* fixed tests

* removed redundant camera state emission

* tests

* Fixed remote config initalization

* updated pro features description
2023-11-11 21:05:11 +01:00
github-actions[bot]
ddc7ec8c8b Version bump 2023-11-07 11:15:17 +00:00
Vadim
434327a7d0 Disable list tile onTap if IAP is pending 2023-11-07 12:03:38 +01:00
Vadim
068834bfe5
ML-134 Firebase Remote Config issues (#135)
* Unable to connect to the server

* internal remote config fetch error

* fixed tests
2023-11-07 11:57:36 +01:00
Vadim
3bb3f12641
ML-62 Utils tests (#133)
* 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

* `MeteringScreenLayoutFeature` tests

* `SupportedLocale` tests

* `Film` tests

* `CaffeineService` tests

* `UserPreferencesService` tests (wip)

* `LightSensorService` tests (wip)

* `migrateOldKeys()` tests

* ignore currently unused getters & setters

* gradle upgrade

* `reset(sharedPreferences);` calls count

* typo

* `MeteringInteractor` tests

* `SettingsInteractor` tests (wip)

* `MeteringInteractor` tests (wip)

* `SettingsInteractor` tests

* AnimatedDialog picker standalone tests

* Moved Animated dialog picker to widget tests

* `ExtremeExposurePairsContainer` widget test

* dialog picker test

* Match extreme exposure pairs & pairs list edge values

* `FilmPicker` widget tests

* fixed animated dialog picker tests

* add not hit files to coverage percentage

* Moved `EquipmentProfileProvider` & `FilmsProvider` to the main repo

* Synced _iap_ stub with repo

* `FilmsProvider` tests

* `EquipmentProfileProvider` tests

* Pass `availableFilms` to `FilmsProvider`

* `FilmPicker` tests

* removed unnecessary imports

* Metering layout features tests

* split integration tests by screens

* Films in use test

* mock light meter lux stream

* removed mockito mocks for integration tests

From no on these are the only mocks in use:
- Mock shared prefs initial values
- Mock platform responses (camera/light sensor)

* set sharedprefs mock without redundant group

* unified granting camera permission on Android

* fixed metering screen tests

* extracted common values

* `FilmPicker` integration tests

* fixed light sensor platform mocks

* wip

* removed integration tests for now

* moved screenshots generator to screenshots folder

* typo

* removed `MockIAPProductsProvider`

* implemented platform mocks for unit tests

* data/models/ 100% coverage

* `IsoValuePicker` tests

* `EquipmentProfileProvider` tests

* extended PR check timeout

* typo

* added storage action verification for `FilmsProvider` tests

* `UserPreferencesProvider` tests

* Update README.md

* added //coverage:ignore to `ServicesProvider`

* typo

* typo

* `toStringSignedAsFixed` tests

* `SelectableInheritedModel` tests

* removed unused `TextLineHeight` util

* `VolumeKeysNotifier` tests

* import

* `EquipmentProfileListener` tests

* typo

* split `EquipmentProfileListener` tests

* `showBuyProDialog` tests

* added `maybeOf` getter for iap stub
2023-11-02 17:40:47 +01:00
github-actions[bot]
37a3b79f04 Version bump 2023-11-01 10:16:41 +00:00
Vadim
d36db97959 Updated IAP version to fix network issue
https://github.com/flutter/flutter/issues/135540
2023-10-31 22:32:02 +01:00
Vadim
a52efcd341
ML-130 Integrate Firebase Remote Config (#132)
* implemented `RemoteConfigService`

* added alternative translations

* typo

* added `firebase_analytics`

* dim paid features list tiles

* log list tile tap instead of dialog

* implemented `RemoteConfigProvider`

* typo
2023-10-31 18:42:25 +01:00
Vadim
f3b08868be
ML-62 Providers tests + Platform & Application mocks (#131)
- Fixed test coverage calculation
- Removed `mockito` from the application mock
- Implemented platform channel mocks to mimic incident light metering
- Covered providers with unit tests
- Covered metering screen pickers with widget tests
- Laid foundation for integration tests
2023-10-20 16:12:43 +02:00
Vadim
0b51db642c
ML-126 Automate screenshots creation (#128)
* generate screenshots with ep set to None
2023-09-29 12:45:39 +02:00
Vadim
e0320b6704
ML-126 Automate screenshots creation (#127)
* Create screenshot_driver.dart

* wip

* deleted screenshots

* iap mock

* generate for 3 colors

* cleanup

* generate single dark screenshots

* snake_case

* added stub image for camera

* scroll to the first checkbox selected

* unstub iap

* cleanup

* Update generate_screenshots.dart

* typo
2023-09-28 23:29:33 +02:00
ScaredCube
5b1b0b0540
Update intl_zh.arb of new features (#125) 2023-09-23 12:52:58 +02:00
github-actions[bot]
79105ab4f1 Version bump 2023-09-20 10:31:50 +00:00
Vadim
2a3c6b0b09
Added user feedback label to issue templates 2023-09-20 12:11:23 +02:00
Vadim
cc660de0c4
Fixed PR check (#122)
* updated stub script to work with tags

* depend on step conclusion

* check PR number
2023-09-20 11:58:04 +02:00
Vadim
4288be7d57 Use iap v0.4.0 2023-09-20 11:10:54 +02:00
github-actions[bot]
a5ad391273 Version bump 2023-09-19 18:45:24 +00:00
Vadim
9029379697 Merged Equipment section into Metering section 2023-09-19 17:26:32 +02:00
Vadim
abbc4c92de
ML-113 Add ability to copy equipment profile (#120)
* Display range values instead of values count

* copy equipment profile

* added `IconButton` tooltips
2023-09-18 16:59:53 +02:00
Vadim
0fbf252d9e
ML-117 Improve description of paid features (#119)
* wip

* added `LightmeterProSettingsSection`

* hide Pro section on purchase

* `ElevatedButton` -> `FilledButton`

* moved Pro description to iap/README.md

* intl

* disable only list tiles

* show iap dialog on every iap list tile
2023-09-17 22:29:02 +02:00
Vadim
cc9f162933
ML-107 Films filter (#118)
* added stub `FilmsProvider`

* moved dialogs to the shared folder

* typo

* separated `EquipmentSettingsSection`

* copy

* `IAPBuilder` -> `IAPListTile`

* moved `Film` to resources repo

* fixed films selection

* untied iso and selected film

* removed film from exposure pairs building

* indicate push/pull

* copy

* Update .gitignore

* fixed extreme exposure pairs reciprocity display

* sync with iap changes

* sync iap stub with iap changes

* added reciprocity description

* added workspace file

* Update .gitignore
2023-09-14 16:59:16 +02:00
github-actions[bot]
1be7c3be48 Version bump 2023-09-08 22:03:01 +00:00
Vadim
8415f4e515
ML-114 Metering container issues (#116)
* fixed top bar cutout shape

* update closed offset on layout change
2023-09-08 23:46:31 +02:00
Vadim
cf4373d854
Equipment profiles issues (#115)
* update equipment profile from dialog

* updated `MeteringScreenLayoutFeaturesDialog` translations
2023-09-08 22:25:13 +02:00
Vadim
4201d36abb Refined launch options 2023-09-03 13:06:30 +02:00
github-actions[bot]
429c0a53a2 Version bump 2023-09-02 21:13:17 +00:00
Vadim
f39177919c
Equipment profiles issues (#112)
* Fixed equipment profiles sections collapsing

* Fixed range picker dialog

* Refined equipment profiles sections handling
2023-09-02 22:29:35 +02:00
Vadim
bf3c8aa7c7 Fixed _Build .apk_ flow 2023-09-02 13:08:58 +02:00
Vadim
da4fcfc857
Fixed IAP stub in workflows (#110)
* try using script for iap stub

* typo

* typo

* typo

* removed working dir

* added comment to stub_iap.sh

* checkout first

* increment build number by script

* Update increment_build_number.sh

* fixed iap repo

* stub
2023-09-02 12:45:57 +02:00
Vadim
4bb080a144
Implemented IAP & Equipment profiles (#89)
* added equipment profiles to layout config

* calculate layout height based on `MeteringScreenLayoutFeature`

* Update cd_dev.yml

* Fixed equipment profile tile padding

* import

* `webfactory/ssh-agent`

* Update pubspec.yaml

* fixed `MeteringScreenLayoutConfigJson` tests

* fixed `UserPreferencesService` tests

* reset selected equipment profile when layout feature is disabled

* `IAPProductType.equipment` -> `IAPProductType.paidFeatures`

* updated packages versions

* Update shared_prefs_service.dart

* Fixed & tested exposure pairs list builder

* typo

* typo

* added iap repo stub

* Renamed `EquipmentProfileData` ->`EquipmentProfile`

* Moved `EquipmentProfileProvider` to iap repo

* Update README.md

* Fixed `EquipmentProfileListener`

* Improved `EquipmentProfilesListTile` statuses visualization

* Update README.md

* Update ci.yml

* Post-merge fixes

* typo

* Added workflow checks

* more sophisticated iap icons

* Include IAP by default

* added loader for `IAPProductStatus.pending`

* typo

* Added equipment profiles list placeholder

* typo

* separated `IconPlaceholder`

* improved `buildExposureValues` testing

* cleanup
2023-09-02 10:32:08 +02:00
github-actions[bot]
d364de4486 Version bump 2023-08-28 15:55:12 +00:00
Vadim
e1c320b804 Replaced user config with github-actions[bot] 2023-08-28 16:01:04 +02:00
Vadim
a9f8223e4a Added Firebase Analytics 2023-08-28 11:39:20 +02:00
Vadim
aee527dcca
Create FUNDING.yml 2023-08-20 11:14:37 +02:00
Vadim
5adcee00dd
ML-105 Hide providers from the widget tree (#106)
* Added `ServiceProviders` widget

* Added `EnumProviders` widget for enum values

* Moved `ThemeProvider` functionality to `EnumProviders`

* Style

* `EnumProviders` -> `UserPreferencesProvider`

* `ServiceProviders` -> `ServiceProvider`

* Moved `MeteringScreenLayoutProvider` functionality to `UserPreferencesProvider`

* typo

* Removed `InheritedModelAspectListener`

* TODO

* Removed Inherited Generics

* Removed redundant `LightmeterProviders`

* Removed redundant methods from `ServicesProvider`

* `_inheritFrom` -> `_inheritFromEnumsModel`

* Fixed `MeteringScreenLayoutConfig` updates

* Separated `_ThemeModel`

* typo

* `_EnumsModel` -> `_UserPreferencesModel`
2023-08-14 12:25:37 +02:00
Vadim
4917ee8aef
ML-61 Try to automate GP & Github releases via Github Actions (#103)
* Added option to create separate releases

* Removed branch condition

* Added default values to releases checkboxes

* Removed user fraction

* Remove .md extension for GP release

* More refined releases conditions

* Parse release name

* Create Google Play release name

* Checkout first

* Update create_release.yml

* Increment build number only for GH release

* Release with status `complete`

* typo
2023-08-10 12:42:31 +02:00
vodemn
6e3588a72e Version bump 2023-08-09 15:20:00 +00:00
Vadim
dafbc68288 Increased build job timeout 2023-08-09 17:06:47 +02:00
Vadim
bdb0442dd1 Fixed release jobs dependencies 2023-08-09 16:49:02 +02:00
Vadim
d41fa6fa84
ML-61 Download each artifact separately (#102)
* Download each artifact separately

* typo

* Updated setup-java action

* Extract merged native libs directly in GP release job
2023-08-09 16:39:41 +02:00
Vadim
b9412c7441
ML-61 Create Google Play release from Github actions (#101)
* Delete all artefacts after GP release

* Update create_release.yml

* Added release notes formatting

* Preserve release zip if GP release creation failed

* Create whatsnew folder
2023-08-09 12:24:12 +02:00