mirror of
https://github.com/vodemn/m3_lightmeter.git
synced 2025-07-30 18:00:42 +00:00

* 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
74 lines
1.7 KiB
Dart
74 lines
1.7 KiB
Dart
import 'package:m3_lightmeter_resources/m3_lightmeter_resources.dart';
|
|
|
|
sealed class MeteringCommunicationState {
|
|
const MeteringCommunicationState();
|
|
}
|
|
|
|
class InitState extends MeteringCommunicationState {
|
|
const InitState();
|
|
}
|
|
|
|
sealed class SourceState extends MeteringCommunicationState {
|
|
const SourceState();
|
|
}
|
|
|
|
sealed class ScreenState extends MeteringCommunicationState {
|
|
const ScreenState();
|
|
}
|
|
|
|
class MeasureState extends SourceState {
|
|
const MeasureState();
|
|
}
|
|
|
|
class EquipmentProfileChangedState extends SourceState {
|
|
final EquipmentProfile profile;
|
|
|
|
const EquipmentProfileChangedState(this.profile);
|
|
}
|
|
|
|
sealed class MeasuredState extends ScreenState {
|
|
final double? ev100;
|
|
|
|
const MeasuredState(this.ev100);
|
|
}
|
|
|
|
class MeteringInProgressState extends MeasuredState {
|
|
const MeteringInProgressState(super.ev100);
|
|
|
|
@override
|
|
bool operator ==(Object other) {
|
|
if (identical(this, other)) return true;
|
|
if (other.runtimeType != runtimeType) return false;
|
|
return other is MeteringInProgressState && other.ev100 == ev100;
|
|
}
|
|
|
|
@override
|
|
int get hashCode => Object.hash(ev100, runtimeType);
|
|
}
|
|
|
|
class MeteringEndedState extends MeasuredState {
|
|
const MeteringEndedState(
|
|
super.ev100, {
|
|
this.photoPath,
|
|
});
|
|
|
|
final String? photoPath;
|
|
|
|
@override
|
|
bool operator ==(Object other) {
|
|
if (identical(this, other)) return true;
|
|
if (other.runtimeType != runtimeType) return false;
|
|
return other is MeteringEndedState && other.ev100 == ev100 && other.photoPath == photoPath;
|
|
}
|
|
|
|
@override
|
|
int get hashCode => Object.hash(runtimeType, ev100, photoPath);
|
|
}
|
|
|
|
class SettingsOpenedState extends SourceState {
|
|
const SettingsOpenedState();
|
|
}
|
|
|
|
class SettingsClosedState extends SourceState {
|
|
const SettingsClosedState();
|
|
}
|