chore: flutter 3.29.1 (#16730)

* update dependencies

* update flutter version reference

* update flutter version reference

* update AndroidManifest with flutter_web_auth_2

* chore: lock file flutter version

* fix: ios build
This commit is contained in:
Alex
2025-03-10 21:46:36 -05:00
committed by GitHub
parent 8cd5aec4c5
commit 75fa305e98
43 changed files with 508 additions and 477 deletions
@@ -1,4 +1,5 @@
import 'dart:async';
import 'dart:io';
import 'dart:math';
import 'package:flutter/services.dart';
@@ -40,25 +41,29 @@ extension MapMarkers on MapLibreMapController {
await addGeoJSONSourceForMarkers(markers);
await addCircleLayer(
MapUtils.defaultSourceId,
MapUtils.defaultHeatMapLayerId,
const CircleLayerProperties(
circleRadius: 10,
circleColor: "rgba(150,86,34,0.7)",
circleBlur: 1.0,
circleOpacity: 0.7,
circleStrokeWidth: 0.1,
circleStrokeColor: "rgba(203,46,19,0.5)",
circleStrokeOpacity: 0.7,
),
);
if (Platform.isAndroid) {
await addCircleLayer(
MapUtils.defaultSourceId,
MapUtils.defaultHeatMapLayerId,
const CircleLayerProperties(
circleRadius: 10,
circleColor: "rgba(150,86,34,0.7)",
circleBlur: 1.0,
circleOpacity: 0.7,
circleStrokeWidth: 0.1,
circleStrokeColor: "rgba(203,46,19,0.5)",
circleStrokeOpacity: 0.7,
),
);
}
// await addHeatmapLayer(
// MapUtils.defaultSourceId,
// MapUtils.defaultHeatMapLayerId,
// MapUtils.defaultHeatMapLayerProperties,
// );
if (Platform.isIOS) {
await addHeatmapLayer(
MapUtils.defaultSourceId,
MapUtils.defaultHeatMapLayerId,
MapUtils.defaultHeatMapLayerProperties,
);
}
_completer.complete();
}
+2 -2
View File
@@ -10,14 +10,14 @@ extension ImmichColorSchemeExtensions on ColorScheme {
extension ColorExtensions on Color {
Color lighten({double amount = 0.1}) {
return Color.alphaBlend(
Colors.white.withOpacity(amount),
Colors.white.withValues(alpha: amount),
this,
);
}
Color darken({double amount = 0.1}) {
return Color.alphaBlend(
Colors.black.withOpacity(amount),
Colors.black.withValues(alpha: amount),
this,
);
}
@@ -6,6 +6,7 @@ typedef AsyncFuture<T> = Future<AsyncValue<T>>;
mixin ErrorLoggerMixin {
abstract final Logger logger;
// ignore: unintended_html_in_doc_comment
/// Returns an AsyncValue<T> if the future is successfully executed
/// Else, logs the error to the overridden logger and returns an AsyncError<>
AsyncFuture<T> guardError<T>(
@@ -53,7 +53,7 @@ class AlbumAdditionalSharedUserSelectionPage extends HookConsumerWidget {
Padding(
padding: const EdgeInsets.symmetric(horizontal: 8.0),
child: Chip(
backgroundColor: context.primaryColor.withOpacity(0.15),
backgroundColor: context.primaryColor.withValues(alpha: 0.15),
label: Text(
user.name,
style: const TextStyle(
@@ -72,7 +72,7 @@ class AlbumSharedUserSelectionPage extends HookConsumerWidget {
Padding(
padding: const EdgeInsets.symmetric(horizontal: 8.0),
child: Chip(
backgroundColor: context.primaryColor.withOpacity(0.15),
backgroundColor: context.primaryColor.withValues(alpha: 0.15),
label: Text(
user.email,
style: const TextStyle(
+3 -3
View File
@@ -106,9 +106,9 @@ class AlbumsPage extends HookConsumerWidget {
borderRadius: BorderRadius.circular(24),
gradient: LinearGradient(
colors: [
context.colorScheme.primary.withOpacity(0.075),
context.colorScheme.primary.withOpacity(0.09),
context.colorScheme.primary.withOpacity(0.075),
context.colorScheme.primary.withValues(alpha: 0.075),
context.colorScheme.primary.withValues(alpha: 0.09),
context.colorScheme.primary.withValues(alpha: 0.075),
],
begin: Alignment.topLeft,
end: Alignment.bottomRight,
+3 -3
View File
@@ -49,9 +49,9 @@ class AppLogPage extends HookConsumerWidget {
Color getTileColor(LogLevel level) => switch (level) {
LogLevel.info => Colors.transparent,
LogLevel.severe => Colors.redAccent.withOpacity(0.25),
LogLevel.warning => Colors.orangeAccent.withOpacity(0.25),
_ => context.primaryColor.withOpacity(0.1),
LogLevel.severe => Colors.redAccent.withValues(alpha: 0.25),
LogLevel.warning => Colors.orangeAccent.withValues(alpha: 0.25),
_ => context.primaryColor.withValues(alpha: 0.1),
};
return Scaffold(
+1 -1
View File
@@ -127,7 +127,7 @@ class EditImagePage extends ConsumerWidget {
borderRadius: BorderRadius.circular(7),
boxShadow: [
BoxShadow(
color: Colors.black.withOpacity(0.2),
color: Colors.black.withValues(alpha: 0.2),
spreadRadius: 2,
blurRadius: 10,
offset: const Offset(0, 3),
@@ -49,7 +49,7 @@ class PeopleCollectionPage extends HookConsumerWidget {
decoration: InputDecoration(
contentPadding: const EdgeInsets.only(left: 24),
filled: true,
fillColor: context.primaryColor.withOpacity(0.1),
fillColor: context.primaryColor.withValues(alpha: 0.1),
hintStyle: context.textTheme.bodyLarge?.copyWith(
color: context.themeData.colorScheme.onSurfaceSecondary,
),
@@ -58,7 +58,8 @@ class SharedLinkPage extends HookConsumerWidget {
child: Icon(
Icons.link_off,
size: 100,
color: context.themeData.iconTheme.color?.withOpacity(0.5),
color:
context.themeData.iconTheme.color?.withValues(alpha: 0.5),
),
),
),
@@ -120,7 +120,7 @@ class SharedLinkEditPage extends HookConsumerWidget {
fontSize: 14,
),
disabledBorder: OutlineInputBorder(
borderSide: BorderSide(color: Colors.grey.withOpacity(0.5)),
borderSide: BorderSide(color: Colors.grey.withValues(alpha: 0.5)),
),
),
onTapOutside: (_) => descriptionFocusNode.unfocus(),
@@ -146,7 +146,7 @@ class SharedLinkEditPage extends HookConsumerWidget {
fontSize: 14,
),
disabledBorder: OutlineInputBorder(
borderSide: BorderSide(color: Colors.grey.withOpacity(0.5)),
borderSide: BorderSide(color: Colors.grey.withValues(alpha: 0.5)),
),
),
);
+1 -1
View File
@@ -350,7 +350,7 @@ class MemoryPage extends HookConsumerWidget {
);
},
shape: const CircleBorder(),
color: Colors.white.withOpacity(0.2),
color: Colors.white.withValues(alpha: 0.2),
elevation: 0,
child: const Icon(
Icons.close_rounded,
+3 -5
View File
@@ -517,8 +517,6 @@ class SearchPage extends HookConsumerWidget {
return Icons.abc_rounded;
case TextSearchType.description:
return Icons.text_snippet_outlined;
default:
return Icons.search_rounded;
}
}
@@ -634,9 +632,9 @@ class SearchPage extends HookConsumerWidget {
borderRadius: BorderRadius.circular(24),
gradient: LinearGradient(
colors: [
context.colorScheme.primary.withOpacity(0.075),
context.colorScheme.primary.withOpacity(0.09),
context.colorScheme.primary.withOpacity(0.075),
context.colorScheme.primary.withValues(alpha: 0.075),
context.colorScheme.primary.withValues(alpha: 0.09),
context.colorScheme.primary.withValues(alpha: 0.075),
],
begin: Alignment.topLeft,
end: Alignment.bottomRight,
@@ -5,6 +5,7 @@ import 'package:riverpod_annotation/riverpod_annotation.dart';
part 'activity.provider.g.dart';
// ignore: unintended_html_in_doc_comment
/// Maintains the current list of all activities for <share-album-id, asset>
@riverpod
class AlbumActivity extends _$AlbumActivity {
@@ -3,6 +3,7 @@ import 'package:riverpod_annotation/riverpod_annotation.dart';
part 'activity_statistics.provider.g.dart';
// ignore: unintended_html_in_doc_comment
/// Maintains the current number of comments by <shared-album, asset>
@riverpod
class ActivityStatistics extends _$ActivityStatistics {
+3 -3
View File
@@ -24,9 +24,8 @@ ThemeData getThemeData({
hintColor: colorScheme.onSurfaceSecondary,
focusColor: colorScheme.primary,
scaffoldBackgroundColor: colorScheme.surface,
splashColor: colorScheme.primary.withOpacity(0.1),
highlightColor: colorScheme.primary.withOpacity(0.1),
dialogBackgroundColor: colorScheme.surfaceContainer,
splashColor: colorScheme.primary.withValues(alpha: 0.1),
highlightColor: colorScheme.primary.withValues(alpha: 0.1),
bottomSheetTheme: BottomSheetThemeData(
backgroundColor: colorScheme.surfaceContainer,
),
@@ -163,6 +162,7 @@ ThemeData getThemeData({
),
),
),
dialogTheme: DialogThemeData(backgroundColor: colorScheme.surfaceContainer),
);
}
@@ -63,7 +63,7 @@ class _ActivityTitle extends StatelessWidget {
Widget build(BuildContext context) {
final textColor = context.isDarkTheme ? Colors.white : Colors.black;
final textStyle = context.textTheme.bodyMedium
?.copyWith(color: textColor.withOpacity(0.6));
?.copyWith(color: textColor.withValues(alpha: 0.6));
return Row(
mainAxisAlignment:
@@ -202,12 +202,12 @@ class ThumbnailImage extends ConsumerWidget {
bottom: 5,
child: Icon(
storageIcon(asset),
color: Colors.white.withOpacity(.8),
color: Colors.white.withValues(alpha: .8),
size: 16,
shadows: [
Shadow(
blurRadius: 5.0,
color: Colors.black.withOpacity(0.6),
color: Colors.black.withValues(alpha: 0.6),
offset: const Offset(0.0, 0.0),
),
],
@@ -113,7 +113,7 @@ class GalleryAppBar extends ConsumerWidget {
duration: const Duration(milliseconds: 100),
opacity: showControls ? 1.0 : 0.0,
child: Container(
color: Colors.black.withOpacity(0.4),
color: Colors.black.withValues(alpha: 0.4),
child: TopControlAppBar(
isOwner: isOwner,
isPartner: isPartner,
@@ -170,7 +170,7 @@ class AppBarServerInfo extends HookConsumerWidget {
child: Tooltip(
verticalOffset: 0,
decoration: BoxDecoration(
color: context.primaryColor.withOpacity(0.9),
color: context.primaryColor.withValues(alpha: 0.9),
borderRadius: BorderRadius.circular(10),
),
textStyle: TextStyle(
@@ -146,7 +146,7 @@ class DropdownSearchMenu<T> extends HookWidget {
? Theme.of(context)
.colorScheme
.onSurface
.withOpacity(0.12)
.withValues(alpha: 0.12)
: null,
padding: const EdgeInsets.all(16.0),
child: Text(
@@ -124,7 +124,7 @@ class ImmichAppBar extends ConsumerWidget implements PreferredSizeWidget {
decoration: BoxDecoration(
color: badgeBackground,
border: Border.all(
color: context.colorScheme.outline.withOpacity(.3),
color: context.colorScheme.outline.withValues(alpha: .3),
),
borderRadius: BorderRadius.circular(widgetSize / 2),
),
+1 -1
View File
@@ -43,7 +43,7 @@ class ImmichToast {
borderRadius: BorderRadius.circular(5.0),
color: context.colorScheme.surfaceContainer,
border: Border.all(
color: context.colorScheme.outline.withOpacity(.5),
color: context.colorScheme.outline.withValues(alpha: .5),
width: 1,
),
),
@@ -27,7 +27,8 @@ class ScaffoldErrorBody extends StatelessWidget {
child: Icon(
Icons.error_outline,
size: 100,
color: context.themeData.iconTheme.color?.withOpacity(0.5),
color:
context.themeData.iconTheme.color?.withValues(alpha: 0.5),
),
),
),
@@ -48,7 +48,7 @@ class MemoryBottomInfo extends StatelessWidget {
.scrollToDate(memory.assets[0].fileCreatedAt);
},
shape: const CircleBorder(),
color: Colors.white.withOpacity(0.2),
color: Colors.white.withValues(alpha: 0.2),
elevation: 0,
child: const Icon(
Icons.open_in_new,
+2 -2
View File
@@ -126,7 +126,7 @@ class _BlurredBackdrop extends HookWidget {
),
),
child: Container(
color: Colors.black.withOpacity(0.2),
color: Colors.black.withValues(alpha: 0.2),
),
);
} else {
@@ -147,7 +147,7 @@ class _BlurredBackdrop extends HookWidget {
),
),
child: Container(
color: Colors.black.withOpacity(0.2),
color: Colors.black.withValues(alpha: 0.2),
),
),
);
+2 -2
View File
@@ -31,7 +31,7 @@ class MemoryLane extends HookConsumerWidget {
elevation: 2,
backgroundColor: Colors.black,
overlayColor: WidgetStateProperty.all(
Colors.white.withOpacity(0.1),
Colors.white.withValues(alpha: 0.1),
),
onTap: (memoryIndex) {
ref.read(hapticFeedbackProvider.notifier).heavyImpact();
@@ -84,7 +84,7 @@ class MemoryCard extends ConsumerWidget {
children: [
ColorFiltered(
colorFilter: ColorFilter.mode(
Colors.black.withOpacity(0.2),
Colors.black.withValues(alpha: 0.2),
BlendMode.darken,
),
child: Hero(
@@ -37,7 +37,7 @@ class PeoplePicker extends HookConsumerWidget {
decoration: InputDecoration(
contentPadding: const EdgeInsets.only(left: 24),
filled: true,
fillColor: context.primaryColor.withOpacity(0.1),
fillColor: context.primaryColor.withValues(alpha: 0.1),
hintStyle: context.textTheme.bodyLarge?.copyWith(
color: context.themeData.colorScheme.onSurfaceSecondary,
),
@@ -22,7 +22,7 @@ class SearchFilterChip extends StatelessWidget {
onTap: onTap,
child: Card(
elevation: 0,
color: context.primaryColor.withOpacity(.5),
color: context.primaryColor.withValues(alpha: .5),
shape: StadiumBorder(
side: BorderSide(color: context.colorScheme.secondaryContainer),
),
@@ -44,8 +44,8 @@ class ThumbnailWithInfoContainer extends StatelessWidget {
colors: [
Colors.transparent,
label == ''
? Colors.black.withOpacity(0.1)
: Colors.black.withOpacity(0.5),
? Colors.black.withValues(alpha: 0.1)
: Colors.black.withValues(alpha: 0.5),
],
stops: const [0.0, 1.0],
),
@@ -72,7 +72,7 @@ class ExternalNetworkPreference extends HookConsumerWidget {
builder: (BuildContext context, Widget? child) {
return Material(
color: context.colorScheme.surfaceContainerHighest,
shadowColor: context.colorScheme.primary.withOpacity(0.2),
shadowColor: context.colorScheme.primary.withValues(alpha: 0.2),
child: child,
);
},
@@ -116,7 +116,7 @@ class ExternalNetworkPreference extends HookConsumerWidget {
child: Icon(
Icons.dns_rounded,
size: 120,
color: context.primaryColor.withOpacity(0.05),
color: context.primaryColor.withValues(alpha: 0.05),
),
),
ListView(
@@ -161,7 +161,7 @@ class LocalNetworkPreference extends HookConsumerWidget {
child: Icon(
Icons.home_outlined,
size: 120,
color: context.primaryColor.withOpacity(0.05),
color: context.primaryColor.withValues(alpha: 0.05),
),
),
ListView(
@@ -98,7 +98,7 @@ class PrimaryColorSetting extends HookConsumerWidget {
child: Container(
decoration: BoxDecoration(
borderRadius: const BorderRadius.all(Radius.circular(100)),
color: Colors.grey[900]?.withOpacity(.4),
color: Colors.grey[900]?.withValues(alpha: .4),
),
child: const Padding(
padding: EdgeInsets.all(3),
@@ -240,7 +240,7 @@ class SharedLinkItem extends ConsumerWidget {
child: Tooltip(
verticalOffset: 0,
decoration: BoxDecoration(
color: colorScheme.primary.withOpacity(0.9),
color: colorScheme.primary.withValues(alpha: 0.9),
borderRadius: BorderRadius.circular(10),
),
textStyle: TextStyle(
@@ -268,7 +268,7 @@ class SharedLinkItem extends ConsumerWidget {
child: Tooltip(
verticalOffset: 0,
decoration: BoxDecoration(
color: colorScheme.primary.withOpacity(0.9),
color: colorScheme.primary.withValues(alpha: 0.9),
borderRadius: BorderRadius.circular(10),
),
textStyle: TextStyle(