Merge branch 'main' of https://github.com/pangeachat/client into fix-reply-scrolling

pull/1384/head
Kelrap 1 year ago
commit b021a2214c

@ -14,7 +14,6 @@ import 'package:fluffychat/pangea/choreographer/widgets/start_igc_button.dart';
import 'package:fluffychat/pangea/extensions/pangea_room_extension/pangea_room_extension.dart';
import 'package:fluffychat/pangea/widgets/chat/chat_floating_action_button.dart';
import 'package:fluffychat/utils/account_config.dart';
import 'package:fluffychat/utils/platform_infos.dart';
import 'package:fluffychat/widgets/chat_settings_popup_menu.dart';
import 'package:fluffychat/widgets/connection_status_header.dart';
import 'package:fluffychat/widgets/matrix.dart';
@ -299,7 +298,12 @@ class ChatView extends StatelessWidget {
),
),
SafeArea(
child: Column(
child:
// #Pangea
Stack(
children: [
// Pangea#
Column(
children: <Widget>[
Expanded(
child: GestureDetector(
@ -308,7 +312,8 @@ class ChatView extends StatelessWidget {
builder: (context) {
if (controller.timeline == null) {
return const Center(
child: CircularProgressIndicator.adaptive(
child:
CircularProgressIndicator.adaptive(
strokeWidth: 2,
),
);
@ -341,7 +346,8 @@ class ChatView extends StatelessWidget {
borderRadius: const BorderRadius.all(
Radius.circular(24),
),
child: controller.room.isAbandonedDMRoom == true
child: controller.room.isAbandonedDMRoom ==
true
? Row(
mainAxisAlignment:
MainAxisAlignment.spaceEvenly,
@ -353,14 +359,16 @@ class ChatView extends StatelessWidget {
padding: const EdgeInsets.all(
16,
),
foregroundColor: Theme.of(context)
foregroundColor:
Theme.of(context)
.colorScheme
.error,
),
icon: const Icon(
Icons.archive_outlined,
),
onPressed: controller.archiveChat,
onPressed:
controller.archiveChat,
label: Text(
L10n.of(context)!.archive,
),
@ -371,7 +379,8 @@ class ChatView extends StatelessWidget {
padding: const EdgeInsets.all(
16,
),
foregroundColor: Theme.of(context)
foregroundColor:
Theme.of(context)
.colorScheme
.error,
),
@ -395,7 +404,8 @@ class ChatView extends StatelessWidget {
icon: const Icon(
Icons.forum_outlined,
),
onPressed: controller.recreateChat,
onPressed:
controller.recreateChat,
label: Text(
L10n.of(context)!.reopenChat,
),
@ -424,25 +434,13 @@ class ChatView extends StatelessWidget {
),
// #Pangea
// Keep messages above minimum input bar height
SizedBox(
height: (PlatformInfos.isMobile ? 30 : 60),
const SizedBox(
height: 60,
),
// Pangea#
],
),
),
// #Pangea
// if (controller.dragging)
// Container(
// color: Theme.of(context)
// .scaffoldBackgroundColor
// .withOpacity(0.9),
// alignment: Alignment.center,
// child: const Icon(
// Icons.upload_outlined,
// size: 100,
// ),
// ),
Positioned(
left: 0,
right: 0,
@ -462,7 +460,8 @@ class ChatView extends StatelessWidget {
maxWidth: FluffyThemes.columnWidth * 2.4,
),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
mainAxisAlignment:
MainAxisAlignment.spaceBetween,
children: [
StartIGCButton(
controller: controller,
@ -511,6 +510,22 @@ class ChatView extends StatelessWidget {
// Pangea#
],
),
// #Pangea
// if (controller.dragging)
// Container(
// color: Theme.of(context)
// .scaffoldBackgroundColor
// .withOpacity(0.9),
// alignment: Alignment.center,
// child: const Icon(
// Icons.upload_outlined,
// size: 100,
// ),
// ),
// Pangea#
),
],
),
);
},
),

@ -911,11 +911,12 @@ class ChatListController extends State<ChatList>
await client.roomsLoading;
await client.accountDataLoading;
await client.userDeviceKeysLoading;
if (client.prevBatch == null) {
await client.onSync.stream.first;
// #Pangea
pangeaController.startChatWithBotIfNotPresent();
// See here for explanation of this change: https://github.com/pangeachat/client/pull/539
// if (client.prevBatch == null) {
if (client.onSync.value?.nextBatch == null) {
// Pangea#
await client.onSync.stream.first;
// Display first login bootstrap if enabled
// #Pangea
@ -930,9 +931,19 @@ class ChatListController extends State<ChatList>
}
// #Pangea
await _initPangeaControllers(client);
// Pangea#
if (!mounted) return;
setState(() {
waitForFirstSync = true;
});
}
// #Pangea
Future<void> _initPangeaControllers(Client client) async {
if (mounted) {
// TODO try not to await so much
GoogleAnalytics.analyticsUserUpdate(client.userID);
pangeaController.startChatWithBotIfNotPresent();
await pangeaController.subscriptionController.initialize();
await pangeaController.myAnalytics.initialize();
pangeaController.afterSyncAndFirstLoginInitialization(context);
@ -943,14 +954,9 @@ class ChatListController extends State<ChatList>
ErrorHandler.logError(
m: "didn't run afterSyncAndFirstLoginInitialization because not mounted",
);
// debugger(when: kDebugMode);
}
// Pangea#
if (!mounted) return;
setState(() {
waitForFirstSync = true;
});
}
// Pangea#
void cancelAction() {
if (selectMode == SelectMode.share) {

@ -435,7 +435,11 @@ class MessageToolbarState extends State<MessageToolbar> {
child: Column(
mainAxisSize: MainAxisSize.min,
children: [
Flexible(
Container(
constraints: const BoxConstraints(
minWidth: 300,
maxHeight: 228,
),
child: SingleChildScrollView(
child: AnimatedSize(
duration: FluffyThemes.animationDuration,

Loading…
Cancel
Save