Compare commits

..

3 Commits

Author SHA1 Message Date
5ebefae961 🚀 Launch 3.3.0+145 2025-11-05 22:48:34 +08:00
d4758674bb 🐛 Trying to fix file chunk issue 2025-11-05 13:13:21 +08:00
f5f1ddc0ea Steam connection 2025-11-04 23:53:17 +08:00
6 changed files with 126 additions and 115 deletions

View File

@@ -163,6 +163,7 @@
"accountConnectionProviderDiscord": "Discord", "accountConnectionProviderDiscord": "Discord",
"accountConnectionProviderAfdian": "Afdian", "accountConnectionProviderAfdian": "Afdian",
"accountConnectionProviderSpotify": "Spotify", "accountConnectionProviderSpotify": "Spotify",
"accountConnectionProviderSteam": "Steam",
"checkIn": "Check In", "checkIn": "Check In",
"checkInNone": "Not checked-in yet", "checkInNone": "Not checked-in yet",
"checkInNoneHint": "Get your fortune tips and daily rewards by checking in.", "checkInNoneHint": "Get your fortune tips and daily rewards by checking in.",

View File

@@ -0,0 +1 @@
<svg width="2471" height="2500" viewBox="0 0 256 259" xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMidYMid"><path d="M127.779 0C60.42 0 5.24 52.412 0 119.014l68.724 28.674a35.812 35.812 0 0 1 20.426-6.366c.682 0 1.356.019 2.02.056l30.566-44.71v-.626c0-26.903 21.69-48.796 48.353-48.796 26.662 0 48.352 21.893 48.352 48.796 0 26.902-21.69 48.804-48.352 48.804-.37 0-.73-.009-1.098-.018l-43.593 31.377c.028.582.046 1.163.046 1.735 0 20.204-16.283 36.636-36.294 36.636-17.566 0-32.263-12.658-35.584-29.412L4.41 164.654c15.223 54.313 64.673 94.132 123.369 94.132 70.818 0 128.221-57.938 128.221-129.393C256 57.93 198.597 0 127.779 0zM80.352 196.332l-15.749-6.568c2.787 5.867 7.621 10.775 14.033 13.47 13.857 5.83 29.836-.803 35.612-14.799a27.555 27.555 0 0 0 .046-21.035c-2.768-6.79-7.999-12.086-14.706-14.909-6.67-2.795-13.811-2.694-20.085-.304l16.275 6.79c10.222 4.3 15.056 16.145 10.794 26.46-4.253 10.314-15.998 15.195-26.22 10.895zm121.957-100.29c0-17.925-14.457-32.52-32.217-32.52-17.769 0-32.226 14.595-32.226 32.52 0 17.926 14.457 32.512 32.226 32.512 17.76 0 32.217-14.586 32.217-32.512zm-56.37-.055c0-13.488 10.84-24.42 24.2-24.42 13.368 0 24.208 10.932 24.208 24.42 0 13.488-10.84 24.421-24.209 24.421-13.359 0-24.2-10.933-24.2-24.42z" fill="#1A1918"/></svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

