/** * called when visibility of current fragment is (potentially) altered by * * drawer being * shown/hidden * * whether buffer is shown in the pager (see MainPagerAdapter) * * availability * of buffer & activity * * lifecycle */ public void maybeChangeVisibilityState() { if (DEBUG_VISIBILITY) logger.debug("maybeChangeVisibilityState()"); if (activity == null || buffer == null) return; // see if visibility has changed. if it hasn't, do nothing boolean obscured = activity.isPagerNoticeablyObscured(); boolean watched = started && pagerVisible && !obscured; if (buffer.isWatched == watched) return; // visibility has changed. if (watched) { highlights = buffer.highlights; privates = (buffer.type == Buffer.PRIVATE) ? buffer.unreads : 0; } buffer.setWatched(watched); scrollToHotLineIfNeeded(); // move the read marker in weechat (if preferences dictate) if (!watched && P.hotlistSync) { EventBus.getDefault() .post(new SendMessageEvent("input " + buffer.fullName + " /buffer set hotlist -1")); EventBus.getDefault() .post( new SendMessageEvent( "input " + buffer.fullName + " /input set_unread_current_buffer")); } }