@@ -59,10 +59,9 @@ class FeedState extends AppState {
59
59
}
60
60
61
61
/// [Skip if any duplicate tweet already present]
62
- if (_tweetDetailModelList.length == 0 ||
63
- _tweetDetailModelList.length > 0 &&
64
- ! _tweetDetailModelList.any ((x) => x.key == model.key)) {
62
+ if (_tweetDetailModelList.length >= 0 ) {
65
63
_tweetDetailModelList.add (model);
64
+ cprint ("Detail Tweet added. Total Tweet: ${_tweetDetailModelList .length }" );
66
65
notifyListeners ();
67
66
}
68
67
}
@@ -73,8 +72,11 @@ class FeedState extends AppState {
73
72
/// After removing Tweet from Tweet detail Page stack its commnets tweet is also removed from `_tweetDetailModelList`
74
73
void removeLastTweetDetail (String tweetKey) {
75
74
if (_tweetDetailModelList != null && _tweetDetailModelList.length > 0 ) {
76
- _tweetDetailModelList.removeWhere ((x) => x.key == tweetKey);
75
+ // var index = _tweetDetailModelList.in
76
+ FeedModel removeTweet = _tweetDetailModelList.lastWhere ((x)=> x.key == tweetKey);
77
+ _tweetDetailModelList.remove (removeTweet);
77
78
tweetReplyMap.removeWhere ((key, value) => key == tweetKey);
79
+ cprint ("Last Tweet removed from stack. Remaining Tweet: ${_tweetDetailModelList .length }" );
78
80
}
79
81
}
80
82
@@ -408,15 +410,15 @@ class FeedState extends AppState {
408
410
var model = FeedModel .fromJson (event.snapshot.value);
409
411
model.key = event.snapshot.key;
410
412
if (_feedlist.any ((x) => x.key == model.key)) {
411
- var oldEntry = _feedlist.singleWhere ((entry) {
413
+ var oldEntry = _feedlist.lastWhere ((entry) {
412
414
return entry.key == event.snapshot.key;
413
415
});
414
416
_feedlist[_feedlist.indexOf (oldEntry)] = model;
415
417
}
416
418
417
419
if (_tweetDetailModelList != null && _tweetDetailModelList.length > 0 ) {
418
420
if (_tweetDetailModelList.any ((x) => x.key == model.key)) {
419
- var oldEntry = _tweetDetailModelList.singleWhere ((entry) {
421
+ var oldEntry = _tweetDetailModelList.lastWhere ((entry) {
420
422
return entry.key == event.snapshot.key;
421
423
});
422
424
_tweetDetailModelList[_tweetDetailModelList.indexOf (oldEntry)] = model;
@@ -551,13 +553,15 @@ class FeedState extends AppState {
551
553
deleteFile (deletedTweet.imagePath, 'tweetImage' );
552
554
}
553
555
554
- /// If a retweet is deleted then retweetCount should be decrease by 1.
556
+ /// If a retweet is deleted then retweetCount of original tweet should be decrease by 1.
555
557
if (deletedTweet.childRetwetkey != null ) {
556
558
await fetchTweet (deletedTweet.childRetwetkey).then ((retweetModel) {
557
559
if (retweetModel == null ) {
558
560
return ;
559
561
}
560
- retweetModel.retweetCount -= 1 ;
562
+ if (retweetModel.retweetCount > 0 ){
563
+ retweetModel.retweetCount -= 1 ;
564
+ }
561
565
updateTweet (retweetModel);
562
566
});
563
567
}
0 commit comments