Skip to content

Commit f69c582

Browse files
committed
✨ (Feat) Add pull to refresh on search.
🐛 (fix) username text overflow on followers,following and like page. 🐛 update time to UTC.
1 parent e4d718a commit f69c582

File tree

10 files changed

+53
-79
lines changed

10 files changed

+53
-79
lines changed

lib/helper/utility.dart

Lines changed: 7 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -11,48 +11,13 @@ import 'package:url_launcher/url_launcher.dart';
1111
final kAnalytics = FirebaseAnalytics();
1212
final DatabaseReference kDatabase = FirebaseDatabase.instance.reference();
1313
final kScreenloader = CustomLoader();
14-
String getAgendaTime(String startDatetime, String endDatetime) {
15-
var start =
16-
new DateFormat.jm().format(DateTime.parse(startDatetime)).toString();
17-
var end = new DateFormat.jm().format(DateTime.parse(endDatetime)).toString();
18-
return start + " - " + end;
19-
}
2014

21-
String getPostTime(String date) {
22-
String msg = '';
23-
DateTime durs;
24-
var dt = DateTime.parse(date);
25-
if (dt.year == DateTime.now().year &&
26-
dt.month == DateTime.now().month &&
27-
dt.day == DateTime.now().day) {
28-
durs = DateTime.now().subtract(
29-
Duration(hours: dt.hour, minutes: dt.minute, seconds: dt.second));
30-
31-
if (durs.hour > 0) {
32-
return '${durs.hour} h ago';
33-
}
34-
if (durs.minute > 0) {
35-
return '${durs.minute} min ago';
36-
} else if (durs.second > 2) {
37-
return '${durs.second} sec ago';
38-
} else {
39-
return 'just now';
40-
}
41-
} else {
42-
durs = DateTime.now().subtract(Duration(
43-
days: dt.day, hours: dt.hour, minutes: dt.minute, seconds: dt.second));
44-
45-
if (durs.day >= 1) {
46-
return durs.day == 1 ? 'Yesterday' : DateFormat("dd MMM").format(dt);
47-
}
48-
}
49-
}
5015

