diff --git a/lib/model/entry/extensions/images.dart b/lib/model/entry/extensions/images.dart index ee9dbafd1..bac9d14bf 100644 --- a/lib/model/entry/extensions/images.dart +++ b/lib/model/entry/extensions/images.dart @@ -17,7 +17,8 @@ extension ExtraAvesEntryImages on AvesEntry { } ThumbnailProviderKey _getThumbnailProviderKey(double extent) { - EntryCache.markThumbnailExtent(extent); + final requestExtent = extent.roundToDouble(); + EntryCache.markThumbnailExtent(requestExtent); return ThumbnailProviderKey( uri: uri, mimeType: mimeType, @@ -25,7 +26,7 @@ extension ExtraAvesEntryImages on AvesEntry { rotationDegrees: rotationDegrees, isFlipped: isFlipped, dateModifiedSecs: dateModifiedSecs ?? -1, - extent: extent, + extent: requestExtent, ); } diff --git a/lib/ref/metadata/xmp.dart b/lib/ref/metadata/xmp.dart index d4affa709..3e8df1d77 100644 --- a/lib/ref/metadata/xmp.dart +++ b/lib/ref/metadata/xmp.dart @@ -1,6 +1,7 @@ class XmpNamespaces { static const acdsee = 'http://ns.acdsee.com/iptc/1.0/'; static const adsmlat = 'http://adsml.org/xmlns/'; + static const appleDepthData = 'http://ns.apple.com/depthData/1.0/'; static const appleDesktop = 'http://ns.apple.com/namespace/1.0/'; static const appleHDRGainMap = 'http://ns.apple.com/HDRGainMap/1.0/'; static const applePixelDataInfo = 'http://ns.apple.com/pixeldatainfo/1.0/'; diff --git a/lib/services/app_service.dart b/lib/services/app_service.dart index 0964b105d..3ede3fd1c 100644 --- a/lib/services/app_service.dart +++ b/lib/services/app_service.dart @@ -38,6 +38,7 @@ class PlatformAppService implements AppService { static final _stream = StreamsChannel('deckers.thibault/aves/activity_result_stream'); static final _knownAppDirs = { + 'com.google.android.apps.photos': {'Google Photos'}, 'com.kakao.talk': {'KakaoTalkDownload'}, 'com.sony.playmemories.mobile': {'Imaging Edge Mobile'}, 'nekox.messenger': {'NekoX'}, diff --git a/lib/view/src/xmp.dart b/lib/view/src/xmp.dart index 5c8a1a61e..447abb097 100644 --- a/lib/view/src/xmp.dart +++ b/lib/view/src/xmp.dart @@ -7,6 +7,7 @@ class XmpNamespaceView { XmpNamespaces.adsmlat: 'AdsML', XmpNamespaces.exifAux: 'Exif Aux', XmpNamespaces.avm: 'Astronomy Visualization', + XmpNamespaces.appleDepthData: 'Apple Depth Data', XmpNamespaces.appleDesktop: 'Apple Desktop', XmpNamespaces.appleHDRGainMap: 'Apple HDR Gain Map', XmpNamespaces.applePixelDataInfo: 'Apple Pixel Data Info', diff --git a/lib/widgets/viewer/info/common.dart b/lib/widgets/viewer/info/common.dart index 8c9d706df..c0eab73cb 100644 --- a/lib/widgets/viewer/info/common.dart +++ b/lib/widgets/viewer/info/common.dart @@ -77,7 +77,12 @@ class InfoRowGroup extends StatefulWidget { // `colorScheme.secondary` is overridden upstream as an `ExpansionTileCard` theming workaround, // so we use `colorScheme.primary` instead final linkColor = Theme.of(context).colorScheme.primary; - final style = InfoRowGroup.valueStyle.copyWith(color: linkColor, decoration: TextDecoration.underline); + final style = InfoRowGroup.valueStyle.copyWith( + color: linkColor, + decoration: TextDecoration.underline, + decorationColor: linkColor, + decorationStyle: TextDecorationStyle.solid, + ); return [TextSpan(text: '${Unicode.FSI}$value${Unicode.PDI}', style: style, recognizer: recognizer)]; };