Skip to content

Instantly share code, notes, and snippets.

@ColeMurray
Last active January 18, 2016 02:32
Show Gist options
  • Select an option

  • Save ColeMurray/3db2285e7ead0f29a053 to your computer and use it in GitHub Desktop.

Select an option

Save ColeMurray/3db2285e7ead0f29a053 to your computer and use it in GitHub Desktop.
scheduleVisibilityCheck - A method to place a runnable on a handlers message queue
public class VisibilityTracker {
private static final long VISIBILITY_CHECK_DELAY_MILLIS = 100;
private WeakHashMap<View, TrackingInfo> mTrackedViews = new WeakHashMap<>();
private ViewTreeObserver.OnPreDrawListener mOnPreDrawListener;
private VisibilityTrackerListener mVisibilityTrackerListener;
private boolean mIsVisibilityCheckedScheduled;
private Handler mVisibilityHandler;
private VisibilityChecker mVisibilityChecker;
private Runnable mVisibilityRunnable;
public VisibilityTracker(Activity activity) {
View rootView = activity.getWindow().getDecorView();
mVisibilityHandler = new Handler();
mVisibilityChecker = new VisibilityChecker();
mVisibilityRunnable = new VisibilityRunnable();
// ........
private void scheduleVisibilityCheck() {
if (mIsVisibilityCheckedScheduled) {
return;
}
mIsVisibilityCheckedScheduled = true;
mVisibilityHandler.postDelayed(mVisibilityRunnable, VISIBILITY_CHECK_DELAY_MILLIS);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment