mirror of
https://github.com/twonlyapp/twonly-app.git
synced 2026-01-15 10:58:40 +00:00
coloring
This commit is contained in:
parent
53ccb325b5
commit
6e4a1d0624
5 changed files with 23 additions and 27 deletions
|
|
@ -1,26 +1,21 @@
|
|||
import 'package:flutter/material.dart';
|
||||
import 'package:twonly/src/database/tables/messages_table.dart';
|
||||
import 'package:twonly/src/utils/misc.dart';
|
||||
|
||||
Map<String, Color> messageKindColors = {
|
||||
"video": Colors.deepPurple,
|
||||
"text": Colors.lightBlue,
|
||||
"image": Color.fromARGB(255, 214, 47, 47),
|
||||
};
|
||||
|
||||
Color getMessageColorFromType(MessageContent content, Color primary) {
|
||||
Color getMessageColorFromType(MessageContent content, BuildContext context) {
|
||||
Color color;
|
||||
|
||||
if (content is TextMessageContent || content is StoredMediaFileContent) {
|
||||
color = messageKindColors["text"]!;
|
||||
color = isDarkMode(context) ? Colors.white : Colors.black;
|
||||
} else {
|
||||
if (content is MediaMessageContent) {
|
||||
if (content.isRealTwonly) {
|
||||
color = primary;
|
||||
color = context.color.primary;
|
||||
} else {
|
||||
if (content.isVideo) {
|
||||
color = messageKindColors["video"]!;
|
||||
color = const Color.fromARGB(255, 240, 243, 33);
|
||||
} else {
|
||||
color = messageKindColors["image"]!;
|
||||
color = Colors.deepOrange;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@ import 'package:provider/provider.dart';
|
|||
import 'package:twonly/src/database/twonly_database.dart';
|
||||
import 'package:twonly/src/model/protobuf/api/error.pb.dart';
|
||||
import 'package:twonly/src/localization/generated/app_localizations.dart';
|
||||
import 'package:twonly/src/providers/settings_change_provider.dart';
|
||||
|
||||
extension ShortCutsExtension on BuildContext {
|
||||
AppLocalizations get lang => AppLocalizations.of(this)!;
|
||||
|
|
@ -202,3 +203,13 @@ List<Uint8List>? removeLastXBytes(Uint8List original, int count) {
|
|||
final lastXBytes = original.sublist(original.length - count);
|
||||
return [newList, lastXBytes];
|
||||
}
|
||||
|
||||
bool isDarkMode(BuildContext context) {
|
||||
ThemeMode? selectedTheme = context.read<SettingsChangeProvider>().themeMode;
|
||||
|
||||
bool isDarkMode =
|
||||
MediaQuery.of(context).platformBrightness == Brightness.dark;
|
||||
|
||||
return selectedTheme == ThemeMode.dark ||
|
||||
(selectedTheme == ThemeMode.system && isDarkMode);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -215,7 +215,7 @@ class ChatListEntry extends StatelessWidget {
|
|||
} else if (content is MediaMessageContent) {
|
||||
Color color = getMessageColorFromType(
|
||||
content,
|
||||
Theme.of(context).colorScheme.primary,
|
||||
context,
|
||||
);
|
||||
|
||||
child = GestureDetector(
|
||||
|
|
@ -259,7 +259,8 @@ class ChatListEntry extends StatelessWidget {
|
|||
width: 150,
|
||||
decoration: BoxDecoration(
|
||||
border: Border.all(
|
||||
color: messageKindColors["text"]!,
|
||||
color:
|
||||
getMessageColorFromType(TextMessageContent(text: ""), context),
|
||||
width: 1.0,
|
||||
),
|
||||
borderRadius: BorderRadius.circular(12.0),
|
||||
|
|
|
|||
|
|
@ -80,7 +80,6 @@ class _MessageSendStateIconState extends State<MessageSendStateIcon> {
|
|||
List<Widget> icons = [];
|
||||
String text = "";
|
||||
|
||||
Color twonlyColor = Theme.of(context).colorScheme.primary;
|
||||
HashSet<MessageKind> kindsAlreadyShown = HashSet();
|
||||
|
||||
for (final message in widget.messages) {
|
||||
|
|
@ -92,15 +91,14 @@ class _MessageSendStateIconState extends State<MessageSendStateIcon> {
|
|||
late Color color;
|
||||
|
||||
if (message.contentJson == null) {
|
||||
color =
|
||||
getMessageColorFromType(TextMessageContent(text: ""), twonlyColor);
|
||||
color = getMessageColorFromType(TextMessageContent(text: ""), context);
|
||||
} else {
|
||||
MessageContent? content = MessageContent.fromJson(
|
||||
message.kind,
|
||||
jsonDecode(message.contentJson!),
|
||||
);
|
||||
if (content == null) continue;
|
||||
color = getMessageColorFromType(content, twonlyColor);
|
||||
color = getMessageColorFromType(content, context);
|
||||
}
|
||||
|
||||
Widget icon = Placeholder();
|
||||
|
|
|
|||
|
|
@ -2,10 +2,8 @@ import 'dart:math';
|
|||
import 'package:avatar_maker/avatar_maker.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'package:twonly/src/model/json/userdata.dart';
|
||||
import 'package:twonly/src/providers/api/api.dart';
|
||||
import 'package:twonly/src/providers/settings_change_provider.dart';
|
||||
import 'package:twonly/src/utils/misc.dart';
|
||||
import "package:get/get.dart";
|
||||
import 'package:twonly/src/utils/storage.dart';
|
||||
|
|
@ -29,14 +27,7 @@ class ModifyAvatar extends StatelessWidget {
|
|||
}
|
||||
|
||||
AvatarMakerThemeData getAvatarMakerTheme(BuildContext context) {
|
||||
ThemeMode? selectedTheme =
|
||||
context.watch<SettingsChangeProvider>().themeMode;
|
||||
|
||||
bool isDarkMode =
|
||||
MediaQuery.of(context).platformBrightness == Brightness.dark;
|
||||
|
||||
if (selectedTheme == ThemeMode.dark ||
|
||||
(selectedTheme == ThemeMode.system && isDarkMode)) {
|
||||
if (isDarkMode(context)) {
|
||||
return AvatarMakerThemeData(
|
||||
boxDecoration: BoxDecoration(
|
||||
boxShadow: [BoxShadow()],
|
||||
|
|
|
|||
Loading…
Reference in a new issue