splitview: Fix rounded corners glitch on drag indicators.

There is a glitch when the drag indicators slide in or out. The corners
stretch or squash a bit during animation before going back to normal
after animation ends.

This is known issue, since we animate the entire rect by applying
transform. The transform effects the rounded corners as well. The
transform is removed and the bounds are set at the end of animation,
so that the glitch is only seen during animation.

This patch fixes that by changing the indicators to not use a single rounded
rect anymore, but instead to use a new class which has two rounded
rect and a solid rect between them, with the solid rect
 covering the rounded corners so the final element looks like one
big rounded rect. On bounds changed, the two rounded
rects will get translated only, therefore preserving the rounded
edges, while the middle section will be the one shrinking or expanding.

There is some tricky logic to position the components of the new
view due to the animation and rtl, so added new test cases.

Test: covered by tests, manually all orientations and rtl
Bug: 824860
Change-Id: I183fa3de4e0a481ad2c7a208feec33a286505ad8
Reviewed-on: https://chromium-review.googlesource.com/1029191
Commit-Queue: Sammie Quon <[email protected]>
Reviewed-by: Xiaoqian Dai <[email protected]>
Cr-Commit-Position: refs/heads/master@{#556831}
7 files changed