refactor: Use APL

This commit is contained in:
Krille Fear 2021-01-16 11:46:38 +00:00
commit 544bc15022
40 changed files with 1002 additions and 1273 deletions

View file

@ -1,10 +1,11 @@
import 'package:fluffychat/components/adaptive_page_layout.dart';
import 'package:adaptive_page_layout/adaptive_page_layout.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
class AppRoute extends PageRouteBuilder {
static Route defaultRoute(BuildContext context, Widget page) {
return context != null && !AdaptivePageLayout.columnMode(context)
return context != null &&
!AdaptivePageLayout.of(context).columnMode(context)
? CupertinoPageRoute(
builder: (BuildContext context) => page,
)

View file

@ -7,8 +7,6 @@ import 'package:flushbar/flushbar_helper.dart';
import 'package:famedlysdk/famedlysdk.dart';
import 'package:firebase_messaging/firebase_messaging.dart';
import 'package:fluffychat/components/matrix.dart';
import 'package:fluffychat/utils/app_route.dart';
import 'package:fluffychat/views/chat.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:flutter_gen/gen_l10n/l10n.dart';
@ -112,12 +110,8 @@ abstract class FirebaseController {
roomId = (message['data'] ?? message)['room_id'];
}
if (roomId?.isEmpty ?? true) throw ('Bad roomId');
await Navigator.of(context).pushAndRemoveUntil(
AppRoute.defaultRoute(
context,
ChatView(roomId),
),
(r) => r.isFirst);
await matrix.widget.apl.currentState
.pushNamedAndRemoveUntilIsFirst('/rooms/${roomId}');
} catch (_) {
await FlushbarHelper.createError(message: 'Failed to open chat...')
.show(context);

View file

@ -1,11 +1,9 @@
import 'package:adaptive_dialog/adaptive_dialog.dart';
import 'package:adaptive_page_layout/adaptive_page_layout.dart';
import 'package:famedlysdk/famedlysdk.dart';
import 'package:future_loading_dialog/future_loading_dialog.dart';
import 'package:fluffychat/components/matrix.dart';
import 'package:fluffychat/app_config.dart';
import 'package:fluffychat/utils/app_route.dart';
import 'package:fluffychat/views/chat.dart';
import 'package:fluffychat/views/discover_view.dart';
import 'package:flutter/material.dart';
import 'package:url_launcher/url_launcher.dart';
@ -74,12 +72,8 @@ class UrlLauncher {
}
if (room != null) {
// we have the room, so....just open it!
await Navigator.pushAndRemoveUntil(
context,
AppRoute.defaultRoute(
context, ChatView(room.id, scrollToEventId: event)),
(r) => r.isFirst,
);
await AdaptivePageLayout.of(context)
.pushNamedAndRemoveUntilIsFirst('/rooms/${room.id}/$event');
return;
}
if (roomIdOrAlias.sigil == '!') {
@ -101,21 +95,12 @@ class UrlLauncher {
await showFutureLoadingDialog(
context: context,
future: () => Future.delayed(const Duration(seconds: 2)));
await Navigator.pushAndRemoveUntil(
context,
AppRoute.defaultRoute(
context, ChatView(response.result, scrollToEventId: event)),
(r) => r.isFirst,
);
await AdaptivePageLayout.of(context).pushNamedAndRemoveUntilIsFirst(
'/rooms/${response.result}/$event');
}
} else {
await Navigator.of(context).pushAndRemoveUntil(
AppRoute.defaultRoute(
context,
DiscoverView(alias: roomIdOrAlias),
),
(r) => r.isFirst,
);
await AdaptivePageLayout.of(context)
.pushNamedAndRemoveUntilIsFirst('/discover/${roomIdOrAlias}');
}
} else if (identityParts.primaryIdentifier.sigil == '@') {
final user = User(
@ -124,11 +109,9 @@ class UrlLauncher {
);
var roomId = matrix.client.getDirectChatFromUserId(user.id);
if (roomId != null) {
await Navigator.pushAndRemoveUntil(
context,
AppRoute.defaultRoute(context, ChatView(roomId)),
(r) => r.isFirst,
);
await AdaptivePageLayout.of(context)
.pushNamedAndRemoveUntilIsFirst('/rooms/${roomId}');
return;
}
@ -142,14 +125,10 @@ class UrlLauncher {
future: () => user.startDirectChat(),
))
.result;
Navigator.of(context).pop();
if (roomId != null) {
await Navigator.pushAndRemoveUntil(
context,
AppRoute.defaultRoute(context, ChatView(roomId)),
(r) => r.isFirst,
);
await AdaptivePageLayout.of(context)
.pushNamedAndRemoveUntilIsFirst('/rooms/${roomId}');
}
}
}