code: protected void processChangeTrackerChange(final Map<String, Object> change) {
          // Process each change from the feed:
          String docID = (String) change.get("id");
          if (docID == null || !Document.isValidDocumentId(docID))
              return;
  
          String lastSequence = change.get("seq").toString();
          boolean deleted = (change.containsKey("deleted") &&
                  change.get("deleted").equals(Boolean.TRUE));
          List<Map<String, Object>> changes = (List<Map<String, Object>>) change.get("changes");
          for (Map<String, Object> changeDict : changes) {
              String revID = (String) changeDict.get("rev");
              if (revID == null) {
                  continue;
              }
  
              PulledRevision rev = new PulledRevision(docID, revID, deleted);
  
              // Remember its remote sequence ID (opaque), and make up a numeric sequence
              // based on the order in which it appeared in the _changes feed:
              rev.setRemoteSequenceID(lastSequence);
  
              if (changes.size() > 1)
                  rev.setConflicted(true);
  
              Log.d(TAG, "%s: adding rev to inbox %s", this, rev);
  
              Log.v(TAG,
                      "%s: changeTrackerReceivedChange() incrementing changesCount by 1", this);
  
              // this is purposefully done slightly different than the ios version
              addToChangesCount(1);
  
              addToInbox(rev);
          }
  
          pauseOrResume();
      }
docs: in CBL_Puller.m
  - (void) changeTrackerReceivedSequence: (id)remoteSequenceID
  docID: (NSString*)docID
  revIDs: (NSArray*)revIDs
  deleted: (BOOL)deleted