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": { "placeholders": {
"number": {} "number": {}
} }
} },
"newSpaceDescription": "Mit Spaces kannst du deine Chats zusammenfassen und private oder öffentliche Communities aufbauen."
} }

View File

@ -2258,11 +2258,7 @@
"senderName": {} "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", "startFirstChat": "Start your first chat",
"@startYourFirstChat": {
"type": "text",
"placeholders": {}
},
"status": "Status", "status": "Status",
"@status": { "@status": {
"type": "text", "type": "text",
@ -2982,5 +2978,6 @@
"placeholders": { "placeholders": {
"oldDisplayName": {} "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 dividerColor: brightness == Brightness.light
? Colors.blueGrey.shade50 ? Colors.blueGrey.shade50
: Colors.blueGrey.shade900, : Colors.blueGrey.shade900,
inputDecorationTheme: const InputDecorationTheme( inputDecorationTheme: InputDecorationTheme(
border: InputBorder.none, border: UnderlineInputBorder(
borderSide: BorderSide.none,
borderRadius: BorderRadius.circular(AppConfig.borderRadius),
),
filled: true, filled: true,
), ),
appBarTheme: AppBarTheme( appBarTheme: AppBarTheme(

View File

@ -3,6 +3,7 @@ import 'package:flutter/material.dart';
import 'package:animations/animations.dart'; import 'package:animations/animations.dart';
import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:flutter_gen/gen_l10n/l10n.dart';
import 'package:matrix/matrix.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.dart';
import 'package:fluffychat/pages/chat_list/chat_list_item.dart'; import 'package:fluffychat/pages/chat_list/chat_list_item.dart';
@ -172,28 +173,34 @@ class ChatListViewBody extends StatelessWidget {
icon: const Icon(Icons.chat_outlined), icon: const Icon(Icons.chat_outlined),
), ),
if (rooms.isEmpty && !controller.isSearchMode) if (rooms.isEmpty && !controller.isSearchMode)
Column( Padding(
key: const ValueKey(null), padding: const EdgeInsets.all(32.0),
mainAxisAlignment: MainAxisAlignment.center, child: Column(
mainAxisSize: MainAxisSize.min, mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[ children: [
Image.asset( const SizedBox(height: 32),
'assets/private_chat_wallpaper.png', Image.asset(
width: 160, 'assets/start_chat.png',
height: 160,
),
Center(
child: Text(
L10n.of(context)!.startYourFirstChat,
textAlign: TextAlign.start,
style: const TextStyle(
color: Colors.grey,
fontSize: 16,
),
), ),
), Divider(
const SizedBox(height: 16), 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),
),
],
),
), ),
], ],
); );

View File

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

View File

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

View File

@ -35,12 +35,16 @@ class NewGroupView extends StatelessWidget {
), ),
), ),
SwitchListTile.adaptive( SwitchListTile.adaptive(
secondary: const Icon(Icons.public_outlined),
title: Text(L10n.of(context)!.groupIsPublic), title: Text(L10n.of(context)!.groupIsPublic),
value: controller.publicGroup, value: controller.publicGroup,
onChanged: controller.setPublicGroup, onChanged: controller.setPublicGroup,
), ),
Expanded( SwitchListTile.adaptive(
child: Image.asset('assets/private_chat_wallpaper.png'), 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, value: controller.publicGroup,
onChanged: controller.setPublicGroup, onChanged: controller.setPublicGroup,
), ),
Expanded( ListTile(
child: Image.asset('assets/private_chat_wallpaper.png'), 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); const EmptyPage({this.loading = false, Key? key}) : super(key: key);
@override @override
Widget build(BuildContext context) { 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( return Scaffold(
// Add invisible appbar to make status bar on Android tablets bright. // Add invisible appbar to make status bar on Android tablets bright.
appBar: AppBar( appBar: AppBar(
@ -24,7 +24,7 @@ class EmptyPage extends StatelessWidget {
child: Hero( child: Hero(
tag: 'info-logo', tag: 'info-logo',
child: Image.asset( child: Image.asset(
'assets/info-logo.png', 'assets/favicon.png',
width: width, width: width,
height: width, height: width,
filterQuality: FilterQuality.medium, filterQuality: FilterQuality.medium,