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
72 lines
1.8 KiB
Dart
72 lines
1.8 KiB
Dart
import 'package:m3_lightmeter_resources/m3_lightmeter_resources.dart';
|
|
|
|
abstract class MeteringCommunicationEvent {
|
|
const MeteringCommunicationEvent();
|
|
}
|
|
|
|
/// Events sent by the screen to the current metering source.
|
|
abstract class ScreenEvent extends MeteringCommunicationEvent {
|
|
const ScreenEvent();
|
|
}
|
|
|
|
/// Event sent by the current metering source in response for the screen events.
|
|
abstract class SourceEvent extends MeteringCommunicationEvent {
|
|
const SourceEvent();
|
|
}
|
|
|
|
class MeasureEvent extends ScreenEvent {
|
|
const MeasureEvent();
|
|
}
|
|
|
|
class EquipmentProfileChangedEvent extends ScreenEvent {
|
|
final EquipmentProfile profile;
|
|
|
|
const EquipmentProfileChangedEvent(this.profile);
|
|
}
|
|
|
|
abstract class MeasuredEvent extends SourceEvent {
|
|
final double? ev100;
|
|
|
|
const MeasuredEvent(this.ev100);
|
|
}
|
|
|
|
class MeteringInProgressEvent extends MeasuredEvent {
|
|
const MeteringInProgressEvent(super.ev100);
|
|
|
|
@override
|
|
bool operator ==(Object other) {
|
|
if (identical(this, other)) return true;
|
|
if (other.runtimeType != runtimeType) return false;
|
|
return other is MeteringInProgressEvent && other.ev100 == ev100;
|
|
}
|
|
|
|
@override
|
|
int get hashCode => Object.hash(ev100, runtimeType);
|
|
}
|
|
|
|
class MeteringEndedEvent extends MeasuredEvent {
|
|
const MeteringEndedEvent(
|
|
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 MeteringEndedEvent && other.ev100 == ev100 && other.photoPath == photoPath;
|
|
}
|
|
|
|
@override
|
|
int get hashCode => Object.hash(runtimeType, ev100, photoPath);
|
|
}
|
|
|
|
class ScreenOnTopOpenedEvent extends ScreenEvent {
|
|
const ScreenOnTopOpenedEvent();
|
|
}
|
|
|
|
class ScreenOnTopClosedEvent extends ScreenEvent {
|
|
const ScreenOnTopClosedEvent();
|
|
}
|