@@ -30,6 +30,7 @@ Widget getProviderIcon(String provider, {double size = 24, Color? color}) {
case 'github': case 'github':
case 'discord': case 'discord':
case 'afdian': case 'afdian':
case 'steam':
return SvgPicture.asset( return SvgPicture.asset(
'assets/images/oidc/$providerLower.svg', 'assets/images/oidc/$providerLower.svg',
width: size, width: size,
@@ -64,6 +65,8 @@ String getLocalizedProviderName(String provider) {
return 'accountConnectionProviderAfdian'.tr(); return 'accountConnectionProviderAfdian'.tr();
case 'spotify': case 'spotify':
return 'accountConnectionProviderSpotify'.tr(); return 'accountConnectionProviderSpotify'.tr();
case 'steam':
return 'accountConnectionProviderSteam'.tr();
default: default:
return provider; return provider;
} }
@@ -164,6 +167,7 @@ class AccountConnectionNewSheet extends HookConsumerWidget {
'discord', 'discord',
'afdian', 'afdian',
'spotify', 'spotify',
'steam',
]; ];
Future<void> addConnection() async { Future<void> addConnection() async {
@@ -199,12 +203,7 @@ class AccountConnectionNewSheet extends HookConsumerWidget {
} finally { } finally {
if (context.mounted) hideLoadingModal(context); if (context.mounted) hideLoadingModal(context);
} }
case 'microsoft': default:
case 'google':
case 'github':
case 'discord':
case 'afdian':
case 'spotify':
final serverUrl = ref.watch(serverUrlProvider); final serverUrl = ref.watch(serverUrlProvider);
final accessToken = ref.watch(tokenProvider); final accessToken = ref.watch(tokenProvider);
launchUrlString( launchUrlString(
@@ -212,9 +211,6 @@ class AccountConnectionNewSheet extends HookConsumerWidget {
); );
if (context.mounted) Navigator.pop(context, true); if (context.mounted) Navigator.pop(context, true);
break; break;
default:
showSnackBar('accountConnectionAddError'.tr());
return;
} }
} }

View File

