latestThreads property

List<ModeratorEntry> get latestThreads

Implementation

List<ModeratorEntry> get latestThreads {
  //find stuff with updated stuff possibly

  Map<int, List<int>> _sorta = {};
  List<int> tim = [];
  final rrp = _posts.toList().reversed;
  for (var i in rrp) {
    if (_data[i] == null) continue;
    ModeratorEntry? p = _data[i];
    if (_children[i] == null) {
      if (_sorta[p!.perceivedTimestamp] == null) {
        _sorta[p!.perceivedTimestamp] = [];
      }
      _sorta[p.perceivedTimestamp]!.add(i);

      continue;
    }
    var ct = p!.perceivedTimestamp;
    var cti = i;
    for (var ii in _children[i]!) {
      if (_data[ii] == null) continue;
      ModeratorEntry? cp = _data[ii];
      if (cp!.perceivedTimestamp > ct) {
        ct = cp.perceivedTimestamp;
        //cti = ii; keep ref to orig thread root
      }
    }
    //cti is the index to latest on that thread now
    if (_sorta[ct] == null) _sorta[ct] = [];
    _sorta[ct]!.add(cti);
  }
  //sort by keys
  var tl = _sorta.keys.toList();
  tl.sort();
  List<ModeratorEntry> _ll = [];
  for (var i in tl.reversed) {
    for (var ii in _sorta[i]!) {
      _ll.add(_data[ii]!);
    }
  }
  return _ll;
}