This commit is contained in:
Thibault Deckers 2024-06-25 23:03:27 +02:00
parent a5c5d5bad6
commit d78a897326
11 changed files with 69 additions and 67 deletions

View file

@ -196,9 +196,9 @@ repositories {
dependencies { dependencies {
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.8.1' implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.8.1'
implementation "androidx.appcompat:appcompat:1.6.1" implementation "androidx.appcompat:appcompat:1.7.0"
implementation 'androidx.core:core-ktx:1.13.1' implementation 'androidx.core:core-ktx:1.13.1'
implementation 'androidx.lifecycle:lifecycle-process:2.8.0' implementation 'androidx.lifecycle:lifecycle-process:2.8.2'
implementation 'androidx.media:media:1.7.0' implementation 'androidx.media:media:1.7.0'
implementation 'androidx.multidex:multidex:2.0.1' implementation 'androidx.multidex:multidex:2.0.1'
implementation 'androidx.security:security-crypto:1.1.0-alpha06' implementation 'androidx.security:security-crypto:1.1.0-alpha06'

View file

@ -63,14 +63,12 @@ class Device {
final auth = LocalAuthentication(); final auth = LocalAuthentication();
_canAuthenticateUser = await auth.canCheckBiometrics || await auth.isDeviceSupported(); _canAuthenticateUser = await auth.canCheckBiometrics || await auth.isDeviceSupported();
final floating = Floating();
try { try {
_supportPictureInPicture = await floating.isPipAvailable; _supportPictureInPicture = await Floating().isPipAvailable;
} on PlatformException catch (_) { } on PlatformException catch (_) {
// as of floating v2.0.0, plugin assumes activity and fails when bound via service // as of floating v2.0.0, plugin assumes activity and fails when bound via service
_supportPictureInPicture = false; _supportPictureInPicture = false;
} }
floating.dispose();
final capabilities = await deviceService.getCapabilities(); final capabilities = await deviceService.getCapabilities();
_canGrantDirectoryAccess = capabilities['canGrantDirectoryAccess'] ?? false; _canGrantDirectoryAccess = capabilities['canGrantDirectoryAccess'] ?? false;

View file

@ -62,7 +62,6 @@ class EntryViewerStack extends StatefulWidget {
} }
class _EntryViewerStackState extends State<EntryViewerStack> with EntryViewControllerMixin, FeedbackMixin, TickerProviderStateMixin, RouteAware { class _EntryViewerStackState extends State<EntryViewerStack> with EntryViewControllerMixin, FeedbackMixin, TickerProviderStateMixin, RouteAware {
final Floating _floating = Floating();
late int _currentEntryIndex; late int _currentEntryIndex;
late ValueNotifier<int> _currentVerticalPage; late ValueNotifier<int> _currentVerticalPage;
late PageController _horizontalPager, _verticalPager; late PageController _horizontalPager, _verticalPager;
@ -184,7 +183,6 @@ class _EntryViewerStackState extends State<EntryViewerStack> with EntryViewContr
@override @override
void dispose() { void dispose() {
AvesApp.pageRouteObserver.unsubscribe(this); AvesApp.pageRouteObserver.unsubscribe(this);
_floating.dispose();
cleanEntryControllers(entryNotifier.value); cleanEntryControllers(entryNotifier.value);
_videoActionDelegate.dispose(); _videoActionDelegate.dispose();
_verticalPageAnimationController.dispose(); _verticalPageAnimationController.dispose();
@ -252,7 +250,7 @@ class _EntryViewerStackState extends State<EntryViewerStack> with EntryViewContr
return StreamBuilder<PiPStatus>( return StreamBuilder<PiPStatus>(
// as of floating v2.0.0, plugin assumes activity and fails when bound via service // as of floating v2.0.0, plugin assumes activity and fails when bound via service
// so we do not access status stream directly, but check for support first // so we do not access status stream directly, but check for support first
stream: device.supportPictureInPicture ? _floating.pipStatusStream : Stream.value(PiPStatus.disabled), stream: device.supportPictureInPicture ? Floating().pipStatusStream : Stream.value(PiPStatus.disabled),
builder: (context, snapshot) { builder: (context, snapshot) {
var pipEnabled = snapshot.data == PiPStatus.enabled; var pipEnabled = snapshot.data == PiPStatus.enabled;
return ValueListenableBuilder<bool>( return ValueListenableBuilder<bool>(
@ -935,7 +933,7 @@ class _EntryViewerStackState extends State<EntryViewerStack> with EntryViewContr
); );
try { try {
final status = await _floating.enable(EnableManual( final status = await Floating().enable(ImmediatePiP(
aspectRatio: aspectRatio, aspectRatio: aspectRatio,
sourceRectHint: sourceRectHint, sourceRectHint: sourceRectHint,
)); ));

View file

@ -89,10 +89,10 @@ packages:
dependency: "direct main" dependency: "direct main"
description: description:
name: flutter_map name: flutter_map
sha256: ead3532d99548140346684cf737a4c0a6f59f02f62ee4e406597f8364afbf1a2 sha256: cc102fe5eeab1a740c321e1982706061e46259cd75115b3b3779195f21d57cc3
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "7.0.0" version: "7.0.1"
http: http:
dependency: transitive dependency: transitive
description: description:

View file

@ -5,10 +5,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: _flutterfire_internals name: _flutterfire_internals
sha256: "13e611501ef36044655852215b4f30aed81123654a4f55193d0051a0e8705658" sha256: a315d1c444402c3fa468de626d33a1c666041c87e9e195e8fb355b7084aefcc1
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.3.36" version: "1.3.38"
async: async:
dependency: transitive dependency: transitive
description: description:
@ -68,42 +68,42 @@ packages:
dependency: "direct main" dependency: "direct main"
description: description:
name: firebase_core name: firebase_core
sha256: "0d436d29b16fd9844a098ece2a3ce75efc290e5fe0844d282c5e8987173b0d02" sha256: "1e06b0538ab3108a61d895ee16951670b491c4a94fce8f2d30e5de7a5eca4b28"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "3.0.0" version: "3.1.1"
firebase_core_platform_interface: firebase_core_platform_interface:
dependency: transitive dependency: transitive
description: description:
name: firebase_core_platform_interface name: firebase_core_platform_interface
sha256: c437ae5d17e6b5cc7981cf6fd458a5db4d12979905f9aafd1fea930428a9fe63 sha256: "1003a5a03a61fc9a22ef49f37cbcb9e46c86313a7b2e7029b9390cf8c6fc32cb"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "5.0.0" version: "5.1.0"
firebase_core_web: firebase_core_web:
dependency: transitive dependency: transitive
description: description:
name: firebase_core_web name: firebase_core_web
sha256: "22fcb352744908224fc7be3caae254836099786acfe5df6e9fe901e9c2575a41" sha256: "6643fe3dbd021e6ccfb751f7882b39df355708afbdeb4130fc50f9305a9d1a3d"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.17.1" version: "2.17.2"
firebase_crashlytics: firebase_crashlytics:
dependency: "direct main" dependency: "direct main"
description: description:
name: firebase_crashlytics name: firebase_crashlytics
sha256: bc95715ae12f885a77a7f8d13eeee2e8cb3ea26c2b466c590f8cf4f5645a23b7 sha256: "54c06fa45585ed77e978b049f8e488db7677313d5dc808c54d24384a6e5bf0c8"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "4.0.0" version: "4.0.2"
firebase_crashlytics_platform_interface: firebase_crashlytics_platform_interface:
dependency: transitive dependency: transitive
description: description:
name: firebase_crashlytics_platform_interface name: firebase_crashlytics_platform_interface
sha256: fdee44039a994250577179d792060ac9a0a211ee186e2ec59ef2007a138ba30f sha256: "8ec63ebefe9233d3cdc744f75d5b88cf16b6241d8680e6284c2d272bcb0a10af"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "3.6.36" version: "3.6.38"
flutter: flutter:
dependency: "direct main" dependency: "direct main"
description: flutter description: flutter

View file

@ -96,10 +96,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: flutter_map name: flutter_map
sha256: ead3532d99548140346684cf737a4c0a6f59f02f62ee4e406597f8364afbf1a2 sha256: cc102fe5eeab1a740c321e1982706061e46259cd75115b3b3779195f21d57cc3
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "7.0.0" version: "7.0.1"
http: http:
dependency: transitive dependency: transitive
description: description:

View file

@ -142,7 +142,10 @@ class _EntryGoogleMapState<T> extends State<EntryGoogleMap<T>> {
mediaMarkers.add(Marker( mediaMarkers.add(Marker(
markerId: MarkerId(geoEntry.markerId!), markerId: MarkerId(geoEntry.markerId!),
consumeTapEvents: true, consumeTapEvents: true,
icon: BitmapDescriptor.fromBytes(bytes), icon: BytesMapBitmap(
bytes,
bitmapScaling: MapBitmapScaling.none,
),
position: point, position: point,
onTap: () => widget.onMarkerTap?.call(geoEntry), onTap: () => widget.onMarkerTap?.call(geoEntry),
// TODO TLAD [map] GoogleMap.onLongPress is not appropriate for mediaMarkers, so the call should be here when this is fixed: https://github.com/flutter/flutter/issues/107148 // TODO TLAD [map] GoogleMap.onLongPress is not appropriate for mediaMarkers, so the call should be here when this is fixed: https://github.com/flutter/flutter/issues/107148
@ -198,7 +201,10 @@ class _EntryGoogleMapState<T> extends State<EntryGoogleMap<T>> {
markerId: const MarkerId('dot'), markerId: const MarkerId('dot'),
anchor: const Offset(.5, .5), anchor: const Offset(.5, .5),
consumeTapEvents: true, consumeTapEvents: true,
icon: BitmapDescriptor.fromBytes(_dotMarkerBitmap!), icon: BytesMapBitmap(
_dotMarkerBitmap!,
bitmapScaling: MapBitmapScaling.none,
),
position: _toServiceLatLng(dotLocation), position: _toServiceLatLng(dotLocation),
zIndex: 1, zIndex: 1,
) )

View file

@ -150,10 +150,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: flutter_map name: flutter_map
sha256: ead3532d99548140346684cf737a4c0a6f59f02f62ee4e406597f8364afbf1a2 sha256: cc102fe5eeab1a740c321e1982706061e46259cd75115b3b3779195f21d57cc3
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "7.0.0" version: "7.0.1"
flutter_plugin_android_lifecycle: flutter_plugin_android_lifecycle:
dependency: transitive dependency: transitive
description: description:
@ -211,26 +211,26 @@ packages:
dependency: "direct main" dependency: "direct main"
description: description:
name: google_maps_flutter_android name: google_maps_flutter_android
sha256: b9ddc35f8b55fd70a196e43a61594abce5c41bc0843ea078a97679a9791749fe sha256: e9a506d05a4c70b091ebe41b1f28f3b1efdfddfa4f81487018d9feebeff94709
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.9.0" version: "2.10.0"
google_maps_flutter_ios: google_maps_flutter_ios:
dependency: transitive dependency: transitive
description: description:
name: google_maps_flutter_ios name: google_maps_flutter_ios
sha256: d2d63ae17297a5b045ec115572c5a86fa4e53bb6eceaa0c6d200ac5ca69bfca4 sha256: "7250837d9b2f1a40d7724d735aaa4fc574c5f0e120f3f43149aceace16095ccf"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.7.0" version: "2.8.0"
google_maps_flutter_platform_interface: google_maps_flutter_platform_interface:
dependency: "direct main" dependency: "direct main"
description: description:
name: google_maps_flutter_platform_interface name: google_maps_flutter_platform_interface
sha256: "2bf21aa97edba4461282af5de693b354e589d09f695f7a6f80437d084a29687e" sha256: bd60ca330e3c7763b95b477054adec338a522d982af73ecc520b232474063ac5
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.7.1" version: "2.8.0"
google_maps_flutter_web: google_maps_flutter_web:
dependency: transitive dependency: transitive
description: description:

View file

@ -117,10 +117,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: flutter_map name: flutter_map
sha256: ead3532d99548140346684cf737a4c0a6f59f02f62ee4e406597f8364afbf1a2 sha256: cc102fe5eeab1a740c321e1982706061e46259cd75115b3b3779195f21d57cc3
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "7.0.0" version: "7.0.1"
http: http:
dependency: transitive dependency: transitive
description: description:

View file

@ -103,10 +103,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: flutter_map name: flutter_map
sha256: ead3532d99548140346684cf737a4c0a6f59f02f62ee4e406597f8364afbf1a2 sha256: cc102fe5eeab1a740c321e1982706061e46259cd75115b3b3779195f21d57cc3
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "7.0.0" version: "7.0.1"
http: http:
dependency: transitive dependency: transitive
description: description:

View file

@ -13,10 +13,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: _flutterfire_internals name: _flutterfire_internals
sha256: "13e611501ef36044655852215b4f30aed81123654a4f55193d0051a0e8705658" sha256: a315d1c444402c3fa468de626d33a1c666041c87e9e195e8fb355b7084aefcc1
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.3.36" version: "1.3.38"
analyzer: analyzer:
dependency: transitive dependency: transitive
description: description:
@ -396,42 +396,42 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: firebase_core name: firebase_core
sha256: "0d436d29b16fd9844a098ece2a3ce75efc290e5fe0844d282c5e8987173b0d02" sha256: "1e06b0538ab3108a61d895ee16951670b491c4a94fce8f2d30e5de7a5eca4b28"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "3.0.0" version: "3.1.1"
firebase_core_platform_interface: firebase_core_platform_interface:
dependency: transitive dependency: transitive
description: description:
name: firebase_core_platform_interface name: firebase_core_platform_interface
sha256: c437ae5d17e6b5cc7981cf6fd458a5db4d12979905f9aafd1fea930428a9fe63 sha256: "1003a5a03a61fc9a22ef49f37cbcb9e46c86313a7b2e7029b9390cf8c6fc32cb"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "5.0.0" version: "5.1.0"
firebase_core_web: firebase_core_web:
dependency: transitive dependency: transitive
description: description:
name: firebase_core_web name: firebase_core_web
sha256: "22fcb352744908224fc7be3caae254836099786acfe5df6e9fe901e9c2575a41" sha256: "6643fe3dbd021e6ccfb751f7882b39df355708afbdeb4130fc50f9305a9d1a3d"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.17.1" version: "2.17.2"
firebase_crashlytics: firebase_crashlytics:
dependency: transitive dependency: transitive
description: description:
name: firebase_crashlytics name: firebase_crashlytics
sha256: bc95715ae12f885a77a7f8d13eeee2e8cb3ea26c2b466c590f8cf4f5645a23b7 sha256: "54c06fa45585ed77e978b049f8e488db7677313d5dc808c54d24384a6e5bf0c8"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "4.0.0" version: "4.0.2"
firebase_crashlytics_platform_interface: firebase_crashlytics_platform_interface:
dependency: transitive dependency: transitive
description: description:
name: firebase_crashlytics_platform_interface name: firebase_crashlytics_platform_interface
sha256: fdee44039a994250577179d792060ac9a0a211ee186e2ec59ef2007a138ba30f sha256: "8ec63ebefe9233d3cdc744f75d5b88cf16b6241d8680e6284c2d272bcb0a10af"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "3.6.36" version: "3.6.38"
fixnum: fixnum:
dependency: transitive dependency: transitive
description: description:
@ -460,10 +460,10 @@ packages:
dependency: "direct main" dependency: "direct main"
description: description:
name: floating name: floating
sha256: ddcd7f28247746dbb62997c48c89d1824118676796df47fdc6f864f8d02849bc sha256: c0e5f68b4f384cafcc974a0368c7b0232125ac9208a3433508269054026dcac4
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "3.0.0" version: "4.0.0"
fluster: fluster:
dependency: "direct main" dependency: "direct main"
description: description:
@ -532,18 +532,18 @@ packages:
dependency: "direct main" dependency: "direct main"
description: description:
name: flutter_map name: flutter_map
sha256: ead3532d99548140346684cf737a4c0a6f59f02f62ee4e406597f8364afbf1a2 sha256: cc102fe5eeab1a740c321e1982706061e46259cd75115b3b3779195f21d57cc3
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "7.0.0" version: "7.0.1"
flutter_markdown: flutter_markdown:
dependency: "direct main" dependency: "direct main"
description: description:
name: flutter_markdown name: flutter_markdown
sha256: "9921f9deda326f8a885e202b1e35237eadfc1345239a0f6f0f1ff287e047547f" sha256: "85cc6f7daeae537844c92e2d56e2aff61b00095f8f77913b529ea4be12fc45ea"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "0.7.1" version: "0.7.2+1"
flutter_plugin_android_lifecycle: flutter_plugin_android_lifecycle:
dependency: transitive dependency: transitive
description: description:
@ -643,26 +643,26 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: google_maps_flutter_android name: google_maps_flutter_android
sha256: b9ddc35f8b55fd70a196e43a61594abce5c41bc0843ea078a97679a9791749fe sha256: e9a506d05a4c70b091ebe41b1f28f3b1efdfddfa4f81487018d9feebeff94709
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.9.0" version: "2.10.0"
google_maps_flutter_ios: google_maps_flutter_ios:
dependency: transitive dependency: transitive
description: description:
name: google_maps_flutter_ios name: google_maps_flutter_ios
sha256: d2d63ae17297a5b045ec115572c5a86fa4e53bb6eceaa0c6d200ac5ca69bfca4 sha256: "7250837d9b2f1a40d7724d735aaa4fc574c5f0e120f3f43149aceace16095ccf"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.7.0" version: "2.8.0"
google_maps_flutter_platform_interface: google_maps_flutter_platform_interface:
dependency: transitive dependency: transitive
description: description:
name: google_maps_flutter_platform_interface name: google_maps_flutter_platform_interface
sha256: "2bf21aa97edba4461282af5de693b354e589d09f695f7a6f80437d084a29687e" sha256: bd60ca330e3c7763b95b477054adec338a522d982af73ecc520b232474063ac5
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.7.1" version: "2.8.0"
google_maps_flutter_web: google_maps_flutter_web:
dependency: transitive dependency: transitive
description: description:
@ -811,10 +811,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: local_auth_android name: local_auth_android
sha256: "48dfb2d954da8ef6a77adfc93a29998f7729e9308eaa817e91dea4500317b2c8" sha256: b77dc490fef9214e785c326bf11fa733feaa47675d0433f05f48b5caa486c8f7
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.0.39" version: "1.0.40"
local_auth_darwin: local_auth_darwin:
dependency: transitive dependency: transitive
description: description:
@ -1125,10 +1125,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: permission_handler_android name: permission_handler_android
sha256: "8bb852cd759488893805c3161d0b2b5db55db52f773dbb014420b304055ba2c5" sha256: b29a799ca03be9f999aa6c39f7de5209482d638e6f857f6b93b0875c618b7e54
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "12.0.6" version: "12.0.7"
permission_handler_apple: permission_handler_apple:
dependency: transitive dependency: transitive
description: description: