else if ((chg.why & Change.MODIFIED_IMAP_UID) != 0) {
} else if ((chg.why & Change.MODIFIED_IMAP_UID) != 0) {
    private boolean handleModifies(Map<Integer, Change> modified, AddedItems newItems) {        boolean selected = mSelectedFolder != null;        boolean virtual = selected && mSelectedFolder.isVirtual();        boolean debug = ZimbraLog.imap.isDebugEnabled();        for (Change chg : modified.values()) {            if (chg.what instanceof Tag && (chg.why & Change.MODIFIED_NAME) != 0) {                Tag ltag = (Tag) chg.what;                uncacheTag(ltag.getId());                cacheTag(ltag);                if (selected)                    mSelectedFolder.dirtyTag(ltag.getId());//            } else if (chg.what instanceof Mailbox && (chg.why & Change.MODIFIED_CONFIG) != 0) {//                try {//                    parseConfig(((Mailbox) chg.what).getConfig(getContext(), "imap"));//                } catch (ServiceException e) { }            } else if (!selected) {                continue;            } else if (chg.what instanceof Folder && ((Folder) chg.what).getId() == mSelectedFolder.getId()) {                Folder folder = (Folder) chg.what;                if ((chg.why & Change.MODIFIED_FLAGS) != 0 && (folder.getFlagBitmask() & Flag.BITMASK_DELETED) != 0) {                    // notify client that mailbox is deselected due to \Noselect?                    // RFC 2180 3.3: "The server MAY allow the DELETE/RENAME of a multi-accessed                    //                mailbox, but disconnect all other clients who have the                    //                mailbox accessed by sending a untagged BYE response."                    mState = STATE_AUTHENTICATED;                    mSelectedFolder = null;                    selected = false;                } else if ((chg.why & (Change.MODIFIED_FOLDER | Change.MODIFIED_NAME)) != 0) {                    mSelectedFolder.updatePath(folder);                    // FIXME: can we change the folder's UIDVALIDITY?                    //        if not, how do we persist it for the session?                    // RFC 2180 3.4: "The server MAY allow the RENAME of a multi-accessed mailbox                    //                by simply changing the name attribute on the mailbox."                }            } else if (chg.what instanceof Message) {                Message msg = (Message) chg.what;                boolean inFolder = virtual || (msg.getFolderId() == mSelectedFolder.getId());                if (!inFolder && (chg.why & Change.MODIFIED_FOLDER) == 0)                    continue;                ImapMessage i4msg = mSelectedFolder.getById(msg.getId());                if (i4msg == null) {                    if (inFolder && !virtual) {                        newItems.add(msg);                        if (debug)  ZimbraLog.imap.debug("  ** moved (ntfn): " + msg.getId());                    }                } else if (!inFolder && !virtual) {                    if (!i4msg.isGhost())                        i4msg.setExpunged(true);                } else if ((chg.why & (Change.MODIFIED_TAGS | Change.MODIFIED_FLAGS | Change.MODIFIED_UNREAD)) != 0)                    i4msg.setPermanentFlags(msg.getFlagBitmask(), msg.getTagBitmask());                else if ((chg.why & Change.MODIFIED_IMAP_UID) != 0) {                    // if the IMAP uid changed, need to bump it to the back of the sequence!                    i4msg.setExpunged(true);                    if (!virtual)                        newItems.add(msg);                    if (debug)  ZimbraLog.imap.debug("  ** imap uid changed (ntfn): " + msg.getId());                }            }        }        return true;    }