private Path getRetreatingJoinPath() {
        unselectedDotPath.rewind();
        rectF.set(retreatingJoinX1, dotTopY, retreatingJoinX2, dotBottomY);
        unselectedDotPath.addRoundRect(rectF, dotRadius, dotRadius, Path.Direction.CW);
        return unselectedDotPath;
    }
Unselected dots can be in 6 states:
<p>
#1 At rest
#2 Joining neighbour, still separate
#3 Joining neighbour, combined curved
#4 Joining neighbour, combined straight
#5 Join retreating
#6 Dot re-showing / revealing
<p>
It can also be in a combination of these states e.g. joining one neighbour while
retreating from another.  We therefore create a Path so that we can examine each
dot pair separately and later take the union for these cases.
<p>
This function returns a path for the given dot **and any action to it's right** e.g. joining
or retreating from it's neighbour
library/src/main/java/com/heinrichreimersoftware/materialintro/view/InkPageIndicator.java