per-message zoom using JavaScript + CSS 3D transforms

When Auto-fit is off, disable built-in WebView zooming, which
is only capable of zooming an entire document (the entire
conversation).

Use ScaleGestureDetector to trigger a CSS 3D transform to zoom
in/out just a single message div.

During the gesture, the elements above and below the message
being scaled are untouched. This is ugly.
TODO: they should either move away (tricky) or at least fade
out.

When the gesture is complete, to avoid leaving overlapping
elements, we force-scale the height and reset the transform
origin to the top left.
TODO: auto-scroll to the correct place to counteract this
perceived jump.

Double-tap is not yet implemented. We'll have to do it
ourselves.

Bug: 7478834
Change-Id: I114e4977304c7060d499d116cc75bc0488967448
4 files changed