private void changeConstraints(boolean forward) {
        ConstraintSet constraintSet = new ConstraintSet();
        constraintSet.clone((ConstraintLayout)findViewById(R.id.root_constraint_layout));
        SecondsView secondsView = findViewById(R.id.seconds_view);
        if (forward) {
            constraintSet.clear(secondsView.getId(), ConstraintSet.START);
            constraintSet.connect(secondsView.getId(), ConstraintSet.END,
                    ConstraintSet.PARENT_ID, ConstraintSet.END);
        } else {
            constraintSet.clear(secondsView.getId(), ConstraintSet.END);
            constraintSet.connect(secondsView.getId(), ConstraintSet.START,
                    ConstraintSet.PARENT_ID, ConstraintSet.START);
        }
        //secondsView.start();
        constraintSet.applyTo((ConstraintLayout)findViewById(R.id.root_constraint_layout));
    }
Seeks the video to desired position.
Calls interface functions when start reached ([SeekListener.onVideoStartReached])
or when end reached ([SeekListener.onVideoEndReached])

@param newPosition desired position
app/src/main/java/com/brouken/player/dtpv/youtube/YouTubeOverlay.java