diff --git a/android/app/src/main/kotlin/deckers/thibault/aves/channel/calls/DeviceHandler.kt b/android/app/src/main/kotlin/deckers/thibault/aves/channel/calls/DeviceHandler.kt index 47cb4a572..15cd66c86 100644 --- a/android/app/src/main/kotlin/deckers/thibault/aves/channel/calls/DeviceHandler.kt +++ b/android/app/src/main/kotlin/deckers/thibault/aves/channel/calls/DeviceHandler.kt @@ -33,7 +33,6 @@ class DeviceHandler(private val context: Context) : MethodCallHandler { when (call.method) { "canManageMedia" -> safe(call, result, ::canManageMedia) "getCapabilities" -> defaultScope.launch { safe(call, result, ::getCapabilities) } - "getDefaultTimeZoneRawOffsetMillis" -> safe(call, result, ::getDefaultTimeZoneRawOffsetMillis) "getLocales" -> safe(call, result, ::getLocales) "setLocaleConfig" -> safe(call, result, ::setLocaleConfig) "getPerformanceClass" -> safe(call, result, ::getPerformanceClass) @@ -67,10 +66,6 @@ class DeviceHandler(private val context: Context) : MethodCallHandler { ) } - private fun getDefaultTimeZoneRawOffsetMillis(@Suppress("unused_parameter") call: MethodCall, result: MethodChannel.Result) { - result.success(TimeZone.getDefault().rawOffset) - } - private fun getLocales(@Suppress("unused_parameter") call: MethodCall, result: MethodChannel.Result) { fun toMap(locale: Locale): FieldMap = hashMapOf( "language" to locale.language, diff --git a/lib/model/settings/modules/app.dart b/lib/model/settings/modules/app.dart index 2b9caa141..4c3538be5 100644 --- a/lib/model/settings/modules/app.dart +++ b/lib/model/settings/modules/app.dart @@ -87,9 +87,9 @@ mixin AppSettings on SettingsAccess { set forceWesternArabicNumerals(bool newValue) => set(SettingKeys.forceWesternArabicNumeralsKey, newValue); - int get catalogTimeZoneRawOffsetMillis => getInt(SettingKeys.catalogTimeZoneRawOffsetMillisKey) ?? 0; + int get catalogTimeZoneOffsetMillis => getInt(SettingKeys.catalogTimeZoneOffsetMillisKey) ?? 0; - set catalogTimeZoneRawOffsetMillis(int newValue) => set(SettingKeys.catalogTimeZoneRawOffsetMillisKey, newValue); + set catalogTimeZoneOffsetMillis(int newValue) => set(SettingKeys.catalogTimeZoneOffsetMillisKey, newValue); double getTileExtent(String routeName) => getDouble(SettingKeys.tileExtentPrefixKey + routeName) ?? 0; diff --git a/lib/model/source/media_store_source.dart b/lib/model/source/media_store_source.dart index c2a85e28f..f9affcfb7 100644 --- a/lib/model/source/media_store_source.dart +++ b/lib/model/source/media_store_source.dart @@ -59,15 +59,13 @@ class MediaStoreSource extends CollectionSource { await vaults.init(); await favourites.init(); await covers.init(); - final currentTimeZoneOffset = await deviceService.getDefaultTimeZoneRawOffsetMillis(); - if (currentTimeZoneOffset != null) { - final catalogTimeZoneOffset = settings.catalogTimeZoneRawOffsetMillis; - if (currentTimeZoneOffset != catalogTimeZoneOffset) { - unawaited(reportService.recordError('Time zone offset change: $currentTimeZoneOffset -> $catalogTimeZoneOffset. Clear catalog metadata to get correct date/times.', null)); - await localMediaDb.clearDates(); - await localMediaDb.clearCatalogMetadata(); - settings.catalogTimeZoneRawOffsetMillis = currentTimeZoneOffset; - } + final currentTimeZoneOffset = DateTime.now().timeZoneOffset.inMilliseconds; + final catalogTimeZoneOffset = settings.catalogTimeZoneOffsetMillis; + if (currentTimeZoneOffset != catalogTimeZoneOffset) { + unawaited(reportService.recordError('Time zone offset change: $currentTimeZoneOffset -> $catalogTimeZoneOffset. Clear catalog metadata to get correct date/times.', null)); + await localMediaDb.clearDates(); + await localMediaDb.clearCatalogMetadata(); + settings.catalogTimeZoneOffsetMillis = currentTimeZoneOffset; } await loadDates(); debugPrint('$runtimeType load essentials complete in ${stopwatch.elapsed.inMilliseconds}ms'); diff --git a/lib/services/device_service.dart b/lib/services/device_service.dart index ad702490d..eeceda1fc 100644 --- a/lib/services/device_service.dart +++ b/lib/services/device_service.dart @@ -8,8 +8,6 @@ abstract class DeviceService { Future> getCapabilities(); - Future getDefaultTimeZoneRawOffsetMillis(); - Future> getLocales(); Future setLocaleConfig(List locales); @@ -52,16 +50,6 @@ class PlatformDeviceService implements DeviceService { return {}; } - @override - Future getDefaultTimeZoneRawOffsetMillis() async { - try { - return await _platform.invokeMethod('getDefaultTimeZoneRawOffsetMillis'); - } on PlatformException catch (e, stack) { - await reportService.recordError(e, stack); - } - return null; - } - @override Future> getLocales() async { try { diff --git a/lib/widgets/debug/settings.dart b/lib/widgets/debug/settings.dart index 262b89a22..b8976059a 100644 --- a/lib/widgets/debug/settings.dart +++ b/lib/widgets/debug/settings.dart @@ -55,7 +55,7 @@ class _DebugSettingsSectionState extends State with Automa padding: const EdgeInsets.only(left: 8, right: 8, bottom: 8), child: InfoRowGroup( info: { - 'catalogTimeZoneRawOffsetMillis': '${settings.catalogTimeZoneRawOffsetMillis}', + 'catalogTimeZoneRawOffsetMillis': '${settings.catalogTimeZoneOffsetMillis}', 'tileExtent - Collection': '${settings.getTileExtent(CollectionPage.routeName)}', 'tileExtent - Albums': '${settings.getTileExtent(AlbumListPage.routeName)}', 'tileExtent - Countries': '${settings.getTileExtent(CountryListPage.routeName)}', diff --git a/plugins/aves_model/lib/src/settings/keys.dart b/plugins/aves_model/lib/src/settings/keys.dart index 19be577ed..6efba4aa1 100644 --- a/plugins/aves_model/lib/src/settings/keys.dart +++ b/plugins/aves_model/lib/src/settings/keys.dart @@ -3,7 +3,7 @@ class SettingKeys { static const Set _internalKeys = { hasAcceptedTermsKey, - catalogTimeZoneRawOffsetMillisKey, + catalogTimeZoneOffsetMillisKey, searchHistoryKey, platformAccelerometerRotationKey, platformTransitionAnimationScaleKey, @@ -21,7 +21,7 @@ class SettingKeys { static const isErrorReportingAllowedKey = 'is_crashlytics_enabled'; static const localeKey = 'locale'; static const forceWesternArabicNumeralsKey = 'force_western_arabic_numerals'; - static const catalogTimeZoneRawOffsetMillisKey = 'catalog_time_zone_raw_offset_millis'; + static const catalogTimeZoneOffsetMillisKey = 'catalog_time_zone_raw_offset_millis'; static const tileExtentPrefixKey = 'tile_extent_'; static const tileLayoutPrefixKey = 'tile_layout_'; static const entryRenamingPatternKey = 'entry_renaming_pattern'; diff --git a/test/fake/device_service.dart b/test/fake/device_service.dart index 82f81f5c3..07705e24d 100644 --- a/test/fake/device_service.dart +++ b/test/fake/device_service.dart @@ -3,9 +3,6 @@ import 'package:flutter/foundation.dart'; import 'package:test/fake.dart'; class FakeDeviceService extends Fake implements DeviceService { - @override - Future getDefaultTimeZoneRawOffsetMillis() => SynchronousFuture(3600000); - @override Future getAvailableHeapSize() => SynchronousFuture(0x7fffffff);