History log of /packages/apps/UnifiedEmail/src/com/android/mail/browse/ConversationWebView.java
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
c1fb9a9c2730178105977fca629e80951bfc3cdc 11-Feb-2013 Andy Huang <ath@google.com> Single-message zoom using a floating WebView

Protected by an experimental pref for now
Restores scroll position
Preserves 'show pics' state
Speedy animation
Fade-in animation begins right after onNewPicture (ICS compatible!)
add UpOrBackController role for fragments to get a whack at back/up

And because this approach avoids using the CSS 'zoom' attribute
within single-message mode, double-tap works well and there are no
line-height issues.

Bug: 7400516
Change-Id: Idedfa6e35edc291c9169fbd9b1315b39b4253f60
/packages/apps/UnifiedEmail/src/com/android/mail/browse/ConversationWebView.java
ce8565b3605c2ce47c75e259f387cd4955f017da 17-Jan-2013 Andy Huang <ath@google.com> counteract jumping in CSS-based message zooming

Adjust scroll position after a zoom to counteract jumping.
There's still a momentary flash, so it's not perfect yet. That
might be suppressable with ingenuity (i.e. gross hacks).

Suppress WebView input handling for an input sequence on
POINTER_DOWN to prevent WebView from scrolling during a scale.
I've chosen to implement message translation-during-scale
manually, so the WebView must not move on its own during a
scale, or else the translation will be doubly applied.

Bug: 7400516
Change-Id: I54c347c37d28864441c8a3bca3395bdc86f6616f
/packages/apps/UnifiedEmail/src/com/android/mail/browse/ConversationWebView.java
02f9d18a54072db8d86c524f9c09e508092ddd7c 29-Nov-2012 Andy Huang <ath@google.com> 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
/packages/apps/UnifiedEmail/src/com/android/mail/browse/ConversationWebView.java
30bcfe7b69f9d8e0cad2ee62dae9d3571cd0d88b 19-Oct-2012 Andy Huang <ath@google.com> clean up supplemental software drawing on ICS

* don't allocate big bitmaps for offscreen conversations on ICS
* reduce the bitmap size to the view size (vs. screen size)
* handle OOM gracefully
* ensure the 'doAfter' action happens even for offscreen convos

Bug: 7373250
Change-Id: I976dc826bed83d5872802e6d656eff2f72f9ed3d
/packages/apps/UnifiedEmail/src/com/android/mail/browse/ConversationWebView.java
916f819b1dfde084b8bd7941fd6f6d70d564e3e9 01-Oct-2012 Paul Westbrook <pwestbro@google.com> Fix crash on ICS

ICS had a bug where calling recycle on a bitmap could
cause a native crash see bug 6048952

Since this code is only used on ICS, just don't call recycle

Bug: 7232717
Change-Id: Iafaf8708b34ca10e4cb5e424d7f3bb138dddb5eb
/packages/apps/UnifiedEmail/src/com/android/mail/browse/ConversationWebView.java
b84fba3b19aef87144a069407b1cdb5980eedf0b 26-Sep-2012 mindyp <mindyp@google.com> Only create bitmaps in the case where we actually use them

Part of b/6268986 Perf regression (~5 seconds) in loading messages on orientation change in new gmail

Change-Id: Ib461c008a434da7b9f298e71acc660f9fc88076f
/packages/apps/UnifiedEmail/src/com/android/mail/browse/ConversationWebView.java
afc9b365dc9199ee9b2a1e598b8f40b3c78b6d9f 25-Sep-2012 mindyp <mindyp@google.com> Add ics content ready signal.

Uses a software layer to show content asap.
Part of b/6268986 Perf regression (~5 seconds) in loading messages on orientation change in new gmail

Change-Id: I8ae2e86685187108aa704c8d6d19202b2a2a4d7e
/packages/apps/UnifiedEmail/src/com/android/mail/browse/ConversationWebView.java
56d83850db72592a16f4e6ee9e0d59b60ec0824a 19-Sep-2012 Mark Wei <markwei@google.com> Draw scrollbars above conversation view content.

Bug: 6319192
Change-Id: Id4ba584f1e90c80d9085b6b3d962ee2783975427
/packages/apps/UnifiedEmail/src/com/android/mail/browse/ConversationWebView.java
2b24e995cfcdb6ab0579b2fbcccb399a53632395 11-Sep-2012 Mark Wei <markwei@google.com> Fix rounding errors that caused conversation subject displays higher than
expected and slightly cut off for threads with many messages.

Bug: 6406245
Change-Id: Iee5114cd479cfdac001c2a9d5c9f15a79482c427
/packages/apps/UnifiedEmail/src/com/android/mail/browse/ConversationWebView.java
23014705ca9872cd5004a1aa76e83ae260165eca 09-Jul-2012 Andy Huang <ath@google.com> better handling of wide message content

Don't hide horizontal overflow, so content in extra-wide
messages is scrollable. (Downside is that an initial swipe on
such conversations will scroll the content rather than going to
ViewPager.)

Use default WebView text layout algorithm (NARROW_COLUMNS). It
doesn't kick in by default, possibly because of the method we
use to shrink wide messages, but at least double-tap after a
manual zoom-in will trigger line re-wrapping.

NARROW_COLUMNS reflow can change the HTML height, so we need to
remeasure and reposition headers when that happens. Added code
to listen for WebView mContentHeight changes. This is done
circuitously (via invalidate()) because I don't know of a more
natural way to to know when this happens. Although invalidate()
happens all the time, this should be pretty cheap because no
work is done unless the DOM height changes.

Clean up screen-pixel -> HTML-pixel conversion code. This will
be handy when trying to make the page initially wide to further
improve line wrapping behavior and reduce the frequency of
the extra-wide case. Initial-wide-mode presents a host of
side effects to be addressed in a future CL.

Bug: 6389819
Bug: 6318848

Change-Id: I3ad2bd1ca6c1f6c0859af1a10056578ea4faf073
/packages/apps/UnifiedEmail/src/com/android/mail/browse/ConversationWebView.java
b334c9035e9b7a38766bb66c29da2208525d1e11 25-Jun-2012 Paul Westbrook <pwestbro@google.com> Changes to support different Log tags

Change-Id: I7121fbf7132444fc0f5c0c130373e3f2d1a3cf7a
/packages/apps/UnifiedEmail/src/com/android/mail/browse/ConversationWebView.java
632721e6b3a9ba8c476456f2e0fb1b564561e0b5 12-Apr-2012 Andy Huang <ath@google.com> conversation paging

This CL takes the approach of using a permanent ViewPager that
pages through conversation fragments. Its adapter is only
set and populated when the conversation view is shown. In all
other cases, it is an inert empty layer.

One risk with this approach is that it breaks with the typical
fragment transitions that all other content panes use.

On the other hand: conversation fragments are full-on fragments
and benefit from loader separation, and the FragmentManager
takes care of save/restore of state.

Change-Id: Ic17d1ae3f35a0cb1119967f2d34433ad27fa307c
/packages/apps/UnifiedEmail/src/com/android/mail/browse/ConversationWebView.java
5ff63747a1b5c6e2197528972cbc3ba808b09d8d 17-Mar-2012 Andy Huang <ath@google.com> show subject and labels in conversation view

Show labels only for accounts that support multi-folder
conversations.
Move some classes into smaller 'browse' package.
Special-case subject/labels overlay for now. Full adapterization
is coming soon when super-collapsed blocks are in.

Change-Id: I458009776eb2e3840dd9e441de9e4ead3cc94d0b
/packages/apps/UnifiedEmail/src/com/android/mail/browse/ConversationWebView.java