Merge pull request #41 from GetStream/feat/colorNames
update color names with develop ones
This commit is contained in:
@@ -33,22 +33,20 @@ class _AdvancedOptionsPageState extends State<AdvancedOptionsPage> {
|
|||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return Scaffold(
|
return Scaffold(
|
||||||
backgroundColor: StreamChatTheme.of(context).colorTheme.whiteSnow,
|
backgroundColor: StreamChatTheme.of(context).colorTheme.appBg,
|
||||||
appBar: AppBar(
|
appBar: AppBar(
|
||||||
backgroundColor: StreamChatTheme.of(context).colorTheme.white,
|
backgroundColor: StreamChatTheme.of(context).colorTheme.barsBg,
|
||||||
elevation: 1,
|
elevation: 1,
|
||||||
centerTitle: true,
|
centerTitle: true,
|
||||||
brightness: Theme.of(context).brightness,
|
brightness: Theme.of(context).brightness,
|
||||||
title: Text(
|
title: Text(
|
||||||
'Advanced Options',
|
'Advanced Options',
|
||||||
style: StreamChatTheme.of(context)
|
style: StreamChatTheme.of(context).textTheme.headlineBold.copyWith(
|
||||||
.textTheme
|
color: StreamChatTheme.of(context).colorTheme.textHighEmphasis),
|
||||||
.headlineBold
|
|
||||||
.copyWith(color: StreamChatTheme.of(context).colorTheme.black),
|
|
||||||
),
|
),
|
||||||
leading: IconButton(
|
leading: IconButton(
|
||||||
icon: StreamSvgIcon.left(
|
icon: StreamSvgIcon.left(
|
||||||
color: StreamChatTheme.of(context).colorTheme.black,
|
color: StreamChatTheme.of(context).colorTheme.textHighEmphasis,
|
||||||
),
|
),
|
||||||
onPressed: () {
|
onPressed: () {
|
||||||
Navigator.pop(context);
|
Navigator.pop(context);
|
||||||
@@ -85,7 +83,9 @@ class _AdvancedOptionsPageState extends State<AdvancedOptionsPage> {
|
|||||||
},
|
},
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
fontSize: 14,
|
fontSize: 14,
|
||||||
color: StreamChatTheme.of(context).colorTheme.black,
|
color: StreamChatTheme.of(context)
|
||||||
|
.colorTheme
|
||||||
|
.textHighEmphasis,
|
||||||
),
|
),
|
||||||
decoration: InputDecoration(
|
decoration: InputDecoration(
|
||||||
errorStyle: TextStyle(height: 0, fontSize: 0),
|
errorStyle: TextStyle(height: 0, fontSize: 0),
|
||||||
@@ -93,15 +93,16 @@ class _AdvancedOptionsPageState extends State<AdvancedOptionsPage> {
|
|||||||
fontSize: 14,
|
fontSize: 14,
|
||||||
fontWeight: FontWeight.bold,
|
fontWeight: FontWeight.bold,
|
||||||
color: _apiKeyError != null
|
color: _apiKeyError != null
|
||||||
? StreamChatTheme.of(context).colorTheme.accentRed
|
? StreamChatTheme.of(context).colorTheme.accentError
|
||||||
: StreamChatTheme.of(context).colorTheme.grey,
|
: StreamChatTheme.of(context)
|
||||||
|
.colorTheme
|
||||||
|
.textLowEmphasis,
|
||||||
),
|
),
|
||||||
border: UnderlineInputBorder(
|
border: UnderlineInputBorder(
|
||||||
borderRadius: BorderRadius.circular(8),
|
borderRadius: BorderRadius.circular(8),
|
||||||
borderSide: BorderSide.none,
|
borderSide: BorderSide.none,
|
||||||
),
|
),
|
||||||
fillColor:
|
fillColor: StreamChatTheme.of(context).colorTheme.inputBg,
|
||||||
StreamChatTheme.of(context).colorTheme.whiteSmoke,
|
|
||||||
filled: true,
|
filled: true,
|
||||||
labelText: _apiKeyError != null
|
labelText: _apiKeyError != null
|
||||||
? 'CHAT API KEY: $_apiKeyError'
|
? 'CHAT API KEY: $_apiKeyError'
|
||||||
@@ -131,7 +132,9 @@ class _AdvancedOptionsPageState extends State<AdvancedOptionsPage> {
|
|||||||
},
|
},
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
fontSize: 14,
|
fontSize: 14,
|
||||||
color: StreamChatTheme.of(context).colorTheme.black,
|
color: StreamChatTheme.of(context)
|
||||||
|
.colorTheme
|
||||||
|
.textHighEmphasis,
|
||||||
),
|
),
|
||||||
textInputAction: TextInputAction.next,
|
textInputAction: TextInputAction.next,
|
||||||
decoration: InputDecoration(
|
decoration: InputDecoration(
|
||||||
@@ -140,15 +143,16 @@ class _AdvancedOptionsPageState extends State<AdvancedOptionsPage> {
|
|||||||
fontWeight: FontWeight.bold,
|
fontWeight: FontWeight.bold,
|
||||||
fontSize: 14,
|
fontSize: 14,
|
||||||
color: _userIdError != null
|
color: _userIdError != null
|
||||||
? StreamChatTheme.of(context).colorTheme.accentRed
|
? StreamChatTheme.of(context).colorTheme.accentError
|
||||||
: StreamChatTheme.of(context).colorTheme.grey,
|
: StreamChatTheme.of(context)
|
||||||
|
.colorTheme
|
||||||
|
.textLowEmphasis,
|
||||||
),
|
),
|
||||||
border: UnderlineInputBorder(
|
border: UnderlineInputBorder(
|
||||||
borderRadius: BorderRadius.circular(8),
|
borderRadius: BorderRadius.circular(8),
|
||||||
borderSide: BorderSide.none,
|
borderSide: BorderSide.none,
|
||||||
),
|
),
|
||||||
fillColor:
|
fillColor: StreamChatTheme.of(context).colorTheme.inputBg,
|
||||||
StreamChatTheme.of(context).colorTheme.whiteSmoke,
|
|
||||||
filled: true,
|
filled: true,
|
||||||
labelText: _userIdError != null
|
labelText: _userIdError != null
|
||||||
? 'USER ID: $_userIdError'
|
? 'USER ID: $_userIdError'
|
||||||
@@ -177,7 +181,9 @@ class _AdvancedOptionsPageState extends State<AdvancedOptionsPage> {
|
|||||||
},
|
},
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
fontSize: 14,
|
fontSize: 14,
|
||||||
color: StreamChatTheme.of(context).colorTheme.black,
|
color: StreamChatTheme.of(context)
|
||||||
|
.colorTheme
|
||||||
|
.textHighEmphasis,
|
||||||
),
|
),
|
||||||
textInputAction: TextInputAction.next,
|
textInputAction: TextInputAction.next,
|
||||||
decoration: InputDecoration(
|
decoration: InputDecoration(
|
||||||
@@ -186,15 +192,16 @@ class _AdvancedOptionsPageState extends State<AdvancedOptionsPage> {
|
|||||||
fontWeight: FontWeight.bold,
|
fontWeight: FontWeight.bold,
|
||||||
fontSize: 14,
|
fontSize: 14,
|
||||||
color: _userTokenError != null
|
color: _userTokenError != null
|
||||||
? StreamChatTheme.of(context).colorTheme.accentRed
|
? StreamChatTheme.of(context).colorTheme.accentError
|
||||||
: StreamChatTheme.of(context).colorTheme.grey,
|
: StreamChatTheme.of(context)
|
||||||
|
.colorTheme
|
||||||
|
.textLowEmphasis,
|
||||||
),
|
),
|
||||||
border: UnderlineInputBorder(
|
border: UnderlineInputBorder(
|
||||||
borderRadius: BorderRadius.circular(8),
|
borderRadius: BorderRadius.circular(8),
|
||||||
borderSide: BorderSide.none,
|
borderSide: BorderSide.none,
|
||||||
),
|
),
|
||||||
fillColor:
|
fillColor: StreamChatTheme.of(context).colorTheme.inputBg,
|
||||||
StreamChatTheme.of(context).colorTheme.whiteSmoke,
|
|
||||||
filled: true,
|
filled: true,
|
||||||
labelText: _userTokenError != null
|
labelText: _userTokenError != null
|
||||||
? 'USER TOKEN: $_userTokenError'
|
? 'USER TOKEN: $_userTokenError'
|
||||||
@@ -209,14 +216,15 @@ class _AdvancedOptionsPageState extends State<AdvancedOptionsPage> {
|
|||||||
labelStyle: TextStyle(
|
labelStyle: TextStyle(
|
||||||
fontSize: 14,
|
fontSize: 14,
|
||||||
fontWeight: FontWeight.bold,
|
fontWeight: FontWeight.bold,
|
||||||
color: StreamChatTheme.of(context).colorTheme.grey,
|
color: StreamChatTheme.of(context)
|
||||||
|
.colorTheme
|
||||||
|
.textLowEmphasis,
|
||||||
),
|
),
|
||||||
border: UnderlineInputBorder(
|
border: UnderlineInputBorder(
|
||||||
borderRadius: BorderRadius.circular(8),
|
borderRadius: BorderRadius.circular(8),
|
||||||
borderSide: BorderSide.none,
|
borderSide: BorderSide.none,
|
||||||
),
|
),
|
||||||
fillColor:
|
fillColor: StreamChatTheme.of(context).colorTheme.inputBg,
|
||||||
StreamChatTheme.of(context).colorTheme.whiteSmoke,
|
|
||||||
filled: true,
|
filled: true,
|
||||||
labelText: 'Username (optional)',
|
labelText: 'Username (optional)',
|
||||||
),
|
),
|
||||||
@@ -228,7 +236,7 @@ class _AdvancedOptionsPageState extends State<AdvancedOptionsPage> {
|
|||||||
Theme.of(context).brightness == Brightness.light
|
Theme.of(context).brightness == Brightness.light
|
||||||
? StreamChatTheme.of(context)
|
? StreamChatTheme.of(context)
|
||||||
.colorTheme
|
.colorTheme
|
||||||
.accentBlue
|
.accentPrimary
|
||||||
: Colors.white),
|
: Colors.white),
|
||||||
elevation: MaterialStateProperty.all<double>(0),
|
elevation: MaterialStateProperty.all<double>(0),
|
||||||
padding: MaterialStateProperty.all<EdgeInsets>(
|
padding: MaterialStateProperty.all<EdgeInsets>(
|
||||||
@@ -244,7 +252,9 @@ class _AdvancedOptionsPageState extends State<AdvancedOptionsPage> {
|
|||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
fontSize: 16,
|
fontSize: 16,
|
||||||
color: Theme.of(context).brightness != Brightness.light
|
color: Theme.of(context).brightness != Brightness.light
|
||||||
? StreamChatTheme.of(context).colorTheme.accentBlue
|
? StreamChatTheme.of(context)
|
||||||
|
.colorTheme
|
||||||
|
.accentPrimary
|
||||||
: Colors.white,
|
: Colors.white,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
@@ -270,7 +280,7 @@ class _AdvancedOptionsPageState extends State<AdvancedOptionsPage> {
|
|||||||
borderRadius: BorderRadius.circular(16),
|
borderRadius: BorderRadius.circular(16),
|
||||||
color: StreamChatTheme.of(context)
|
color: StreamChatTheme.of(context)
|
||||||
.colorTheme
|
.colorTheme
|
||||||
.white,
|
.barsBg,
|
||||||
),
|
),
|
||||||
height: 100,
|
height: 100,
|
||||||
width: 100,
|
width: 100,
|
||||||
|
|||||||
@@ -50,7 +50,7 @@ class _ChannelFileDisplayScreenState extends State<ChannelFileDisplayScreen> {
|
|||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return Scaffold(
|
return Scaffold(
|
||||||
backgroundColor: StreamChatTheme.of(context).colorTheme.white,
|
backgroundColor: StreamChatTheme.of(context).colorTheme.barsBg,
|
||||||
appBar: AppBar(
|
appBar: AppBar(
|
||||||
brightness: Theme.of(context).brightness,
|
brightness: Theme.of(context).brightness,
|
||||||
elevation: 1,
|
elevation: 1,
|
||||||
@@ -58,7 +58,7 @@ class _ChannelFileDisplayScreenState extends State<ChannelFileDisplayScreen> {
|
|||||||
title: Text(
|
title: Text(
|
||||||
'Files',
|
'Files',
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
color: StreamChatTheme.of(context).colorTheme.black,
|
color: StreamChatTheme.of(context).colorTheme.textHighEmphasis,
|
||||||
fontSize: 16.0),
|
fontSize: 16.0),
|
||||||
),
|
),
|
||||||
leading: Center(
|
leading: Center(
|
||||||
@@ -70,13 +70,13 @@ class _ChannelFileDisplayScreenState extends State<ChannelFileDisplayScreen> {
|
|||||||
width: 24.0,
|
width: 24.0,
|
||||||
height: 24.0,
|
height: 24.0,
|
||||||
child: StreamSvgIcon.left(
|
child: StreamSvgIcon.left(
|
||||||
color: StreamChatTheme.of(context).colorTheme.black,
|
color: StreamChatTheme.of(context).colorTheme.textHighEmphasis,
|
||||||
size: 24.0,
|
size: 24.0,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
backgroundColor: StreamChatTheme.of(context).colorTheme.white,
|
backgroundColor: StreamChatTheme.of(context).colorTheme.barsBg,
|
||||||
),
|
),
|
||||||
body: _buildMediaGrid(),
|
body: _buildMediaGrid(),
|
||||||
);
|
);
|
||||||
@@ -103,14 +103,15 @@ class _ChannelFileDisplayScreenState extends State<ChannelFileDisplayScreen> {
|
|||||||
children: [
|
children: [
|
||||||
StreamSvgIcon.files(
|
StreamSvgIcon.files(
|
||||||
size: 136.0,
|
size: 136.0,
|
||||||
color: StreamChatTheme.of(context).colorTheme.greyGainsboro,
|
color: StreamChatTheme.of(context).colorTheme.disabled,
|
||||||
),
|
),
|
||||||
SizedBox(height: 16.0),
|
SizedBox(height: 16.0),
|
||||||
Text(
|
Text(
|
||||||
'No Files',
|
'No Files',
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
fontSize: 14.0,
|
fontSize: 14.0,
|
||||||
color: StreamChatTheme.of(context).colorTheme.black,
|
color:
|
||||||
|
StreamChatTheme.of(context).colorTheme.textHighEmphasis,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
SizedBox(height: 8.0),
|
SizedBox(height: 8.0),
|
||||||
@@ -121,7 +122,7 @@ class _ChannelFileDisplayScreenState extends State<ChannelFileDisplayScreen> {
|
|||||||
fontSize: 14.0,
|
fontSize: 14.0,
|
||||||
color: StreamChatTheme.of(context)
|
color: StreamChatTheme.of(context)
|
||||||
.colorTheme
|
.colorTheme
|
||||||
.black
|
.textHighEmphasis
|
||||||
.withOpacity(0.5),
|
.withOpacity(0.5),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|||||||
@@ -60,137 +60,137 @@ class _ChannelList extends State<ChannelList> {
|
|||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
},
|
},
|
||||||
child: ChannelsBloc(
|
child: NestedScrollView(
|
||||||
child: MessageSearchBloc(
|
floatHeaderSlivers: true,
|
||||||
child: NestedScrollView(
|
headerSliverBuilder: (_, __) => [
|
||||||
floatHeaderSlivers: true,
|
SliverToBoxAdapter(
|
||||||
headerSliverBuilder: (_, __) => [
|
child: SearchTextField(
|
||||||
SliverToBoxAdapter(
|
controller: _controller,
|
||||||
child: SearchTextField(
|
showCloseButton: _isSearchActive,
|
||||||
controller: _controller,
|
),
|
||||||
showCloseButton: _isSearchActive,
|
),
|
||||||
),
|
],
|
||||||
),
|
body: AnimatedSwitcher(
|
||||||
],
|
duration: const Duration(milliseconds: 350),
|
||||||
body: AnimatedSwitcher(
|
child: GestureDetector(
|
||||||
duration: const Duration(milliseconds: 350),
|
behavior: HitTestBehavior.opaque,
|
||||||
child: GestureDetector(
|
onPanDown: (_) => FocusScope.of(context).unfocus(),
|
||||||
behavior: HitTestBehavior.opaque,
|
child: _isSearchActive
|
||||||
onPanDown: (_) => FocusScope.of(context).unfocus(),
|
? MessageSearchBloc(
|
||||||
child: _isSearchActive
|
child: MessageSearchListView(
|
||||||
? MessageSearchListView(
|
showErrorTile: true,
|
||||||
showErrorTile: true,
|
messageQuery: _channelQuery,
|
||||||
messageQuery: _channelQuery,
|
filters: Filter.in_('members', [user!.id]),
|
||||||
filters: Filter.in_('members', [user!.id]),
|
sortOptions: [
|
||||||
sortOptions: [
|
SortOption(
|
||||||
SortOption(
|
'created_at',
|
||||||
'created_at',
|
direction: SortOption.ASC,
|
||||||
direction: SortOption.ASC,
|
),
|
||||||
),
|
],
|
||||||
],
|
pullToRefresh: false,
|
||||||
pullToRefresh: false,
|
paginationParams: PaginationParams(limit: 20),
|
||||||
paginationParams: PaginationParams(limit: 20),
|
emptyBuilder: (_) {
|
||||||
emptyBuilder: (_) {
|
return LayoutBuilder(
|
||||||
return LayoutBuilder(
|
builder: (context, viewportConstraints) {
|
||||||
builder: (context, viewportConstraints) {
|
return SingleChildScrollView(
|
||||||
return SingleChildScrollView(
|
physics: AlwaysScrollableScrollPhysics(),
|
||||||
physics: AlwaysScrollableScrollPhysics(),
|
child: ConstrainedBox(
|
||||||
child: ConstrainedBox(
|
constraints: BoxConstraints(
|
||||||
constraints: BoxConstraints(
|
minHeight: viewportConstraints.maxHeight,
|
||||||
minHeight: viewportConstraints.maxHeight,
|
),
|
||||||
),
|
child: Center(
|
||||||
child: Center(
|
child: Column(
|
||||||
child: Column(
|
children: [
|
||||||
children: [
|
Padding(
|
||||||
Padding(
|
padding: const EdgeInsets.all(24),
|
||||||
padding: const EdgeInsets.all(24),
|
child: StreamSvgIcon.search(
|
||||||
child: StreamSvgIcon.search(
|
size: 96,
|
||||||
size: 96,
|
color: Colors.grey,
|
||||||
color: Colors.grey,
|
|
||||||
),
|
|
||||||
),
|
),
|
||||||
Text(
|
),
|
||||||
'No results...',
|
Text(
|
||||||
),
|
'No results...',
|
||||||
],
|
),
|
||||||
),
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
);
|
),
|
||||||
},
|
);
|
||||||
);
|
},
|
||||||
},
|
);
|
||||||
onItemTap: (messageResponse) async {
|
},
|
||||||
FocusScope.of(context).requestFocus(FocusNode());
|
onItemTap: (messageResponse) async {
|
||||||
final client = StreamChat.of(context).client;
|
FocusScope.of(context).requestFocus(FocusNode());
|
||||||
final message = messageResponse.message;
|
final client = StreamChat.of(context).client;
|
||||||
final channel = client.channel(
|
final message = messageResponse.message;
|
||||||
messageResponse.channel!.type,
|
final channel = client.channel(
|
||||||
id: messageResponse.channel!.id,
|
messageResponse.channel!.type,
|
||||||
);
|
id: messageResponse.channel!.id,
|
||||||
if (channel.state == null) {
|
);
|
||||||
await channel.watch();
|
if (channel.state == null) {
|
||||||
}
|
await channel.watch();
|
||||||
Navigator.pushNamed(
|
}
|
||||||
|
Navigator.pushNamed(
|
||||||
|
context,
|
||||||
|
Routes.CHANNEL_PAGE,
|
||||||
|
arguments: ChannelPageArgs(
|
||||||
|
channel: channel,
|
||||||
|
initialMessage: message,
|
||||||
|
),
|
||||||
|
);
|
||||||
|
},
|
||||||
|
),
|
||||||
|
)
|
||||||
|
: ChannelsBloc(
|
||||||
|
child: ChannelListView(
|
||||||
|
onStartChatPressed: () {
|
||||||
|
Navigator.pushNamed(context, Routes.NEW_CHAT);
|
||||||
|
},
|
||||||
|
swipeToAction: true,
|
||||||
|
filter: Filter.in_('members', [user!.id]),
|
||||||
|
presence: true,
|
||||||
|
pagination: PaginationParams(
|
||||||
|
limit: 20,
|
||||||
|
),
|
||||||
|
channelWidget: ChannelPage(),
|
||||||
|
onViewInfoTap: (channel) {
|
||||||
|
Navigator.pop(context);
|
||||||
|
if (channel.memberCount == 2 && channel.isDistinct) {
|
||||||
|
Navigator.push(
|
||||||
context,
|
context,
|
||||||
Routes.CHANNEL_PAGE,
|
MaterialPageRoute(
|
||||||
arguments: ChannelPageArgs(
|
builder: (context) => StreamChannel(
|
||||||
channel: channel,
|
channel: channel,
|
||||||
initialMessage: message,
|
child: ChatInfoScreen(
|
||||||
|
messageTheme: StreamChatTheme.of(context)
|
||||||
|
.ownMessageTheme,
|
||||||
|
user: channel.state!.members
|
||||||
|
.where((m) =>
|
||||||
|
m.userId !=
|
||||||
|
channel.client.state.user!.id)
|
||||||
|
.first
|
||||||
|
.user,
|
||||||
|
),
|
||||||
|
),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
},
|
} else {
|
||||||
)
|
Navigator.push(
|
||||||
: ChannelListView(
|
context,
|
||||||
onStartChatPressed: () {
|
MaterialPageRoute(
|
||||||
Navigator.pushNamed(context, Routes.NEW_CHAT);
|
builder: (context) => StreamChannel(
|
||||||
},
|
channel: channel,
|
||||||
swipeToAction: true,
|
child: GroupInfoScreen(
|
||||||
filter: Filter.in_('members', [user!.id]),
|
messageTheme: StreamChatTheme.of(context)
|
||||||
presence: true,
|
.ownMessageTheme,
|
||||||
pagination: PaginationParams(
|
|
||||||
limit: 20,
|
|
||||||
),
|
|
||||||
channelWidget: ChannelPage(),
|
|
||||||
onViewInfoTap: (channel) {
|
|
||||||
Navigator.pop(context);
|
|
||||||
if (channel.memberCount == 2 && channel.isDistinct) {
|
|
||||||
Navigator.push(
|
|
||||||
context,
|
|
||||||
MaterialPageRoute(
|
|
||||||
builder: (context) => StreamChannel(
|
|
||||||
channel: channel,
|
|
||||||
child: ChatInfoScreen(
|
|
||||||
messageTheme: StreamChatTheme.of(context)
|
|
||||||
.ownMessageTheme,
|
|
||||||
user: channel.state!.members
|
|
||||||
.where((m) =>
|
|
||||||
m.userId !=
|
|
||||||
channel.client.state.user!.id)
|
|
||||||
.first
|
|
||||||
.user,
|
|
||||||
),
|
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
);
|
),
|
||||||
} else {
|
);
|
||||||
Navigator.push(
|
}
|
||||||
context,
|
},
|
||||||
MaterialPageRoute(
|
),
|
||||||
builder: (context) => StreamChannel(
|
),
|
||||||
channel: channel,
|
|
||||||
child: GroupInfoScreen(
|
|
||||||
messageTheme: StreamChatTheme.of(context)
|
|
||||||
.ownMessageTheme,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ class _ChannelListPageState extends State<ChannelListPage> {
|
|||||||
children: [
|
children: [
|
||||||
StreamSvgIcon.message(
|
StreamSvgIcon.message(
|
||||||
color: _isSelected(0)
|
color: _isSelected(0)
|
||||||
? StreamChatTheme.of(context).colorTheme.black
|
? StreamChatTheme.of(context).colorTheme.textHighEmphasis
|
||||||
: Colors.grey,
|
: Colors.grey,
|
||||||
),
|
),
|
||||||
Positioned(
|
Positioned(
|
||||||
@@ -51,7 +51,7 @@ class _ChannelListPageState extends State<ChannelListPage> {
|
|||||||
children: [
|
children: [
|
||||||
StreamSvgIcon.mentions(
|
StreamSvgIcon.mentions(
|
||||||
color: _isSelected(1)
|
color: _isSelected(1)
|
||||||
? StreamChatTheme.of(context).colorTheme.black
|
? StreamChatTheme.of(context).colorTheme.textHighEmphasis
|
||||||
: Colors.grey,
|
: Colors.grey,
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
@@ -68,7 +68,7 @@ class _ChannelListPageState extends State<ChannelListPage> {
|
|||||||
return Offstage();
|
return Offstage();
|
||||||
}
|
}
|
||||||
return Scaffold(
|
return Scaffold(
|
||||||
backgroundColor: StreamChatTheme.of(context).colorTheme.whiteSnow,
|
backgroundColor: StreamChatTheme.of(context).colorTheme.appBg,
|
||||||
appBar: ChannelListHeader(
|
appBar: ChannelListHeader(
|
||||||
onNewChatButtonTap: () {
|
onNewChatButtonTap: () {
|
||||||
Navigator.pushNamed(context, Routes.NEW_CHAT);
|
Navigator.pushNamed(context, Routes.NEW_CHAT);
|
||||||
@@ -82,14 +82,15 @@ class _ChannelListPageState extends State<ChannelListPage> {
|
|||||||
),
|
),
|
||||||
drawerEdgeDragWidth: 50,
|
drawerEdgeDragWidth: 50,
|
||||||
bottomNavigationBar: BottomNavigationBar(
|
bottomNavigationBar: BottomNavigationBar(
|
||||||
backgroundColor: StreamChatTheme.of(context).colorTheme.white,
|
backgroundColor: StreamChatTheme.of(context).colorTheme.barsBg,
|
||||||
currentIndex: _currentIndex,
|
currentIndex: _currentIndex,
|
||||||
items: _navBarItems,
|
items: _navBarItems,
|
||||||
selectedLabelStyle: StreamChatTheme.of(context).textTheme.footnoteBold,
|
selectedLabelStyle: StreamChatTheme.of(context).textTheme.footnoteBold,
|
||||||
unselectedLabelStyle:
|
unselectedLabelStyle:
|
||||||
StreamChatTheme.of(context).textTheme.footnoteBold,
|
StreamChatTheme.of(context).textTheme.footnoteBold,
|
||||||
type: BottomNavigationBarType.fixed,
|
type: BottomNavigationBarType.fixed,
|
||||||
selectedItemColor: StreamChatTheme.of(context).colorTheme.black,
|
selectedItemColor:
|
||||||
|
StreamChatTheme.of(context).colorTheme.textHighEmphasis,
|
||||||
unselectedItemColor: Colors.grey,
|
unselectedItemColor: Colors.grey,
|
||||||
onTap: (index) {
|
onTap: (index) {
|
||||||
setState(() => _currentIndex = index);
|
setState(() => _currentIndex = index);
|
||||||
@@ -144,7 +145,7 @@ class LeftDrawer extends StatelessWidget {
|
|||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return Drawer(
|
return Drawer(
|
||||||
child: Container(
|
child: Container(
|
||||||
color: StreamChatTheme.of(context).colorTheme.white,
|
color: StreamChatTheme.of(context).colorTheme.barsBg,
|
||||||
child: SafeArea(
|
child: SafeArea(
|
||||||
child: Padding(
|
child: Padding(
|
||||||
padding: EdgeInsets.only(
|
padding: EdgeInsets.only(
|
||||||
@@ -181,7 +182,7 @@ class LeftDrawer extends StatelessWidget {
|
|||||||
leading: StreamSvgIcon.penWrite(
|
leading: StreamSvgIcon.penWrite(
|
||||||
color: StreamChatTheme.of(context)
|
color: StreamChatTheme.of(context)
|
||||||
.colorTheme
|
.colorTheme
|
||||||
.black
|
.textHighEmphasis
|
||||||
.withOpacity(.5),
|
.withOpacity(.5),
|
||||||
),
|
),
|
||||||
onTap: () {
|
onTap: () {
|
||||||
@@ -201,7 +202,7 @@ class LeftDrawer extends StatelessWidget {
|
|||||||
leading: StreamSvgIcon.contacts(
|
leading: StreamSvgIcon.contacts(
|
||||||
color: StreamChatTheme.of(context)
|
color: StreamChatTheme.of(context)
|
||||||
.colorTheme
|
.colorTheme
|
||||||
.black
|
.textHighEmphasis
|
||||||
.withOpacity(.5),
|
.withOpacity(.5),
|
||||||
),
|
),
|
||||||
onTap: () {
|
onTap: () {
|
||||||
@@ -244,7 +245,7 @@ class LeftDrawer extends StatelessWidget {
|
|||||||
leading: StreamSvgIcon.user(
|
leading: StreamSvgIcon.user(
|
||||||
color: StreamChatTheme.of(context)
|
color: StreamChatTheme.of(context)
|
||||||
.colorTheme
|
.colorTheme
|
||||||
.black
|
.textHighEmphasis
|
||||||
.withOpacity(.5),
|
.withOpacity(.5),
|
||||||
),
|
),
|
||||||
title: Text(
|
title: Text(
|
||||||
@@ -257,7 +258,9 @@ class LeftDrawer extends StatelessWidget {
|
|||||||
icon: StreamSvgIcon.iconMoon(
|
icon: StreamSvgIcon.iconMoon(
|
||||||
size: 24,
|
size: 24,
|
||||||
),
|
),
|
||||||
color: StreamChatTheme.of(context).colorTheme.grey,
|
color: StreamChatTheme.of(context)
|
||||||
|
.colorTheme
|
||||||
|
.textLowEmphasis,
|
||||||
onPressed: () async {
|
onPressed: () async {
|
||||||
final sp = await StreamingSharedPreferences.instance;
|
final sp = await StreamingSharedPreferences.instance;
|
||||||
sp.setInt(
|
sp.setInt(
|
||||||
|
|||||||
@@ -59,7 +59,7 @@ class _ChannelMediaDisplayScreenState extends State<ChannelMediaDisplayScreen> {
|
|||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return Scaffold(
|
return Scaffold(
|
||||||
backgroundColor: StreamChatTheme.of(context).colorTheme.white,
|
backgroundColor: StreamChatTheme.of(context).colorTheme.barsBg,
|
||||||
appBar: AppBar(
|
appBar: AppBar(
|
||||||
brightness: Theme.of(context).brightness,
|
brightness: Theme.of(context).brightness,
|
||||||
elevation: 1,
|
elevation: 1,
|
||||||
@@ -67,12 +67,12 @@ class _ChannelMediaDisplayScreenState extends State<ChannelMediaDisplayScreen> {
|
|||||||
title: Text(
|
title: Text(
|
||||||
'Photos & Videos',
|
'Photos & Videos',
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
color: StreamChatTheme.of(context).colorTheme.black,
|
color: StreamChatTheme.of(context).colorTheme.textHighEmphasis,
|
||||||
fontSize: 16.0,
|
fontSize: 16.0,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
leading: StreamBackButton(),
|
leading: StreamBackButton(),
|
||||||
backgroundColor: StreamChatTheme.of(context).colorTheme.white,
|
backgroundColor: StreamChatTheme.of(context).colorTheme.barsBg,
|
||||||
),
|
),
|
||||||
body: _buildMediaGrid(),
|
body: _buildMediaGrid(),
|
||||||
);
|
);
|
||||||
@@ -99,14 +99,15 @@ class _ChannelMediaDisplayScreenState extends State<ChannelMediaDisplayScreen> {
|
|||||||
children: [
|
children: [
|
||||||
StreamSvgIcon.pictures(
|
StreamSvgIcon.pictures(
|
||||||
size: 136.0,
|
size: 136.0,
|
||||||
color: StreamChatTheme.of(context).colorTheme.greyGainsboro,
|
color: StreamChatTheme.of(context).colorTheme.disabled,
|
||||||
),
|
),
|
||||||
SizedBox(height: 16.0),
|
SizedBox(height: 16.0),
|
||||||
Text(
|
Text(
|
||||||
'No Media',
|
'No Media',
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
fontSize: 14.0,
|
fontSize: 14.0,
|
||||||
color: StreamChatTheme.of(context).colorTheme.black,
|
color:
|
||||||
|
StreamChatTheme.of(context).colorTheme.textHighEmphasis,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
SizedBox(height: 8.0),
|
SizedBox(height: 8.0),
|
||||||
@@ -117,7 +118,7 @@ class _ChannelMediaDisplayScreenState extends State<ChannelMediaDisplayScreen> {
|
|||||||
fontSize: 14.0,
|
fontSize: 14.0,
|
||||||
color: StreamChatTheme.of(context)
|
color: StreamChatTheme.of(context)
|
||||||
.colorTheme
|
.colorTheme
|
||||||
.black
|
.textHighEmphasis
|
||||||
.withOpacity(0.5),
|
.withOpacity(0.5),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|||||||
@@ -59,7 +59,7 @@ class _ChannelPageState extends State<ChannelPage> {
|
|||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return Scaffold(
|
return Scaffold(
|
||||||
backgroundColor: StreamChatTheme.of(context).colorTheme.whiteSnow,
|
backgroundColor: StreamChatTheme.of(context).colorTheme.appBg,
|
||||||
appBar: ChannelHeader(
|
appBar: ChannelHeader(
|
||||||
showTypingIndicator: false,
|
showTypingIndicator: false,
|
||||||
onImageTap: () async {
|
onImageTap: () async {
|
||||||
@@ -148,7 +148,7 @@ class _ChannelPageState extends State<ChannelPage> {
|
|||||||
alignment: Alignment.centerLeft,
|
alignment: Alignment.centerLeft,
|
||||||
color: StreamChatTheme.of(context)
|
color: StreamChatTheme.of(context)
|
||||||
.colorTheme
|
.colorTheme
|
||||||
.whiteSnow
|
.appBg
|
||||||
.withOpacity(.9),
|
.withOpacity(.9),
|
||||||
child: TypingIndicator(
|
child: TypingIndicator(
|
||||||
alignment: Alignment.centerLeft,
|
alignment: Alignment.centerLeft,
|
||||||
@@ -160,8 +160,9 @@ class _ChannelPageState extends State<ChannelPage> {
|
|||||||
.textTheme
|
.textTheme
|
||||||
.footnote
|
.footnote
|
||||||
.copyWith(
|
.copyWith(
|
||||||
color:
|
color: StreamChatTheme.of(context)
|
||||||
StreamChatTheme.of(context).colorTheme.grey),
|
.colorTheme
|
||||||
|
.textLowEmphasis),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|||||||
@@ -40,18 +40,18 @@ class _ChatInfoScreenState extends State<ChatInfoScreen> {
|
|||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
final channel = StreamChannel.of(context).channel;
|
final channel = StreamChannel.of(context).channel;
|
||||||
return Scaffold(
|
return Scaffold(
|
||||||
backgroundColor: StreamChatTheme.of(context).colorTheme.whiteSnow,
|
backgroundColor: StreamChatTheme.of(context).colorTheme.appBg,
|
||||||
body: ListView(
|
body: ListView(
|
||||||
children: [
|
children: [
|
||||||
_buildUserHeader(),
|
_buildUserHeader(),
|
||||||
Container(
|
Container(
|
||||||
height: 8.0,
|
height: 8.0,
|
||||||
color: StreamChatTheme.of(context).colorTheme.greyGainsboro,
|
color: StreamChatTheme.of(context).colorTheme.disabled,
|
||||||
),
|
),
|
||||||
_buildOptionListTiles(),
|
_buildOptionListTiles(),
|
||||||
Container(
|
Container(
|
||||||
height: 8.0,
|
height: 8.0,
|
||||||
color: StreamChatTheme.of(context).colorTheme.greyGainsboro,
|
color: StreamChatTheme.of(context).colorTheme.disabled,
|
||||||
),
|
),
|
||||||
if ([
|
if ([
|
||||||
'admin',
|
'admin',
|
||||||
@@ -68,7 +68,7 @@ class _ChatInfoScreenState extends State<ChatInfoScreen> {
|
|||||||
|
|
||||||
Widget _buildUserHeader() {
|
Widget _buildUserHeader() {
|
||||||
return Material(
|
return Material(
|
||||||
color: StreamChatTheme.of(context).colorTheme.whiteSnow,
|
color: StreamChatTheme.of(context).colorTheme.appBg,
|
||||||
child: SafeArea(
|
child: SafeArea(
|
||||||
child: Stack(
|
child: Stack(
|
||||||
children: [
|
children: [
|
||||||
@@ -96,7 +96,7 @@ class _ChatInfoScreenState extends State<ChatInfoScreen> {
|
|||||||
SizedBox(height: 15.0),
|
SizedBox(height: 15.0),
|
||||||
OptionListTile(
|
OptionListTile(
|
||||||
title: '@${widget.user!.id}',
|
title: '@${widget.user!.id}',
|
||||||
tileColor: StreamChatTheme.of(context).colorTheme.whiteSnow,
|
tileColor: StreamChatTheme.of(context).colorTheme.appBg,
|
||||||
trailing: Padding(
|
trailing: Padding(
|
||||||
padding: const EdgeInsets.symmetric(horizontal: 8.0),
|
padding: const EdgeInsets.symmetric(horizontal: 8.0),
|
||||||
child: Text(
|
child: Text(
|
||||||
@@ -104,7 +104,7 @@ class _ChatInfoScreenState extends State<ChatInfoScreen> {
|
|||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
color: StreamChatTheme.of(context)
|
color: StreamChatTheme.of(context)
|
||||||
.colorTheme
|
.colorTheme
|
||||||
.black
|
.textHighEmphasis
|
||||||
.withOpacity(0.5),
|
.withOpacity(0.5),
|
||||||
fontSize: 16.0),
|
fontSize: 16.0),
|
||||||
),
|
),
|
||||||
@@ -134,7 +134,7 @@ class _ChatInfoScreenState extends State<ChatInfoScreen> {
|
|||||||
// title: 'Notifications',
|
// title: 'Notifications',
|
||||||
// leading: StreamSvgIcon.Icon_notification(
|
// leading: StreamSvgIcon.Icon_notification(
|
||||||
// size: 24.0,
|
// size: 24.0,
|
||||||
// color: StreamChatTheme.of(context).colorTheme.black.withOpacity(0.5),
|
// color: StreamChatTheme.of(context).colorTheme.textHighEmphasis.withOpacity(0.5),
|
||||||
// ),
|
// ),
|
||||||
// trailing: CupertinoSwitch(
|
// trailing: CupertinoSwitch(
|
||||||
// value: true,
|
// value: true,
|
||||||
@@ -148,7 +148,7 @@ class _ChatInfoScreenState extends State<ChatInfoScreen> {
|
|||||||
mutedBool.value = snapshot.data;
|
mutedBool.value = snapshot.data;
|
||||||
|
|
||||||
return OptionListTile(
|
return OptionListTile(
|
||||||
tileColor: StreamChatTheme.of(context).colorTheme.whiteSnow,
|
tileColor: StreamChatTheme.of(context).colorTheme.appBg,
|
||||||
title: 'Mute user',
|
title: 'Mute user',
|
||||||
titleTextStyle: StreamChatTheme.of(context).textTheme.body,
|
titleTextStyle: StreamChatTheme.of(context).textTheme.body,
|
||||||
leading: Padding(
|
leading: Padding(
|
||||||
@@ -157,7 +157,7 @@ class _ChatInfoScreenState extends State<ChatInfoScreen> {
|
|||||||
size: 24.0,
|
size: 24.0,
|
||||||
color: StreamChatTheme.of(context)
|
color: StreamChatTheme.of(context)
|
||||||
.colorTheme
|
.colorTheme
|
||||||
.black
|
.textHighEmphasis
|
||||||
.withOpacity(0.5),
|
.withOpacity(0.5),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
@@ -186,7 +186,7 @@ class _ChatInfoScreenState extends State<ChatInfoScreen> {
|
|||||||
// title: 'Block User',
|
// title: 'Block User',
|
||||||
// leading: StreamSvgIcon.Icon_user_delete(
|
// leading: StreamSvgIcon.Icon_user_delete(
|
||||||
// size: 24.0,
|
// size: 24.0,
|
||||||
// color: StreamChatTheme.of(context).colorTheme.black.withOpacity(0.5),
|
// color: StreamChatTheme.of(context).colorTheme.textHighEmphasis.withOpacity(0.5),
|
||||||
// ),
|
// ),
|
||||||
// trailing: CupertinoSwitch(
|
// trailing: CupertinoSwitch(
|
||||||
// value: widget.user.banned,
|
// value: widget.user.banned,
|
||||||
@@ -202,18 +202,20 @@ class _ChatInfoScreenState extends State<ChatInfoScreen> {
|
|||||||
// ),
|
// ),
|
||||||
OptionListTile(
|
OptionListTile(
|
||||||
title: 'Pinned Messages',
|
title: 'Pinned Messages',
|
||||||
tileColor: StreamChatTheme.of(context).colorTheme.whiteSnow,
|
tileColor: StreamChatTheme.of(context).colorTheme.appBg,
|
||||||
titleTextStyle: StreamChatTheme.of(context).textTheme.body,
|
titleTextStyle: StreamChatTheme.of(context).textTheme.body,
|
||||||
leading: Padding(
|
leading: Padding(
|
||||||
padding: const EdgeInsets.symmetric(horizontal: 22.0),
|
padding: const EdgeInsets.symmetric(horizontal: 22.0),
|
||||||
child: StreamSvgIcon.pin(
|
child: StreamSvgIcon.pin(
|
||||||
size: 24.0,
|
size: 24.0,
|
||||||
color:
|
color: StreamChatTheme.of(context)
|
||||||
StreamChatTheme.of(context).colorTheme.black.withOpacity(0.5),
|
.colorTheme
|
||||||
|
.textHighEmphasis
|
||||||
|
.withOpacity(0.5),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
trailing: StreamSvgIcon.right(
|
trailing: StreamSvgIcon.right(
|
||||||
color: StreamChatTheme.of(context).colorTheme.grey,
|
color: StreamChatTheme.of(context).colorTheme.textLowEmphasis,
|
||||||
),
|
),
|
||||||
onTap: () {
|
onTap: () {
|
||||||
final channel = StreamChannel.of(context).channel;
|
final channel = StreamChannel.of(context).channel;
|
||||||
@@ -261,18 +263,20 @@ class _ChatInfoScreenState extends State<ChatInfoScreen> {
|
|||||||
),
|
),
|
||||||
OptionListTile(
|
OptionListTile(
|
||||||
title: 'Photos & Videos',
|
title: 'Photos & Videos',
|
||||||
tileColor: StreamChatTheme.of(context).colorTheme.whiteSnow,
|
tileColor: StreamChatTheme.of(context).colorTheme.appBg,
|
||||||
titleTextStyle: StreamChatTheme.of(context).textTheme.body,
|
titleTextStyle: StreamChatTheme.of(context).textTheme.body,
|
||||||
leading: Padding(
|
leading: Padding(
|
||||||
padding: const EdgeInsets.symmetric(horizontal: 16.0),
|
padding: const EdgeInsets.symmetric(horizontal: 16.0),
|
||||||
child: StreamSvgIcon.pictures(
|
child: StreamSvgIcon.pictures(
|
||||||
size: 36.0,
|
size: 36.0,
|
||||||
color:
|
color: StreamChatTheme.of(context)
|
||||||
StreamChatTheme.of(context).colorTheme.black.withOpacity(0.5),
|
.colorTheme
|
||||||
|
.textHighEmphasis
|
||||||
|
.withOpacity(0.5),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
trailing: StreamSvgIcon.right(
|
trailing: StreamSvgIcon.right(
|
||||||
color: StreamChatTheme.of(context).colorTheme.grey,
|
color: StreamChatTheme.of(context).colorTheme.textLowEmphasis,
|
||||||
),
|
),
|
||||||
onTap: () {
|
onTap: () {
|
||||||
final channel = StreamChannel.of(context).channel;
|
final channel = StreamChannel.of(context).channel;
|
||||||
@@ -320,18 +324,20 @@ class _ChatInfoScreenState extends State<ChatInfoScreen> {
|
|||||||
),
|
),
|
||||||
OptionListTile(
|
OptionListTile(
|
||||||
title: 'Files',
|
title: 'Files',
|
||||||
tileColor: StreamChatTheme.of(context).colorTheme.whiteSnow,
|
tileColor: StreamChatTheme.of(context).colorTheme.appBg,
|
||||||
titleTextStyle: StreamChatTheme.of(context).textTheme.body,
|
titleTextStyle: StreamChatTheme.of(context).textTheme.body,
|
||||||
leading: Padding(
|
leading: Padding(
|
||||||
padding: const EdgeInsets.symmetric(horizontal: 18.0),
|
padding: const EdgeInsets.symmetric(horizontal: 18.0),
|
||||||
child: StreamSvgIcon.files(
|
child: StreamSvgIcon.files(
|
||||||
size: 32.0,
|
size: 32.0,
|
||||||
color:
|
color: StreamChatTheme.of(context)
|
||||||
StreamChatTheme.of(context).colorTheme.black.withOpacity(0.5),
|
.colorTheme
|
||||||
|
.textHighEmphasis
|
||||||
|
.withOpacity(0.5),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
trailing: StreamSvgIcon.right(
|
trailing: StreamSvgIcon.right(
|
||||||
color: StreamChatTheme.of(context).colorTheme.grey,
|
color: StreamChatTheme.of(context).colorTheme.textLowEmphasis,
|
||||||
),
|
),
|
||||||
onTap: () {
|
onTap: () {
|
||||||
final channel = StreamChannel.of(context).channel;
|
final channel = StreamChannel.of(context).channel;
|
||||||
@@ -359,18 +365,20 @@ class _ChatInfoScreenState extends State<ChatInfoScreen> {
|
|||||||
),
|
),
|
||||||
OptionListTile(
|
OptionListTile(
|
||||||
title: 'Shared groups',
|
title: 'Shared groups',
|
||||||
tileColor: StreamChatTheme.of(context).colorTheme.whiteSnow,
|
tileColor: StreamChatTheme.of(context).colorTheme.appBg,
|
||||||
titleTextStyle: StreamChatTheme.of(context).textTheme.body,
|
titleTextStyle: StreamChatTheme.of(context).textTheme.body,
|
||||||
leading: Padding(
|
leading: Padding(
|
||||||
padding: const EdgeInsets.symmetric(horizontal: 22.0),
|
padding: const EdgeInsets.symmetric(horizontal: 22.0),
|
||||||
child: StreamSvgIcon.iconGroup(
|
child: StreamSvgIcon.iconGroup(
|
||||||
size: 24.0,
|
size: 24.0,
|
||||||
color:
|
color: StreamChatTheme.of(context)
|
||||||
StreamChatTheme.of(context).colorTheme.black.withOpacity(0.5),
|
.colorTheme
|
||||||
|
.textHighEmphasis
|
||||||
|
.withOpacity(0.5),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
trailing: StreamSvgIcon.right(
|
trailing: StreamSvgIcon.right(
|
||||||
color: StreamChatTheme.of(context).colorTheme.grey,
|
color: StreamChatTheme.of(context).colorTheme.textLowEmphasis,
|
||||||
),
|
),
|
||||||
onTap: () {
|
onTap: () {
|
||||||
Navigator.push(
|
Navigator.push(
|
||||||
@@ -387,21 +395,21 @@ class _ChatInfoScreenState extends State<ChatInfoScreen> {
|
|||||||
Widget _buildDeleteListTile() {
|
Widget _buildDeleteListTile() {
|
||||||
return OptionListTile(
|
return OptionListTile(
|
||||||
title: 'Delete Conversation',
|
title: 'Delete Conversation',
|
||||||
tileColor: StreamChatTheme.of(context).colorTheme.whiteSnow,
|
tileColor: StreamChatTheme.of(context).colorTheme.appBg,
|
||||||
titleTextStyle: StreamChatTheme.of(context).textTheme.body.copyWith(
|
titleTextStyle: StreamChatTheme.of(context).textTheme.body.copyWith(
|
||||||
color: StreamChatTheme.of(context).colorTheme.accentRed,
|
color: StreamChatTheme.of(context).colorTheme.accentError,
|
||||||
),
|
),
|
||||||
leading: Padding(
|
leading: Padding(
|
||||||
padding: const EdgeInsets.symmetric(horizontal: 22.0),
|
padding: const EdgeInsets.symmetric(horizontal: 22.0),
|
||||||
child: StreamSvgIcon.delete(
|
child: StreamSvgIcon.delete(
|
||||||
color: StreamChatTheme.of(context).colorTheme.accentRed,
|
color: StreamChatTheme.of(context).colorTheme.accentError,
|
||||||
size: 24.0,
|
size: 24.0,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
onTap: () {
|
onTap: () {
|
||||||
_showDeleteDialog();
|
_showDeleteDialog();
|
||||||
},
|
},
|
||||||
titleColor: StreamChatTheme.of(context).colorTheme.accentRed,
|
titleColor: StreamChatTheme.of(context).colorTheme.accentError,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -413,7 +421,7 @@ class _ChatInfoScreenState extends State<ChatInfoScreen> {
|
|||||||
question: 'Are you sure you want to delete this conversation?',
|
question: 'Are you sure you want to delete this conversation?',
|
||||||
cancelText: 'CANCEL',
|
cancelText: 'CANCEL',
|
||||||
icon: StreamSvgIcon.delete(
|
icon: StreamSvgIcon.delete(
|
||||||
color: StreamChatTheme.of(context).colorTheme.accentRed,
|
color: StreamChatTheme.of(context).colorTheme.accentError,
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
var channel = StreamChannel.of(context).channel;
|
var channel = StreamChannel.of(context).channel;
|
||||||
@@ -437,7 +445,7 @@ class _ChatInfoScreenState extends State<ChatInfoScreen> {
|
|||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
color: StreamChatTheme.of(context)
|
color: StreamChatTheme.of(context)
|
||||||
.colorTheme
|
.colorTheme
|
||||||
.black
|
.textHighEmphasis
|
||||||
.withOpacity(0.5)),
|
.withOpacity(0.5)),
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
@@ -446,7 +454,7 @@ class _ChatInfoScreenState extends State<ChatInfoScreen> {
|
|||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
color: StreamChatTheme.of(context)
|
color: StreamChatTheme.of(context)
|
||||||
.colorTheme
|
.colorTheme
|
||||||
.black
|
.textHighEmphasis
|
||||||
.withOpacity(0.5)),
|
.withOpacity(0.5)),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@@ -466,10 +474,10 @@ class _ChatInfoScreenState extends State<ChatInfoScreen> {
|
|||||||
),
|
),
|
||||||
child: Material(
|
child: Material(
|
||||||
shape: CircleBorder(),
|
shape: CircleBorder(),
|
||||||
color: StreamChatTheme.of(context).colorTheme.accentGreen,
|
color: StreamChatTheme.of(context).colorTheme.accentInfo,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
color: StreamChatTheme.of(context).colorTheme.white,
|
color: StreamChatTheme.of(context).colorTheme.barsBg,
|
||||||
),
|
),
|
||||||
alternativeWidget,
|
alternativeWidget,
|
||||||
if (widget.user!.online)
|
if (widget.user!.online)
|
||||||
@@ -497,7 +505,7 @@ class __SharedGroupsScreenState extends State<_SharedGroupsScreen> {
|
|||||||
var chat = StreamChat.of(context);
|
var chat = StreamChat.of(context);
|
||||||
|
|
||||||
return Scaffold(
|
return Scaffold(
|
||||||
backgroundColor: StreamChatTheme.of(context).colorTheme.whiteSnow,
|
backgroundColor: StreamChatTheme.of(context).colorTheme.appBg,
|
||||||
appBar: AppBar(
|
appBar: AppBar(
|
||||||
brightness: Theme.of(context).brightness,
|
brightness: Theme.of(context).brightness,
|
||||||
elevation: 1,
|
elevation: 1,
|
||||||
@@ -505,11 +513,11 @@ class __SharedGroupsScreenState extends State<_SharedGroupsScreen> {
|
|||||||
title: Text(
|
title: Text(
|
||||||
'Shared Groups',
|
'Shared Groups',
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
color: StreamChatTheme.of(context).colorTheme.black,
|
color: StreamChatTheme.of(context).colorTheme.textHighEmphasis,
|
||||||
fontSize: 16.0),
|
fontSize: 16.0),
|
||||||
),
|
),
|
||||||
leading: StreamBackButton(),
|
leading: StreamBackButton(),
|
||||||
backgroundColor: StreamChatTheme.of(context).colorTheme.white,
|
backgroundColor: StreamChatTheme.of(context).colorTheme.barsBg,
|
||||||
),
|
),
|
||||||
body: StreamBuilder<List<Channel>>(
|
body: StreamBuilder<List<Channel>>(
|
||||||
stream: chat.client.queryChannels(
|
stream: chat.client.queryChannels(
|
||||||
@@ -532,14 +540,16 @@ class __SharedGroupsScreenState extends State<_SharedGroupsScreen> {
|
|||||||
children: [
|
children: [
|
||||||
StreamSvgIcon.message(
|
StreamSvgIcon.message(
|
||||||
size: 136.0,
|
size: 136.0,
|
||||||
color: StreamChatTheme.of(context).colorTheme.greyGainsboro,
|
color: StreamChatTheme.of(context).colorTheme.disabled,
|
||||||
),
|
),
|
||||||
SizedBox(height: 16.0),
|
SizedBox(height: 16.0),
|
||||||
Text(
|
Text(
|
||||||
'No Shared Groups',
|
'No Shared Groups',
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
fontSize: 14.0,
|
fontSize: 14.0,
|
||||||
color: StreamChatTheme.of(context).colorTheme.black,
|
color: StreamChatTheme.of(context)
|
||||||
|
.colorTheme
|
||||||
|
.textHighEmphasis,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
SizedBox(height: 8.0),
|
SizedBox(height: 8.0),
|
||||||
@@ -550,7 +560,7 @@ class __SharedGroupsScreenState extends State<_SharedGroupsScreen> {
|
|||||||
fontSize: 14.0,
|
fontSize: 14.0,
|
||||||
color: StreamChatTheme.of(context)
|
color: StreamChatTheme.of(context)
|
||||||
.colorTheme
|
.colorTheme
|
||||||
.black
|
.textHighEmphasis
|
||||||
.withOpacity(0.5),
|
.withOpacity(0.5),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
@@ -643,7 +653,7 @@ class __SharedGroupsScreenState extends State<_SharedGroupsScreen> {
|
|||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
color: StreamChatTheme.of(context)
|
color: StreamChatTheme.of(context)
|
||||||
.colorTheme
|
.colorTheme
|
||||||
.black
|
.textHighEmphasis
|
||||||
.withOpacity(0.5)),
|
.withOpacity(0.5)),
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
@@ -652,8 +662,10 @@ class __SharedGroupsScreenState extends State<_SharedGroupsScreen> {
|
|||||||
),
|
),
|
||||||
Container(
|
Container(
|
||||||
height: 1.0,
|
height: 1.0,
|
||||||
color:
|
color: StreamChatTheme.of(context)
|
||||||
StreamChatTheme.of(context).colorTheme.black.withOpacity(.08),
|
.colorTheme
|
||||||
|
.textHighEmphasis
|
||||||
|
.withOpacity(.08),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -66,7 +66,7 @@ class ChipInputTextFieldState<T> extends State<ChipsInputTextField<T>> {
|
|||||||
onTap: _pauseItemAddition ? resumeItemAddition : null,
|
onTap: _pauseItemAddition ? resumeItemAddition : null,
|
||||||
child: Material(
|
child: Material(
|
||||||
elevation: 1,
|
elevation: 1,
|
||||||
color: StreamChatTheme.of(context).colorTheme.white,
|
color: StreamChatTheme.of(context).colorTheme.barsBg,
|
||||||
child: Container(
|
child: Container(
|
||||||
child: Padding(
|
child: Padding(
|
||||||
padding: const EdgeInsets.fromLTRB(16, 16, 16, 16),
|
padding: const EdgeInsets.fromLTRB(16, 16, 16, 16),
|
||||||
@@ -82,7 +82,7 @@ class ChipInputTextFieldState<T> extends State<ChipsInputTextField<T>> {
|
|||||||
.copyWith(
|
.copyWith(
|
||||||
color: StreamChatTheme.of(context)
|
color: StreamChatTheme.of(context)
|
||||||
.colorTheme
|
.colorTheme
|
||||||
.black
|
.textHighEmphasis
|
||||||
.withOpacity(.5)),
|
.withOpacity(.5)),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
@@ -119,7 +119,7 @@ class ChipInputTextFieldState<T> extends State<ChipsInputTextField<T>> {
|
|||||||
.copyWith(
|
.copyWith(
|
||||||
color: StreamChatTheme.of(context)
|
color: StreamChatTheme.of(context)
|
||||||
.colorTheme
|
.colorTheme
|
||||||
.black
|
.textHighEmphasis
|
||||||
.withOpacity(.5)),
|
.withOpacity(.5)),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
@@ -134,14 +134,14 @@ class ChipInputTextFieldState<T> extends State<ChipsInputTextField<T>> {
|
|||||||
? StreamSvgIcon.user(
|
? StreamSvgIcon.user(
|
||||||
color: StreamChatTheme.of(context)
|
color: StreamChatTheme.of(context)
|
||||||
.colorTheme
|
.colorTheme
|
||||||
.black
|
.textHighEmphasis
|
||||||
.withOpacity(0.5),
|
.withOpacity(0.5),
|
||||||
size: 24,
|
size: 24,
|
||||||
)
|
)
|
||||||
: StreamSvgIcon.userAdd(
|
: StreamSvgIcon.userAdd(
|
||||||
color: StreamChatTheme.of(context)
|
color: StreamChatTheme.of(context)
|
||||||
.colorTheme
|
.colorTheme
|
||||||
.black
|
.textHighEmphasis
|
||||||
.withOpacity(0.5),
|
.withOpacity(0.5),
|
||||||
size: 24,
|
size: 24,
|
||||||
),
|
),
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ class ChooseUserPage extends StatelessWidget {
|
|||||||
final users = defaultUsers;
|
final users = defaultUsers;
|
||||||
|
|
||||||
return Scaffold(
|
return Scaffold(
|
||||||
backgroundColor: StreamChatTheme.of(context).colorTheme.whiteSnow,
|
backgroundColor: StreamChatTheme.of(context).colorTheme.appBg,
|
||||||
body: SafeArea(
|
body: SafeArea(
|
||||||
child: Column(
|
child: Column(
|
||||||
crossAxisAlignment: CrossAxisAlignment.center,
|
crossAxisAlignment: CrossAxisAlignment.center,
|
||||||
@@ -34,7 +34,7 @@ class ChooseUserPage extends StatelessWidget {
|
|||||||
child: SvgPicture.asset(
|
child: SvgPicture.asset(
|
||||||
'assets/logo.svg',
|
'assets/logo.svg',
|
||||||
height: 40,
|
height: 40,
|
||||||
color: StreamChatTheme.of(context).colorTheme.accentBlue,
|
color: StreamChatTheme.of(context).colorTheme.accentPrimary,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
@@ -56,7 +56,7 @@ class ChooseUserPage extends StatelessWidget {
|
|||||||
separatorBuilder: (context, i) {
|
separatorBuilder: (context, i) {
|
||||||
return Container(
|
return Container(
|
||||||
height: 1,
|
height: 1,
|
||||||
color: StreamChatTheme.of(context).colorTheme.greyWhisper,
|
color: StreamChatTheme.of(context).colorTheme.borders,
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
itemCount: users.length + 1,
|
itemCount: users.length + 1,
|
||||||
@@ -80,7 +80,7 @@ class ChooseUserPage extends StatelessWidget {
|
|||||||
borderRadius: BorderRadius.circular(16),
|
borderRadius: BorderRadius.circular(16),
|
||||||
color: StreamChatTheme.of(context)
|
color: StreamChatTheme.of(context)
|
||||||
.colorTheme
|
.colorTheme
|
||||||
.white,
|
.barsBg,
|
||||||
),
|
),
|
||||||
height: 100,
|
height: 100,
|
||||||
width: 100,
|
width: 100,
|
||||||
@@ -94,7 +94,7 @@ class ChooseUserPage extends StatelessWidget {
|
|||||||
final client = StreamChatClient(
|
final client = StreamChatClient(
|
||||||
kDefaultStreamApiKey,
|
kDefaultStreamApiKey,
|
||||||
logLevel: Level.INFO,
|
logLevel: Level.INFO,
|
||||||
)..chatPersistenceClient = chatPersistentClient;
|
);
|
||||||
|
|
||||||
await client.connectUser(
|
await client.connectUser(
|
||||||
user,
|
user,
|
||||||
@@ -142,13 +142,13 @@ class ChooseUserPage extends StatelessWidget {
|
|||||||
.copyWith(
|
.copyWith(
|
||||||
color: StreamChatTheme.of(context)
|
color: StreamChatTheme.of(context)
|
||||||
.colorTheme
|
.colorTheme
|
||||||
.grey,
|
.textLowEmphasis,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
trailing: StreamSvgIcon.arrowRight(
|
trailing: StreamSvgIcon.arrowRight(
|
||||||
color: StreamChatTheme.of(context)
|
color: StreamChatTheme.of(context)
|
||||||
.colorTheme
|
.colorTheme
|
||||||
.accentBlue,
|
.accentPrimary,
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}),
|
}),
|
||||||
@@ -158,11 +158,12 @@ class ChooseUserPage extends StatelessWidget {
|
|||||||
},
|
},
|
||||||
leading: CircleAvatar(
|
leading: CircleAvatar(
|
||||||
child: StreamSvgIcon.settings(
|
child: StreamSvgIcon.settings(
|
||||||
color: StreamChatTheme.of(context).colorTheme.black,
|
color: StreamChatTheme.of(context)
|
||||||
|
.colorTheme
|
||||||
|
.textHighEmphasis,
|
||||||
),
|
),
|
||||||
backgroundColor: StreamChatTheme.of(context)
|
backgroundColor:
|
||||||
.colorTheme
|
StreamChatTheme.of(context).colorTheme.borders,
|
||||||
.greyWhisper,
|
|
||||||
),
|
),
|
||||||
title: Text(
|
title: Text(
|
||||||
'Advanced Options',
|
'Advanced Options',
|
||||||
@@ -174,8 +175,9 @@ class ChooseUserPage extends StatelessWidget {
|
|||||||
.textTheme
|
.textTheme
|
||||||
.footnote
|
.footnote
|
||||||
.copyWith(
|
.copyWith(
|
||||||
color:
|
color: StreamChatTheme.of(context)
|
||||||
StreamChatTheme.of(context).colorTheme.grey,
|
.colorTheme
|
||||||
|
.textLowEmphasis,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
trailing: SvgPicture.asset(
|
trailing: SvgPicture.asset(
|
||||||
|
|||||||
@@ -59,16 +59,16 @@ class _GroupChatDetailsScreenState extends State<GroupChatDetailsScreen> {
|
|||||||
return false;
|
return false;
|
||||||
},
|
},
|
||||||
child: Scaffold(
|
child: Scaffold(
|
||||||
backgroundColor: StreamChatTheme.of(context).colorTheme.whiteSnow,
|
backgroundColor: StreamChatTheme.of(context).colorTheme.appBg,
|
||||||
appBar: AppBar(
|
appBar: AppBar(
|
||||||
brightness: Theme.of(context).brightness,
|
brightness: Theme.of(context).brightness,
|
||||||
elevation: 1,
|
elevation: 1,
|
||||||
backgroundColor: StreamChatTheme.of(context).colorTheme.white,
|
backgroundColor: StreamChatTheme.of(context).colorTheme.barsBg,
|
||||||
leading: const StreamBackButton(),
|
leading: const StreamBackButton(),
|
||||||
title: Text(
|
title: Text(
|
||||||
'Name of Group Chat',
|
'Name of Group Chat',
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
color: StreamChatTheme.of(context).colorTheme.black,
|
color: StreamChatTheme.of(context).colorTheme.textHighEmphasis,
|
||||||
fontSize: 16,
|
fontSize: 16,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
@@ -83,7 +83,9 @@ class _GroupChatDetailsScreenState extends State<GroupChatDetailsScreen> {
|
|||||||
'NAME',
|
'NAME',
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
fontSize: 12,
|
fontSize: 12,
|
||||||
color: StreamChatTheme.of(context).colorTheme.grey,
|
color: StreamChatTheme.of(context)
|
||||||
|
.colorTheme
|
||||||
|
.textLowEmphasis,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
SizedBox(width: 16),
|
SizedBox(width: 16),
|
||||||
@@ -101,7 +103,9 @@ class _GroupChatDetailsScreenState extends State<GroupChatDetailsScreen> {
|
|||||||
hintText: 'Choose a group chat name',
|
hintText: 'Choose a group chat name',
|
||||||
hintStyle: TextStyle(
|
hintStyle: TextStyle(
|
||||||
fontSize: 14,
|
fontSize: 14,
|
||||||
color: StreamChatTheme.of(context).colorTheme.grey,
|
color: StreamChatTheme.of(context)
|
||||||
|
.colorTheme
|
||||||
|
.textLowEmphasis,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
@@ -117,8 +121,8 @@ class _GroupChatDetailsScreenState extends State<GroupChatDetailsScreen> {
|
|||||||
icon: StreamSvgIcon.check(
|
icon: StreamSvgIcon.check(
|
||||||
size: 24,
|
size: 24,
|
||||||
color: _isGroupNameEmpty
|
color: _isGroupNameEmpty
|
||||||
? StreamChatTheme.of(context).colorTheme.grey
|
? StreamChatTheme.of(context).colorTheme.textLowEmphasis
|
||||||
: StreamChatTheme.of(context).colorTheme.accentBlue,
|
: StreamChatTheme.of(context).colorTheme.accentPrimary,
|
||||||
),
|
),
|
||||||
onPressed: _isGroupNameEmpty
|
onPressed: _isGroupNameEmpty
|
||||||
? null
|
? null
|
||||||
@@ -188,7 +192,9 @@ class _GroupChatDetailsScreenState extends State<GroupChatDetailsScreen> {
|
|||||||
child: Text(
|
child: Text(
|
||||||
'$_totalUsers ${_totalUsers > 1 ? 'Members' : 'Member'}',
|
'$_totalUsers ${_totalUsers > 1 ? 'Members' : 'Member'}',
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
color: StreamChatTheme.of(context).colorTheme.grey,
|
color: StreamChatTheme.of(context)
|
||||||
|
.colorTheme
|
||||||
|
.textLowEmphasis,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
@@ -201,9 +207,7 @@ class _GroupChatDetailsScreenState extends State<GroupChatDetailsScreen> {
|
|||||||
itemCount: _selectedUsers.length + 1,
|
itemCount: _selectedUsers.length + 1,
|
||||||
separatorBuilder: (_, __) => Container(
|
separatorBuilder: (_, __) => Container(
|
||||||
height: 1,
|
height: 1,
|
||||||
color: StreamChatTheme.of(context)
|
color: StreamChatTheme.of(context).colorTheme.borders,
|
||||||
.colorTheme
|
|
||||||
.greyWhisper,
|
|
||||||
),
|
),
|
||||||
itemBuilder: (_, index) {
|
itemBuilder: (_, index) {
|
||||||
if (index == _selectedUsers.length) {
|
if (index == _selectedUsers.length) {
|
||||||
@@ -211,7 +215,7 @@ class _GroupChatDetailsScreenState extends State<GroupChatDetailsScreen> {
|
|||||||
height: 1,
|
height: 1,
|
||||||
color: StreamChatTheme.of(context)
|
color: StreamChatTheme.of(context)
|
||||||
.colorTheme
|
.colorTheme
|
||||||
.greyWhisper,
|
.borders,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
final user = _selectedUsers[index];
|
final user = _selectedUsers[index];
|
||||||
@@ -237,7 +241,7 @@ class _GroupChatDetailsScreenState extends State<GroupChatDetailsScreen> {
|
|||||||
Icons.clear_rounded,
|
Icons.clear_rounded,
|
||||||
color: StreamChatTheme.of(context)
|
color: StreamChatTheme.of(context)
|
||||||
.colorTheme
|
.colorTheme
|
||||||
.black,
|
.textHighEmphasis,
|
||||||
),
|
),
|
||||||
padding: const EdgeInsets.all(0),
|
padding: const EdgeInsets.all(0),
|
||||||
splashRadius: 24,
|
splashRadius: 24,
|
||||||
@@ -267,7 +271,7 @@ class _GroupChatDetailsScreenState extends State<GroupChatDetailsScreen> {
|
|||||||
void _showErrorAlert() {
|
void _showErrorAlert() {
|
||||||
showModalBottomSheet(
|
showModalBottomSheet(
|
||||||
useRootNavigator: false,
|
useRootNavigator: false,
|
||||||
backgroundColor: StreamChatTheme.of(context).colorTheme.white,
|
backgroundColor: StreamChatTheme.of(context).colorTheme.barsBg,
|
||||||
context: context,
|
context: context,
|
||||||
shape: RoundedRectangleBorder(
|
shape: RoundedRectangleBorder(
|
||||||
borderRadius: BorderRadius.only(
|
borderRadius: BorderRadius.only(
|
||||||
@@ -282,7 +286,7 @@ class _GroupChatDetailsScreenState extends State<GroupChatDetailsScreen> {
|
|||||||
height: 26.0,
|
height: 26.0,
|
||||||
),
|
),
|
||||||
StreamSvgIcon.error(
|
StreamSvgIcon.error(
|
||||||
color: StreamChatTheme.of(context).colorTheme.accentRed,
|
color: StreamChatTheme.of(context).colorTheme.accentError,
|
||||||
size: 24.0,
|
size: 24.0,
|
||||||
),
|
),
|
||||||
SizedBox(
|
SizedBox(
|
||||||
@@ -300,8 +304,10 @@ class _GroupChatDetailsScreenState extends State<GroupChatDetailsScreen> {
|
|||||||
height: 36.0,
|
height: 36.0,
|
||||||
),
|
),
|
||||||
Container(
|
Container(
|
||||||
color:
|
color: StreamChatTheme.of(context)
|
||||||
StreamChatTheme.of(context).colorTheme.black.withOpacity(.08),
|
.colorTheme
|
||||||
|
.textHighEmphasis
|
||||||
|
.withOpacity(.08),
|
||||||
height: 1.0,
|
height: 1.0,
|
||||||
),
|
),
|
||||||
Row(
|
Row(
|
||||||
@@ -316,7 +322,7 @@ class _GroupChatDetailsScreenState extends State<GroupChatDetailsScreen> {
|
|||||||
.copyWith(
|
.copyWith(
|
||||||
color: StreamChatTheme.of(context)
|
color: StreamChatTheme.of(context)
|
||||||
.colorTheme
|
.colorTheme
|
||||||
.accentBlue),
|
.accentPrimary),
|
||||||
),
|
),
|
||||||
onPressed: () {
|
onPressed: () {
|
||||||
Navigator.of(context).pop();
|
Navigator.of(context).pop();
|
||||||
|
|||||||
@@ -81,7 +81,7 @@ class _GroupInfoScreenState extends State<GroupInfoScreen> {
|
|||||||
builder: (context, snapshot) {
|
builder: (context, snapshot) {
|
||||||
if (!snapshot.hasData) {
|
if (!snapshot.hasData) {
|
||||||
return Container(
|
return Container(
|
||||||
color: StreamChatTheme.of(context).colorTheme.greyGainsboro,
|
color: StreamChatTheme.of(context).colorTheme.disabled,
|
||||||
child: Center(child: CircularProgressIndicator()),
|
child: Center(child: CircularProgressIndicator()),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@@ -92,12 +92,12 @@ class _GroupInfoScreenState extends State<GroupInfoScreen> {
|
|||||||
var isOwner = userMember?.role == 'owner';
|
var isOwner = userMember?.role == 'owner';
|
||||||
|
|
||||||
return Scaffold(
|
return Scaffold(
|
||||||
backgroundColor: StreamChatTheme.of(context).colorTheme.whiteSnow,
|
backgroundColor: StreamChatTheme.of(context).colorTheme.appBg,
|
||||||
appBar: AppBar(
|
appBar: AppBar(
|
||||||
brightness: Theme.of(context).brightness,
|
brightness: Theme.of(context).brightness,
|
||||||
elevation: 1.0,
|
elevation: 1.0,
|
||||||
toolbarHeight: 56.0,
|
toolbarHeight: 56.0,
|
||||||
backgroundColor: StreamChatTheme.of(context).colorTheme.white,
|
backgroundColor: StreamChatTheme.of(context).colorTheme.barsBg,
|
||||||
leading: StreamBackButton(),
|
leading: StreamBackButton(),
|
||||||
title: Column(
|
title: Column(
|
||||||
children: [
|
children: [
|
||||||
@@ -108,8 +108,9 @@ class _GroupInfoScreenState extends State<GroupInfoScreen> {
|
|||||||
return Text(
|
return Text(
|
||||||
'Loading...',
|
'Loading...',
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
color:
|
color: StreamChatTheme.of(context)
|
||||||
StreamChatTheme.of(context).colorTheme.black,
|
.colorTheme
|
||||||
|
.textHighEmphasis,
|
||||||
fontSize: 16,
|
fontSize: 16,
|
||||||
),
|
),
|
||||||
maxLines: 1,
|
maxLines: 1,
|
||||||
@@ -125,7 +126,9 @@ class _GroupInfoScreenState extends State<GroupInfoScreen> {
|
|||||||
maxFontSize: 16.0,
|
maxFontSize: 16.0,
|
||||||
)!,
|
)!,
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
color: StreamChatTheme.of(context).colorTheme.black,
|
color: StreamChatTheme.of(context)
|
||||||
|
.colorTheme
|
||||||
|
.textHighEmphasis,
|
||||||
fontSize: 16,
|
fontSize: 16,
|
||||||
),
|
),
|
||||||
maxLines: 1,
|
maxLines: 1,
|
||||||
@@ -140,7 +143,7 @@ class _GroupInfoScreenState extends State<GroupInfoScreen> {
|
|||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
color: StreamChatTheme.of(context)
|
color: StreamChatTheme.of(context)
|
||||||
.colorTheme
|
.colorTheme
|
||||||
.black
|
.textHighEmphasis
|
||||||
.withOpacity(0.5),
|
.withOpacity(0.5),
|
||||||
fontSize: 12.0,
|
fontSize: 12.0,
|
||||||
),
|
),
|
||||||
@@ -160,7 +163,7 @@ class _GroupInfoScreenState extends State<GroupInfoScreen> {
|
|||||||
child: StreamSvgIcon.userAdd(
|
child: StreamSvgIcon.userAdd(
|
||||||
color: StreamChatTheme.of(context)
|
color: StreamChatTheme.of(context)
|
||||||
.colorTheme
|
.colorTheme
|
||||||
.accentBlue),
|
.accentPrimary),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
@@ -171,7 +174,7 @@ class _GroupInfoScreenState extends State<GroupInfoScreen> {
|
|||||||
_buildMembers(snapshot.data!),
|
_buildMembers(snapshot.data!),
|
||||||
Container(
|
Container(
|
||||||
height: 8.0,
|
height: 8.0,
|
||||||
color: StreamChatTheme.of(context).colorTheme.greyGainsboro,
|
color: StreamChatTheme.of(context).colorTheme.disabled,
|
||||||
),
|
),
|
||||||
if (isOwner) _buildNameTile(),
|
if (isOwner) _buildNameTile(),
|
||||||
_buildOptionListTiles(),
|
_buildOptionListTiles(),
|
||||||
@@ -244,7 +247,7 @@ class _GroupInfoScreenState extends State<GroupInfoScreen> {
|
|||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
color: StreamChatTheme.of(context)
|
color: StreamChatTheme.of(context)
|
||||||
.colorTheme
|
.colorTheme
|
||||||
.black
|
.textHighEmphasis
|
||||||
.withOpacity(0.5)),
|
.withOpacity(0.5)),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
@@ -257,7 +260,7 @@ class _GroupInfoScreenState extends State<GroupInfoScreen> {
|
|||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
color: StreamChatTheme.of(context)
|
color: StreamChatTheme.of(context)
|
||||||
.colorTheme
|
.colorTheme
|
||||||
.black
|
.textHighEmphasis
|
||||||
.withOpacity(0.5)),
|
.withOpacity(0.5)),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
@@ -267,13 +270,13 @@ class _GroupInfoScreenState extends State<GroupInfoScreen> {
|
|||||||
height: 1.0,
|
height: 1.0,
|
||||||
color: StreamChatTheme.of(context)
|
color: StreamChatTheme.of(context)
|
||||||
.colorTheme
|
.colorTheme
|
||||||
.greyGainsboro,
|
.disabled,
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
color: StreamChatTheme.of(context).colorTheme.whiteSnow,
|
color: StreamChatTheme.of(context).colorTheme.appBg,
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
@@ -285,7 +288,7 @@ class _GroupInfoScreenState extends State<GroupInfoScreen> {
|
|||||||
});
|
});
|
||||||
},
|
},
|
||||||
child: Material(
|
child: Material(
|
||||||
color: StreamChatTheme.of(context).colorTheme.whiteSnow,
|
color: StreamChatTheme.of(context).colorTheme.appBg,
|
||||||
child: Container(
|
child: Container(
|
||||||
height: 65.0,
|
height: 65.0,
|
||||||
child: Column(
|
child: Column(
|
||||||
@@ -297,8 +300,9 @@ class _GroupInfoScreenState extends State<GroupInfoScreen> {
|
|||||||
padding: const EdgeInsets.symmetric(
|
padding: const EdgeInsets.symmetric(
|
||||||
horizontal: 21.0, vertical: 12.0),
|
horizontal: 21.0, vertical: 12.0),
|
||||||
child: StreamSvgIcon.down(
|
child: StreamSvgIcon.down(
|
||||||
color:
|
color: StreamChatTheme.of(context)
|
||||||
StreamChatTheme.of(context).colorTheme.grey,
|
.colorTheme
|
||||||
|
.textLowEmphasis,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
Expanded(
|
Expanded(
|
||||||
@@ -311,7 +315,7 @@ class _GroupInfoScreenState extends State<GroupInfoScreen> {
|
|||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
color: StreamChatTheme.of(context)
|
color: StreamChatTheme.of(context)
|
||||||
.colorTheme
|
.colorTheme
|
||||||
.grey),
|
.textLowEmphasis),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
@@ -321,8 +325,7 @@ class _GroupInfoScreenState extends State<GroupInfoScreen> {
|
|||||||
),
|
),
|
||||||
Container(
|
Container(
|
||||||
height: 1.0,
|
height: 1.0,
|
||||||
color:
|
color: StreamChatTheme.of(context).colorTheme.disabled,
|
||||||
StreamChatTheme.of(context).colorTheme.greyGainsboro,
|
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
@@ -338,7 +341,7 @@ class _GroupInfoScreenState extends State<GroupInfoScreen> {
|
|||||||
var channelName = (channel.extraData['name'] as String?) ?? '';
|
var channelName = (channel.extraData['name'] as String?) ?? '';
|
||||||
|
|
||||||
return Material(
|
return Material(
|
||||||
color: StreamChatTheme.of(context).colorTheme.whiteSnow,
|
color: StreamChatTheme.of(context).colorTheme.appBg,
|
||||||
child: Container(
|
child: Container(
|
||||||
height: 56.0,
|
height: 56.0,
|
||||||
alignment: Alignment.center,
|
alignment: Alignment.center,
|
||||||
@@ -351,7 +354,7 @@ class _GroupInfoScreenState extends State<GroupInfoScreen> {
|
|||||||
style: StreamChatTheme.of(context).textTheme.footnote.copyWith(
|
style: StreamChatTheme.of(context).textTheme.footnote.copyWith(
|
||||||
color: StreamChatTheme.of(context)
|
color: StreamChatTheme.of(context)
|
||||||
.colorTheme
|
.colorTheme
|
||||||
.black
|
.textHighEmphasis
|
||||||
.withOpacity(0.5)),
|
.withOpacity(0.5)),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
@@ -362,7 +365,8 @@ class _GroupInfoScreenState extends State<GroupInfoScreen> {
|
|||||||
child: TextField(
|
child: TextField(
|
||||||
focusNode: _focusNode,
|
focusNode: _focusNode,
|
||||||
controller: _nameController,
|
controller: _nameController,
|
||||||
cursorColor: StreamChatTheme.of(context).colorTheme.black,
|
cursorColor:
|
||||||
|
StreamChatTheme.of(context).colorTheme.textHighEmphasis,
|
||||||
decoration: InputDecoration.collapsed(
|
decoration: InputDecoration.collapsed(
|
||||||
hintText: 'Add a group name',
|
hintText: 'Add a group name',
|
||||||
hintStyle: StreamChatTheme.of(context)
|
hintStyle: StreamChatTheme.of(context)
|
||||||
@@ -371,7 +375,7 @@ class _GroupInfoScreenState extends State<GroupInfoScreen> {
|
|||||||
.copyWith(
|
.copyWith(
|
||||||
color: StreamChatTheme.of(context)
|
color: StreamChatTheme.of(context)
|
||||||
.colorTheme
|
.colorTheme
|
||||||
.black
|
.textHighEmphasis
|
||||||
.withOpacity(0.5))),
|
.withOpacity(0.5))),
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
fontWeight: FontWeight.bold,
|
fontWeight: FontWeight.bold,
|
||||||
@@ -401,8 +405,9 @@ class _GroupInfoScreenState extends State<GroupInfoScreen> {
|
|||||||
padding: const EdgeInsets.only(right: 16.0, left: 8.0),
|
padding: const EdgeInsets.only(right: 16.0, left: 8.0),
|
||||||
child: InkWell(
|
child: InkWell(
|
||||||
child: StreamSvgIcon.check(
|
child: StreamSvgIcon.check(
|
||||||
color:
|
color: StreamChatTheme.of(context)
|
||||||
StreamChatTheme.of(context).colorTheme.accentBlue,
|
.colorTheme
|
||||||
|
.accentPrimary,
|
||||||
size: 24.0,
|
size: 24.0,
|
||||||
),
|
),
|
||||||
onTap: () {
|
onTap: () {
|
||||||
@@ -434,7 +439,7 @@ class _GroupInfoScreenState extends State<GroupInfoScreen> {
|
|||||||
// title: 'Notifications',
|
// title: 'Notifications',
|
||||||
// leading: StreamSvgIcon.Icon_notification(
|
// leading: StreamSvgIcon.Icon_notification(
|
||||||
// size: 24.0,
|
// size: 24.0,
|
||||||
// color: StreamChatTheme.of(context).colorTheme.black.withOpacity(0.5),
|
// color: StreamChatTheme.of(context).colorTheme.textHighEmphasis.withOpacity(0.5),
|
||||||
// ),
|
// ),
|
||||||
// trailing: CupertinoSwitch(
|
// trailing: CupertinoSwitch(
|
||||||
// value: true,
|
// value: true,
|
||||||
@@ -448,9 +453,8 @@ class _GroupInfoScreenState extends State<GroupInfoScreen> {
|
|||||||
mutedBool.value = snapshot.data;
|
mutedBool.value = snapshot.data;
|
||||||
|
|
||||||
return OptionListTile(
|
return OptionListTile(
|
||||||
tileColor: StreamChatTheme.of(context).colorTheme.whiteSnow,
|
tileColor: StreamChatTheme.of(context).colorTheme.appBg,
|
||||||
separatorColor:
|
separatorColor: StreamChatTheme.of(context).colorTheme.disabled,
|
||||||
StreamChatTheme.of(context).colorTheme.greyGainsboro,
|
|
||||||
title: 'Mute group',
|
title: 'Mute group',
|
||||||
titleTextStyle: StreamChatTheme.of(context).textTheme.body,
|
titleTextStyle: StreamChatTheme.of(context).textTheme.body,
|
||||||
leading: Padding(
|
leading: Padding(
|
||||||
@@ -459,7 +463,7 @@ class _GroupInfoScreenState extends State<GroupInfoScreen> {
|
|||||||
size: 24.0,
|
size: 24.0,
|
||||||
color: StreamChatTheme.of(context)
|
color: StreamChatTheme.of(context)
|
||||||
.colorTheme
|
.colorTheme
|
||||||
.black
|
.textHighEmphasis
|
||||||
.withOpacity(0.5),
|
.withOpacity(0.5),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
@@ -486,18 +490,20 @@ class _GroupInfoScreenState extends State<GroupInfoScreen> {
|
|||||||
}),
|
}),
|
||||||
OptionListTile(
|
OptionListTile(
|
||||||
title: 'Pinned Messages',
|
title: 'Pinned Messages',
|
||||||
tileColor: StreamChatTheme.of(context).colorTheme.whiteSnow,
|
tileColor: StreamChatTheme.of(context).colorTheme.appBg,
|
||||||
titleTextStyle: StreamChatTheme.of(context).textTheme.body,
|
titleTextStyle: StreamChatTheme.of(context).textTheme.body,
|
||||||
leading: Padding(
|
leading: Padding(
|
||||||
padding: const EdgeInsets.symmetric(horizontal: 16.0),
|
padding: const EdgeInsets.symmetric(horizontal: 16.0),
|
||||||
child: StreamSvgIcon.pin(
|
child: StreamSvgIcon.pin(
|
||||||
size: 24.0,
|
size: 24.0,
|
||||||
color:
|
color: StreamChatTheme.of(context)
|
||||||
StreamChatTheme.of(context).colorTheme.black.withOpacity(0.5),
|
.colorTheme
|
||||||
|
.textHighEmphasis
|
||||||
|
.withOpacity(0.5),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
trailing: StreamSvgIcon.right(
|
trailing: StreamSvgIcon.right(
|
||||||
color: StreamChatTheme.of(context).colorTheme.grey,
|
color: StreamChatTheme.of(context).colorTheme.textLowEmphasis,
|
||||||
),
|
),
|
||||||
onTap: () {
|
onTap: () {
|
||||||
final channel = StreamChannel.of(context).channel;
|
final channel = StreamChannel.of(context).channel;
|
||||||
@@ -544,20 +550,22 @@ class _GroupInfoScreenState extends State<GroupInfoScreen> {
|
|||||||
},
|
},
|
||||||
),
|
),
|
||||||
OptionListTile(
|
OptionListTile(
|
||||||
tileColor: StreamChatTheme.of(context).colorTheme.whiteSnow,
|
tileColor: StreamChatTheme.of(context).colorTheme.appBg,
|
||||||
separatorColor: StreamChatTheme.of(context).colorTheme.greyGainsboro,
|
separatorColor: StreamChatTheme.of(context).colorTheme.disabled,
|
||||||
title: 'Photos & Videos',
|
title: 'Photos & Videos',
|
||||||
titleTextStyle: StreamChatTheme.of(context).textTheme.body,
|
titleTextStyle: StreamChatTheme.of(context).textTheme.body,
|
||||||
leading: Padding(
|
leading: Padding(
|
||||||
padding: const EdgeInsets.symmetric(horizontal: 12.0),
|
padding: const EdgeInsets.symmetric(horizontal: 12.0),
|
||||||
child: StreamSvgIcon.pictures(
|
child: StreamSvgIcon.pictures(
|
||||||
size: 32.0,
|
size: 32.0,
|
||||||
color:
|
color: StreamChatTheme.of(context)
|
||||||
StreamChatTheme.of(context).colorTheme.black.withOpacity(0.5),
|
.colorTheme
|
||||||
|
.textHighEmphasis
|
||||||
|
.withOpacity(0.5),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
trailing: StreamSvgIcon.right(
|
trailing: StreamSvgIcon.right(
|
||||||
color: StreamChatTheme.of(context).colorTheme.grey,
|
color: StreamChatTheme.of(context).colorTheme.textLowEmphasis,
|
||||||
),
|
),
|
||||||
onTap: () {
|
onTap: () {
|
||||||
var channel = StreamChannel.of(context).channel;
|
var channel = StreamChannel.of(context).channel;
|
||||||
@@ -604,20 +612,22 @@ class _GroupInfoScreenState extends State<GroupInfoScreen> {
|
|||||||
},
|
},
|
||||||
),
|
),
|
||||||
OptionListTile(
|
OptionListTile(
|
||||||
tileColor: StreamChatTheme.of(context).colorTheme.whiteSnow,
|
tileColor: StreamChatTheme.of(context).colorTheme.appBg,
|
||||||
separatorColor: StreamChatTheme.of(context).colorTheme.greyGainsboro,
|
separatorColor: StreamChatTheme.of(context).colorTheme.disabled,
|
||||||
title: 'Files',
|
title: 'Files',
|
||||||
titleTextStyle: StreamChatTheme.of(context).textTheme.body,
|
titleTextStyle: StreamChatTheme.of(context).textTheme.body,
|
||||||
leading: Padding(
|
leading: Padding(
|
||||||
padding: const EdgeInsets.symmetric(horizontal: 12.0),
|
padding: const EdgeInsets.symmetric(horizontal: 12.0),
|
||||||
child: StreamSvgIcon.files(
|
child: StreamSvgIcon.files(
|
||||||
size: 32.0,
|
size: 32.0,
|
||||||
color:
|
color: StreamChatTheme.of(context)
|
||||||
StreamChatTheme.of(context).colorTheme.black.withOpacity(0.5),
|
.colorTheme
|
||||||
|
.textHighEmphasis
|
||||||
|
.withOpacity(0.5),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
trailing: StreamSvgIcon.right(
|
trailing: StreamSvgIcon.right(
|
||||||
color: StreamChatTheme.of(context).colorTheme.grey,
|
color: StreamChatTheme.of(context).colorTheme.textLowEmphasis,
|
||||||
),
|
),
|
||||||
onTap: () {
|
onTap: () {
|
||||||
var channel = StreamChannel.of(context).channel;
|
var channel = StreamChannel.of(context).channel;
|
||||||
@@ -645,9 +655,8 @@ class _GroupInfoScreenState extends State<GroupInfoScreen> {
|
|||||||
),
|
),
|
||||||
if (!channel.channel.isDistinct)
|
if (!channel.channel.isDistinct)
|
||||||
OptionListTile(
|
OptionListTile(
|
||||||
tileColor: StreamChatTheme.of(context).colorTheme.whiteSnow,
|
tileColor: StreamChatTheme.of(context).colorTheme.appBg,
|
||||||
separatorColor:
|
separatorColor: StreamChatTheme.of(context).colorTheme.disabled,
|
||||||
StreamChatTheme.of(context).colorTheme.greyGainsboro,
|
|
||||||
title: 'Leave Group',
|
title: 'Leave Group',
|
||||||
titleTextStyle: StreamChatTheme.of(context).textTheme.body,
|
titleTextStyle: StreamChatTheme.of(context).textTheme.body,
|
||||||
leading: Padding(
|
leading: Padding(
|
||||||
@@ -656,7 +665,7 @@ class _GroupInfoScreenState extends State<GroupInfoScreen> {
|
|||||||
size: 24.0,
|
size: 24.0,
|
||||||
color: StreamChatTheme.of(context)
|
color: StreamChatTheme.of(context)
|
||||||
.colorTheme
|
.colorTheme
|
||||||
.black
|
.textHighEmphasis
|
||||||
.withOpacity(0.5),
|
.withOpacity(0.5),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
@@ -672,7 +681,7 @@ class _GroupInfoScreenState extends State<GroupInfoScreen> {
|
|||||||
question: 'Are you sure you want to leave this conversation?',
|
question: 'Are you sure you want to leave this conversation?',
|
||||||
cancelText: 'CANCEL',
|
cancelText: 'CANCEL',
|
||||||
icon: StreamSvgIcon.userRemove(
|
icon: StreamSvgIcon.userRemove(
|
||||||
color: StreamChatTheme.of(context).colorTheme.accentRed,
|
color: StreamChatTheme.of(context).colorTheme.accentError,
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
if (res == true) {
|
if (res == true) {
|
||||||
@@ -762,7 +771,7 @@ class _GroupInfoScreenState extends State<GroupInfoScreen> {
|
|||||||
size: 96,
|
size: 96,
|
||||||
color: StreamChatTheme.of(context)
|
color: StreamChatTheme.of(context)
|
||||||
.colorTheme
|
.colorTheme
|
||||||
.grey,
|
.textLowEmphasis,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
Text(
|
Text(
|
||||||
@@ -800,28 +809,28 @@ class _GroupInfoScreenState extends State<GroupInfoScreen> {
|
|||||||
height: 36,
|
height: 36,
|
||||||
child: TextField(
|
child: TextField(
|
||||||
controller: _searchController,
|
controller: _searchController,
|
||||||
cursorColor: theme.colorTheme.black,
|
cursorColor: theme.colorTheme.textHighEmphasis,
|
||||||
autofocus: true,
|
autofocus: true,
|
||||||
decoration: InputDecoration(
|
decoration: InputDecoration(
|
||||||
hintText: 'Search',
|
hintText: 'Search',
|
||||||
hintStyle: theme.textTheme.body.copyWith(
|
hintStyle: theme.textTheme.body.copyWith(
|
||||||
color: theme.colorTheme.grey,
|
color: theme.colorTheme.textLowEmphasis,
|
||||||
),
|
),
|
||||||
prefixIconConstraints: BoxConstraints.tight(Size(40, 24)),
|
prefixIconConstraints: BoxConstraints.tight(Size(40, 24)),
|
||||||
prefixIcon: StreamSvgIcon.search(
|
prefixIcon: StreamSvgIcon.search(
|
||||||
color: theme.colorTheme.black,
|
color: theme.colorTheme.textHighEmphasis,
|
||||||
size: 24,
|
size: 24,
|
||||||
),
|
),
|
||||||
enabledBorder: OutlineInputBorder(
|
enabledBorder: OutlineInputBorder(
|
||||||
borderRadius: BorderRadius.circular(24.0),
|
borderRadius: BorderRadius.circular(24.0),
|
||||||
borderSide: BorderSide(
|
borderSide: BorderSide(
|
||||||
color: theme.colorTheme.greyWhisper,
|
color: theme.colorTheme.borders,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
focusedBorder: OutlineInputBorder(
|
focusedBorder: OutlineInputBorder(
|
||||||
borderRadius: BorderRadius.circular(24.0),
|
borderRadius: BorderRadius.circular(24.0),
|
||||||
borderSide: BorderSide(
|
borderSide: BorderSide(
|
||||||
color: theme.colorTheme.greyWhisper,
|
color: theme.colorTheme.borders,
|
||||||
)),
|
)),
|
||||||
contentPadding: const EdgeInsets.all(0),
|
contentPadding: const EdgeInsets.all(0),
|
||||||
),
|
),
|
||||||
@@ -831,7 +840,7 @@ class _GroupInfoScreenState extends State<GroupInfoScreen> {
|
|||||||
SizedBox(width: 16.0),
|
SizedBox(width: 16.0),
|
||||||
IconButton(
|
IconButton(
|
||||||
icon: StreamSvgIcon.closeSmall(
|
icon: StreamSvgIcon.closeSmall(
|
||||||
color: theme.colorTheme.grey,
|
color: theme.colorTheme.textLowEmphasis,
|
||||||
),
|
),
|
||||||
constraints: BoxConstraints.tightFor(
|
constraints: BoxConstraints.tightFor(
|
||||||
height: 24,
|
height: 24,
|
||||||
@@ -849,7 +858,7 @@ class _GroupInfoScreenState extends State<GroupInfoScreen> {
|
|||||||
|
|
||||||
void _showUserInfoModal(User? user, bool isUserAdmin) {
|
void _showUserInfoModal(User? user, bool isUserAdmin) {
|
||||||
var channel = StreamChannel.of(context).channel;
|
var channel = StreamChannel.of(context).channel;
|
||||||
final color = StreamChatTheme.of(context).colorTheme.white;
|
final color = StreamChatTheme.of(context).colorTheme.barsBg;
|
||||||
|
|
||||||
showModalBottomSheet(
|
showModalBottomSheet(
|
||||||
useRootNavigator: false,
|
useRootNavigator: false,
|
||||||
@@ -899,7 +908,9 @@ class _GroupInfoScreenState extends State<GroupInfoScreen> {
|
|||||||
_buildModalListTile(
|
_buildModalListTile(
|
||||||
context,
|
context,
|
||||||
StreamSvgIcon.user(
|
StreamSvgIcon.user(
|
||||||
color: StreamChatTheme.of(context).colorTheme.grey,
|
color: StreamChatTheme.of(context)
|
||||||
|
.colorTheme
|
||||||
|
.textLowEmphasis,
|
||||||
size: 24.0,
|
size: 24.0,
|
||||||
),
|
),
|
||||||
'View info',
|
'View info',
|
||||||
@@ -933,7 +944,9 @@ class _GroupInfoScreenState extends State<GroupInfoScreen> {
|
|||||||
_buildModalListTile(
|
_buildModalListTile(
|
||||||
context,
|
context,
|
||||||
StreamSvgIcon.message(
|
StreamSvgIcon.message(
|
||||||
color: StreamChatTheme.of(context).colorTheme.grey,
|
color: StreamChatTheme.of(context)
|
||||||
|
.colorTheme
|
||||||
|
.textLowEmphasis,
|
||||||
size: 24.0,
|
size: 24.0,
|
||||||
),
|
),
|
||||||
'Message',
|
'Message',
|
||||||
@@ -966,7 +979,7 @@ class _GroupInfoScreenState extends State<GroupInfoScreen> {
|
|||||||
// _buildModalListTile(
|
// _buildModalListTile(
|
||||||
// context,
|
// context,
|
||||||
// StreamSvgIcon.iconUserSettings(
|
// StreamSvgIcon.iconUserSettings(
|
||||||
// color: StreamChatTheme.of(context).colorTheme.grey,
|
// color: StreamChatTheme.of(context).colorTheme.textLowEmphasis,
|
||||||
// size: 24.0,
|
// size: 24.0,
|
||||||
// ),
|
// ),
|
||||||
// 'Make Owner', () {
|
// 'Make Owner', () {
|
||||||
@@ -978,8 +991,8 @@ class _GroupInfoScreenState extends State<GroupInfoScreen> {
|
|||||||
_buildModalListTile(
|
_buildModalListTile(
|
||||||
context,
|
context,
|
||||||
StreamSvgIcon.userRemove(
|
StreamSvgIcon.userRemove(
|
||||||
color:
|
color: StreamChatTheme.of(context)
|
||||||
StreamChatTheme.of(context).colorTheme.accentRed,
|
.colorTheme.accentError,
|
||||||
size: 24.0,
|
size: 24.0,
|
||||||
),
|
),
|
||||||
'Remove From Group', () async {
|
'Remove From Group', () async {
|
||||||
@@ -996,11 +1009,15 @@ class _GroupInfoScreenState extends State<GroupInfoScreen> {
|
|||||||
await channel.removeMembers([user.id]);
|
await channel.removeMembers([user.id]);
|
||||||
}
|
}
|
||||||
Navigator.pop(context);
|
Navigator.pop(context);
|
||||||
}, color: StreamChatTheme.of(context).colorTheme.accentRed),
|
},
|
||||||
|
color: StreamChatTheme.of(context)
|
||||||
|
.colorTheme.accentError),
|
||||||
_buildModalListTile(
|
_buildModalListTile(
|
||||||
context,
|
context,
|
||||||
StreamSvgIcon.closeSmall(
|
StreamSvgIcon.closeSmall(
|
||||||
color: StreamChatTheme.of(context).colorTheme.grey,
|
color: StreamChatTheme.of(context)
|
||||||
|
.colorTheme
|
||||||
|
.textLowEmphasis,
|
||||||
size: 24.0,
|
size: 24.0,
|
||||||
),
|
),
|
||||||
'Cancel', () {
|
'Cancel', () {
|
||||||
@@ -1033,7 +1050,7 @@ class _GroupInfoScreenState extends State<GroupInfoScreen> {
|
|||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
color: StreamChatTheme.of(context)
|
color: StreamChatTheme.of(context)
|
||||||
.colorTheme
|
.colorTheme
|
||||||
.black
|
.textHighEmphasis
|
||||||
.withOpacity(0.5)),
|
.withOpacity(0.5)),
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
@@ -1042,7 +1059,7 @@ class _GroupInfoScreenState extends State<GroupInfoScreen> {
|
|||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
color: StreamChatTheme.of(context)
|
color: StreamChatTheme.of(context)
|
||||||
.colorTheme
|
.colorTheme
|
||||||
.black
|
.textHighEmphasis
|
||||||
.withOpacity(0.5)),
|
.withOpacity(0.5)),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@@ -1054,17 +1071,17 @@ class _GroupInfoScreenState extends State<GroupInfoScreen> {
|
|||||||
Widget _buildModalListTile(
|
Widget _buildModalListTile(
|
||||||
BuildContext context, Widget leading, String title, VoidCallback onTap,
|
BuildContext context, Widget leading, String title, VoidCallback onTap,
|
||||||
{Color? color}) {
|
{Color? color}) {
|
||||||
color ??= StreamChatTheme.of(context).colorTheme.black;
|
color ??= StreamChatTheme.of(context).colorTheme.textHighEmphasis;
|
||||||
|
|
||||||
return Material(
|
return Material(
|
||||||
color: StreamChatTheme.of(context).colorTheme.white,
|
color: StreamChatTheme.of(context).colorTheme.barsBg,
|
||||||
child: InkWell(
|
child: InkWell(
|
||||||
onTap: onTap,
|
onTap: onTap,
|
||||||
child: Column(
|
child: Column(
|
||||||
children: [
|
children: [
|
||||||
Container(
|
Container(
|
||||||
height: 1.0,
|
height: 1.0,
|
||||||
color: StreamChatTheme.of(context).colorTheme.greyGainsboro,
|
color: StreamChatTheme.of(context).colorTheme.disabled,
|
||||||
),
|
),
|
||||||
Container(
|
Container(
|
||||||
height: 64.0,
|
height: 64.0,
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ import 'routes/routes.dart';
|
|||||||
|
|
||||||
final chatPersistentClient = StreamChatPersistenceClient(
|
final chatPersistentClient = StreamChatPersistenceClient(
|
||||||
logLevel: Level.SEVERE,
|
logLevel: Level.SEVERE,
|
||||||
connectionMode: ConnectionMode.background,
|
connectionMode: ConnectionMode.regular,
|
||||||
);
|
);
|
||||||
|
|
||||||
void main() async {
|
void main() async {
|
||||||
@@ -46,8 +46,8 @@ class _MyAppState extends State<MyApp>
|
|||||||
|
|
||||||
final client = StreamChatClient(
|
final client = StreamChatClient(
|
||||||
apiKey ?? kDefaultStreamApiKey,
|
apiKey ?? kDefaultStreamApiKey,
|
||||||
logLevel: Level.INFO,
|
logLevel: Level.SEVERE,
|
||||||
)..chatPersistenceClient = chatPersistentClient;
|
);
|
||||||
|
|
||||||
if (userId != null && token != null) {
|
if (userId != null && token != null) {
|
||||||
await client.connectUser(
|
await client.connectUser(
|
||||||
|
|||||||
@@ -117,18 +117,16 @@ class _NewChatScreenState extends State<NewChatScreen> {
|
|||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return Scaffold(
|
return Scaffold(
|
||||||
backgroundColor: StreamChatTheme.of(context).colorTheme.whiteSnow,
|
backgroundColor: StreamChatTheme.of(context).colorTheme.appBg,
|
||||||
appBar: AppBar(
|
appBar: AppBar(
|
||||||
brightness: Theme.of(context).brightness,
|
brightness: Theme.of(context).brightness,
|
||||||
elevation: 0,
|
elevation: 0,
|
||||||
backgroundColor: StreamChatTheme.of(context).colorTheme.white,
|
backgroundColor: StreamChatTheme.of(context).colorTheme.barsBg,
|
||||||
leading: const StreamBackButton(),
|
leading: const StreamBackButton(),
|
||||||
title: Text(
|
title: Text(
|
||||||
'New Chat',
|
'New Chat',
|
||||||
style: StreamChatTheme.of(context)
|
style: StreamChatTheme.of(context).textTheme.headlineBold.copyWith(
|
||||||
.textTheme
|
color: StreamChatTheme.of(context).colorTheme.textHighEmphasis),
|
||||||
.headlineBold
|
|
||||||
.copyWith(color: StreamChatTheme.of(context).colorTheme.black),
|
|
||||||
),
|
),
|
||||||
centerTitle: true,
|
centerTitle: true,
|
||||||
),
|
),
|
||||||
@@ -177,7 +175,7 @@ class _NewChatScreenState extends State<NewChatScreen> {
|
|||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
color: StreamChatTheme.of(context)
|
color: StreamChatTheme.of(context)
|
||||||
.colorTheme
|
.colorTheme
|
||||||
.greyGainsboro,
|
.disabled,
|
||||||
borderRadius: BorderRadius.circular(12),
|
borderRadius: BorderRadius.circular(12),
|
||||||
),
|
),
|
||||||
padding: const EdgeInsets.only(left: 24),
|
padding: const EdgeInsets.only(left: 24),
|
||||||
@@ -189,7 +187,7 @@ class _NewChatScreenState extends State<NewChatScreen> {
|
|||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
color: StreamChatTheme.of(context)
|
color: StreamChatTheme.of(context)
|
||||||
.colorTheme
|
.colorTheme
|
||||||
.black,
|
.textHighEmphasis,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
@@ -240,7 +238,7 @@ class _NewChatScreenState extends State<NewChatScreen> {
|
|||||||
child: StreamSvgIcon.contacts(
|
child: StreamSvgIcon.contacts(
|
||||||
color: StreamChatTheme.of(context)
|
color: StreamChatTheme.of(context)
|
||||||
.colorTheme
|
.colorTheme
|
||||||
.accentBlue,
|
.accentPrimary,
|
||||||
size: 24,
|
size: 24,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
@@ -279,7 +277,7 @@ class _NewChatScreenState extends State<NewChatScreen> {
|
|||||||
.copyWith(
|
.copyWith(
|
||||||
color: StreamChatTheme.of(context)
|
color: StreamChatTheme.of(context)
|
||||||
.colorTheme
|
.colorTheme
|
||||||
.black
|
.textHighEmphasis
|
||||||
.withOpacity(.5))),
|
.withOpacity(.5))),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
@@ -350,7 +348,7 @@ class _NewChatScreenState extends State<NewChatScreen> {
|
|||||||
color: StreamChatTheme
|
color: StreamChatTheme
|
||||||
.of(context)
|
.of(context)
|
||||||
.colorTheme
|
.colorTheme
|
||||||
.black
|
.textHighEmphasis
|
||||||
.withOpacity(.5)),
|
.withOpacity(.5)),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
@@ -378,7 +376,7 @@ class _NewChatScreenState extends State<NewChatScreen> {
|
|||||||
fontSize: 12,
|
fontSize: 12,
|
||||||
color: StreamChatTheme.of(context)
|
color: StreamChatTheme.of(context)
|
||||||
.colorTheme
|
.colorTheme
|
||||||
.black
|
.textHighEmphasis
|
||||||
.withOpacity(.5),
|
.withOpacity(.5),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
@@ -396,7 +394,7 @@ class _NewChatScreenState extends State<NewChatScreen> {
|
|||||||
Navigator.pushNamedAndRemoveUntil(
|
Navigator.pushNamedAndRemoveUntil(
|
||||||
context,
|
context,
|
||||||
Routes.CHANNEL_PAGE,
|
Routes.CHANNEL_PAGE,
|
||||||
ModalRoute.withName(Routes.HOME),
|
ModalRoute.withName(Routes.CHANNEL_LIST_PAGE),
|
||||||
arguments: ChannelPageArgs(channel: channel),
|
arguments: ChannelPageArgs(channel: channel),
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -51,15 +51,15 @@ class _NewGroupChatScreenState extends State<NewGroupChatScreen> {
|
|||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return Scaffold(
|
return Scaffold(
|
||||||
backgroundColor: StreamChatTheme.of(context).colorTheme.whiteSnow,
|
backgroundColor: StreamChatTheme.of(context).colorTheme.appBg,
|
||||||
appBar: AppBar(
|
appBar: AppBar(
|
||||||
elevation: 1,
|
elevation: 1,
|
||||||
backgroundColor: StreamChatTheme.of(context).colorTheme.white,
|
backgroundColor: StreamChatTheme.of(context).colorTheme.barsBg,
|
||||||
leading: const StreamBackButton(),
|
leading: const StreamBackButton(),
|
||||||
title: Text(
|
title: Text(
|
||||||
'Add Group Members',
|
'Add Group Members',
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
color: StreamChatTheme.of(context).colorTheme.black,
|
color: StreamChatTheme.of(context).colorTheme.textHighEmphasis,
|
||||||
fontSize: 16,
|
fontSize: 16,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
@@ -68,7 +68,7 @@ class _NewGroupChatScreenState extends State<NewGroupChatScreen> {
|
|||||||
if (_selectedUsers.isNotEmpty)
|
if (_selectedUsers.isNotEmpty)
|
||||||
IconButton(
|
IconButton(
|
||||||
icon: StreamSvgIcon.arrowRight(
|
icon: StreamSvgIcon.arrowRight(
|
||||||
color: StreamChatTheme.of(context).colorTheme.accentBlue,
|
color: StreamChatTheme.of(context).colorTheme.accentPrimary,
|
||||||
),
|
),
|
||||||
onPressed: () async {
|
onPressed: () async {
|
||||||
final updatedList = await Navigator.pushNamed(
|
final updatedList = await Navigator.pushNamed(
|
||||||
@@ -159,18 +159,18 @@ class _NewGroupChatScreenState extends State<NewGroupChatScreen> {
|
|||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
color: StreamChatTheme.of(context)
|
color: StreamChatTheme.of(context)
|
||||||
.colorTheme
|
.colorTheme
|
||||||
.white,
|
.appBg,
|
||||||
shape: BoxShape.circle,
|
shape: BoxShape.circle,
|
||||||
border: Border.all(
|
border: Border.all(
|
||||||
color: StreamChatTheme.of(context)
|
color: StreamChatTheme.of(context)
|
||||||
.colorTheme
|
.colorTheme
|
||||||
.whiteSnow,
|
.appBg,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
child: StreamSvgIcon.close(
|
child: StreamSvgIcon.close(
|
||||||
color: StreamChatTheme.of(context)
|
color: StreamChatTheme.of(context)
|
||||||
.colorTheme
|
.colorTheme
|
||||||
.black,
|
.textHighEmphasis,
|
||||||
size: 24,
|
size: 24,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
@@ -212,8 +212,9 @@ class _NewGroupChatScreenState extends State<NewGroupChatScreen> {
|
|||||||
? 'Matches for \"$_userNameQuery\"'
|
? 'Matches for \"$_userNameQuery\"'
|
||||||
: 'On the platform',
|
: 'On the platform',
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
color:
|
color: StreamChatTheme.of(context)
|
||||||
StreamChatTheme.of(context).colorTheme.grey,
|
.colorTheme
|
||||||
|
.textLowEmphasis,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
@@ -273,7 +274,7 @@ class _NewGroupChatScreenState extends State<NewGroupChatScreen> {
|
|||||||
size: 96,
|
size: 96,
|
||||||
color: StreamChatTheme.of(context)
|
color: StreamChatTheme.of(context)
|
||||||
.colorTheme
|
.colorTheme
|
||||||
.grey,
|
.textLowEmphasis,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
Text(
|
Text(
|
||||||
@@ -284,7 +285,7 @@ class _NewGroupChatScreenState extends State<NewGroupChatScreen> {
|
|||||||
.copyWith(
|
.copyWith(
|
||||||
color: StreamChatTheme.of(context)
|
color: StreamChatTheme.of(context)
|
||||||
.colorTheme
|
.colorTheme
|
||||||
.grey,
|
.textLowEmphasis,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
@@ -319,7 +320,7 @@ class _HeaderDelegate extends SliverPersistentHeaderDelegate {
|
|||||||
Widget build(
|
Widget build(
|
||||||
BuildContext context, double shrinkOffset, bool overlapsContent) {
|
BuildContext context, double shrinkOffset, bool overlapsContent) {
|
||||||
return Container(
|
return Container(
|
||||||
color: StreamChatTheme.of(context).colorTheme.white,
|
color: StreamChatTheme.of(context).colorTheme.barsBg,
|
||||||
child: child,
|
child: child,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -58,7 +58,7 @@ class _PinnedMessagesScreenState extends State<PinnedMessagesScreen> {
|
|||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return Scaffold(
|
return Scaffold(
|
||||||
backgroundColor: StreamChatTheme.of(context).colorTheme.white,
|
backgroundColor: StreamChatTheme.of(context).colorTheme.barsBg,
|
||||||
appBar: AppBar(
|
appBar: AppBar(
|
||||||
brightness: Theme.of(context).brightness,
|
brightness: Theme.of(context).brightness,
|
||||||
elevation: 1,
|
elevation: 1,
|
||||||
@@ -66,12 +66,12 @@ class _PinnedMessagesScreenState extends State<PinnedMessagesScreen> {
|
|||||||
title: Text(
|
title: Text(
|
||||||
'Pinned Messages',
|
'Pinned Messages',
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
color: StreamChatTheme.of(context).colorTheme.black,
|
color: StreamChatTheme.of(context).colorTheme.textHighEmphasis,
|
||||||
fontSize: 16.0,
|
fontSize: 16.0,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
leading: StreamBackButton(),
|
leading: StreamBackButton(),
|
||||||
backgroundColor: StreamChatTheme.of(context).colorTheme.white,
|
backgroundColor: StreamChatTheme.of(context).colorTheme.barsBg,
|
||||||
),
|
),
|
||||||
body: _buildMediaGrid(),
|
body: _buildMediaGrid(),
|
||||||
);
|
);
|
||||||
@@ -98,14 +98,15 @@ class _PinnedMessagesScreenState extends State<PinnedMessagesScreen> {
|
|||||||
children: [
|
children: [
|
||||||
StreamSvgIcon.pin(
|
StreamSvgIcon.pin(
|
||||||
size: 136.0,
|
size: 136.0,
|
||||||
color: StreamChatTheme.of(context).colorTheme.greyGainsboro,
|
color: StreamChatTheme.of(context).colorTheme.disabled,
|
||||||
),
|
),
|
||||||
SizedBox(height: 16.0),
|
SizedBox(height: 16.0),
|
||||||
Text(
|
Text(
|
||||||
'No pinned items',
|
'No pinned items',
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
fontSize: 17.0,
|
fontSize: 17.0,
|
||||||
color: StreamChatTheme.of(context).colorTheme.black,
|
color:
|
||||||
|
StreamChatTheme.of(context).colorTheme.textHighEmphasis,
|
||||||
fontWeight: FontWeight.bold,
|
fontWeight: FontWeight.bold,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
@@ -119,7 +120,7 @@ class _PinnedMessagesScreenState extends State<PinnedMessagesScreen> {
|
|||||||
fontSize: 14.0,
|
fontSize: 14.0,
|
||||||
color: StreamChatTheme.of(context)
|
color: StreamChatTheme.of(context)
|
||||||
.colorTheme
|
.colorTheme
|
||||||
.black
|
.textHighEmphasis
|
||||||
.withOpacity(0.5),
|
.withOpacity(0.5),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
@@ -130,7 +131,7 @@ class _PinnedMessagesScreenState extends State<PinnedMessagesScreen> {
|
|||||||
fontWeight: FontWeight.bold,
|
fontWeight: FontWeight.bold,
|
||||||
color: StreamChatTheme.of(context)
|
color: StreamChatTheme.of(context)
|
||||||
.colorTheme
|
.colorTheme
|
||||||
.black
|
.textHighEmphasis
|
||||||
.withOpacity(0.5),
|
.withOpacity(0.5),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
@@ -176,7 +177,9 @@ class _PinnedMessagesScreenState extends State<PinnedMessagesScreen> {
|
|||||||
title: Text(
|
title: Text(
|
||||||
user.name,
|
user.name,
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
color: StreamChatTheme.of(context).colorTheme.black,
|
color: StreamChatTheme.of(context)
|
||||||
|
.colorTheme
|
||||||
|
.textHighEmphasis,
|
||||||
fontWeight: FontWeight.bold),
|
fontWeight: FontWeight.bold),
|
||||||
),
|
),
|
||||||
subtitle: Text(
|
subtitle: Text(
|
||||||
|
|||||||
@@ -22,9 +22,9 @@ class SearchTextField extends StatelessWidget {
|
|||||||
return Container(
|
return Container(
|
||||||
height: 36,
|
height: 36,
|
||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
color: StreamChatTheme.of(context).colorTheme.white,
|
color: StreamChatTheme.of(context).colorTheme.barsBg,
|
||||||
border: Border.all(
|
border: Border.all(
|
||||||
color: StreamChatTheme.of(context).colorTheme.greyWhisper,
|
color: StreamChatTheme.of(context).colorTheme.borders,
|
||||||
),
|
),
|
||||||
borderRadius: BorderRadius.circular(24),
|
borderRadius: BorderRadius.circular(24),
|
||||||
),
|
),
|
||||||
@@ -48,7 +48,8 @@ class SearchTextField extends StatelessWidget {
|
|||||||
right: 8,
|
right: 8,
|
||||||
),
|
),
|
||||||
child: StreamSvgIcon.search(
|
child: StreamSvgIcon.search(
|
||||||
color: StreamChatTheme.of(context).colorTheme.black,
|
color:
|
||||||
|
StreamChatTheme.of(context).colorTheme.textHighEmphasis,
|
||||||
size: 24,
|
size: 24,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
@@ -56,7 +57,7 @@ class SearchTextField extends StatelessWidget {
|
|||||||
hintStyle: StreamChatTheme.of(context).textTheme.body.copyWith(
|
hintStyle: StreamChatTheme.of(context).textTheme.body.copyWith(
|
||||||
color: StreamChatTheme.of(context)
|
color: StreamChatTheme.of(context)
|
||||||
.colorTheme
|
.colorTheme
|
||||||
.black
|
.textHighEmphasis
|
||||||
.withOpacity(.5)),
|
.withOpacity(.5)),
|
||||||
contentPadding: const EdgeInsets.all(0),
|
contentPadding: const EdgeInsets.all(0),
|
||||||
border: OutlineInputBorder(
|
border: OutlineInputBorder(
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ class StreamVersion extends StatelessWidget {
|
|||||||
'Stream SDK v $streamChatDep',
|
'Stream SDK v $streamChatDep',
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
fontSize: 14,
|
fontSize: 14,
|
||||||
color: StreamChatTheme.of(context).colorTheme.greyGainsboro,
|
color: StreamChatTheme.of(context).colorTheme.disabled,
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -37,7 +37,7 @@ class _ThreadPageState extends State<ThreadPage> {
|
|||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return Scaffold(
|
return Scaffold(
|
||||||
backgroundColor: StreamChatTheme.of(context).colorTheme.whiteSnow,
|
backgroundColor: StreamChatTheme.of(context).colorTheme.appBg,
|
||||||
appBar: ThreadHeader(
|
appBar: ThreadHeader(
|
||||||
parent: widget.parent!,
|
parent: widget.parent!,
|
||||||
),
|
),
|
||||||
|
|||||||
@@ -40,9 +40,8 @@ class UserMentionsPage extends StatelessWidget {
|
|||||||
padding: const EdgeInsets.all(24),
|
padding: const EdgeInsets.all(24),
|
||||||
child: StreamSvgIcon.mentions(
|
child: StreamSvgIcon.mentions(
|
||||||
size: 96,
|
size: 96,
|
||||||
color: StreamChatTheme.of(context)
|
color:
|
||||||
.colorTheme
|
StreamChatTheme.of(context).colorTheme.disabled,
|
||||||
.greyGainsboro,
|
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
Text(
|
Text(
|
||||||
@@ -51,8 +50,9 @@ class UserMentionsPage extends StatelessWidget {
|
|||||||
.textTheme
|
.textTheme
|
||||||
.body
|
.body
|
||||||
.copyWith(
|
.copyWith(
|
||||||
color:
|
color: StreamChatTheme.of(context)
|
||||||
StreamChatTheme.of(context).colorTheme.grey,
|
.colorTheme
|
||||||
|
.textLowEmphasis,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
|||||||
Reference in New Issue
Block a user