private int updateFirstAdapterPosition() {

        // we're empty
        if (getChildCount() == 0) {
            firstViewAdapterPosition = 0;
            firstViewTop = getPaddingTop();
            return firstViewTop;
        }

        View topmostView = getTopmostChildView();
        if (topmostView != null) {
            firstViewAdapterPosition = getViewAdapterPosition(topmostView);
            firstViewTop = Math.min(topmostView.getTop(), getPaddingTop());
            return firstViewTop;
        }

        // as far as I can tell, if notifyDataSetChanged is called, onLayoutChildren
        // will be called, but all views will be marked as having NO_POSITION for
        // adapterPosition, which means the above approach of finding the topmostChildView
        // doesn't work. So, basically, leave firstViewAdapterPosition and firstViewTop
        // alone.
        return firstViewTop;
    }
Updates firstViewAdapterPosition to the adapter position  of the highest item in the list - e.g., the
adapter position of the item with lowest y value in the list

@return the y value of the topmost view in the layout, or paddingTop if empty
android/modules/module_common/src/main/java/github/tornaco/android/thanos/widget/section/StickyHeaderLayoutManager.java