Merge pull request #336 from LemmurOrg/feat/flutter-3

This commit is contained in:
Marcin Wojnarowski 2022-07-21 11:22:44 +02:00 committed by GitHub
commit 44cd556fef
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
63 changed files with 342 additions and 297 deletions

View File

@ -69,7 +69,7 @@ jobs:
steps: steps:
- uses: actions/checkout@v2 - uses: actions/checkout@v2
- uses: subosito/flutter-action@v1 - uses: subosito/flutter-action@v2
with: with:
channel: "stable" channel: "stable"
@ -91,10 +91,6 @@ jobs:
sudo apt-get update -y sudo apt-get update -y
sudo apt-get install -y clang cmake ninja-build pkg-config libgtk-3-dev libblkid-dev sudo apt-get install -y clang cmake ninja-build pkg-config libgtk-3-dev libblkid-dev
- name: Enable linux support
run: |
flutter config --enable-linux-desktop
- name: Build - name: Build
run: | run: |
flutter build linux --release --target lib/main_prod.dart flutter build linux --release --target lib/main_prod.dart

View File

@ -90,10 +90,6 @@ jobs:
sudo apt-get update -y sudo apt-get update -y
sudo apt-get install -y clang cmake ninja-build pkg-config libgtk-3-dev libblkid-dev sudo apt-get install -y clang cmake ninja-build pkg-config libgtk-3-dev libblkid-dev
- name: Enable linux support
run: |
flutter config --enable-linux-desktop
- name: Build - name: Build
run: | run: |
flutter build linux --release --target lib/main_prod.dart flutter build linux --release --target lib/main_prod.dart

View File

