refactor: Upgrade to Flutter 3.0.0

This commit is contained in:
Christian Pauly 2022-05-12 11:25:34 +02:00
commit 22ad34ab0a
21 changed files with 116 additions and 87 deletions

View file

@ -8,7 +8,6 @@ import 'package:adaptive_theme/adaptive_theme.dart';
import 'package:flutter_app_lock/flutter_app_lock.dart';
import 'package:flutter_gen/gen_l10n/l10n.dart';
import 'package:future_loading_dialog/future_loading_dialog.dart';
import 'package:gaeilge_flutter_l10n/gaeilge_flutter_l10n.dart';
import 'package:matrix/matrix.dart';
import 'package:universal_html/html.dart' as html;
import 'package:vrouter/vrouter.dart';
@ -114,7 +113,7 @@ class _FluffyChatAppState extends State<FluffyChatApp> {
_router ??= GlobalKey<VRouterState>();
if (columnMode != newColumns > 1) {
Logs().v('Set Column Mode = $columnMode');
WidgetsBinding.instance?.addPostFrameCallback((_) {
WidgetsBinding.instance.addPostFrameCallback((_) {
setState(() {
_initialUrl = _router?.currentState?.url;
columnMode = newColumns > 1;
@ -131,7 +130,6 @@ class _FluffyChatAppState extends State<FluffyChatApp> {
darkTheme: darkTheme,
localizationsDelegates: const [
...L10n.localizationsDelegates,
GaMaterialLocalizations.delegate
],
supportedLocales: L10n.supportedLocales,
initialUrl: _initialUrl ?? '/',
@ -141,7 +139,7 @@ class _FluffyChatAppState extends State<FluffyChatApp> {
LoadingDialog.defaultBackLabel = L10n.of(context)!.close;
LoadingDialog.defaultOnError =
(e) => (e as Object?)!.toLocalizedString(context);
WidgetsBinding.instance?.addPostFrameCallback((_) {
WidgetsBinding.instance.addPostFrameCallback((_) {
SystemChrome.setSystemUIOverlayStyle(
SystemUiOverlayStyle(
statusBarColor: Colors.transparent,

View file

@ -147,27 +147,27 @@ class _BootstrapDialogState extends State<BootstrapDialog> {
case BootstrapState.loading:
break;
case BootstrapState.askWipeSsss:
WidgetsBinding.instance!.addPostFrameCallback(
WidgetsBinding.instance.addPostFrameCallback(
(_) => bootstrap.wipeSsss(_wipe!),
);
break;
case BootstrapState.askBadSsss:
WidgetsBinding.instance!.addPostFrameCallback(
WidgetsBinding.instance.addPostFrameCallback(
(_) => bootstrap.ignoreBadSecrets(true),
);
break;
case BootstrapState.askUseExistingSsss:
WidgetsBinding.instance!.addPostFrameCallback(
WidgetsBinding.instance.addPostFrameCallback(
(_) => bootstrap.useExistingSsss(!_wipe!),
);
break;
case BootstrapState.askUnlockSsss:
WidgetsBinding.instance!.addPostFrameCallback(
WidgetsBinding.instance.addPostFrameCallback(
(_) => bootstrap.unlockedSsss(),
);
break;
case BootstrapState.askNewSsss:
WidgetsBinding.instance!.addPostFrameCallback(
WidgetsBinding.instance.addPostFrameCallback(
(_) => bootstrap.newSsss(),
);
break;
@ -312,12 +312,12 @@ class _BootstrapDialogState extends State<BootstrapDialog> {
),
);
case BootstrapState.askWipeCrossSigning:
WidgetsBinding.instance!.addPostFrameCallback(
WidgetsBinding.instance.addPostFrameCallback(
(_) => bootstrap.wipeCrossSigning(_wipe!),
);
break;
case BootstrapState.askSetupCrossSigning:
WidgetsBinding.instance!.addPostFrameCallback(
WidgetsBinding.instance.addPostFrameCallback(
(_) => bootstrap.askSetupCrossSigning(
setupMasterKey: true,
setupSelfSigningKey: true,
@ -326,13 +326,13 @@ class _BootstrapDialogState extends State<BootstrapDialog> {
);
break;
case BootstrapState.askWipeOnlineKeyBackup:
WidgetsBinding.instance!.addPostFrameCallback(
WidgetsBinding.instance.addPostFrameCallback(
(_) => bootstrap.wipeOnlineKeyBackup(_wipe!),
);
break;
case BootstrapState.askSetupOnlineKeyBackup:
WidgetsBinding.instance!.addPostFrameCallback(
WidgetsBinding.instance.addPostFrameCallback(
(_) => bootstrap.askSetupOnlineKeyBackup(true),
);
break;

View file

@ -171,7 +171,7 @@ class ChatController extends State<Chat> {
final voipPlugin = Matrix.of(context).voipPlugin;
if (voipPlugin != null) {
WidgetsBinding.instance?.addPostFrameCallback((_) {
WidgetsBinding.instance.addPostFrameCallback((_) {
CallKeepManager().setVoipPlugin(voipPlugin);
CallKeepManager().initialize().catchError((_) => true);
});
@ -210,7 +210,7 @@ class ChatController extends State<Chat> {
// when the scroll controller is attached we want to scroll to an event id, if specified
// and update the scroll controller...which will trigger a request history, if the
// "load more" button is visible on the screen
SchedulerBinding.instance!.addPostFrameCallback((_) async {
SchedulerBinding.instance.addPostFrameCallback((_) async {
if (mounted) {
final event = VRouter.of(context).queryParameters['event'];
if (event != null) {

View file

@ -91,7 +91,7 @@ class _ImageBubbleState extends State<ImageBubble> {
try {
final res = await widget.event
.downloadAndDecryptAttachmentCached(getThumbnail: getThumbnail);
WidgetsBinding.instance!.addPostFrameCallback((_) {
WidgetsBinding.instance.addPostFrameCallback((_) {
if (getThumbnail) {
if (mounted) {
setState(() => _thumbnail = res);
@ -106,7 +106,7 @@ class _ImageBubbleState extends State<ImageBubble> {
}
});
} catch (err) {
WidgetsBinding.instance!.addPostFrameCallback((_) {
WidgetsBinding.instance.addPostFrameCallback((_) {
if (mounted) {
setState(() => _error = err);
}
@ -278,7 +278,7 @@ class _ImageBubbleState extends State<ImageBubble> {
errorBuilder: (context, error, stacktrace) {
if (widget.event.hasThumbnail && !_requestedThumbnailOnFailure) {
_requestedThumbnailOnFailure = true;
WidgetsBinding.instance!.addPostFrameCallback((_) {
WidgetsBinding.instance.addPostFrameCallback((_) {
setState(() {
_file = null;
_requestFile(getThumbnail: true);
@ -352,7 +352,7 @@ class _ImageBubbleState extends State<ImageBubble> {
// the image failed to load but the event has a thumbnail attached....so we can
// try to load this one!
_requestedThumbnailOnFailure = true;
WidgetsBinding.instance!.addPostFrameCallback((_) {
WidgetsBinding.instance.addPostFrameCallback((_) {
setState(() {
thumbnailUrl = widget.event
.getAttachmentUrl(

View file

@ -26,6 +26,7 @@ import '../../widgets/matrix.dart';
import '../bootstrap/bootstrap_dialog.dart';
enum SelectMode { normal, share, select }
enum PopupMenuAction {
settings,
invite,
@ -171,7 +172,7 @@ class ChatListController extends State<ChatList> with TickerProviderStateMixin {
void _processIncomingUris(String? text) async {
if (text == null) return;
VRouter.of(context).to('/rooms');
WidgetsBinding.instance!.addPostFrameCallback((_) {
WidgetsBinding.instance.addPostFrameCallback((_) {
UrlLauncher(context, text).openMatrixToUrl();
});
}
@ -475,7 +476,7 @@ class ChatListController extends State<ChatList> with TickerProviderStateMixin {
setState(() {
waitForFirstSync = true;
});
WidgetsBinding.instance!.addPostFrameCallback((_) => checkBootstrap());
WidgetsBinding.instance.addPostFrameCallback((_) => checkBootstrap());
return;
}
@ -572,7 +573,7 @@ class ChatListController extends State<ChatList> with TickerProviderStateMixin {
}
void resetActiveBundle() {
WidgetsBinding.instance!.addPostFrameCallback((timeStamp) {
WidgetsBinding.instance.addPostFrameCallback((timeStamp) {
setState(() {
Matrix.of(context).activeBundle = null;
});

View file

@ -110,7 +110,7 @@ class SearchController extends State<Search> {
@override
void initState() {
super.initState();
WidgetsBinding.instance?.addPostFrameCallback((_) async {
WidgetsBinding.instance.addPostFrameCallback((_) async {
controller.text = VRouter.of(context).queryParameters['query'] ?? '';
final server = await Store().getItem(_serverStoreNamespace);
if (server?.isNotEmpty ?? false) {

View file

@ -83,7 +83,7 @@ class SettingsStoriesController extends State<SettingsStories> {
@override
void initState() {
super.initState();
WidgetsBinding.instance?.addPostFrameCallback((_) {
WidgetsBinding.instance.addPostFrameCallback((_) {
setState(() {
loadUsers = _loadUsers();
});

View file

@ -359,7 +359,7 @@ class StoryPageController extends State<StoryPage> {
}
void _setLoadingMode(bool mode) => loadingMode != mode
? WidgetsBinding.instance?.addPostFrameCallback((_) {
? WidgetsBinding.instance.addPostFrameCallback((_) {
setState(() {
loadingMode = mode;
});

View file

@ -71,7 +71,7 @@ class BackgroundPush {
bool upAction = false;
BackgroundPush._(this.client, {this.onFcmError}) {
BackgroundPush._(this.client) {
onLogin ??=
client.onLoginStateChanged.stream.listen(handleLoginStateChanged);
onRoomSync ??= client.onSync.stream

View file

@ -28,10 +28,8 @@ class VoipPlugin extends WidgetsBindingObserver implements WebRTCDelegate {
.catchError((e) => _currentConnectivity = ConnectivityResult.none);
if (!kIsWeb) {
final wb = WidgetsBinding.instance;
wb?.addObserver(this);
if (wb != null) {
didChangeAppLifecycleState(wb.lifecycleState!);
}
wb.addObserver(this);
didChangeAppLifecycleState(wb.lifecycleState!);
}
}

View file

@ -11,7 +11,7 @@ class LoadingView extends StatelessWidget {
@override
Widget build(BuildContext context) {
WidgetsBinding.instance?.addPostFrameCallback(
WidgetsBinding.instance.addPostFrameCallback(
(_) => VRouter.of(context).to(
Matrix.of(context)
.widget

View file

@ -13,7 +13,7 @@ class LoginScaffold extends StatelessWidget {
@override
Widget build(BuildContext context) {
WidgetsBinding.instance?.addPostFrameCallback((_) {
WidgetsBinding.instance.addPostFrameCallback((_) {
SystemChrome.setSystemUIOverlayStyle(
const SystemUiOverlayStyle(
statusBarIconBrightness: Brightness.light,

View file

@ -253,7 +253,7 @@ class MatrixState extends State<Matrix> with WidgetsBindingObserver {
@override
void initState() {
super.initState();
WidgetsBinding.instance!.addObserver(this);
WidgetsBinding.instance.addObserver(this);
initMatrix();
if (PlatformInfos.isWeb) {
initConfig().then((_) => initSettings());
@ -382,7 +382,7 @@ class MatrixState extends State<Matrix> with WidgetsBindingObserver {
void initMatrix() {
// Display the app lock
if (PlatformInfos.isMobile) {
WidgetsBinding.instance!.addPostFrameCallback((_) {
WidgetsBinding.instance.addPostFrameCallback((_) {
([TargetPlatform.linux].contains(Theme.of(context).platform)
? SharedPreferences.getInstance()
.then((prefs) => prefs.getString(SettingKeys.appLockKey))
@ -513,7 +513,7 @@ class MatrixState extends State<Matrix> with WidgetsBindingObserver {
@override
void dispose() {
WidgetsBinding.instance!.removeObserver(this);
WidgetsBinding.instance.removeObserver(this);
onRoomKeyRequestSub.values.map((s) => s.cancel());
onKeyVerificationRequestSub.values.map((s) => s.cancel());