@@ -1,5 +1,4 @@
import 'dart:async'; import 'dart:async';
import 'dart:typed_data';
import 'package:cross_file/cross_file.dart'; import 'package:cross_file/cross_file.dart';
import 'package:crypto/crypto.dart'; import 'package:crypto/crypto.dart';
import 'package:dio/dio.dart'; import 'package:dio/dio.dart';
@@ -16,16 +15,15 @@ class FileUploader {
FileUploader(this._client); FileUploader(this._client);
/// Calculates the MD5 hash of a file. /// Calculates the MD5 hash of file bytes.
Future<String> _calculateFileHash(XFile file) async { String _calculateFileHash(Uint8List bytes) {
final bytes = await file.readAsBytes();
final digest = md5.convert(bytes); final digest = md5.convert(bytes);
return digest.toString(); return digest.toString();
} }
/// Creates an upload task for the given file. /// Creates an upload task for the given file.
Future<Map<String, dynamic>> createUploadTask({ Future<Map<String, dynamic>> createUploadTask({
required XFile file, required Uint8List bytes,
required String fileName, required String fileName,
required String contentType, required String contentType,
String? poolId, String? poolId,
@@ -34,8 +32,8 @@ class FileUploader {
String? expiredAt, String? expiredAt,
int? chunkSize, int? chunkSize,
}) async { }) async {
final hash = await _calculateFileHash(file); final hash = _calculateFileHash(bytes);
final fileSize = await file.length(); final fileSize = bytes.length;
final response = await _client.post( final response = await _client.post(
'/drive/files/upload/create', '/drive/files/upload/create',
@@ -83,7 +81,7 @@ class FileUploader {
/// Uploads a file in chunks using the multi-part API. /// Uploads a file in chunks using the multi-part API.
Future<SnCloudFile> uploadFile({ Future<SnCloudFile> uploadFile({
required XFile file, required Uint8List bytes,
required String fileName, required String fileName,
required String contentType, required String contentType,
String? poolId, String? poolId,
@@ -94,7 +92,7 @@ class FileUploader {
}) async { }) async {
// Step 1: Create upload task // Step 1: Create upload task
final createResponse = await createUploadTask( final createResponse = await createUploadTask(
file: file, bytes: bytes,
fileName: fileName, fileName: fileName,
contentType: contentType, contentType: contentType,
poolId: poolId, poolId: poolId,
@@ -114,24 +112,10 @@ class FileUploader {
final chunksCount = createResponse['chunks_count'] as int; final chunksCount = createResponse['chunks_count'] as int;
// Step 2: Upload chunks // Step 2: Upload chunks
final stream = file.openRead();
final chunks = <Uint8List>[]; final chunks = <Uint8List>[];
int bytesRead = 0; for (int i = 0; i < bytes.length; i += chunkSize) {
final buffer = BytesBuilder(); final end = i + chunkSize > bytes.length ? bytes.length : i + chunkSize;
chunks.add(Uint8List.fromList(bytes.sublist(i, end)));
await for (final chunk in stream) {
buffer.add(chunk);
bytesRead += chunk.length;
if (bytesRead >= chunkSize) {
chunks.add(buffer.takeBytes());
bytesRead = 0;
}
}
// Add remaining bytes as last chunk
if (buffer.length > 0) {
chunks.add(buffer.takeBytes());
} }
// Ensure we have the correct number of chunks // Ensure we have the correct number of chunks
@@ -225,20 +209,34 @@ class FileUploader {
Completer<SnCloudFile?> completer, Completer<SnCloudFile?> completer,
) { ) {
String actualMimetype = getMimeType(fileData); String actualMimetype = getMimeType(fileData);
late XFile file;
String actualFilename = fileData.displayName ?? 'randomly_file'; String actualFilename = fileData.displayName ?? 'randomly_file';
Uint8List? byteData; Uint8List? bytes;
// Handle the data based on what's in the UniversalFile // Handle the data based on what's in the UniversalFile
final data = fileData.data; final data = fileData.data;
if (data is XFile) { if (data is XFile) {
file = data; // Read bytes from XFile
actualFilename = fileData.displayName ?? data.name; data
.readAsBytes()
.then((readBytes) {
_performUpload(
bytes: readBytes,
fileName: fileData.displayName ?? data.name,
contentType: actualMimetype,
client: client,
poolId: poolId,
onProgress: onProgress,
completer: completer,
);
})
.catchError((e) {
completer.completeError(e);
});
return completer;
} else if (data is List<int> || data is Uint8List) { } else if (data is List<int> || data is Uint8List) {
byteData = data is List<int> ? Uint8List.fromList(data) : data; bytes = data is List<int> ? Uint8List.fromList(data) : data;
actualFilename = fileData.displayName ?? 'uploaded_file'; actualFilename = fileData.displayName ?? 'uploaded_file';
file = XFile.fromData(byteData!, mimeType: actualMimetype);
} else if (data is SnCloudFile) { } else if (data is SnCloudFile) {
// If the file is already on the cloud, just return it // If the file is already on the cloud, just return it
completer.complete(data); completer.complete(data);
@@ -252,15 +250,40 @@ class FileUploader {
return completer; return completer;
} }
if (bytes != null) {
_performUpload(
bytes: bytes,
fileName: actualFilename,
contentType: actualMimetype,
client: client,
poolId: poolId,
onProgress: onProgress,
completer: completer,
);
}
return completer;
}
// Helper method to perform the actual upload
static void _performUpload({
required Uint8List bytes,
required String fileName,
required String contentType,
required Dio client,
String? poolId,
Function(double progress, Duration estimate)? onProgress,
required Completer<SnCloudFile?> completer,
}) {
final uploader = FileUploader(client); final uploader = FileUploader(client);
// Call progress start // Call progress start
onProgress?.call(0.0, Duration.zero); onProgress?.call(0.0, Duration.zero);
uploader uploader
.uploadFile( .uploadFile(
file: file, bytes: bytes,
fileName: actualFilename, fileName: fileName,
contentType: actualMimetype, contentType: contentType,
poolId: poolId, poolId: poolId,
) )
.then((result) { .then((result) {
@@ -272,8 +295,6 @@ class FileUploader {
completer.completeError(e); completer.completeError(e);
throw e; throw e;
}); });
return completer;
} }
/// Gets the MIME type of a UniversalFile. /// Gets the MIME type of a UniversalFile.

View File

@@ -13,10 +13,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: _flutterfire_internals name: _flutterfire_internals
sha256: f871a7d1b686bea1f13722aa51ab31554d05c81f47054d6de48cc8c45153508b sha256: "8a1f5f3020ef2a74fb93f7ab3ef127a8feea33a7a2276279113660784ee7516a"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.3.63" version: "1.3.64"
analyzer: analyzer:
dependency: transitive dependency: transitive
description: description:
@@ -309,10 +309,10 @@ packages:
dependency: "direct main" dependency: "direct main"
description: description:
name: crypto name: crypto
sha256: "1e445881f28f22d6140f181e07737b22f1e099a5e1ff94b0af2f9e4a463f4855" sha256: c8ea0233063ba03258fbcf2ca4d6dadfefe14f02fab57702265467a19f27fadf
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "3.0.6" version: "3.0.7"
csslib: csslib:
dependency: transitive dependency: transitive
description: description:
@@ -605,34 +605,34 @@ packages:
dependency: "direct main" dependency: "direct main"
description: description:
name: firebase_analytics name: firebase_analytics
sha256: "3cfc4089e61e810ffb531af63cfde2c8cfd36f12dc14fdba359e623992311015" sha256: bfb80d92eee10a6585ebd5a7e60de5caf0f2c06329e5676c0578130aea1bfe85
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "12.0.3" version: "12.0.4"
firebase_analytics_platform_interface: firebase_analytics_platform_interface:
dependency: transitive dependency: transitive
description: description:
name: firebase_analytics_platform_interface name: firebase_analytics_platform_interface
sha256: "775fc18d9b00a014362510a33f76f1f34deb30f69a64edcb41a7dfd0ebd9cf98" sha256: "3b803077907def997044774f6c022d8e9204e9c0f5e205e3572d887c93dafd72"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "5.0.3" version: "5.0.4"
firebase_analytics_web: firebase_analytics_web:
dependency: transitive dependency: transitive
description: description:
name: firebase_analytics_web name: firebase_analytics_web
sha256: "6eafa8fef5fdca6c922ac3e353c9a093c12344a3ba996e65fd40f8db0a00d26f" sha256: "0dbd96dbe77b51185319000c0078477fdcffb4abb0018c362dd9afb9845c1e06"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "0.6.0+3" version: "0.6.1"
firebase_core: firebase_core:
dependency: "direct main" dependency: "direct main"
description: description:
name: firebase_core name: firebase_core
sha256: "132e1c311bc41e7d387b575df0aacdf24efbf4930365eb61042be5bde3978f03" sha256: "1f2dfd9f535d81f8b06d7a50ecda6eac1e6922191ed42e09ca2c84bd2288927c"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "4.2.0" version: "4.2.1"
firebase_core_platform_interface: firebase_core_platform_interface:
dependency: transitive dependency: transitive
description: description:
@@ -645,50 +645,50 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: firebase_core_web name: firebase_core_web
sha256: ecde2def458292404a4fcd3731ee4992fd631a0ec359d2d67c33baa8da5ec8ae sha256: ff18fabb0ad0ed3595d2f2c85007ecc794aadecdff5b3bb1460b7ee47cded398
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "3.2.0" version: "3.3.0"
firebase_crashlytics: firebase_crashlytics:
dependency: "direct main" dependency: "direct main"
description: description:
name: firebase_crashlytics name: firebase_crashlytics
sha256: "2f53d0d3c0875105b166f09bdf026026bb74f26930c6ffcd5d65b311ca5a9f58" sha256: c3ebe3ed9f3b1d36c0864a4a28b041fcc2686f11fb2a4f7891319ea8d1d161cc
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "5.0.3" version: "5.0.4"
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: de5c857525fc9576cd3fc30fc72422bc2371179ecae110246c0135ae896c6de3 sha256: a8ca502fe3aa48b4f0b9e6e3bc0019085a247b5d1214cd342a189457975662db
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "3.8.14" version: "3.8.15"
firebase_messaging: firebase_messaging:
dependency: "direct main" dependency: "direct main"
description: description:
name: firebase_messaging name: firebase_messaging
sha256: "5021279acd1cb5ccaceaa388e616e82cc4a2e4d862f02637df0e8ab766e6900a" sha256: "22086f857d2340f5d973776cfd542d3fb30cf98e1c643c3aa4a7520bb12745bb"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "16.0.3" version: "16.0.4"
firebase_messaging_platform_interface: firebase_messaging_platform_interface:
dependency: transitive dependency: transitive
description: description:
name: firebase_messaging_platform_interface name: firebase_messaging_platform_interface
sha256: f3a16c51f02055ace2a7c16ccb341c1f1b36b67c13270a48bcef68c1d970bbe8 sha256: a59920cbf2eb7c83d34a5f354331210ffec116b216dc72d864d8b8eb983ca398
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "4.7.3" version: "4.7.4"
firebase_messaging_web: firebase_messaging_web:
dependency: transitive dependency: transitive
description: description:
name: firebase_messaging_web name: firebase_messaging_web
sha256: "3eb9a1382caeb95b370f21e36d4a460496af777c9c2ef5df9b90d4803982c069" sha256: "1183e40e6fd2a279a628951cc3b639fcf5ffe7589902632db645011eb70ebefb"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "4.0.3" version: "4.1.0"
fixnum: fixnum:
dependency: transitive dependency: transitive
description: description:
@@ -746,10 +746,10 @@ packages:
dependency: "direct main" dependency: "direct main"
description: description:
name: flutter_card_swiper name: flutter_card_swiper
sha256: "9fbe75c913c0a01f34f9f98068ad198e396695fcf8abfa433cc53652fceb5617" sha256: "895c6974729b51cf73a35f1b58ab57a0af3293131319e2cbccac3bc57ffcd69f"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "7.1.0" version: "7.2.0"
flutter_colorpicker: flutter_colorpicker:
dependency: "direct main" dependency: "direct main"
description: description:
@@ -1071,10 +1071,10 @@ packages:
dependency: "direct main" dependency: "direct main"
description: description:
name: flutter_svg name: flutter_svg
sha256: b9c2ad5872518a27507ab432d1fb97e8813b05f0fc693f9d40fad06d073e0678 sha256: "055de8921be7b8e8b98a233c7a5ef84b3a6fcc32f46f1ebf5b9bb3576d108355"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.2.1" version: "2.2.2"
flutter_test: flutter_test:
dependency: "direct dev" dependency: "direct dev"
description: flutter description: flutter
@@ -1169,10 +1169,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: get_it name: get_it
sha256: a4292e7cf67193f8e7c1258203104eb2a51ec8b3a04baa14695f4064c144297b sha256: ae78de7c3f2304b8d81f2bb6e320833e5e81de942188542328f074978cc0efa9
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "8.2.0" version: "8.3.0"
glob: glob:
dependency: transitive dependency: transitive
description: description:
@@ -2403,14 +2403,6 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.10.1" version: "1.10.1"
sprintf:
dependency: transitive
description:
name: sprintf
sha256: "1fc9ffe69d4df602376b52949af107d8f5703b77cda567c4d7d86a0693120f23"
url: "https://pub.dev"
source: hosted
version: "7.0.0"
sqflite: sqflite:
dependency: transitive dependency: transitive
description: description:
@@ -2559,18 +2551,18 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: syncfusion_flutter_core name: syncfusion_flutter_core
sha256: a24e9ec04e03c2c14b7b41b1afe60e455adef09b244ab4c425ce6c5b8f58c9ce sha256: "825670efc828e18e14ff310cbcf6de91c8ff73b55c75ae6868a2b3cd87e88b6c"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "31.2.4" version: "31.2.5"
syncfusion_flutter_pdf: syncfusion_flutter_pdf:
dependency: transitive dependency: transitive
description: description:
name: syncfusion_flutter_pdf name: syncfusion_flutter_pdf
sha256: "8d98edae5c5d3aba2125de49bd37882da124409021d4f3de5730eb93d8247a81" sha256: "50fc39ba628167949e89374488de67cc788646d6c0dce2a9fd047dbeecb841c2"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "31.2.4" version: "31.2.5"
syncfusion_flutter_pdfviewer: syncfusion_flutter_pdfviewer:
dependency: "direct main" dependency: "direct main"
description: description:
@@ -2583,50 +2575,50 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: syncfusion_flutter_signaturepad name: syncfusion_flutter_signaturepad
sha256: d2f87273133283efd550370403462739329ad0ad1bdae6a73998be1fb30e9ee1 sha256: "6e60af61cec5ee7436b01ecb3fd944602aed42887789a67a27314678ad04d38a"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "31.2.4" version: "31.2.5"
syncfusion_pdfviewer_linux: syncfusion_pdfviewer_linux:
dependency: transitive dependency: transitive
description: description:
name: syncfusion_pdfviewer_linux name: syncfusion_pdfviewer_linux
sha256: "1edc9c3408526ad25c7a0d67b0f12a3e427225fd7e87d67319cd6e19bbfaeb45" sha256: fea25c996ed8850504c80c8fe7541aa3dce3d5159af0e92519d13e10a9509601
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "31.2.4" version: "31.2.5"
syncfusion_pdfviewer_macos: syncfusion_pdfviewer_macos:
dependency: transitive dependency: transitive
description: description:
name: syncfusion_pdfviewer_macos name: syncfusion_pdfviewer_macos
sha256: "962911d8cba4d3f5f0bf5dee5ef87cc0b31651431adfad56a51c47057859fb50" sha256: "389326ef84ad9d14858d4f5f14da36267faa894134c38080ae30d55d2e3f4ce9"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "31.2.4" version: "31.2.5"
syncfusion_pdfviewer_platform_interface: syncfusion_pdfviewer_platform_interface:
dependency: transitive dependency: transitive
description: description:
name: syncfusion_pdfviewer_platform_interface name: syncfusion_pdfviewer_platform_interface
sha256: a701825a971f1bb8540ad39611872ebc08ed0955a0a9600f263cb6cb85826ce2 sha256: "2c3098dc644965feee66f4bf726ef433a51eecc16ccea71e052ba19897f3c2c5"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "31.2.4" version: "31.2.5"
syncfusion_pdfviewer_web: syncfusion_pdfviewer_web:
dependency: transitive dependency: transitive
description: description:
name: syncfusion_pdfviewer_web name: syncfusion_pdfviewer_web
sha256: e3eda11636a013a7ebab01a573b079d3a52c695474ac7c5239f65d5952d8da82 sha256: db5b91493aefb2e9faeb6425ea4f3c5f8eb7907a29ffca2e33564987a9c1c1f4
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "31.2.4" version: "31.2.5"
syncfusion_pdfviewer_windows: syncfusion_pdfviewer_windows:
dependency: transitive dependency: transitive
description: description:
name: syncfusion_pdfviewer_windows name: syncfusion_pdfviewer_windows
sha256: "9f8def51da7277bda5796ba27fff357a697689e226be397d7c52e353824cf961" sha256: d2e4d64e5cd96ea678b1ff66588897ce59e17e2685c1153995af53d91327a143
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "31.2.4" version: "31.2.5"
synchronized: synchronized:
dependency: transitive dependency: transitive
description: description:
@@ -2727,10 +2719,10 @@ packages:
dependency: "direct main" dependency: "direct main"
description: description:
name: tray_manager name: tray_manager
sha256: "537e539f48cd82d8ee2240d4330158c7b44c7e043e8e18b5811f2f8f6b7df25a" sha256: c5fd83b0ae4d80be6eaedfad87aaefab8787b333b8ebd064b0e442a81006035b
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "0.5.1" version: "0.5.2"
tuple: tuple:
dependency: transitive dependency: transitive
description: description:
@@ -2848,10 +2840,10 @@ packages:
dependency: "direct main" dependency: "direct main"
description: description:
name: uuid name: uuid
sha256: a5be9ef6618a7ac1e964353ef476418026db906c4facdedaa299b7a2e71690ff sha256: a11b666489b1954e01d992f3d601b1804a33937b5a8fe677bd26b8a9f96f96e8
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "4.5.1" version: "4.5.2"
vector_graphics: vector_graphics:
dependency: transitive dependency: transitive
description: description:

View File

@@ -16,7 +16,7 @@ publish_to: "none" # Remove this line if you wish to publish to pub.dev
# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html # https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
# In Windows, build-name is used as the major, minor, and patch parts # In Windows, build-name is used as the major, minor, and patch parts
# of the product and file versions while build-number is used as the build suffix. # of the product and file versions while build-number is used as the build suffix.
version: 3.3.0+144 version: 3.3.0+145
environment: environment:
sdk: ^3.7.2 sdk: ^3.7.2
@@ -50,7 +50,7 @@ dependencies:
flutter_markdown_latex: ^0.3.4 flutter_markdown_latex: ^0.3.4
markdown: ^7.3.0 markdown: ^7.3.0
flutter_highlight: ^0.7.0 flutter_highlight: ^0.7.0
uuid: ^4.5.1 uuid: ^4.5.2
url_launcher: ^6.3.2 url_launcher: ^6.3.2
google_fonts: ^6.3.2 google_fonts: ^6.3.2
gap: ^3.0.1 gap: ^3.0.1
@@ -67,7 +67,7 @@ dependencies:
flutter_inappwebview: ^6.1.5 flutter_inappwebview: ^6.1.5
animations: ^2.1.0 animations: ^2.1.0
package_info_plus: ^9.0.0 package_info_plus: ^9.0.0
device_info_plus: ^11.2.2 device_info_plus: ^11.3.0
protocol_handler: ^0.2.0 protocol_handler: ^0.2.0
tus_client_dart: tus_client_dart:
git: https://github.com/LittleSheep2Code/tus_client.git git: https://github.com/LittleSheep2Code/tus_client.git
@@ -79,9 +79,9 @@ dependencies:
image_picker_android: ^0.8.13+7 image_picker_android: ^0.8.13+7
super_context_menu: ^0.9.1 super_context_menu: ^0.9.1
modal_bottom_sheet: ^3.0.0 modal_bottom_sheet: ^3.0.0
firebase_messaging: ^16.0.3 firebase_messaging: ^16.0.4
flutter_udid: ^4.0.0 flutter_udid: ^4.0.0
firebase_core: ^4.2.0 firebase_core: ^4.2.1
web_socket_channel: ^3.0.3 web_socket_channel: ^3.0.3
material_symbols_icons: ^4.2874.0 material_symbols_icons: ^4.2874.0
drift: ^2.28.2 drift: ^2.28.2
@@ -94,7 +94,7 @@ dependencies:
relative_time: ^5.0.0 relative_time: ^5.0.0
dropdown_button2: ^2.3.9 dropdown_button2: ^2.3.9
riverpod_paging_utils: ^0.8.1 riverpod_paging_utils: ^0.8.1
crypto: ^3.0.6 crypto: ^3.0.7
avatar_stack: ^3.0.0 avatar_stack: ^3.0.0
markdown_widget: ^2.3.2+8 markdown_widget: ^2.3.2+8
visibility_detector: ^0.4.0+2 visibility_detector: ^0.4.0+2
@@ -116,7 +116,7 @@ dependencies:
flutter_timezone: ^5.0.1 flutter_timezone: ^5.0.1
fl_chart: ^1.1.1 fl_chart: ^1.1.1
sign_in_with_apple: ^7.0.1 sign_in_with_apple: ^7.0.1
flutter_svg: ^2.2.1 flutter_svg: ^2.2.2
native_exif: ^0.6.2 native_exif: ^0.6.2
local_auth: ^3.0.0 local_auth: ^3.0.0
flutter_secure_storage: ^9.2.4 flutter_secure_storage: ^9.2.4
@@ -135,13 +135,13 @@ dependencies:
flutter_app_update: ^3.2.2 flutter_app_update: ^3.2.2
archive: ^4.0.7 archive: ^4.0.7
process_run: ^1.2.4 process_run: ^1.2.4
firebase_crashlytics: ^5.0.3 firebase_crashlytics: ^5.0.4
firebase_analytics: ^12.0.3 firebase_analytics: ^12.0.4
material_color_utilities: ^0.11.1 material_color_utilities: ^0.11.1
screenshot: ^3.0.0 screenshot: ^3.0.0
flutter_card_swiper: ^7.1.0 flutter_card_swiper: ^7.2.0
file_saver: ^0.3.1 file_saver: ^0.3.1
tray_manager: ^0.5.1 tray_manager: ^0.5.2
flutter_webrtc: ^1.2.0 flutter_webrtc: ^1.2.0
flutter_local_notifications: ^19.5.0 flutter_local_notifications: ^19.5.0
wakelock_plus: ^1.4.0 wakelock_plus: ^1.4.0