5116
String getPostTime2(String date) {
5217
if (date == null || date.isEmpty) {
5318
return '';
5419
}
55-
var dt = DateTime.parse(date);
20+
var dt = DateTime.parse(date).toLocal();
5621
var dat =
5722
DateFormat.jm().format(dt) + ' - ' + DateFormat("dd MMM yy").format(dt);
5823
return dat;
@@ -62,7 +27,7 @@ String getdob(String date) {
6227
if (date == null || date.isEmpty) {
6328
return '';
6429
}
65-
var dt = DateTime.parse(date);
30+
var dt = DateTime.parse(date).toLocal();
6631
var dat = DateFormat.yMMMd().format(dt);
6732
return dat;
6833
}
@@ -71,7 +36,7 @@ String getJoiningDate(String date) {
7136
if (date == null || date.isEmpty) {
7237
return '';
7338
}
74-
var dt = DateTime.parse(date);
39+
var dt = DateTime.parse(date).toLocal();
7540
var dat = DateFormat("MMMM yyyy").format(dt);
7641
return 'Joined $dat';
7742
}
@@ -81,13 +46,13 @@ String getChatTime(String date) {
8146
return '';
8247
}
8348
String msg = '';
84-
var dt = DateTime.parse(date);
49+
var dt = DateTime.parse(date).toLocal();
8550

86-
if (DateTime.now().isBefore(dt)) {
87-
return DateFormat.jm().format(DateTime.parse(date)).toString();
51+
if (DateTime.now().toLocal().isBefore(dt)) {
52+
return DateFormat.jm().format(DateTime.parse(date).toLocal()).toString();
8853
}
8954

90-
var dur = DateTime.now().difference(dt);
55+
var dur = DateTime.now().toLocal().difference(dt);
9156
if (dur.inDays > 0) {
9257
msg = '${dur.inDays} d';
9358
return dur.inDays == 1 ? 'yesterday' : DateFormat("dd MMM").format(dt);

lib/page/common/widget/userListWidget.dart

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,12 @@ class UserListWidget extends StatelessWidget {
1515
final List<String> list;
1616
final String emptyScreenText;
1717
final String emptyScreenSubTileText;
18-
UserListWidget(
19-
{Key key,
20-
this.list,
21-
this.emptyScreenText,
22-
this.emptyScreenSubTileText})
23-
: super(key: key);
18+
UserListWidget({
19+
Key key,
20+
this.list,
21+
this.emptyScreenText,
22+
this.emptyScreenSubTileText,
23+
}) : super(key: key);
2424

2525
@override
2626
Widget build(BuildContext context) {
@@ -125,12 +125,14 @@ class UserTile extends StatelessWidget {
125125
),
126126
title: Row(
127127
children: <Widget>[
128-
UrlText(
129-
text: user.displayName,
130-
style: TextStyle(
131-
color: Colors.black,
132-
fontSize: 16,
133-
fontWeight: FontWeight.w800,
128+
Flexible(
129+
child: UrlText(
130+
text: user.displayName,
131+
style: TextStyle(
132+
color: Colors.black,
133+
fontSize: 16,
134+
fontWeight: FontWeight.w800,
135+
),
134136
),
135137
),
136138
SizedBox(width: 3),

lib/page/feed/composeTweet/composeTweet.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ class _ComposeTweetReplyPageState extends State<ComposeTweetPage> {
105105
FeedModel reply = FeedModel(
106106
description: _textEditingController.text,
107107
user: commentedUser,
108-
createdAt: DateTime.now().toString(),
108+
createdAt: DateTime.now().toUtc().toString(),
109109
tags: tags,
110110
parentkey: state.tweetToReplyModel.key,
111111
childRetwetkey: widget.isRetweet ? model.key : null,

lib/page/feed/composeTweet/createFeed.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ class _CreateFeedPageState extends State<CreateFeedPage> {
9292
userId: authState.userModel.userId,
9393
tags: tags,
9494
user: user,
95-
createdAt: DateTime.now().toString(),
95+
createdAt: DateTime.now().toUtc().toString(),
9696
);
9797
if (_image != null) {
9898
await state.uploadFile(_image).then(

lib/page/feed/imageViewPage.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -181,7 +181,7 @@ class _ImageViewPgeState extends State<ImageViewPge> {
181181
FeedModel reply = FeedModel(
182182
description: _textEditingController.text,
183183
user: commentedUser,
184-
createdAt: DateTime.now().toString(),
184+
createdAt: DateTime.now().toUtc().toString(),
185185
tags: tags,
186186
userId: commentedUser.userId,
187187
parentkey: postId,

lib/page/message/chatScreenPage.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -212,11 +212,11 @@ class _ChatScreenPageState extends State<ChatScreenPage> {
212212
ChatMessage message;
213213
message = ChatMessage(
214214
message: messageController.text,
215-
createdAt: DateTime.now().toIso8601String(),
215+
createdAt: DateTime.now().toUtc().toString(),
216216
senderId: authstate.userModel.userId,
217217
receiverId: state.chatUser.userId,
218218
seen: false,
219-
timeStamp: DateTime.now().millisecondsSinceEpoch.toString(),
219+
timeStamp: DateTime.now().toUtc().millisecondsSinceEpoch.toString(),
220220
senderName: authstate.user.displayName);
221221
if (messageController.text == null || messageController.text.isEmpty) {
222222
return;

lib/page/search/SearchPage.dart

Lines changed: 23 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -66,31 +66,36 @@ class _SearchPageState extends State<SearchPage> {
6666
}
6767

6868
void onSettingIconPressed() {
69-
Navigator.pushNamed(context, '/TrendsPage');
69+
Navigator.pushNamed(context, '/TrendsPage');
7070
}
7171

7272
@override
7373
Widget build(BuildContext context) {
7474
var state = Provider.of<SearchState>(context);
7575
var list = state.userlist;
7676
return Scaffold(
77-
appBar: CustomAppBar(
78-
scaffoldKey: widget.scaffoldKey,
79-
textController: textController,
80-
icon: AppIcon.settings,
81-
onActionPressed: onSettingIconPressed,
82-
onSearchChanged: (text) {
83-
state.filterByUsername(text);
84-
},
85-
),
86-
body: ListView.separated(
87-
physics: BouncingScrollPhysics(),
88-
itemBuilder: (context, index) => _userTile(list[index]),
89-
separatorBuilder: (_, index) => Divider(
90-
height: 0,
77+
appBar: CustomAppBar(
78+
scaffoldKey: widget.scaffoldKey,
79+
textController: textController,
80+
icon: AppIcon.settings,
81+
onActionPressed: onSettingIconPressed,
82+
onSearchChanged: (text) {
83+
state.filterByUsername(text);
84+
},
9185
),
92-
itemCount: list.length,
93-
),
94-
);
86+
body: RefreshIndicator(
87+
onRefresh: () async {
88+
state.getDataFromDatabase();
89+
return Future.value(true);
90+
},
91+
child: ListView.separated(
92+
physics: BouncingScrollPhysics(),
93+
itemBuilder: (context, index) => _userTile(list[index]),
94+
separatorBuilder: (_, index) => Divider(
95+
height: 0,
96+
),
97+
itemCount: list.length,
98+
),
99+
));
95100
}
96101
}

lib/state/chats/chatState.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ class ChatState extends AppState {
2525
return null;
2626
} else {
2727
_messageList.sort((x, y) =>
28-
DateTime.parse(x.createdAt).compareTo(DateTime.parse(y.createdAt)));
28+
DateTime.parse(x.createdAt).toLocal().compareTo(DateTime.parse(y.createdAt).toLocal()));
2929
_messageList.reversed;
3030
_messageList = _messageList.reversed.toList();
3131
return List.from(_messageList);

lib/state/searchState.dart

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ class SearchState extends AppState {
3434
_userlist.add(model);
3535
_userFilterlist.add(model);
3636
});
37+
_userFilterlist.sort((x,y) => y.followers.compareTo(x.followers));
3738
}
3839
} else {
3940
_userlist = null;
@@ -49,7 +50,7 @@ class SearchState extends AppState {
4950
}
5051

5152
void filterByUsername(String name) {
52-
if (name.isEmpty) {
53+
if (name.isEmpty && _userlist != null) {
5354
_userFilterlist = List.from(_userlist);
5455
}
5556
// return if userList is empty or null

lib/widgets/tweet/tweet.dart

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -332,6 +332,7 @@ class RetweetWidget extends StatelessWidget {
332332
TextStyle(color: Colors.blue, fontWeight: FontWeight.w400),
333333
),
334334
),
335+
SizedBox(height:model.imagePath == null ? 8 : 0),
335336
TweetImage(model: model, type: type, isRetweetImage: true),
336337
],
337338
);

0 commit comments

Comments
 (0)