void (@NotNull Update update) { if (myDisposed) return; if (myTrackUiActivity) { startActivity(); } if (myPassThrough) { update.runUpdate(); finishActivity(); return; } boolean active = myActive; synchronized (myScheduledUpdates) { try { if (eatThisOrOthers(update)) { return; } if (active && myScheduledUpdates.isEmpty()) { restartTimer(); } put(update); if (myRestartOnAdd) { restartTimer(); } } finally { if (isEmpty()) { finishActivity(); } } } }