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