diff --git a/CHANGELOG.md b/CHANGELOG.md
index b5b5ba5d6..969b0d010 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -4,6 +4,10 @@ All notable changes to this project will be documented in this file.
## [Unreleased]
+### Added
+
+- Collection: support for Fairphone burst pattern
+
### Changed
- upgraded Flutter to stable v3.19.4
diff --git a/lib/model/settings/settings.dart b/lib/model/settings/settings.dart
index f8a7325d8..51a19966f 100644
--- a/lib/model/settings/settings.dart
+++ b/lib/model/settings/settings.dart
@@ -83,7 +83,8 @@ class Settings with ChangeNotifier, SettingsAccess, AppSettings, DisplaySettings
enableBlurEffect = performanceClass >= 29;
final androidInfo = await DeviceInfoPlugin().androidInfo;
- final pattern = BurstPatterns.byManufacturer[androidInfo.manufacturer];
+ final manufacturer = androidInfo.manufacturer.toLowerCase();
+ final pattern = BurstPatterns.byManufacturer[manufacturer];
collectionBurstPatterns = pattern != null ? [pattern] : [];
// availability
diff --git a/lib/ref/bursts.dart b/lib/ref/bursts.dart
index 65e590a19..d7046729a 100644
--- a/lib/ref/bursts.dart
+++ b/lib/ref/bursts.dart
@@ -1,16 +1,19 @@
class BurstPatterns {
static const _keyGroupName = 'key';
+ static const fairphone = r'^IMG_(?\d{8}_\d{6})_BURST(\d+)$';
static const samsung = r'^(?\d{8}_\d{6})_(\d+)$';
static const sony = r'^DSC(PDC)?_\d+_BURST(?\d{17})(_COVER)?$';
static final options = [
+ BurstPatterns.fairphone,
BurstPatterns.samsung,
BurstPatterns.sony,
];
static String getName(String pattern) {
return switch (pattern) {
+ fairphone => 'Fairphone',
samsung => 'Samsung',
sony => 'Sony',
_ => pattern,
@@ -19,6 +22,7 @@ class BurstPatterns {
static String getExample(String pattern) {
return switch (pattern) {
+ fairphone => 'IMG_20151021_072800_BURST007',
samsung => '20151021_072800_007',
sony => 'DSC_0007_BURST20151021072800123',
_ => '?',
@@ -26,6 +30,7 @@ class BurstPatterns {
}
static const byManufacturer = {
+ _Manufacturers.fairphone: fairphone,
_Manufacturers.samsung: samsung,
_Manufacturers.sony: sony,
};
@@ -47,8 +52,9 @@ class BurstPatterns {
}
}
-// values as returned by `DeviceInfoPlugin().androidInfo`
+// values as returned by `DeviceInfoPlugin().androidInfo` (lower-cased)
class _Manufacturers {
+ static const fairphone = 'fairphone';
static const samsung = 'samsung';
static const sony = 'sony';
}