nl_tokens: Update lastSeenTime in object instance localStorage and remote database . Advance this . lastSeenTime to proposedTime or the latest visible note time . If the timestamp comes from a note update the remote database .
pl_tokens: function updateLastSeenTime ( proposedTime , fromStorage ) { let fromNote = false ; let mostRecentNoteTime = 0 ; // Make sure we aren't getting milliseconds // The check time is Aug 8, 2005 in ms if ( proposedTime > 1123473600000 ) { proposedTime = proposedTime / 1000 ; } debug ( 'updateLastSeenTime 0' , { proposedTime : proposedTime , fromStorage : fromStorage , lastSeenTime : this . lastSeenTime , } ) ; // Event was triggered by another tab's localStorage.setItem; ignore localStorage and remote. if ( fromStorage ) { if ( proposedTime <= this . lastSeenTime ) { return false ; } this . lastSeenTime = proposedTime ; return <mask> ; } const notes = getAllNotes ( store . getState ( ) ) ; if ( notes . length ) { mostRecentNoteTime = Date . parse ( notes [ 0 ] . timestamp ) / 1000 ; } debug ( 'updateLastSeenTime 1' , { proposedTime : proposedTime , showing : this . showing , visible : this . visible , lastSeenTime : this . lastSeenTime , mostRecentNoteTime : mostRecentNoteTime , } ) ; // Advance proposedTime to the latest visible note time. if ( this . isShowing && this . isVisible && mostRecentNoteTime > proposedTime ) { proposedTime = mostRecentNoteTime ; fromNote = true ; } debug ( 'updateLastSeenTime 2' , { proposedTime : proposedTime , fromNote : fromNote , oldNews : proposedTime <= this . lastSeenTime , } ) ; // Ignore old news. if ( proposedTime <= this . lastSeenTime ) { return false ; } this . lastSeenTime = proposedTime ; try { localStorage . setItem ( 'notesLastMarkedSeen' , this . lastSeenTime ) ; } catch ( e ) { } // Update the database only if an unseen note has become visible. if ( fromNote ) { debug ( 'updateLastSeenTime 3' , this . lastSeenTime ) ; sendLastSeenTime ( this . lastSeenTime ) ; } return true ; }