@ -44,11 +44,7 @@ The apk will be in `build/app/outputs/flutter-apk/app-prod-release.apk`
### Linux ### Linux
1. Make sure you have the additional [linux requirements](https://flutter.dev/desktop#additional-linux-requirements) (verify with `flutter doctor`) 1. Make sure you have the additional [linux requirements](https://flutter.dev/desktop#additional-linux-requirements) (verify with `flutter doctor`)
2. Enable linux desktop: 2. Build: `flutter build linux --target lib/main_prod.dart --release`
```sh
flutter config --enable-linux-desktop
```
3. Build: `flutter build linux --target lib/main_prod.dart --release`
The executable will be in `build/linux/x64/release/bundle/lemmur` (be aware, however, that this executable is not standalone) The executable will be in `build/linux/x64/release/bundle/lemmur` (be aware, however, that this executable is not standalone)

View File

@ -112,12 +112,15 @@ linter:
- unnecessary_string_interpolations - unnecessary_string_interpolations
- unnecessary_this - unnecessary_this
- unrelated_type_equality_checks - unrelated_type_equality_checks
- use_colored_box
- use_enums
- use_full_hex_values_for_flutter_colors - use_full_hex_values_for_flutter_colors
- use_is_even_rather_than_modulo - use_is_even_rather_than_modulo
- use_named_constants - use_named_constants
- use_raw_strings - use_raw_strings
- use_rethrow_when_possible - use_rethrow_when_possible
- use_setters_to_change_properties - use_setters_to_change_properties
- use_super_parameters
- use_test_throws_matchers - use_test_throws_matchers
- use_to_and_as_if_applicable - use_to_and_as_if_applicable
- void_checks - void_checks

View File

@ -26,7 +26,7 @@ apply plugin: 'kotlin-android'
apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle" apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"
android { android {
compileSdkVersion 31 compileSdkVersion Math.max(flutter.compileSdkVersion, 32)
lintOptions { lintOptions {
disable 'InvalidPackage' disable 'InvalidPackage'
@ -47,8 +47,8 @@ android {
defaultConfig { defaultConfig {
applicationId "com.krawieck.lemmur" applicationId "com.krawieck.lemmur"
minSdkVersion 16 minSdkVersion Math.max(flutter.minSdkVersion, 16)
targetSdkVersion 30 targetSdkVersion flutter.targetSdkVersion
versionCode flutterVersionCode.toInteger() versionCode flutterVersionCode.toInteger()
versionName flutterVersionName versionName flutterVersionName
} }

View File

@ -13,6 +13,7 @@
<activity <activity
android:name=".MainActivity" android:name=".MainActivity"
android:exported="true"
android:launchMode="singleTop" android:launchMode="singleTop"
android:theme="@style/LaunchTheme" android:theme="@style/LaunchTheme"
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode" android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"

View File

@ -1,12 +1,12 @@
buildscript { buildscript {
ext.kotlin_version = '1.5.31' ext.kotlin_version = '1.7.0'
repositories { repositories {
google() google()
mavenCentral() mavenCentral()
} }
dependencies { dependencies {
classpath 'com.android.tools.build:gradle:7.0.2' classpath 'com.android.tools.build:gradle:7.2.1'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
} }
} }

View File

@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-all.zip distributionUrl=https\://services.gradle.org/distributions/gradle-7.4.2-all.zip

View File

@ -1,4 +1,38 @@
PODS: PODS:
- DKImagePickerController/Core (4.3.3):
- DKImagePickerController/ImageDataManager
- DKImagePickerController/Resource
- DKImagePickerController/ImageDataManager (4.3.3)
- DKImagePickerController/PhotoGallery (4.3.3):
- DKImagePickerController/Core
- DKPhotoGallery
- DKImagePickerController/Resource (4.3.3)
- DKPhotoGallery (0.0.17):
- DKPhotoGallery/Core (= 0.0.17)
- DKPhotoGallery/Model (= 0.0.17)
- DKPhotoGallery/Preview (= 0.0.17)
- DKPhotoGallery/Resource (= 0.0.17)
- SDWebImage
- SwiftyGif
- DKPhotoGallery/Core (0.0.17):
- DKPhotoGallery/Model
- DKPhotoGallery/Preview
- SDWebImage
- SwiftyGif
- DKPhotoGallery/Model (0.0.17):
- SDWebImage
- SwiftyGif
- DKPhotoGallery/Preview (0.0.17):
- DKPhotoGallery/Model
- DKPhotoGallery/Resource
- SDWebImage
- SwiftyGif
- DKPhotoGallery/Resource (0.0.17):
- SDWebImage
- SwiftyGif
- file_picker (0.0.1):
- DKImagePickerController/PhotoGallery
- Flutter
- Flutter (1.0.0) - Flutter (1.0.0)
- flutter_keyboard_visibility (0.0.1): - flutter_keyboard_visibility (0.0.1):
- Flutter - Flutter
@ -8,14 +42,19 @@ PODS:
- Flutter - Flutter
- path_provider_ios (0.0.1): - path_provider_ios (0.0.1):
- Flutter - Flutter
- SDWebImage (5.12.5):
- SDWebImage/Core (= 5.12.5)
- SDWebImage/Core (5.12.5)
- share_plus (0.0.1): - share_plus (0.0.1):
- Flutter - Flutter
- shared_preferences_ios (0.0.1): - shared_preferences_ios (0.0.1):
- Flutter - Flutter
- SwiftyGif (5.4.3)
- url_launcher_ios (0.0.1): - url_launcher_ios (0.0.1):
- Flutter - Flutter
DEPENDENCIES: DEPENDENCIES:
- file_picker (from `.symlinks/plugins/file_picker/ios`)
- Flutter (from `Flutter`) - Flutter (from `Flutter`)
- flutter_keyboard_visibility (from `.symlinks/plugins/flutter_keyboard_visibility/ios`) - flutter_keyboard_visibility (from `.symlinks/plugins/flutter_keyboard_visibility/ios`)
- image_picker_ios (from `.symlinks/plugins/image_picker_ios/ios`) - image_picker_ios (from `.symlinks/plugins/image_picker_ios/ios`)
@ -25,7 +64,16 @@ DEPENDENCIES:
- shared_preferences_ios (from `.symlinks/plugins/shared_preferences_ios/ios`) - shared_preferences_ios (from `.symlinks/plugins/shared_preferences_ios/ios`)
- url_launcher_ios (from `.symlinks/plugins/url_launcher_ios/ios`) - url_launcher_ios (from `.symlinks/plugins/url_launcher_ios/ios`)
SPEC REPOS:
trunk:
- DKImagePickerController
- DKPhotoGallery
- SDWebImage
- SwiftyGif
EXTERNAL SOURCES: EXTERNAL SOURCES:
file_picker:
:path: ".symlinks/plugins/file_picker/ios"
Flutter: Flutter:
:path: Flutter :path: Flutter
flutter_keyboard_visibility: flutter_keyboard_visibility:
@ -44,13 +92,18 @@ EXTERNAL SOURCES:
:path: ".symlinks/plugins/url_launcher_ios/ios" :path: ".symlinks/plugins/url_launcher_ios/ios"
SPEC CHECKSUMS: SPEC CHECKSUMS:
DKImagePickerController: 72fd378f244cef3d27288e0aebf217a4467e4012
DKPhotoGallery: fdfad5125a9fdda9cc57df834d49df790dbb4179
file_picker: 3e6c3790de664ccf9b882732d9db5eaf6b8d4eb1
Flutter: 50d75fe2f02b26cc09d224853bb45737f8b3214a Flutter: 50d75fe2f02b26cc09d224853bb45737f8b3214a
flutter_keyboard_visibility: 0339d06371254c3eb25eeb90ba8d17dca8f9c069 flutter_keyboard_visibility: 0339d06371254c3eb25eeb90ba8d17dca8f9c069
image_picker_ios: b786a5dcf033a8336a657191401bfdf12017dabb image_picker_ios: b786a5dcf033a8336a657191401bfdf12017dabb
package_info_plus: 6c92f08e1f853dc01228d6f553146438dafcd14e package_info_plus: 6c92f08e1f853dc01228d6f553146438dafcd14e
path_provider_ios: 14f3d2fd28c4fdb42f44e0f751d12861c43cee02 path_provider_ios: 14f3d2fd28c4fdb42f44e0f751d12861c43cee02
SDWebImage: 0905f1b7760fc8ac4198cae0036600d67478751e
share_plus: 056a1e8ac890df3e33cb503afffaf1e9b4fbae68 share_plus: 056a1e8ac890df3e33cb503afffaf1e9b4fbae68
shared_preferences_ios: 548a61f8053b9b8a49ac19c1ffbc8b92c50d68ad shared_preferences_ios: 548a61f8053b9b8a49ac19c1ffbc8b92c50d68ad
SwiftyGif: 6c3eafd0ce693cad58bb63d2b2fb9bacb8552780
url_launcher_ios: 839c58cdb4279282219f5e248c3321761ff3c4de url_launcher_ios: 839c58cdb4279282219f5e248c3321761ff3c4de
PODFILE CHECKSUM: aafe91acc616949ddb318b77800a7f51bffa2a4c PODFILE CHECKSUM: aafe91acc616949ddb318b77800a7f51bffa2a4c

View File

@ -23,7 +23,7 @@
<key>CFBundleVersion</key> <key>CFBundleVersion</key>
<string>$(FLUTTER_BUILD_NUMBER)</string> <string>$(FLUTTER_BUILD_NUMBER)</string>
<key>LSRequiresIPhoneOS</key> <key>LSRequiresIPhoneOS</key>
<true/> <true />
<key>UILaunchStoryboardName</key> <key>UILaunchStoryboardName</key>
<string>LaunchScreen</string> <string>LaunchScreen</string>
<key>UIMainStoryboardFile</key> <key>UIMainStoryboardFile</key>
@ -42,7 +42,9 @@
<string>UIInterfaceOrientationLandscapeRight</string> <string>UIInterfaceOrientationLandscapeRight</string>
</array> </array>
<key>UIViewControllerBasedStatusBarAppearance</key> <key>UIViewControllerBasedStatusBarAppearance</key>
<false/> <false />
<key>CADisableMinimumFrameDurationOnPhone</key>
<true />
<!-- Image picker --> <!-- Image picker -->
<key>NSPhotoLibraryUsageDescription</key> <key>NSPhotoLibraryUsageDescription</key>

View File

@ -7,10 +7,8 @@ enum CommentSortType {
top, top,
new_, new_,
old, old,
chat, chat;
}
extension on CommentSortType {
/// returns a compare function for sorting a CommentTree according /// returns a compare function for sorting a CommentTree according
/// to the comment sort type /// to the comment sort type
int Function(CommentTree a, CommentTree b) get sortFunction { int Function(CommentTree a, CommentTree b) get sortFunction {

View File

@ -11,8 +11,11 @@ class CommunitiesListPage extends StatelessWidget {
final String title; final String title;
final FetcherWithSorting<CommunityView> fetcher; final FetcherWithSorting<CommunityView> fetcher;
const CommunitiesListPage({Key? key, required this.fetcher, this.title = ''}) const CommunitiesListPage({
: super(key: key); super.key,
required this.fetcher,
this.title = '',
});
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
@ -42,8 +45,7 @@ class CommunitiesListPage extends StatelessWidget {
class CommunitiesListItem extends StatelessWidget { class CommunitiesListItem extends StatelessWidget {
final CommunityView community; final CommunityView community;
const CommunitiesListItem({Key? key, required this.community}) const CommunitiesListItem({super.key, required this.community});
: super(key: key);
@override @override
Widget build(BuildContext context) => ListTile( Widget build(BuildContext context) => ListTile(

View File

@ -241,9 +241,11 @@ class _CommunitySubscribeToggle extends HookWidget {
final int communityId; final int communityId;
final String instanceHost; final String instanceHost;
const _CommunitySubscribeToggle( const _CommunitySubscribeToggle({
{required this.instanceHost, required this.communityId, Key? key}) required this.instanceHost,
: super(key: key); required this.communityId,
super.key,
});
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {

View File

@ -15,8 +15,7 @@ import 'community_store.dart';
class CommmunityAboutTab extends StatelessWidget { class CommmunityAboutTab extends StatelessWidget {
final FullCommunityView fullCommunityView; final FullCommunityView fullCommunityView;
const CommmunityAboutTab(this.fullCommunityView, {Key? key}) const CommmunityAboutTab(this.fullCommunityView, {super.key});
: super(key: key);
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {

View File

@ -14,8 +14,7 @@ import 'community_store.dart';
class CommunityMoreMenu extends HookWidget { class CommunityMoreMenu extends HookWidget {
final FullCommunityView fullCommunityView; final FullCommunityView fullCommunityView;
const CommunityMoreMenu({Key? key, required this.fullCommunityView}) const CommunityMoreMenu({super.key, required this.fullCommunityView});
: super(key: key);
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {

View File

@ -6,7 +6,7 @@ part of 'community_store.dart';
// StoreGenerator // StoreGenerator
// ************************************************************************** // **************************************************************************
// ignore_for_file: non_constant_identifier_names, unnecessary_brace_in_string_interps, unnecessary_lambdas, prefer_expression_function_bodies, lines_longer_than_80_chars, avoid_as, avoid_annotating_with_dynamic // ignore_for_file: non_constant_identifier_names, unnecessary_brace_in_string_interps, unnecessary_lambdas, prefer_expression_function_bodies, lines_longer_than_80_chars, avoid_as, avoid_annotating_with_dynamic, no_leading_underscores_for_local_identifiers
mixin _$CommunityStore on _CommunityStore, Store { mixin _$CommunityStore on _CommunityStore, Store {
late final _$refreshAsyncAction = late final _$refreshAsyncAction =

View File

@ -13,7 +13,7 @@ import '../../widgets/avatar.dart';
import 'create_post_store.dart'; import 'create_post_store.dart';
class CreatePostCommunityPicker extends HookWidget { class CreatePostCommunityPicker extends HookWidget {
const CreatePostCommunityPicker({Key? key}) : super(key: key); const CreatePostCommunityPicker({super.key});
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {

View File

@ -6,7 +6,7 @@ import '../../widgets/radio_picker.dart';
import 'create_post_store.dart'; import 'create_post_store.dart';
class CreatePostInstancePicker extends StatelessWidget { class CreatePostInstancePicker extends StatelessWidget {
const CreatePostInstancePicker({Key? key}) : super(key: key); const CreatePostInstancePicker({super.key});
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {

View File

@ -16,6 +16,7 @@ abstract class _CreatePostStore with Store {
_CreatePostStore({ _CreatePostStore({
required this.instanceHost, required this.instanceHost,
this.postToEdit, this.postToEdit,
// ignore: unused_element
this.selectedCommunity, this.selectedCommunity,
}) : title = postToEdit?.name ?? '', }) : title = postToEdit?.name ?? '',
nsfw = postToEdit?.nsfw ?? false, nsfw = postToEdit?.nsfw ?? false,

View File

@ -6,7 +6,7 @@ part of 'create_post_store.dart';
// StoreGenerator // StoreGenerator
// ************************************************************************** // **************************************************************************
// ignore_for_file: non_constant_identifier_names, unnecessary_brace_in_string_interps, unnecessary_lambdas, prefer_expression_function_bodies, lines_longer_than_80_chars, avoid_as, avoid_annotating_with_dynamic // ignore_for_file: non_constant_identifier_names, unnecessary_brace_in_string_interps, unnecessary_lambdas, prefer_expression_function_bodies, lines_longer_than_80_chars, avoid_as, avoid_annotating_with_dynamic, no_leading_underscores_for_local_identifiers
mixin _$CreatePostStore on _CreatePostStore, Store { mixin _$CreatePostStore on _CreatePostStore, Store {
Computed<bool>? _$hasUploadedImageComputed; Computed<bool>? _$hasUploadedImageComputed;
@ -17,7 +17,8 @@ mixin _$CreatePostStore on _CreatePostStore, Store {
name: '_CreatePostStore.hasUploadedImage')) name: '_CreatePostStore.hasUploadedImage'))
.value; .value;
final _$showFancyAtom = Atom(name: '_CreatePostStore.showFancy'); late final _$showFancyAtom =
Atom(name: '_CreatePostStore.showFancy', context: context);
@override @override
bool get showFancy { bool get showFancy {
@ -32,7 +33,8 @@ mixin _$CreatePostStore on _CreatePostStore, Store {
}); });
} }
final _$instanceHostAtom = Atom(name: '_CreatePostStore.instanceHost'); late final _$instanceHostAtom =
Atom(name: '_CreatePostStore.instanceHost', context: context);
@override @override
String get instanceHost { String get instanceHost {
@ -47,8 +49,8 @@ mixin _$CreatePostStore on _CreatePostStore, Store {
}); });
} }
final _$selectedCommunityAtom = late final _$selectedCommunityAtom =
Atom(name: '_CreatePostStore.selectedCommunity'); Atom(name: '_CreatePostStore.selectedCommunity', context: context);
@override @override
CommunityView? get selectedCommunity { CommunityView? get selectedCommunity {
@ -63,7 +65,7 @@ mixin _$CreatePostStore on _CreatePostStore, Store {
}); });
} }
final _$urlAtom = Atom(name: '_CreatePostStore.url'); late final _$urlAtom = Atom(name: '_CreatePostStore.url', context: context);
@override @override
String get url { String get url {
@ -78,7 +80,8 @@ mixin _$CreatePostStore on _CreatePostStore, Store {
}); });
} }
final _$titleAtom = Atom(name: '_CreatePostStore.title'); late final _$titleAtom =
Atom(name: '_CreatePostStore.title', context: context);
@override @override
String get title { String get title {
@ -93,7 +96,7 @@ mixin _$CreatePostStore on _CreatePostStore, Store {
}); });
} }
final _$bodyAtom = Atom(name: '_CreatePostStore.body'); late final _$bodyAtom = Atom(name: '_CreatePostStore.body', context: context);
@override @override
String get body { String get body {
@ -108,7 +111,7 @@ mixin _$CreatePostStore on _CreatePostStore, Store {
}); });
} }
final _$nsfwAtom = Atom(name: '_CreatePostStore.nsfw'); late final _$nsfwAtom = Atom(name: '_CreatePostStore.nsfw', context: context);
@override @override
bool get nsfw { bool get nsfw {
@ -123,14 +126,16 @@ mixin _$CreatePostStore on _CreatePostStore, Store {
}); });
} }
final _$submitAsyncAction = AsyncAction('_CreatePostStore.submit'); late final _$submitAsyncAction =
AsyncAction('_CreatePostStore.submit', context: context);
@override @override
Future<void> submit(Jwt token) { Future<void> submit(Jwt token) {
return _$submitAsyncAction.run(() => super.submit(token)); return _$submitAsyncAction.run(() => super.submit(token));
} }
final _$uploadImageAsyncAction = AsyncAction('_CreatePostStore.uploadImage'); late final _$uploadImageAsyncAction =
AsyncAction('_CreatePostStore.uploadImage', context: context);
@override @override
Future<void> uploadImage(String filePath, Jwt token) { Future<void> uploadImage(String filePath, Jwt token) {
@ -138,8 +143,8 @@ mixin _$CreatePostStore on _CreatePostStore, Store {
.run(() => super.uploadImage(filePath, token)); .run(() => super.uploadImage(filePath, token));
} }
final _$_CreatePostStoreActionController = late final _$_CreatePostStoreActionController =
ActionController(name: '_CreatePostStore'); ActionController(name: '_CreatePostStore', context: context);
@override @override
Future<List<CommunityView>?> searchCommunities( Future<List<CommunityView>?> searchCommunities(

View File

@ -27,7 +27,7 @@ class CommentSection extends StatelessWidget {
CommentSortType.chat: _SortSelection(Icons.chat, L10nStrings.chat), CommentSortType.chat: _SortSelection(Icons.chat, L10nStrings.chat),
}; };
const CommentSection({Key? key}) : super(key: key); const CommentSection({super.key});
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {

View File

@ -14,7 +14,6 @@ abstract class _FullPostStore with Store {
final String instanceHost; final String instanceHost;
_FullPostStore({ _FullPostStore({
this.postStore,
required this.postId, required this.postId,
required this.instanceHost, required this.instanceHost,
}); });

View File

@ -6,7 +6,7 @@ part of 'full_post_store.dart';
// StoreGenerator // StoreGenerator
// ************************************************************************** // **************************************************************************
// ignore_for_file: non_constant_identifier_names, unnecessary_brace_in_string_interps, unnecessary_lambdas, prefer_expression_function_bodies, lines_longer_than_80_chars, avoid_as, avoid_annotating_with_dynamic // ignore_for_file: non_constant_identifier_names, unnecessary_brace_in_string_interps, unnecessary_lambdas, prefer_expression_function_bodies, lines_longer_than_80_chars, avoid_as, avoid_annotating_with_dynamic, no_leading_underscores_for_local_identifiers
mixin _$FullPostStore on _FullPostStore, Store { mixin _$FullPostStore on _FullPostStore, Store {
Computed<List<CommentTree>?>? _$commentTreeComputed; Computed<List<CommentTree>?>? _$commentTreeComputed;

View File

@ -11,7 +11,7 @@ import '../../widgets/info_table_popup.dart';
class InstanceMoreMenu extends StatelessWidget { class InstanceMoreMenu extends StatelessWidget {
final FullSiteView site; final FullSiteView site;
const InstanceMoreMenu({Key? key, required this.site}) : super(key: key); const InstanceMoreMenu({super.key, required this.site});
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {

View File

@ -6,7 +6,7 @@ part of 'instance_store.dart';
// StoreGenerator // StoreGenerator
// ************************************************************************** // **************************************************************************
// ignore_for_file: non_constant_identifier_names, unnecessary_brace_in_string_interps, unnecessary_lambdas, prefer_expression_function_bodies, lines_longer_than_80_chars, avoid_as, avoid_annotating_with_dynamic // ignore_for_file: non_constant_identifier_names, unnecessary_brace_in_string_interps, unnecessary_lambdas, prefer_expression_function_bodies, lines_longer_than_80_chars, avoid_as, avoid_annotating_with_dynamic, no_leading_underscores_for_local_identifiers
mixin _$InstanceStore on _InstanceStore, Store { mixin _$InstanceStore on _InstanceStore, Store {
late final _$fetchAsyncAction = late final _$fetchAsyncAction =

View File

@ -6,7 +6,7 @@ part of 'log_console_page_store.dart';
// StoreGenerator // StoreGenerator
// ************************************************************************** // **************************************************************************
// ignore_for_file: non_constant_identifier_names, unnecessary_brace_in_string_interps, unnecessary_lambdas, prefer_expression_function_bodies, lines_longer_than_80_chars, avoid_as, avoid_annotating_with_dynamic // ignore_for_file: non_constant_identifier_names, unnecessary_brace_in_string_interps, unnecessary_lambdas, prefer_expression_function_bodies, lines_longer_than_80_chars, avoid_as, avoid_annotating_with_dynamic, no_leading_underscores_for_local_identifiers
mixin _$LogConsolePageStore on _LogConsolePageStore, Store { mixin _$LogConsolePageStore on _LogConsolePageStore, Store {
late final _$_LogConsolePageStoreActionController = late final _$_LogConsolePageStoreActionController =

View File

@ -86,7 +86,7 @@ class ManageAccountPage extends HookWidget {
} }
class _ManageAccount extends HookWidget { class _ManageAccount extends HookWidget {
const _ManageAccount({Key? key, required this.user}) : super(key: key); const _ManageAccount({required this.user});
final LocalUserSettingsView user; final LocalUserSettingsView user;
@ -396,13 +396,12 @@ class _ImagePicker extends HookWidget {
final ObjectRef<VoidCallback?> informAcceptedRef; final ObjectRef<VoidCallback?> informAcceptedRef;
const _ImagePicker({ const _ImagePicker({
Key? key,
required this.initialUrl, required this.initialUrl,
required this.name, required this.name,
required this.user, required this.user,
required this.onChange, required this.onChange,
required this.informAcceptedRef, required this.informAcceptedRef,
}) : super(key: key); });
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {

View File

@ -12,6 +12,7 @@ abstract class _ModlogPageStore with Store, DisposableStore {
final String instanceHost; final String instanceHost;
final int? communityId; final int? communityId;
// ignore: unused_element
_ModlogPageStore(this.instanceHost, [this.communityId]) { _ModlogPageStore(this.instanceHost, [this.communityId]) {
addReaction(reaction((_) => page, (_) => fetchPage())); addReaction(reaction((_) => page, (_) => fetchPage()));
} }

View File

@ -6,7 +6,7 @@ part of 'modlog_page_store.dart';
// StoreGenerator // StoreGenerator
// ************************************************************************** // **************************************************************************
// ignore_for_file: non_constant_identifier_names, unnecessary_brace_in_string_interps, unnecessary_lambdas, prefer_expression_function_bodies, lines_longer_than_80_chars, avoid_as, avoid_annotating_with_dynamic // ignore_for_file: non_constant_identifier_names, unnecessary_brace_in_string_interps, unnecessary_lambdas, prefer_expression_function_bodies, lines_longer_than_80_chars, avoid_as, avoid_annotating_with_dynamic, no_leading_underscores_for_local_identifiers
mixin _$ModlogPageStore on _ModlogPageStore, Store { mixin _$ModlogPageStore on _ModlogPageStore, Store {
Computed<bool>? _$hasPreviousPageComputed; Computed<bool>? _$hasPreviousPageComputed;

View File

@ -8,7 +8,7 @@ import '../../widgets/avatar.dart';
import 'modlog_entry.dart'; import 'modlog_entry.dart';
class ModlogTable extends StatelessWidget { class ModlogTable extends StatelessWidget {
const ModlogTable({Key? key, required this.modlog}) : super(key: key); const ModlogTable({super.key, required this.modlog});
final Modlog modlog; final Modlog modlog;

View File

@ -10,7 +10,7 @@ import 'community_block_store.dart';
import 'user_block_store.dart'; import 'user_block_store.dart';
class BlockPersonTile extends StatelessWidget { class BlockPersonTile extends StatelessWidget {
const BlockPersonTile({Key? key}) : super(key: key); const BlockPersonTile({super.key});
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
@ -40,7 +40,7 @@ class BlockPersonTile extends StatelessWidget {
} }
class BlockCommunityTile extends HookWidget { class BlockCommunityTile extends HookWidget {
const BlockCommunityTile({Key? key}) : super(key: key); const BlockCommunityTile({super.key});
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {

View File

@ -6,7 +6,7 @@ part of 'blocks_store.dart';
// StoreGenerator // StoreGenerator
// ************************************************************************** // **************************************************************************
// ignore_for_file: non_constant_identifier_names, unnecessary_brace_in_string_interps, unnecessary_lambdas, prefer_expression_function_bodies, lines_longer_than_80_chars, avoid_as, avoid_annotating_with_dynamic // ignore_for_file: non_constant_identifier_names, unnecessary_brace_in_string_interps, unnecessary_lambdas, prefer_expression_function_bodies, lines_longer_than_80_chars, avoid_as, avoid_annotating_with_dynamic, no_leading_underscores_for_local_identifiers
mixin _$BlocksStore on _BlocksStore, Store { mixin _$BlocksStore on _BlocksStore, Store {
Computed<Iterable<UserBlockStore>?>? _$blockedUsersComputed; Computed<Iterable<UserBlockStore>?>? _$blockedUsersComputed;

View File

@ -6,7 +6,7 @@ part of 'community_block_store.dart';
// StoreGenerator // StoreGenerator
// ************************************************************************** // **************************************************************************
// ignore_for_file: non_constant_identifier_names, unnecessary_brace_in_string_interps, unnecessary_lambdas, prefer_expression_function_bodies, lines_longer_than_80_chars, avoid_as, avoid_annotating_with_dynamic // ignore_for_file: non_constant_identifier_names, unnecessary_brace_in_string_interps, unnecessary_lambdas, prefer_expression_function_bodies, lines_longer_than_80_chars, avoid_as, avoid_annotating_with_dynamic, no_leading_underscores_for_local_identifiers
mixin _$CommunityBlockStore on _CommunityBlockStore, Store { mixin _$CommunityBlockStore on _CommunityBlockStore, Store {
late final _$blockedAtom = late final _$blockedAtom =

View File

@ -6,7 +6,7 @@ part of 'user_block_store.dart';
// StoreGenerator // StoreGenerator
// ************************************************************************** // **************************************************************************
// ignore_for_file: non_constant_identifier_names, unnecessary_brace_in_string_interps, unnecessary_lambdas, prefer_expression_function_bodies, lines_longer_than_80_chars, avoid_as, avoid_annotating_with_dynamic // ignore_for_file: non_constant_identifier_names, unnecessary_brace_in_string_interps, unnecessary_lambdas, prefer_expression_function_bodies, lines_longer_than_80_chars, avoid_as, avoid_annotating_with_dynamic, no_leading_underscores_for_local_identifiers
mixin _$UserBlockStore on _UserBlockStore, Store { mixin _$UserBlockStore on _UserBlockStore, Store {
late final _$blockedAtom = late final _$blockedAtom =

View File

@ -185,10 +185,9 @@ class _AccountOptions extends HookWidget {
final String username; final String username;
const _AccountOptions({ const _AccountOptions({
Key? key,
required this.instanceHost, required this.instanceHost,
required this.username, required this.username,
}) : super(key: key); });
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {

View File

@ -12,8 +12,7 @@ class UsersListPage extends StatelessWidget {
final String title; final String title;
final Fetcher<PersonViewSafe> fetcher; final Fetcher<PersonViewSafe> fetcher;
const UsersListPage({Key? key, required this.fetcher, this.title = ''}) const UsersListPage({super.key, required this.fetcher, this.title = ''});
: super(key: key);
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
@ -41,7 +40,7 @@ class UsersListPage extends StatelessWidget {
class UsersListItem extends StatelessWidget { class UsersListItem extends StatelessWidget {
final PersonViewSafe user; final PersonViewSafe user;
const UsersListItem({Key? key, required this.user}) : super(key: key); const UsersListItem({super.key, required this.user});
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {

View File

@ -19,7 +19,7 @@ ConfigStore _$ConfigStoreFromJson(Map<String, dynamic> json) => ConfigStore()
Map<String, dynamic> _$ConfigStoreToJson(ConfigStore instance) => Map<String, dynamic> _$ConfigStoreToJson(ConfigStore instance) =>
<String, dynamic>{ <String, dynamic>{
'theme': _$ThemeModeEnumMap[instance.theme], 'theme': _$ThemeModeEnumMap[instance.theme]!,
'amoledDarkMode': instance.amoledDarkMode, 'amoledDarkMode': instance.amoledDarkMode,
'locale': const LocaleConverter().toJson(instance.locale), 'locale': const LocaleConverter().toJson(instance.locale),
'showAvatars': instance.showAvatars, 'showAvatars': instance.showAvatars,
@ -38,7 +38,7 @@ const _$ThemeModeEnumMap = {
// StoreGenerator // StoreGenerator
// ************************************************************************** // **************************************************************************
// ignore_for_file: non_constant_identifier_names, unnecessary_brace_in_string_interps, unnecessary_lambdas, prefer_expression_function_bodies, lines_longer_than_80_chars, avoid_as, avoid_annotating_with_dynamic // ignore_for_file: non_constant_identifier_names, unnecessary_brace_in_string_interps, unnecessary_lambdas, prefer_expression_function_bodies, lines_longer_than_80_chars, avoid_as, avoid_annotating_with_dynamic, no_leading_underscores_for_local_identifiers
mixin _$ConfigStore on _ConfigStore, Store { mixin _$ConfigStore on _ConfigStore, Store {
late final _$themeAtom = Atom(name: '_ConfigStore.theme', context: context); late final _$themeAtom = Atom(name: '_ConfigStore.theme', context: context);

View File

@ -86,22 +86,22 @@ class _$AsyncStateCopyWithImpl<T, $Res>
} }
/// @nodoc /// @nodoc
abstract class $AsyncStateInitialCopyWith<T, $Res> { abstract class _$$AsyncStateInitialCopyWith<T, $Res> {
factory $AsyncStateInitialCopyWith(AsyncStateInitial<T> value, factory _$$AsyncStateInitialCopyWith(_$AsyncStateInitial<T> value,
$Res Function(AsyncStateInitial<T>) then) = $Res Function(_$AsyncStateInitial<T>) then) =
_$AsyncStateInitialCopyWithImpl<T, $Res>; __$$AsyncStateInitialCopyWithImpl<T, $Res>;
} }
/// @nodoc /// @nodoc
class _$AsyncStateInitialCopyWithImpl<T, $Res> class __$$AsyncStateInitialCopyWithImpl<T, $Res>
extends _$AsyncStateCopyWithImpl<T, $Res> extends _$AsyncStateCopyWithImpl<T, $Res>
implements $AsyncStateInitialCopyWith<T, $Res> { implements _$$AsyncStateInitialCopyWith<T, $Res> {
_$AsyncStateInitialCopyWithImpl( __$$AsyncStateInitialCopyWithImpl(_$AsyncStateInitial<T> _value,
AsyncStateInitial<T> _value, $Res Function(AsyncStateInitial<T>) _then) $Res Function(_$AsyncStateInitial<T>) _then)
: super(_value, (v) => _then(v as AsyncStateInitial<T>)); : super(_value, (v) => _then(v as _$AsyncStateInitial<T>));
@override @override
AsyncStateInitial<T> get _value => super._value as AsyncStateInitial<T>; _$AsyncStateInitial<T> get _value => super._value as _$AsyncStateInitial<T>;
} }
/// @nodoc /// @nodoc
@ -125,7 +125,7 @@ class _$AsyncStateInitial<T>
@override @override
bool operator ==(dynamic other) { bool operator ==(dynamic other) {
return identical(this, other) || return identical(this, other) ||
(other.runtimeType == runtimeType && other is AsyncStateInitial<T>); (other.runtimeType == runtimeType && other is _$AsyncStateInitial<T>);
} }
@override @override
@ -211,30 +211,30 @@ abstract class AsyncStateInitial<T> implements AsyncState<T> {
} }
/// @nodoc /// @nodoc
abstract class $AsyncStateDataCopyWith<T, $Res> { abstract class _$$AsyncStateDataCopyWith<T, $Res> {
factory $AsyncStateDataCopyWith( factory _$$AsyncStateDataCopyWith(
AsyncStateData<T> value, $Res Function(AsyncStateData<T>) then) = _$AsyncStateData<T> value, $Res Function(_$AsyncStateData<T>) then) =
_$AsyncStateDataCopyWithImpl<T, $Res>; __$$AsyncStateDataCopyWithImpl<T, $Res>;
$Res call({T data, String? errorTerm}); $Res call({T data, String? errorTerm});
} }
/// @nodoc /// @nodoc
class _$AsyncStateDataCopyWithImpl<T, $Res> class __$$AsyncStateDataCopyWithImpl<T, $Res>
extends _$AsyncStateCopyWithImpl<T, $Res> extends _$AsyncStateCopyWithImpl<T, $Res>
implements $AsyncStateDataCopyWith<T, $Res> { implements _$$AsyncStateDataCopyWith<T, $Res> {
_$AsyncStateDataCopyWithImpl( __$$AsyncStateDataCopyWithImpl(
AsyncStateData<T> _value, $Res Function(AsyncStateData<T>) _then) _$AsyncStateData<T> _value, $Res Function(_$AsyncStateData<T>) _then)
: super(_value, (v) => _then(v as AsyncStateData<T>)); : super(_value, (v) => _then(v as _$AsyncStateData<T>));
@override @override
AsyncStateData<T> get _value => super._value as AsyncStateData<T>; _$AsyncStateData<T> get _value => super._value as _$AsyncStateData<T>;
@override @override
$Res call({ $Res call({
Object? data = freezed, Object? data = freezed,
Object? errorTerm = freezed, Object? errorTerm = freezed,
}) { }) {
return _then(AsyncStateData<T>( return _then(_$AsyncStateData<T>(
data == freezed data == freezed
? _value.data ? _value.data
: data // ignore: cast_nullable_to_non_nullable : data // ignore: cast_nullable_to_non_nullable
@ -277,7 +277,7 @@ class _$AsyncStateData<T>
bool operator ==(dynamic other) { bool operator ==(dynamic other) {
return identical(this, other) || return identical(this, other) ||
(other.runtimeType == runtimeType && (other.runtimeType == runtimeType &&
other is AsyncStateData<T> && other is _$AsyncStateData<T> &&
const DeepCollectionEquality().equals(other.data, data) && const DeepCollectionEquality().equals(other.data, data) &&
const DeepCollectionEquality().equals(other.errorTerm, errorTerm)); const DeepCollectionEquality().equals(other.errorTerm, errorTerm));
} }
@ -290,8 +290,8 @@ class _$AsyncStateData<T>
@JsonKey(ignore: true) @JsonKey(ignore: true)
@override @override
$AsyncStateDataCopyWith<T, AsyncStateData<T>> get copyWith => _$$AsyncStateDataCopyWith<T, _$AsyncStateData<T>> get copyWith =>
_$AsyncStateDataCopyWithImpl<T, AsyncStateData<T>>(this, _$identity); __$$AsyncStateDataCopyWithImpl<T, _$AsyncStateData<T>>(this, _$identity);
@override @override
@optionalTypeArgs @optionalTypeArgs
@ -372,30 +372,30 @@ abstract class AsyncStateData<T> implements AsyncState<T> {
const factory AsyncStateData(final T data, [final String? errorTerm]) = const factory AsyncStateData(final T data, [final String? errorTerm]) =
_$AsyncStateData<T>; _$AsyncStateData<T>;
T get data => throw _privateConstructorUsedError; T get data;
String? get errorTerm => throw _privateConstructorUsedError; String? get errorTerm;
@JsonKey(ignore: true) @JsonKey(ignore: true)
$AsyncStateDataCopyWith<T, AsyncStateData<T>> get copyWith => _$$AsyncStateDataCopyWith<T, _$AsyncStateData<T>> get copyWith =>
throw _privateConstructorUsedError; throw _privateConstructorUsedError;
} }
/// @nodoc /// @nodoc
abstract class $AsyncStateLoadingCopyWith<T, $Res> { abstract class _$$AsyncStateLoadingCopyWith<T, $Res> {
factory $AsyncStateLoadingCopyWith(AsyncStateLoading<T> value, factory _$$AsyncStateLoadingCopyWith(_$AsyncStateLoading<T> value,
$Res Function(AsyncStateLoading<T>) then) = $Res Function(_$AsyncStateLoading<T>) then) =
_$AsyncStateLoadingCopyWithImpl<T, $Res>; __$$AsyncStateLoadingCopyWithImpl<T, $Res>;
} }
/// @nodoc /// @nodoc
class _$AsyncStateLoadingCopyWithImpl<T, $Res> class __$$AsyncStateLoadingCopyWithImpl<T, $Res>
extends _$AsyncStateCopyWithImpl<T, $Res> extends _$AsyncStateCopyWithImpl<T, $Res>
implements $AsyncStateLoadingCopyWith<T, $Res> { implements _$$AsyncStateLoadingCopyWith<T, $Res> {
_$AsyncStateLoadingCopyWithImpl( __$$AsyncStateLoadingCopyWithImpl(_$AsyncStateLoading<T> _value,
AsyncStateLoading<T> _value, $Res Function(AsyncStateLoading<T>) _then) $Res Function(_$AsyncStateLoading<T>) _then)
: super(_value, (v) => _then(v as AsyncStateLoading<T>)); : super(_value, (v) => _then(v as _$AsyncStateLoading<T>));
@override @override
AsyncStateLoading<T> get _value => super._value as AsyncStateLoading<T>; _$AsyncStateLoading<T> get _value => super._value as _$AsyncStateLoading<T>;
} }
/// @nodoc /// @nodoc
@ -419,7 +419,7 @@ class _$AsyncStateLoading<T>
@override @override
bool operator ==(dynamic other) { bool operator ==(dynamic other) {
return identical(this, other) || return identical(this, other) ||
(other.runtimeType == runtimeType && other is AsyncStateLoading<T>); (other.runtimeType == runtimeType && other is _$AsyncStateLoading<T>);
} }
@override @override
@ -505,29 +505,29 @@ abstract class AsyncStateLoading<T> implements AsyncState<T> {
} }
/// @nodoc /// @nodoc
abstract class $AsyncStateErrorCopyWith<T, $Res> { abstract class _$$AsyncStateErrorCopyWith<T, $Res> {
factory $AsyncStateErrorCopyWith( factory _$$AsyncStateErrorCopyWith(_$AsyncStateError<T> value,
AsyncStateError<T> value, $Res Function(AsyncStateError<T>) then) = $Res Function(_$AsyncStateError<T>) then) =
_$AsyncStateErrorCopyWithImpl<T, $Res>; __$$AsyncStateErrorCopyWithImpl<T, $Res>;
$Res call({String errorTerm}); $Res call({String errorTerm});
} }
/// @nodoc /// @nodoc
class _$AsyncStateErrorCopyWithImpl<T, $Res> class __$$AsyncStateErrorCopyWithImpl<T, $Res>
extends _$AsyncStateCopyWithImpl<T, $Res> extends _$AsyncStateCopyWithImpl<T, $Res>
implements $AsyncStateErrorCopyWith<T, $Res> { implements _$$AsyncStateErrorCopyWith<T, $Res> {
_$AsyncStateErrorCopyWithImpl( __$$AsyncStateErrorCopyWithImpl(
AsyncStateError<T> _value, $Res Function(AsyncStateError<T>) _then) _$AsyncStateError<T> _value, $Res Function(_$AsyncStateError<T>) _then)
: super(_value, (v) => _then(v as AsyncStateError<T>)); : super(_value, (v) => _then(v as _$AsyncStateError<T>));
@override @override
AsyncStateError<T> get _value => super._value as AsyncStateError<T>; _$AsyncStateError<T> get _value => super._value as _$AsyncStateError<T>;
@override @override
$Res call({ $Res call({
Object? errorTerm = freezed, Object? errorTerm = freezed,
}) { }) {
return _then(AsyncStateError<T>( return _then(_$AsyncStateError<T>(
errorTerm == freezed errorTerm == freezed
? _value.errorTerm ? _value.errorTerm
: errorTerm // ignore: cast_nullable_to_non_nullable : errorTerm // ignore: cast_nullable_to_non_nullable
@ -563,7 +563,7 @@ class _$AsyncStateError<T>
bool operator ==(dynamic other) { bool operator ==(dynamic other) {
return identical(this, other) || return identical(this, other) ||
(other.runtimeType == runtimeType && (other.runtimeType == runtimeType &&
other is AsyncStateError<T> && other is _$AsyncStateError<T> &&
const DeepCollectionEquality().equals(other.errorTerm, errorTerm)); const DeepCollectionEquality().equals(other.errorTerm, errorTerm));
} }
@ -573,8 +573,9 @@ class _$AsyncStateError<T>
@JsonKey(ignore: true) @JsonKey(ignore: true)
@override @override
$AsyncStateErrorCopyWith<T, AsyncStateError<T>> get copyWith => _$$AsyncStateErrorCopyWith<T, _$AsyncStateError<T>> get copyWith =>
_$AsyncStateErrorCopyWithImpl<T, AsyncStateError<T>>(this, _$identity); __$$AsyncStateErrorCopyWithImpl<T, _$AsyncStateError<T>>(
this, _$identity);
@override @override
@optionalTypeArgs @optionalTypeArgs
@ -654,8 +655,8 @@ class _$AsyncStateError<T>
abstract class AsyncStateError<T> implements AsyncState<T> { abstract class AsyncStateError<T> implements AsyncState<T> {
const factory AsyncStateError(final String errorTerm) = _$AsyncStateError<T>; const factory AsyncStateError(final String errorTerm) = _$AsyncStateError<T>;
String get errorTerm => throw _privateConstructorUsedError; String get errorTerm;
@JsonKey(ignore: true) @JsonKey(ignore: true)
$AsyncStateErrorCopyWith<T, AsyncStateError<T>> get copyWith => _$$AsyncStateErrorCopyWith<T, _$AsyncStateError<T>> get copyWith =>
throw _privateConstructorUsedError; throw _privateConstructorUsedError;
} }

View File

@ -6,7 +6,7 @@ part of 'async_store.dart';
// StoreGenerator // StoreGenerator
// ************************************************************************** // **************************************************************************
// ignore_for_file: non_constant_identifier_names, unnecessary_brace_in_string_interps, unnecessary_lambdas, prefer_expression_function_bodies, lines_longer_than_80_chars, avoid_as, avoid_annotating_with_dynamic // ignore_for_file: non_constant_identifier_names, unnecessary_brace_in_string_interps, unnecessary_lambdas, prefer_expression_function_bodies, lines_longer_than_80_chars, avoid_as, avoid_annotating_with_dynamic, no_leading_underscores_for_local_identifiers
mixin _$AsyncStore<T> on _AsyncStore<T>, Store { mixin _$AsyncStore<T> on _AsyncStore<T>, Store {
Computed<bool>? _$isLoadingComputed; Computed<bool>? _$isLoadingComputed;

View File

@ -18,12 +18,12 @@ class AsyncStoreListener<T> extends SingleChildStatelessWidget {
)? onSuccess; )? onSuccess;
const AsyncStoreListener({ const AsyncStoreListener({
Key? key, super.key,
required this.asyncStore, required this.asyncStore,
this.successMessageBuilder, this.successMessageBuilder,
this.onSuccess, this.onSuccess,
Widget? child, super.child,
}) : super(key: key, child: child); });
@override @override
Widget buildWithChild(BuildContext context, Widget? child) { Widget buildWithChild(BuildContext context, Widget? child) {

View File

@ -59,7 +59,6 @@ void goToMedia(BuildContext context, String url) => Navigator.push(
context, context,
PageRouteBuilder( PageRouteBuilder(
pageBuilder: (_, __, ___) => MediaViewPage(url), pageBuilder: (_, __, ___) => MediaViewPage(url),
transitionDuration: const Duration(milliseconds: 300),
opaque: false, opaque: false,
transitionsBuilder: (_, animation, __, child) => transitionsBuilder: (_, animation, __, child) =>
FadeTransition(opacity: animation, child: child), FadeTransition(opacity: animation, child: child),

View File

@ -8,34 +8,24 @@ import 'observer_consumers.dart';
/// Important: this will not make [context.watch] react to changes /// Important: this will not make [context.watch] react to changes
class MobxProvider<T extends Store> extends Provider<T> { class MobxProvider<T extends Store> extends Provider<T> {
MobxProvider({ MobxProvider({
Key? key, super.key,
required Create<T> create, required super.create,
bool? lazy, super.lazy,
TransitionBuilder? builder, super.builder,
Widget? child, super.child,
}) : super( }) : super(
key: key,
create: create,
dispose: (context, store) { dispose: (context, store) {
if (store is DisposableStore) store.dispose(); if (store is DisposableStore) store.dispose();
}, },
lazy: lazy,
builder: builder,
child: child,
); );
/// will not dispose the store /// will not dispose the store
MobxProvider.value({ MobxProvider.value({
Key? key, super.key,
required T value, required super.value,
TransitionBuilder? builder, super.builder,
Widget? child, super.child,
}) : super.value( }) : super.value();
key: key,
builder: builder,
value: value,
child: child,
);
} }
/// tracks reactions and disposes them in [DisposableStore.dispose] /// tracks reactions and disposes them in [DisposableStore.dispose]

View File

@ -14,10 +14,10 @@ class ObserverBuilder<T extends Store> extends StatelessWidget {
final MobxBuilder<T> builder; final MobxBuilder<T> builder;
const ObserverBuilder({ const ObserverBuilder({
Key? key, super.key,
this.store, this.store,
required this.builder, required this.builder,
}) : super(key: key); });
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
@ -38,11 +38,11 @@ class ObserverListener<T extends Store> extends HookWidget {
final Widget child; final Widget child;
const ObserverListener({ const ObserverListener({
Key? key, super.key,
this.store, this.store,
required this.listener, required this.listener,
required this.child, required this.child,
}) : super(key: key); });
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
@ -64,11 +64,11 @@ class ObserverConsumer<T extends Store> extends HookWidget {
final MobxBuilder<T> builder; final MobxBuilder<T> builder;
const ObserverConsumer({ const ObserverConsumer({
Key? key, super.key,
this.store, this.store,
required this.listener, required this.listener,
required this.builder, required this.builder,
}) : super(key: key); });
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {

View File

@ -96,7 +96,7 @@ class AboutTile extends HookWidget {
class ChangelogPage extends StatelessWidget { class ChangelogPage extends StatelessWidget {
final String changelog; final String changelog;
const ChangelogPage(this.changelog, {Key? key}) : super(key: key); const ChangelogPage(this.changelog, {super.key});
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {

View File

@ -10,14 +10,14 @@ import 'cached_network_image.dart';
/// Can be disabled with `noBlank` /// Can be disabled with `noBlank`
class Avatar extends HookWidget { class Avatar extends HookWidget {
const Avatar({ const Avatar({
Key? key, super.key,
required this.url, required this.url,
this.radius = 25, this.radius = 25,
this.noBlank = false, this.noBlank = false,
this.alwaysShow = false, this.alwaysShow = false,
this.padding = EdgeInsets.zero, this.padding = EdgeInsets.zero,
this.onTap, this.onTap,
}) : super(key: key); });
final String? url; final String? url;
final double radius; final double radius;

View File

@ -41,8 +41,8 @@ class CachedNetworkImage extends StatelessWidget {
this.width, this.width,
this.fit, this.fit,
this.cache = true, this.cache = true,
Key? key, super.key,
}) : super(key: key); });
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {

View File

@ -35,8 +35,8 @@ class CommentWidget extends StatelessWidget {
this.canBeMarkedAsRead = false, this.canBeMarkedAsRead = false,
this.hideOnRead = false, this.hideOnRead = false,
this.userMentionId, this.userMentionId,
Key? key, super.key,
}) : super(key: key); });
CommentWidget.fromCommentView( CommentWidget.fromCommentView(
CommentView cv, { CommentView cv, {

View File

@ -13,7 +13,7 @@ import 'comment_more_menu_button.dart';
import 'comment_store.dart'; import 'comment_store.dart';
class CommentActions extends HookWidget { class CommentActions extends HookWidget {
const CommentActions({Key? key}) : super(key: key); const CommentActions({super.key});
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {

View File

@ -18,7 +18,7 @@ import 'comment.dart';
import 'comment_store.dart'; import 'comment_store.dart';
class CommentMoreMenuButton extends HookWidget { class CommentMoreMenuButton extends HookWidget {
const CommentMoreMenuButton({Key? key}) : super(key: key); const CommentMoreMenuButton({super.key});
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
@ -44,9 +44,8 @@ class _CommentMoreMenuPopup extends HookWidget {
final CommentStore store; final CommentStore store;
const _CommentMoreMenuPopup({ const _CommentMoreMenuPopup({
Key? key,
required this.store, required this.store,
}) : super(key: key); });
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {

View File

@ -54,6 +54,7 @@ abstract class _CommentStore with Store {
_CommentStore( _CommentStore(
this._accountsStore, { this._accountsStore, {
required CommentTree commentTree, required CommentTree commentTree,
// ignore: unused_element
this.userMentionId, this.userMentionId,
required this.depth, required this.depth,
required this.canBeMarkedAsRead, required this.canBeMarkedAsRead,

View File

@ -6,7 +6,7 @@ part of 'comment_store.dart';
// StoreGenerator // StoreGenerator
// ************************************************************************** // **************************************************************************
// ignore_for_file: non_constant_identifier_names, unnecessary_brace_in_string_interps, unnecessary_lambdas, prefer_expression_function_bodies, lines_longer_than_80_chars, avoid_as, avoid_annotating_with_dynamic // ignore_for_file: non_constant_identifier_names, unnecessary_brace_in_string_interps, unnecessary_lambdas, prefer_expression_function_bodies, lines_longer_than_80_chars, avoid_as, avoid_annotating_with_dynamic, no_leading_underscores_for_local_identifiers
mixin _$CommentStore on _CommentStore, Store { mixin _$CommentStore on _CommentStore, Store {
Computed<bool>? _$isMineComputed; Computed<bool>? _$isMineComputed;

View File

@ -20,7 +20,7 @@ class Editor extends HookWidget {
final String instanceHost; final String instanceHost;
const Editor({ const Editor({
Key? key, super.key,
this.controller, this.controller,
this.focusNode, this.focusNode,
this.onSubmitted, this.onSubmitted,
@ -32,7 +32,7 @@ class Editor extends HookWidget {
this.fancy = false, this.fancy = false,
required this.instanceHost, required this.instanceHost,
this.autofocus = false, this.autofocus = false,
}) : super(key: key); });
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {

View File

@ -9,10 +9,10 @@ class FullscreenableImage extends StatelessWidget {
final Widget child; final Widget child;
const FullscreenableImage({ const FullscreenableImage({
Key? key, super.key,
required this.url, required this.url,
required this.child, required this.child,
}) : super(key: key); });
@override @override
Widget build(BuildContext context) => InkWell( Widget build(BuildContext context) => InkWell(

View File

@ -6,7 +6,7 @@ part of 'post_store.dart';
// StoreGenerator // StoreGenerator
// ************************************************************************** // **************************************************************************
// ignore_for_file: non_constant_identifier_names, unnecessary_brace_in_string_interps, unnecessary_lambdas, prefer_expression_function_bodies, lines_longer_than_80_chars, avoid_as, avoid_annotating_with_dynamic // ignore_for_file: non_constant_identifier_names, unnecessary_brace_in_string_interps, unnecessary_lambdas, prefer_expression_function_bodies, lines_longer_than_80_chars, avoid_as, avoid_annotating_with_dynamic, no_leading_underscores_for_local_identifiers
mixin _$PostStore on _PostStore, Store { mixin _$PostStore on _PostStore, Store {
Computed<String?>? _$urlDomainComputed; Computed<String?>? _$urlDomainComputed;

View File

@ -6,10 +6,10 @@ class PullToRefresh extends StatelessWidget {
final Widget child; final Widget child;
const PullToRefresh({ const PullToRefresh({
Key? key, super.key,
required this.onRefresh, required this.onRefresh,
required this.child, required this.child,
}) : super(key: key); });
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {

View File

@ -20,7 +20,7 @@ class RadioPicker<T> extends StatelessWidget {
final Widget? trailing; final Widget? trailing;
const RadioPicker({ const RadioPicker({
Key? key, super.key,
required this.values, required this.values,
required this.groupValue, required this.groupValue,
required this.onChanged, required this.onChanged,
@ -28,7 +28,7 @@ class RadioPicker<T> extends StatelessWidget {
this.buttonBuilder, this.buttonBuilder,
this.title, this.title,
this.trailing, this.trailing,
}) : super(key: key); });
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {

View File

@ -70,8 +70,8 @@ class SortableInfiniteList<T> extends HookWidget {
class InfinitePostList extends SortableInfiniteList<PostView> { class InfinitePostList extends SortableInfiniteList<PostView> {
InfinitePostList({ InfinitePostList({
required FetcherWithSorting<PostView> fetcher, required super.fetcher,
InfiniteScrollController? controller, super.controller,
}) : super( }) : super(
itemBuilder: (post) => Column( itemBuilder: (post) => Column(
children: [ children: [
@ -79,8 +79,6 @@ class InfinitePostList extends SortableInfiniteList<PostView> {
const SizedBox(height: 20), const SizedBox(height: 20),
], ],
), ),
fetcher: fetcher,
controller: controller,
noItems: const Text('there are no posts'), noItems: const Text('there are no posts'),
uniqueProp: (item) => item.post.apId, uniqueProp: (item) => item.post.apId,
); );
@ -88,15 +86,13 @@ class InfinitePostList extends SortableInfiniteList<PostView> {
class InfiniteCommentList extends SortableInfiniteList<CommentView> { class InfiniteCommentList extends SortableInfiniteList<CommentView> {
InfiniteCommentList({ InfiniteCommentList({
required FetcherWithSorting<CommentView> fetcher, required super.fetcher,
InfiniteScrollController? controller, super.controller,
}) : super( }) : super(
itemBuilder: (comment) => CommentWidget( itemBuilder: (comment) => CommentWidget(
CommentTree(comment), CommentTree(comment),
detached: true, detached: true,
), ),
fetcher: fetcher,
controller: controller,
noItems: const Text('there are no comments'), noItems: const Text('there are no comments'),
uniqueProp: (item) => item.comment.apId, uniqueProp: (item) => item.comment.apId,
); );

View File

@ -14,14 +14,14 @@ class TileAction extends StatelessWidget {
final Color? iconColor; final Color? iconColor;
const TileAction({ const TileAction({
Key? key, super.key,
this.delayedLoading, this.delayedLoading,
this.iconColor, this.iconColor,
required this.icon, required this.icon,
required this.onPressed, required this.onPressed,
required this.tooltip, required this.tooltip,
this.loading = false, this.loading = false,
}) : super(key: key); });
@override @override
Widget build(BuildContext context) => IconButton( Widget build(BuildContext context) => IconButton(

View File

@ -12,8 +12,8 @@ class PersonTile extends StatelessWidget {
const PersonTile( const PersonTile(
this.person, { this.person, {
this.expanded = false, this.expanded = false,
Key? key, super.key,
}) : super(key: key); });
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {

View File

@ -6,6 +6,9 @@ list(APPEND FLUTTER_PLUGIN_LIST
url_launcher_linux url_launcher_linux
) )
list(APPEND FLUTTER_FFI_PLUGIN_LIST
)
set(PLUGIN_BUNDLED_LIBRARIES) set(PLUGIN_BUNDLED_LIBRARIES)
foreach(plugin ${FLUTTER_PLUGIN_LIST}) foreach(plugin ${FLUTTER_PLUGIN_LIST})
@ -14,3 +17,8 @@ foreach(plugin ${FLUTTER_PLUGIN_LIST})
list(APPEND PLUGIN_BUNDLED_LIBRARIES $<TARGET_FILE:${plugin}_plugin>) list(APPEND PLUGIN_BUNDLED_LIBRARIES $<TARGET_FILE:${plugin}_plugin>)
list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries}) list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries})
endforeach(plugin) endforeach(plugin)
foreach(ffi_plugin ${FLUTTER_FFI_PLUGIN_LIST})
add_subdirectory(flutter/ephemeral/.plugin_symlinks/${ffi_plugin}/linux plugins/${ffi_plugin})
list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${ffi_plugin}_bundled_libraries})
endforeach(ffi_plugin)

View File

@ -7,14 +7,14 @@ packages:
name: _fe_analyzer_shared name: _fe_analyzer_shared
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "34.0.0" version: "41.0.0"
analyzer: analyzer:
dependency: transitive dependency: transitive
description: description:
name: analyzer name: analyzer
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "3.2.0" version: "4.2.0"
archive: archive:
dependency: transitive dependency: transitive
description: description:
@ -28,7 +28,7 @@ packages:
name: args name: args
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.3.0" version: "2.3.1"
async: async:
dependency: transitive dependency: transitive
description: description:
@ -56,7 +56,7 @@ packages:
name: build_config name: build_config
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.0.0" version: "1.1.0"
build_daemon: build_daemon:
dependency: transitive dependency: transitive
description: description:
@ -70,14 +70,14 @@ packages:
name: build_resolvers name: build_resolvers
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.0.6" version: "2.0.9"
build_runner: build_runner:
dependency: "direct dev" dependency: "direct dev"
description: description:
name: build_runner name: build_runner
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.1.10" version: "2.2.0"
build_runner_core: build_runner_core:
dependency: transitive dependency: transitive
description: description:
@ -98,7 +98,7 @@ packages:
name: built_value name: built_value
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "8.2.3" version: "8.4.0"
characters: characters:
dependency: transitive dependency: transitive
description: description:
@ -120,13 +120,6 @@ packages:
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.0.1" version: "2.0.1"
cli_util:
dependency: transitive
description:
name: cli_util
url: "https://pub.dartlang.org"
source: hosted
version: "0.3.5"
clock: clock:
dependency: transitive dependency: transitive
description: description:
@ -147,21 +140,21 @@ packages:
name: collection name: collection
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.15.0" version: "1.16.0"
convert: convert:
dependency: transitive dependency: transitive
description: description:
name: convert name: convert
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "3.0.1" version: "3.0.2"
cross_file: cross_file:
dependency: transitive dependency: transitive
description: description:
name: cross_file name: cross_file
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "0.3.2" version: "0.3.3+1"
crypto: crypto:
dependency: transitive dependency: transitive
description: description:
@ -175,35 +168,35 @@ packages:
name: dart_style name: dart_style
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.2.1" version: "2.2.3"
extended_image: extended_image:
dependency: "direct main" dependency: "direct main"
description: description:
name: extended_image name: extended_image
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "6.0.3" version: "6.2.1"
extended_image_library: extended_image_library:
dependency: transitive dependency: transitive
description: description:
name: extended_image_library name: extended_image_library
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "3.1.4" version: "3.3.0"
fake_async: fake_async:
dependency: transitive dependency: transitive
description: description:
name: fake_async name: fake_async
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.2.0" version: "1.3.0"
ffi: ffi:
dependency: transitive dependency: transitive
description: description:
name: ffi name: ffi
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.1.2" version: "1.2.1"
file: file:
dependency: transitive dependency: transitive
description: description:
@ -217,14 +210,14 @@ packages:
name: file_picker name: file_picker
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "4.3.1" version: "4.6.1"
fixnum: fixnum:
dependency: transitive dependency: transitive
description: description:
name: fixnum name: fixnum
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.0.0" version: "1.0.1"
flutter: flutter:
dependency: "direct main" dependency: "direct main"
description: flutter description: flutter
@ -236,14 +229,14 @@ packages:
name: flutter_hooks name: flutter_hooks
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "0.18.3" version: "0.18.5+1"
flutter_keyboard_visibility: flutter_keyboard_visibility:
dependency: transitive dependency: transitive
description: description:
name: flutter_keyboard_visibility name: flutter_keyboard_visibility
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "5.2.0" version: "5.3.0"
flutter_keyboard_visibility_platform_interface: flutter_keyboard_visibility_platform_interface:
dependency: transitive dependency: transitive
description: description:
@ -264,7 +257,7 @@ packages:
name: flutter_launcher_icons name: flutter_launcher_icons
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "0.9.2" version: "0.9.3"
flutter_localizations: flutter_localizations:
dependency: "direct main" dependency: "direct main"
description: flutter description: flutter
@ -276,21 +269,21 @@ packages:
name: flutter_markdown name: flutter_markdown
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "0.6.10" version: "0.6.10+2"
flutter_mobx: flutter_mobx:
dependency: "direct main" dependency: "direct main"
description: description:
name: flutter_mobx name: flutter_mobx
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.0.5" version: "2.0.6+1"
flutter_plugin_android_lifecycle: flutter_plugin_android_lifecycle:
dependency: transitive dependency: transitive
description: description:
name: flutter_plugin_android_lifecycle name: flutter_plugin_android_lifecycle
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.0.5" version: "2.0.7"
flutter_speed_dial: flutter_speed_dial:
dependency: "direct main" dependency: "direct main"
description: description:
@ -309,7 +302,7 @@ packages:
name: flutter_typeahead name: flutter_typeahead
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "3.2.5" version: "4.0.0"
flutter_web_plugins: flutter_web_plugins:
dependency: transitive dependency: transitive
description: flutter description: flutter
@ -321,21 +314,21 @@ packages:
name: freezed name: freezed
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.0.2" version: "2.1.0+1"
freezed_annotation: freezed_annotation:
dependency: "direct main" dependency: "direct main"
description: description:
name: freezed_annotation name: freezed_annotation
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.0.1" version: "2.1.0"
frontend_server_client: frontend_server_client:
dependency: transitive dependency: transitive
description: description:
name: frontend_server_client name: frontend_server_client
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.1.2" version: "2.1.3"
fuzzy: fuzzy:
dependency: "direct main" dependency: "direct main"
description: description:
@ -349,7 +342,7 @@ packages:
name: glob name: glob
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.0.2" version: "2.1.0"
graphs: graphs:
dependency: transitive dependency: transitive
description: description:
@ -377,56 +370,56 @@ packages:
name: http_multi_server name: http_multi_server
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "3.2.0" version: "3.2.1"
http_parser: http_parser:
dependency: transitive dependency: transitive
description: description:
name: http_parser name: http_parser
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "4.0.0" version: "4.0.1"
image: image:
dependency: transitive dependency: transitive
description: description:
name: image name: image
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "3.1.3" version: "3.2.0"
image_picker: image_picker:
dependency: "direct main" dependency: "direct main"
description: description:
name: image_picker name: image_picker
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "0.8.5" version: "0.8.5+3"
image_picker_android: image_picker_android:
dependency: transitive dependency: transitive
description: description:
name: image_picker_android name: image_picker_android
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "0.8.4+11" version: "0.8.5+1"
image_picker_for_web: image_picker_for_web:
dependency: transitive dependency: transitive
description: description:
name: image_picker_for_web name: image_picker_for_web
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.1.6" version: "2.1.8"
image_picker_ios: image_picker_ios:
dependency: transitive dependency: transitive
description: description:
name: image_picker_ios name: image_picker_ios
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "0.8.5" version: "0.8.5+6"
image_picker_platform_interface: image_picker_platform_interface:
dependency: transitive dependency: transitive
description: description:
name: image_picker_platform_interface name: image_picker_platform_interface
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.4.4" version: "2.5.0"
intl: intl:
dependency: "direct main" dependency: "direct main"
description: description:
@ -447,28 +440,28 @@ packages:
name: js name: js
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "0.6.3" version: "0.6.4"
json_annotation: json_annotation:
dependency: "direct main" dependency: "direct main"
description: description:
name: json_annotation name: json_annotation
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "4.5.0" version: "4.6.0"
json_serializable: json_serializable:
dependency: "direct dev" dependency: "direct dev"
description: description:
name: json_serializable name: json_serializable
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "6.2.0" version: "6.3.1"
keyboard_dismisser: keyboard_dismisser:
dependency: "direct main" dependency: "direct main"
description: description:
name: keyboard_dismisser name: keyboard_dismisser
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.0.1" version: "3.0.0"
latinize: latinize:
dependency: transitive dependency: transitive
description: description:
@ -482,7 +475,7 @@ packages:
name: lemmy_api_client name: lemmy_api_client
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "0.20.0" version: "0.21.0"
logging: logging:
dependency: "direct main" dependency: "direct main"
description: description:
@ -510,7 +503,7 @@ packages:
name: material_color_utilities name: material_color_utilities
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "0.1.3" version: "0.1.4"
matrix4_transform: matrix4_transform:
dependency: "direct main" dependency: "direct main"
description: description:
@ -531,28 +524,28 @@ packages:
name: mime name: mime
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.0.1" version: "1.0.2"
mobx: mobx:
dependency: "direct main" dependency: "direct main"
description: description:
name: mobx name: mobx
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.0.7" version: "2.0.7+4"
mobx_codegen: mobx_codegen:
dependency: "direct dev" dependency: "direct dev"
description: description:
name: mobx_codegen name: mobx_codegen
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.0.6" version: "2.0.7"
modal_bottom_sheet: modal_bottom_sheet:
dependency: "direct main" dependency: "direct main"
description: description:
name: modal_bottom_sheet name: modal_bottom_sheet
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.0.1" version: "2.1.0"
nested: nested:
dependency: "direct main" dependency: "direct main"
description: description:
@ -566,7 +559,7 @@ packages:
name: package_config name: package_config
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.0.2" version: "2.1.0"
package_info_plus: package_info_plus:
dependency: "direct main" dependency: "direct main"
description: description:
@ -615,70 +608,70 @@ packages:
name: path name: path
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.8.0" version: "1.8.1"
path_provider: path_provider:
dependency: transitive dependency: transitive
description: description:
name: path_provider name: path_provider
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.0.9" version: "2.0.11"
path_provider_android: path_provider_android:
dependency: transitive dependency: transitive
description: description:
name: path_provider_android name: path_provider_android
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.0.13" version: "2.0.16"
path_provider_ios: path_provider_ios:
dependency: transitive dependency: transitive
description: description:
name: path_provider_ios name: path_provider_ios
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.0.8" version: "2.0.10"
path_provider_linux: path_provider_linux:
dependency: transitive dependency: transitive
description: description:
name: path_provider_linux name: path_provider_linux
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.1.5" version: "2.1.7"
path_provider_macos: path_provider_macos:
dependency: transitive dependency: transitive
description: description:
name: path_provider_macos name: path_provider_macos
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.0.5" version: "2.0.6"
path_provider_platform_interface: path_provider_platform_interface:
dependency: transitive dependency: transitive
description: description:
name: path_provider_platform_interface name: path_provider_platform_interface
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.0.3" version: "2.0.4"
path_provider_windows: path_provider_windows:
dependency: transitive dependency: transitive
description: description:
name: path_provider_windows name: path_provider_windows
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.0.5" version: "2.0.7"
petitparser: petitparser:
dependency: transitive dependency: transitive
description: description:
name: petitparser name: petitparser
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "4.4.0" version: "5.0.0"
photo_view: photo_view:
dependency: "direct main" dependency: "direct main"
description: description:
name: photo_view name: photo_view
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "0.13.0" version: "0.14.0"
platform: platform:
dependency: transitive dependency: transitive
description: description:
@ -699,7 +692,7 @@ packages:
name: pool name: pool
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.5.0" version: "1.5.1"
process: process:
dependency: transitive dependency: transitive
description: description:
@ -713,7 +706,7 @@ packages:
name: provider name: provider
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "6.0.2" version: "6.0.3"
pub_semver: pub_semver:
dependency: transitive dependency: transitive
description: description:
@ -734,7 +727,7 @@ packages:
name: share_plus name: share_plus
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "4.0.4" version: "4.0.10"
share_plus_linux: share_plus_linux:
dependency: transitive dependency: transitive
description: description:
@ -748,63 +741,63 @@ packages:
name: share_plus_macos name: share_plus_macos
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "3.0.0" version: "3.0.1"
share_plus_platform_interface: share_plus_platform_interface:
dependency: transitive dependency: transitive
description: description:
name: share_plus_platform_interface name: share_plus_platform_interface
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "3.0.2" version: "3.0.3"
share_plus_web: share_plus_web:
dependency: transitive dependency: transitive
description: description:
name: share_plus_web name: share_plus_web
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "3.0.0" version: "3.0.1"
share_plus_windows: share_plus_windows:
dependency: transitive dependency: transitive
description: description:
name: share_plus_windows name: share_plus_windows
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "3.0.0" version: "3.0.1"
shared_preferences: shared_preferences:
dependency: "direct main" dependency: "direct main"
description: description:
name: shared_preferences name: shared_preferences
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.0.13" version: "2.0.15"
shared_preferences_android: shared_preferences_android:
dependency: transitive dependency: transitive
description: description:
name: shared_preferences_android name: shared_preferences_android
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.0.11" version: "2.0.12"
shared_preferences_ios: shared_preferences_ios:
dependency: transitive dependency: transitive
description: description:
name: shared_preferences_ios name: shared_preferences_ios
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.1.0" version: "2.1.1"
shared_preferences_linux: shared_preferences_linux:
dependency: transitive dependency: transitive
description: description:
name: shared_preferences_linux name: shared_preferences_linux
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.1.0" version: "2.1.1"
shared_preferences_macos: shared_preferences_macos:
dependency: transitive dependency: transitive
description: description:
name: shared_preferences_macos name: shared_preferences_macos
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.0.3" version: "2.0.4"
shared_preferences_platform_interface: shared_preferences_platform_interface:
dependency: transitive dependency: transitive
description: description:
@ -818,28 +811,28 @@ packages:
name: shared_preferences_web name: shared_preferences_web
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.0.3" version: "2.0.4"
shared_preferences_windows: shared_preferences_windows:
dependency: transitive dependency: transitive
description: description:
name: shared_preferences_windows name: shared_preferences_windows
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.1.0" version: "2.1.1"
shelf: shelf:
dependency: transitive dependency: transitive
description: description:
name: shelf name: shelf
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.3.0" version: "1.3.1"
shelf_web_socket: shelf_web_socket:
dependency: transitive dependency: transitive
description: description:
name: shelf_web_socket name: shelf_web_socket
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.0.1" version: "1.0.2"
sky_engine: sky_engine:
dependency: transitive dependency: transitive
description: flutter description: flutter
@ -865,7 +858,7 @@ packages:
name: source_span name: source_span
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.8.1" version: "1.8.2"
stack_trace: stack_trace:
dependency: transitive dependency: transitive
description: description:
@ -907,7 +900,7 @@ packages:
name: test_api name: test_api
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "0.4.8" version: "0.4.9"
timeago: timeago:
dependency: "direct main" dependency: "direct main"
description: description:
@ -928,70 +921,70 @@ packages:
name: typed_data name: typed_data
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.3.0" version: "1.3.1"
url_launcher: url_launcher:
dependency: "direct main" dependency: "direct main"
description: description:
name: url_launcher name: url_launcher
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "6.1.0" version: "6.1.5"
url_launcher_android: url_launcher_android:
dependency: transitive dependency: transitive
description: description:
name: url_launcher_android name: url_launcher_android
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "6.0.16" version: "6.0.17"
url_launcher_ios: url_launcher_ios:
dependency: transitive dependency: transitive
description: description:
name: url_launcher_ios name: url_launcher_ios
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "6.0.15" version: "6.0.17"
url_launcher_linux: url_launcher_linux:
dependency: transitive dependency: transitive
description: description:
name: url_launcher_linux name: url_launcher_linux
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "3.0.0" version: "3.0.1"
url_launcher_macos: url_launcher_macos:
dependency: transitive dependency: transitive
description: description:
name: url_launcher_macos name: url_launcher_macos
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "3.0.0" version: "3.0.1"
url_launcher_platform_interface: url_launcher_platform_interface:
dependency: transitive dependency: transitive
description: description:
name: url_launcher_platform_interface name: url_launcher_platform_interface
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.0.5" version: "2.1.0"
url_launcher_web: url_launcher_web:
dependency: transitive dependency: transitive
description: description:
name: url_launcher_web name: url_launcher_web
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.0.9" version: "2.0.12"
url_launcher_windows: url_launcher_windows:
dependency: transitive dependency: transitive
description: description:
name: url_launcher_windows name: url_launcher_windows
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "3.0.0" version: "3.0.1"
vector_math: vector_math:
dependency: transitive dependency: transitive
description: description:
name: vector_math name: vector_math
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.1.1" version: "2.1.2"
watcher: watcher:
dependency: transitive dependency: transitive
description: description:
@ -1019,7 +1012,7 @@ packages:
name: win32 name: win32
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.5.2" version: "2.6.1"
xdg_directories: xdg_directories:
dependency: transitive dependency: transitive
description: description:
@ -1033,14 +1026,14 @@ packages:
name: xml name: xml
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "5.3.1" version: "6.1.0"
yaml: yaml:
dependency: transitive dependency: transitive
description: description:
name: yaml name: yaml
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "3.1.0" version: "3.1.1"
sdks: sdks:
dart: ">=2.16.0 <3.0.0" dart: ">=2.17.0 <3.0.0"
flutter: ">=2.10.0" flutter: ">=3.0.0"

View File

@ -18,16 +18,16 @@ publish_to: "none" # Remove this line if you wish to publish to pub.dev
version: 0.8.0+19 version: 0.8.0+19
environment: environment:
sdk: ">=2.16.0 <3.0.0" sdk: ">=2.17.0 <3.0.0"
flutter: ">=2.10.0 <3.0.0" flutter: ">=3.0.0 <4.0.0"
dependencies: dependencies:
# widgets # widgets
flutter_speed_dial: ^6.0.0 flutter_speed_dial: ^6.0.0
photo_view: ^0.13.0 photo_view: ^0.14.0
markdown: ^5.0.0 markdown: ^5.0.0
flutter_markdown: ^0.6.1 flutter_markdown: ^0.6.1
flutter_typeahead: ^3.2.1 flutter_typeahead: ^4.0.0
modal_bottom_sheet: ^2.0.0 modal_bottom_sheet: ^2.0.0
# native # native
@ -47,11 +47,11 @@ dependencies:
# utils # utils
timeago: ^3.0.2 timeago: ^3.0.2
fuzzy: ^0.4.0-nullsafety.0 fuzzy: ^0.4.0-nullsafety.0
lemmy_api_client: ^0.20.0 lemmy_api_client: ^0.21.0
intl: ^0.17.0 intl: ^0.17.0
matrix4_transform: ^2.0.0 matrix4_transform: ^2.0.0
json_annotation: ^4.5.0 json_annotation: ^4.5.0
keyboard_dismisser: ^2.0.0 keyboard_dismisser: ^3.0.0
freezed_annotation: ^2.0.1 freezed_annotation: ^2.0.1
logging: ^1.0.1 logging: ^1.0.1
nested: ^1.0.0 nested: ^1.0.0

View File

@ -6,6 +6,9 @@ list(APPEND FLUTTER_PLUGIN_LIST
url_launcher_windows url_launcher_windows
) )
list(APPEND FLUTTER_FFI_PLUGIN_LIST
)
set(PLUGIN_BUNDLED_LIBRARIES) set(PLUGIN_BUNDLED_LIBRARIES)
foreach(plugin ${FLUTTER_PLUGIN_LIST}) foreach(plugin ${FLUTTER_PLUGIN_LIST})
@ -14,3 +17,8 @@ foreach(plugin ${FLUTTER_PLUGIN_LIST})
list(APPEND PLUGIN_BUNDLED_LIBRARIES $<TARGET_FILE:${plugin}_plugin>) list(APPEND PLUGIN_BUNDLED_LIBRARIES $<TARGET_FILE:${plugin}_plugin>)
list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries}) list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries})
endforeach(plugin) endforeach(plugin)
foreach(ffi_plugin ${FLUTTER_FFI_PLUGIN_LIST})
add_subdirectory(flutter/ephemeral/.plugin_symlinks/${ffi_plugin}/windows plugins/${ffi_plugin})
list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${ffi_plugin}_bundled_libraries})
endforeach(ffi_plugin)