This method is awesome, well documented, and clear, but is still 126 lines long. Are there more bits you could pull out into utility methods? Perhaps something like `setShadows(context, ...)`? Nothing else really jumps out at me, but it'd be great to get this method a little shorter.