chore: Add new start chat image

This commit is contained in:
Krille Fear 2022-12-25 10:45:13 +01:00
parent f6c2fa8588
commit 51a5e7f9cc
11 changed files with 55 additions and 38 deletions

View File

@ -2991,5 +2991,6 @@
"placeholders": {
"number": {}
}
}
},
"newSpaceDescription": "Mit Spaces kannst du deine Chats zusammenfassen und private oder öffentliche Communities aufbauen."
}

View File

@ -2258,11 +2258,7 @@
"senderName": {}
}
},
"startYourFirstChat": "Start your first chat right now! 🙂\n- Tap on 'New chat'\n- Scan the QR code of a friend\n- Have fun chatting",
"@startYourFirstChat": {
"type": "text",
"placeholders": {}
},
"startFirstChat": "Start your first chat",
"status": "Status",
"@status": {
"type": "text",
@ -2982,5 +2978,6 @@
"placeholders": {
"oldDisplayName": {}
}
}
},
"newSpaceDescription": "Spaces allows you to consolidate your chats and build private or public communities."
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 44 KiB

BIN
assets/start_chat.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

View File

@ -55,8 +55,11 @@ abstract class FluffyThemes {
dividerColor: brightness == Brightness.light
? Colors.blueGrey.shade50
: Colors.blueGrey.shade900,
inputDecorationTheme: const InputDecorationTheme(
border: InputBorder.none,
inputDecorationTheme: InputDecorationTheme(
border: UnderlineInputBorder(
borderSide: BorderSide.none,
borderRadius: BorderRadius.circular(AppConfig.borderRadius),
),
filled: true,
),
appBarTheme: AppBarTheme(

View File

@ -3,6 +3,7 @@ import 'package:flutter/material.dart';
import 'package:animations/animations.dart';
import 'package:flutter_gen/gen_l10n/l10n.dart';
import 'package:matrix/matrix.dart';
import 'package:vrouter/vrouter.dart';
import 'package:fluffychat/pages/chat_list/chat_list.dart';
import 'package:fluffychat/pages/chat_list/chat_list_item.dart';
@ -172,29 +173,35 @@ class ChatListViewBody extends StatelessWidget {
icon: const Icon(Icons.chat_outlined),
),
if (rooms.isEmpty && !controller.isSearchMode)
Column(
key: const ValueKey(null),
Padding(
padding: const EdgeInsets.all(32.0),
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
mainAxisSize: MainAxisSize.min,
children: <Widget>[
children: [
const SizedBox(height: 32),
Image.asset(
'assets/private_chat_wallpaper.png',
width: 160,
height: 160,
'assets/start_chat.png',
),
Center(
child: Text(
L10n.of(context)!.startYourFirstChat,
textAlign: TextAlign.start,
style: const TextStyle(
color: Colors.grey,
fontSize: 16,
Divider(
height: 1,
color: Theme.of(context)
.colorScheme
.onBackground,
),
const SizedBox(height: 32),
FloatingActionButton.extended(
backgroundColor:
Theme.of(context).colorScheme.primary,
foregroundColor:
Theme.of(context).colorScheme.onPrimary,
icon: const Icon(Icons.edit_outlined),
onPressed: () =>
VRouter.of(context).to('/newprivatechat'),
label: Text(L10n.of(context)!.startFirstChat),
),
),
const SizedBox(height: 16),
],
),
),
],
);
}

View File

@ -234,7 +234,8 @@ class ChatListView extends StatelessWidget {
destinations: getNavigationDestinations(context),
)
: null,
floatingActionButton: selectMode == SelectMode.normal
floatingActionButton: controller.filteredRooms.isNotEmpty &&
selectMode == SelectMode.normal
? KeyBoardShortcuts(
keysToPress: {
LogicalKeyboardKey.controlLeft,

View File

@ -42,7 +42,7 @@ class StartChatFloatingActionButton extends StatelessWidget {
switch (controller.activeFilter) {
case ActiveFilter.allChats:
case ActiveFilter.messages:
return L10n.of(context)!.newChat;
return L10n.of(context)!.start;
case ActiveFilter.groups:
return L10n.of(context)!.newGroup;
case ActiveFilter.spaces:

View File

@ -35,12 +35,16 @@ class NewGroupView extends StatelessWidget {
),
),
SwitchListTile.adaptive(
secondary: const Icon(Icons.public_outlined),
title: Text(L10n.of(context)!.groupIsPublic),
value: controller.publicGroup,
onChanged: controller.setPublicGroup,
),
Expanded(
child: Image.asset('assets/private_chat_wallpaper.png'),
SwitchListTile.adaptive(
secondary: const Icon(Icons.lock_outlined),
title: Text(L10n.of(context)!.enableEncryption),
value: !controller.publicGroup,
onChanged: null,
),
],
),

View File

@ -39,8 +39,12 @@ class NewSpaceView extends StatelessWidget {
value: controller.publicGroup,
onChanged: controller.setPublicGroup,
),
Expanded(
child: Image.asset('assets/private_chat_wallpaper.png'),
ListTile(
trailing: const Padding(
padding: EdgeInsets.symmetric(horizontal: 16.0),
child: Icon(Icons.info_outlined),
),
subtitle: Text(L10n.of(context)!.newSpaceDescription),
),
],
),

View File

@ -8,7 +8,7 @@ class EmptyPage extends StatelessWidget {
const EmptyPage({this.loading = false, Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
final width = min(MediaQuery.of(context).size.width, EmptyPage._width);
final width = min(MediaQuery.of(context).size.width, EmptyPage._width) / 2;
return Scaffold(
// Add invisible appbar to make status bar on Android tablets bright.
appBar: AppBar(
@ -24,7 +24,7 @@ class EmptyPage extends StatelessWidget {
child: Hero(
tag: 'info-logo',
child: Image.asset(
'assets/info-logo.png',
'assets/favicon.png',
width: width,
height: width,
filterQuality: FilterQuality.medium,