• Home
  • History
  • Annotate
  • only in /frameworks/opt/photoviewer/src/com/
History log of /frameworks/opt/photoviewer/src/com/
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
b5a9af5f37da97615105e0d4fb9d0c89d2bdaab6 03-Apr-2017 Alan Viverette <alanv@google.com> Fix interface definition

Bug: 24137209
Test: make checkbuild tests -j32
Change-Id: Id9bc1700e648e17198a0a50e205f705d3d25fdae
ndroid/ex/photo/PhotoViewController.java
2f36ad7cde2e97f51b9a61327289ff01b0701440 22-Apr-2016 Tobias Thierer <tobiast@google.com> Merge "PhotoPagerAdapter: Boolean.valueOf() -> Boolean.parseBoolean()" am: 717626a986
am: 72edb0a12b

* commit '72edb0a12b8f0993b0b7f422441529315884d030':
PhotoPagerAdapter: Boolean.valueOf() -> Boolean.parseBoolean()

Change-Id: Ib862f7e3ca3a626e3e6c23ff95ecac766840de17
0935fcdae6c820ebdb78cb755772ee93c3c88fef 21-Apr-2016 Tobias Thierer <tobiast@google.com> PhotoPagerAdapter: Boolean.valueOf() -> Boolean.parseBoolean()

Bug: 28289401
Change-Id: Ie29dfc80011583bc0973424a8ec687c58aa57f4b
ndroid/ex/photo/adapters/PhotoPagerAdapter.java
8bd440ff8079d6e3c4c6540b2f08758f1757296f 17-Mar-2016 Tavis Bohne <tbohne@google.com> Merge "PhotoViewer sets ContentDescriptions when provided by PagerAdapter" into ub-photoviewer-dorothea
272ce63c04f61a7c22edaa119eb791b061a60ada 17-Mar-2016 Tavis Bohne <tbohne@google.com> PhotoView announces each photo as it's swiped in

Previously, PhotoView would announce the first image, and only once.
Now PhotoView announces each image as it's swiped in.
This is required for accessibility users to know which image is on
screen.

Bug: 27686286
Change-Id: I46cd592c440abbaabff4a03fc1f0ee41faf23c7b
ndroid/ex/photo/PhotoViewController.java
1f9535b34b069c2071b90fb8409f0f5421f3310f 16-Mar-2016 Tavis Bohne <tbohne@google.com> PhotoViewer sets ContentDescriptions when provided by PagerAdapter

Right now, when the user is navigating using accessibility, then when
they open a tab it announces the image, which is awesome.
If they then navigate to each view, there's two unlabeled views, so
accessibility users don't know what they have selected, which is
a GAR violation. One of which is the PhotoViewFragment's view, which
accepts touch (for zooming and sliding), so we can't tell
accessibility to ignore it.
(https://screenshot.googleplex.com/9p3jFT39QV9.png)
This change adds a contentDescription to the image view, so visually
impaired users can tell which view currently has focus.

This does not fix the other unlabeled view which I haven't found yet

Bug: 27686286
Change-Id: Ie9acd5100cb19784523ccee4d0af3bf311c3231f
ndroid/ex/photo/Intents.java
ndroid/ex/photo/adapters/PhotoPagerAdapter.java
ndroid/ex/photo/fragments/PhotoViewFragment.java
dcdb96ea1e7be078ec55be804d326ef2176235fa 11-Feb-2016 Andrew DiMarco <disharko@google.com> Allows photoviewer subclasses to modify layouts more freely.

This change allows subclasses of the photoviewer to specify a new
content view layout file with any name, change the name of its root
view, and choose to not include/use the background and/or temporary
image views.

Change-Id: I1227f504311143d3a3ad37f97df1848e912cd3f5
ndroid/ex/photo/PhotoViewController.java
9fec66c45a3df15e1e24ccf9374591623d1e25ba 25-Jan-2016 Jae Yoon Chong <jychong@google.com> Fixed photo unbinding issue in PhotoViewFragment class

When the fragment becomes inactive, for example due to a system dialog
popup, the image that was shown on the fragment disappears.

The reason for this behavior is that photo is unbinded in #onPause.

To fix this, photo unbinding operation is removed, because unbinding
is an unnecessary operation.

This change fixes the following bug: b/26436886

Change-Id: Ia5ca3f8ebafbd5de4828744a29fd878f32e9236d
ndroid/ex/photo/fragments/PhotoViewFragment.java
55a7a1ced4528d13e82cbe2f8f55d75eb72f1e27 06-Aug-2015 Khoa Ha <khoaha93@gmail.com> Zoom behavior after over-zooming and panning speed updated

"Snap back" animation after over-zooming now occurs after a
set delay. Panning deceleration was also increased. These
changes reflect how the Photos app behaves.
Change-Id: Ib9a5600b070f8efbb2c74f23aa2ef73e5d6b1b63
ndroid/ex/photo/views/PhotoView.java
a1ee3cd29611517d617a545e1cdbb642101b044b 20-Jan-2016 Andrew Sapperstein <asapperstein@google.com> Merge "Zoom behavior after over-zooming and panning speed updated"
ac61de54b49ff9d6345060f57f1063a617c0ebfd 06-Aug-2015 Khoa Ha <khoaha93@gmail.com> Zoom behavior after over-zooming and panning speed updated

"Snap back" animation after over-zooming now occurs after a
set delay. Panning deceleration was also increased. These
changes reflect how the Photos app behaves.
Change-Id: Ib9a5600b070f8efbb2c74f23aa2ef73e5d6b1b63
ndroid/ex/photo/views/PhotoView.java
e3bc739bfab134619ff59cd139454a8a1c6a5506 17-Oct-2015 Yizhen Fu <fafaisland@google.com> Talkback shoudn't announce Photo details twice.

Bug:19531215
Change-Id: I9ede97b44c6d80ebf9de58e9646e8008ce878033
ndroid/ex/photo/PhotoViewController.java
8650d3cda75562489551ee04bff9145a49a6f16f 10-Sep-2015 Ken Thai <kenthai@google.com> Support disabling timer-based lights out

Change-Id: I0c00fe711c3baebcb9a30e74fcfd0bea62e78f50
ndroid/ex/photo/Intents.java
ndroid/ex/photo/PhotoViewController.java
2181c0eb4e01ece3cc43a7b2776b6dc254982afa 26-Feb-2015 Scott Kennedy <skennedy@google.com> Add @Nullable where required in ActionBarInterface

Change-Id: I7c619077c67f82b29dda1dc252e8b1cf637c01a3
ndroid/ex/photo/ActionBarInterface.java
9ea7077cea45d719026934d33b9deecf4c2eca93 07-Jan-2015 Shri Borde <shri@google.com> Bug 18864683: Accessibility

The actionbar is made to stay visibile if accessibility is enabled. This
allows the user to explore and access the menu buttons without it auto-hiding.

The photo details are announced whenever switching to a new photo.

The root view of photo_activity_view is removed from touch exploration as
no actions can be performed by touching it.

Change-Id: I9090920e2154cd9f038d2bede0e4ec9399becc3d
ndroid/ex/photo/PhotoViewController.java
ndroid/ex/photo/util/Util.java
307bd804982aa896a2043ed1c557c65cd8269d3f 14-Nov-2014 Andrew Sapperstein <asapperstein@google.com> Hide "couldn't load image" on image load.

Fixes b/18358074.

Previously, we never explicitly hid the empty text
when an image was loaded (but it never really mattered
because the text was hidden behind the photo). Now we
always set the visibility to gone.

Change-Id: I35171693021afc2a1552b720f20e88270faa24ee
ndroid/ex/photo/fragments/PhotoViewFragment.java
05f451df7677dce766b4e6b30ff89e2d3bb0b104 28-Oct-2014 Shri Borde <shri@google.com> Bug 16879455: setScaleAnimation() results in RuntimeException

We were destroying the initial thumbnail photo loader as soon as it had
loaded. This recycles the associated bitmap, but that bitmap is used
by mTemporaryImage. The loader is now destroyed only when mTemporaryImage
is being hidden.

Also, a new activity theme has been added with a transparent background.

Change-Id: Icdc39581e8b0b609617465be56217961494322da
ndroid/ex/photo/PhotoViewController.java
ff6ac38cd3fd60e63882f3163d233d8c09a70db8 22-Oct-2014 Shri Borde <shri@google.com> Bug 17474391: Opening a different photo from same list of photos

Using FLAG_ACTIVITY_CLEAR_TOP causes a new activity instance to be created
which can show the new initial photo.

Change-Id: Idc59e07784a2cb3cf2b04879f3db0ece53864333
ndroid/ex/photo/Intents.java
0667dbcdae03086a7beedd47c68d098441f7fedc 17-Oct-2014 khoaha <khoaha93@gmail.com> Overzoom animation added when attempting to zoom past max scale.

For consistency, the user can scale a small amount beyond the maximum
scale and the image is zoomed out to the maximum scale upon release.

Also fixed bug where panning during a zoom out may result in bad centering.
Change-Id: Ic5edb22d87e8f761c8c87224ba0dcd34bb9084c4
ndroid/ex/photo/views/PhotoView.java
503256b6e02ec0ea5fb068e4948b20aa34fdeb8a 12-Sep-2014 khoaha <khoaha93@gmail.com> Fixed bugs related to flick trajectory and boundary collision.

1. Deceleration after flicking is now applied based on angle, instead of
equally to x and y components, preserving trajectory.

2. Image does not come to full stop when flicking into a boundary if it can
still travel in one component of the velocity.
Change-Id: I36cea8a0d2fc13e7bb20e43599f4a2ae064005d3
ndroid/ex/photo/views/PhotoView.java
4a6abe405e4de31a14e2c5489c413c806f2f11f2 10-Sep-2014 Andrew Sapperstein <asapperstein@google.com> Call setData in launch intent. b/17391328.

Should give each photoviewer call separate recents
entries.

Change-Id: I34968e348b6b28cd4022df74532bf9d3802cc70f
ndroid/ex/photo/Intents.java
e700c54e3b3638ba6d8713b4121131d289ff6d64 28-Aug-2014 khoaha <khoaha93@gmail.com> Double-tap when zoomed now zooms out to the default zoom.

Double-tapping to zoom in will pad the zoom origin if it would cause the
resulting image to not fill the view and be off-center.
Change-Id: Ie4e666db9b1aedd8bf840cb6de08e78d06e179da
ndroid/ex/photo/views/PhotoView.java
8749b62b1a7c7c8ac1d5db1dbe506e45961604b6 27-Aug-2014 Andrew Sapperstein <asapperstein@google.com> Replace == NaN with Float.isNaN. b/17107077

Change-Id: Ie5abe7120ce1e1d1892cf634f1da715061556792
ndroid/ex/photo/views/PhotoView.java
dcdb7136c8f8a8ec1e57b0c02887064dfaa99ffe 19-Aug-2014 Shri Borde <shri@google.com> Merge "Bug 16879455: PhotoViewFragment.sPhotoSize initialized late" into ub-photoviewer-brady
55ac8ea9519e981bfdbd83c82615c72cfa78d84c 19-Aug-2014 Shri Borde <shri@google.com> Bug 16879455: PhotoViewFragment.sPhotoSize initialized late

The NPE happens because PhotoViewFragment.sPhotoSize is null. It is
initialized in PhotoViewFragment.sPhotoSize. However, PhotoBitmapLoader is
created from Activity.onCreate. The fix moves the initilization to
PhotoBitmapLoader.

Change-Id: I125115a6882df9c1c8c7e1325068958b7cdfc468
ndroid/ex/photo/PhotoViewController.java
ndroid/ex/photo/fragments/PhotoViewFragment.java
ndroid/ex/photo/loaders/PhotoBitmapLoader.java
e36676cf09e0f48164831479a6427f4c9c26a40b 19-Aug-2014 Shri Borde <shri@google.com> Add PhotoPagerAdapter.getContentType api

All the columns are now exposed as an api

Change-Id: I8bdf4f00f8ee8ed9e2d535e49b13399599f74743
ndroid/ex/photo/adapters/PhotoPagerAdapter.java
ndroid/ex/photo/provider/PhotoContract.java
0641890f68d850e17e8fbf2407e338a4bb18eec1 19-Aug-2014 Scott Kennedy <skennedy@google.com> Revert "Limit how PhotoViewFragment can be subclassed."

This reverts commit 43a39fe63dfcbb52a2115b60f3e724a54f571880.

Change-Id: I57f4fd150d302a20ea6f24dcae2cc7a1f09cfc3a
ndroid/ex/photo/fragments/PhotoViewFragment.java
e4c48c7c0374d5dfd52fea40d7639b8f8526043d 09-Aug-2014 Scott Kennedy <skennedy@google.com> Add #getTitle() to ActionBarInterface

Change-Id: If56f8f415959622bac736a7e5dcdbf4f9742abad
ndroid/ex/photo/ActionBarInterface.java
f39584b0cd6b5cd47a76854efffe437366693b3e 04-Aug-2014 George Ruban <gruban@google.com> Search for uri from beginning of data instead of wherever
the cursor happens to be at the time.
BUG: 16654182

Change-Id: I6e6e9bd56b17997c0d02b329e992614a5be665fd
ndroid/ex/photo/PhotoViewController.java
cd95597f2dfc0760a105a87d16664e56ca1a4afe 12-Jun-2014 Andrew Sapperstein <asapperstein@google.com> Additional changes to support controller refactor.

Change-Id: Ia06983da92e562a51e47644f9cf9cf1c3fe30c79
ndroid/ex/photo/PhotoViewController.java
43a39fe63dfcbb52a2115b60f3e724a54f571880 10-Jun-2014 Mathew Inwood <mathewi@google.com> Limit how PhotoViewFragment can be subclassed.

Make (nearly) all protected things private, and make all public methods
final. Add a comment indicating the limited scenarios where you do need to
subclass the fragment.

Change-Id: Ic3f7460231220e8e7349da068a5e9f1b80ef5fdd
ndroid/ex/photo/fragments/PhotoViewFragment.java
bb137c8e2ed363e6f5e2c0f14719483d27e8c062 05-Jun-2014 Mathew Inwood <mathewi@google.com> Move all logic from activity into controller.

Get rid of ControllerCallbacks, and instead create a thin wrapper around
Activity exposing the functionality required from the activity. Do the same
for ActionBar to take care of android.support.v7.app.ActionBar and
android.app.ActionBar (which have an identical interface).

This eliminates a lot of duplicate code between the appcompat activity and
the other activity. The only duplicated code is not boring wrapper code.

To customize the activity now, subclass PhotoViewController and implement
customizations in there. Then subclass the Activity and override
createController to instantiate your controller subclass.

Also allow subclassing of PhotoViewFragment. This is to enable the fragment
to replace the logic of getting the controller from the activity, in the
instance that the activity does not implement ActivityInterface directly
itself.

Bug: 15090270
Change-Id: Ib31ae155b5afabff848624b0721d6eaf96312c12
ndroid/ex/photo/ActionBarInterface.java
ndroid/ex/photo/Intents.java
ndroid/ex/photo/PhotoViewController.java
ndroid/ex/photo/adapters/PhotoPagerAdapter.java
ndroid/ex/photo/fragments/PhotoViewFragment.java
ndroid/ex/photo/util/ImageUtils.java
e59b79a0c03d3f90bb2fb71ce88b5b6ba481f364 21-Mar-2014 Hao Pan <haopan@google.com> am 274afea9: Add a null check before closing the stream

* commit '274afea9b667b551d9582a3088fc27012d0e9a29':
Add a null check before closing the stream
274afea9b667b551d9582a3088fc27012d0e9a29 21-Mar-2014 Hao Pan <haopan@google.com> Add a null check before closing the stream

Bug 13558751

Change-Id: Ib1d5d1b9df3ce961ce1012b69abea56ebaecf695
ndroid/ex/photo/util/ImageUtils.java
9a12534f69666a473141e34118a45681eef02f02 18-Mar-2014 Adam Copp <adamcopp@google.com> am 90382f44: Disable immersive mode on tablets before L.

* commit '90382f446827fc956839b6294fb13dda6040583c':
Disable immersive mode on tablets before L.
90382f446827fc956839b6294fb13dda6040583c 06-Mar-2014 Adam Copp <adamcopp@google.com> Disable immersive mode on tablets before L.

this works around a bug in the platform that locks all input to the
device if a secondary user is active when an app enters immersive mode.

Bug: 13233844
Change-Id: I34ac3461702931411621856bf4614f1edde898c4
ndroid/ex/photo/PhotoViewController.java
19aeb66bd3bc22c2efbef8a4d20b0a65a7ecfd44 14-Jan-2014 Adam Copp <adamcopp@google.com> Add a callback for a view being "up next".

This callback is used so that the views can reset their zoom/pan state
when the user scrolls away from them. We can't use onViewActivated
because then the views would reset midway through the drag gesture.

Bug: 8433650
Change-Id: Ibe86a0db36d6e252df9a745a498c8d5aa2ed782c
ndroid/ex/photo/PhotoViewCallbacks.java
ndroid/ex/photo/fragments/PhotoViewFragment.java
81458718db7c4054ed5e6a377ca34ff9b3e8ebb3 14-Jan-2014 Tony Mantler <nicoya@google.com> Don't leave stale cursors in the adapter.

b/10949208

Change-Id: Ifc971fb08544c655d540dfd816e37ec6cabd6a8f
ndroid/ex/photo/adapters/BaseFragmentPagerAdapter.java
7887d9694aef23e4a0165b338726e6a9690a709a 07-Jan-2014 Andrew Sapperstein <asapperstein@google.com> Fix b/12348405. Return null drawable.

The initial implementation of getDrawable always
returned a drawable. However, the PhotoViewFragment
used the null state for various state decisions.

This made images that weren't on device in Gmail not
show up and no downloading progress was shown. Now this
happens. Hooray.

Change-Id: I55df738f55353d9c4b599c2e497ca8ed4768c059
ndroid/ex/photo/fragments/PhotoViewFragment.java
ndroid/ex/photo/loaders/PhotoBitmapLoaderInterface.java
ndroid/ex/photo/views/PhotoView.java
32cedbab4c35deda20cc67a098d3cc505bb251bb 10-Dec-2013 Adam Copp <adamcopp@google.com> Prevent crash if PhotoViewFragment is detached.

If the PhotoViewFragment was detached at the time that displayPhoto was
called, it would crash the photoviewer, since the getResources() call
would throw an exception.

Bug: 12056269
Change-Id: Ib92c8bea4853107a9b1e98cd8f699949725239b6
ndroid/ex/photo/fragments/PhotoViewFragment.java
61be90be69b3489471a8f6927737e9c850ed8051 05-Nov-2013 Andrew Sapperstein <asapperstein@google.com> Fix b/11460582: Photos not rendering.

Noticed that in bindPhoto(Drawable),
we weren't always invalidating like we
are in bindPhoto(bitmap). We now are.

Change-Id: Icc90d4671cdc2a1a237917d873e736d254af9065
ndroid/ex/photo/views/PhotoView.java
f5a30690749a354cbbf8c8d9ad4fd5ed84e7d41e 23-Oct-2013 Matt Keoshkerian <mattak@google.com> Use SYSTEM_UI_FLAG_FULLSCREEN for all uses of lights out mode in JellyBean.

Janky animations are avoided by setting the correct layout flags for clients using scale animation.

Needed for b/8173898

Change-Id: Idad94c30c471e86abd392f1e94b1bd762129157e
ndroid/ex/photo/Intents.java
ndroid/ex/photo/PhotoViewController.java
e6d7d3e6d0586015f2933501dc7742c53cee96f1 23-Oct-2013 Adam Copp <adamcopp@google.com> Merge "Remove HTTP downloads from photoviewer lib." into klp-ub-dev
e9825b89f8d8a61c747c5dc8aeaac9004a07d755 23-Oct-2013 Matt Keoshkerian <mattak@google.com> Fix crashing in GB when entering photoviewer

Two issues:
1. View.OnSystemUiChangeListener was introduced in API level 11.
2. getActionBar() was used instead of getSupportActionBar() in appcompat

Related to b/10804270 and b/9534809

Change-Id: Ie9b5369ad2f61785597fb711babea29426078929
ndroid/ex/photo/PhotoViewController.java
1b641422773c48c8fe4f3b6bc6570f7e098124f2 22-Oct-2013 Matt Keoshkerian <mattak@google.com> Delay calls to setting lights out until after enter animation completes

This will only happen if mScaleAnimation is enabled. Calls to setting lights out causes an animation, which gets janky when it animates concurrently with the scale animation.

Fix for b/8173898

Change-Id: I05f768b9e7d6991930f968d5adb2b91b2efcfb7c
ndroid/ex/photo/PhotoViewController.java
7a75fba57ed82c4b0fea362ce739ab253eac909f 22-Oct-2013 Adam Copp <adamcopp@google.com> Remove HTTP downloads from photoviewer lib.

These downloads should only have been used by android GSA and were a
temporary hack.

Android GSA will now use it's own Loader to do HTTP downloads.

Bug: 10688301
Change-Id: I62ab62c8f2f0aa2b969bf491c33d10d3db828e9b
ndroid/ex/photo/util/ImageUtils.java
5f0775af25a40843a2c68d67d694945d88514555 12-Oct-2013 Andrew Sapperstein <asapperstein@google.com> Immersive mode.

Fixes b/10804270 and b/9534809.

Also starts creating a controller to
consolidate duplicate PhotoViewActivity implementations.

Change-Id: I9b4dae9a017f23bfd9e170177e74289ae8ce475b
ndroid/ex/photo/PhotoViewController.java
8728a3dbb1bc7b31790d1de866ab149e0d1f77b4 15-Oct-2013 Matt Keoshkerian <mattak@google.com> Expose the underlying drawable data in a PhotoViewFragment

Needed fix for b/11223896

Change-Id: I4ae0a6fec7333086df88743780a85c56368ebb92
ndroid/ex/photo/fragments/PhotoViewFragment.java
ndroid/ex/photo/views/PhotoView.java
8438174ae5d7568f6145a40e160f6fe7d7ebfc4d 01-Oct-2013 Matt Keoshkerian <mattak@google.com> Put debug logging behind a Log.isLoggable call.

This was causing too much spam in the Babel logs. Fix for bug 11015921

Change-Id: Ica0cbe37e5a49bf1a273292986b36495e78169d8
ndroid/ex/photo/util/InputStreamBuffer.java
4f49ea6da326194dffa0348a83d8110ac30d92e4 25-Sep-2013 Matt Keoshkerian <mattak@google.com> Update PhotoViewer to load photos as Drawable objects.

This change modifies PhotoBitmapLoaderInterface.BitmapResult to return a generic Drawable object based on either a passed in Drawable or a generated BitmapDrawable from a set Bitmap.

Change-Id: I31f7af6001539970c1adb9d45d8e3eb6a9f022a3
ndroid/ex/photo/fragments/PhotoViewFragment.java
ndroid/ex/photo/loaders/PhotoBitmapLoaderInterface.java
ndroid/ex/photo/views/PhotoView.java
6893051dad361413e483425bad0c27272596bb5c 25-Sep-2013 Paul Westbrook <pwestbro@google.com> Allow PhotoViewActivity intent to be created by name

This allows the photo viewer activity intent to be created by
name

Change-Id: I00a38d24fd81015354f4cd15a26a21dadec58a46
(cherry picked from commit 05930888afc085edf11ef9ae74fdccbaa0f456ac)
ndroid/ex/photo/Intents.java
69d49ba36ecf8b6288c196f2fe5e3795dfe1486e 18-Sep-2013 Mindy DelliCarpini <mindyp@google.com> Don't scale on double tap if there is movement before an up event


bring it back now that current.jar is updated

Change-Id: I92fc7998893535120ea4ad9e693b551b4a0229fb
ndroid/ex/photo/views/PhotoView.java
255eb43f74662cacee64d268c8c26bc62b5bf009 18-Sep-2013 Mindy DelliCarpini <mindyp@google.com> Revert "Don't scale on double tap if there is movement before an up event"

This reverts commit 7323508df106bf97cb6bd5d9aa480173558d84a3.

Change-Id: I00ac959a2a9f64d5f0c2e308315c09067042af9d
ndroid/ex/photo/views/PhotoView.java
7323508df106bf97cb6bd5d9aa480173558d84a3 10-Sep-2013 Mindy Pereira <mindyp@google.com> Don't scale on double tap if there is movement before an up event

Change-Id: I60fc2025def88ac9b7b55ba52c93569f7cfd8f45
ndroid/ex/photo/views/PhotoView.java
bcf946beebe1215b43c1196739a2d9391dae14b9 13-Sep-2013 Matt Keoshkerian <mattak@google.com> Add methodPhotoViewFragment to expose its position.

This position is set by the ViewPager, which indicates the index of this fragment in the pager. Required for b/9759537.

Change-Id: I6309f863c38e7130f5ff97278a90cfbe90f10e86
(cherry picked from commit 3c01ba50680cfd6bf03503bfb50697a4fb2ef155)
ndroid/ex/photo/fragments/PhotoViewFragment.java
f0fac25e570ef98dd9d5df34cf8437888cd118cd 10-Sep-2013 Mindy Pereira <mindyp@google.com> Don't scale on double tap if there is movement before an up event

Change-Id: I60fc2025def88ac9b7b55ba52c93569f7cfd8f45
ndroid/ex/photo/views/PhotoView.java
9c4f413f148d9b9f285152fd6f9c32fa9f87e235 09-Sep-2013 Andrew Sapperstein <asapperstein@google.com> Use support lib LruCache.

Caused bugs for Hangouts.

Change-Id: I9e5cc14d928c912e8a64cc20de0cce685b0e6962
ndroid/ex/photo/adapters/BaseFragmentPagerAdapter.java
b0cade17e70016ce562fb2033ea9e4a044137100 05-Sep-2013 Mark Wei <markwei@google.com> Only decode EXIF orientation for JPEG images.

Bug: 10570735
Change-Id: I9d811dca94ec7e478a57d81c44623c4b9269faa6
(cherry picked from commit 8c9607805e3415c6f3b015cf50f2279424d9e45c)
ndroid/ex/photo/util/Exif.java
f75b928f1eacf6455732fa9e0e0fd7762f20e081 20-Aug-2013 Scott Kennedy <skennedy@google.com> resolved conflicts for merge of c631b5a4 to klp-dev

Change-Id: I4f5537100f047ca2f58e66a5f0334cbc774cab5c
c631b5a4b1f19f84a70b772bc879fae7c92fd4a8 13-Aug-2013 Mark Wei <markwei@google.com> Decode EXIF data from input streams.

Create new wrapper class that allows us to treat an input stream as a byte[].
We buffer the minimum number of bytes necessary to avoid unnecessary allocations
which lead to GCs.

For a 1MB image, we get:
Much less memory: 16 bytes instead of 1,048,576 bytes.
Faster, less bytes read: 76 bytes for part of the header instead of 1,048,576
bytes.
Much less GCs: 0 GCs, compared to multiple 30ms GC for allocs in my testing.

Bug: 10036191
Change-Id: Ie8b4546f157a6870b6735a36a38889fe34862c83
ndroid/ex/photo/util/Exif.java
ndroid/ex/photo/util/ImageUtils.java
ndroid/ex/photo/util/InputStreamBuffer.java
ndroid/ex/photo/util/Trace.java
112d29fe9f30d1237a1c8ac1ecc3740879c8c9ce 15-Aug-2013 Paul Westbrook <pwestbro@google.com> Build two photo viewer targets

One of the targets use ActionBarCompat, the other doesn't

A following CL can refactor the two PhotoViewActivities

Bug: 10193371
Change-Id: I7305023c1f860fe6906370bc10669d0daa4e6aeb
ndroid/ex/photo/PhotoViewActivity.java
6e7a042765456b4d5faa95d591735abc06c274ae 05-Aug-2013 Andrew Sapperstein <asapperstein@google.com> Fix photoviewer to work with appcompat.

Change-Id: Ie801e3a46f52deececd6dbad0d8b4b9eed0b79d8
ndroid/ex/photo/PhotoViewActivity.java
13ea5dd3a7a3ab4214c6c5dea72a14ccd434d4b1 01-Aug-2013 Martin Hibdon <mhibdon@google.com> Put setPhotoIndex() back in photoViewActivity

Change-Id: I6236cfeeb61d024c516b8d1bcd12cf5fca6bb7ba
ndroid/ex/photo/PhotoViewActivity.java
5bd3566230ad56a85550159d56f24d3342616f76 01-Aug-2013 Martin Hibdon <mhibdon@google.com> Build fix

Change-Id: Ib506cddb90e423666bb410b3dc19d54826ea3a68
ndroid/ex/photo/PhotoViewActivity.java
6c056da7dd8d6a48b792050fa671a35781483fc2 01-Aug-2013 Martin Hibdon <mhibdon@google.com> Fix build

Change-Id: I9f7c2b76001a81883e80c2b14af1ac8e8bfdd22b
ndroid/ex/photo/Intents.java
1ccbed89981c3bda94d7ee301c1053b3bb747e15 01-Aug-2013 Martin Hibdon <mhibdon@google.com> Fix build

I broke it with
https://googleplex-android-review.googlesource.com/#/c/332352/

Change-Id: I2b1c8bfb6ac78965d3e046d907723b6a89597864
ndroid/ex/photo/PhotoViewActivity.java
8670cefb043f865c7275876dcc94f65ce5bda041 25-Jul-2013 Martin Hibdon <mhibdon@google.com> Replace ActionbarSherlock with AppCompat

Change-Id: I291d3513fb14683c4be32d5fa8e166460b009195
ndroid/ex/photo/Intents.java
ndroid/ex/photo/PhotoViewActivity.java
ndroid/ex/photo/fragments/PhotoViewFragment.java
1fabec882499ed0dd14d8dc7458445fa986ef14d 10-Jul-2013 Martin Hibdon <mhibdon@google.com> Fix display of background

It was actually inadvertently running the intro
animation upon screen rotation, even though the
ViewPager was already visible on top of the animating
temporary image. This is because we were failing
to save mEnterAnimationFinished in onSaveInstanceState.

Change-Id: I1a60a4c98bc7808d00766f77a662968bb655f51a
ndroid/ex/photo/PhotoViewActivity.java
18c85692c141d3a0266dfe88f16f41ae1f20d13e 10-Jul-2013 Martin Hibdon <mhibdon@google.com> Don't keep redisplaying the temporary image

We were still loading the temporary bitmap and displaying
it, even if we weren't running the intro animation. This
meant that it would be displayed behind the viewpager
after screen rotations.

Change-Id: Ib5a5a8781fe87b59bab58a5b03b0ce2f2d4133c8
ndroid/ex/photo/PhotoViewActivity.java
ca8fdcd23fcc53e0429abf8d4ef80e8d6d8fe6fa 30-Jun-2013 Martin Hibdon <mhibdon@google.com> Update PhotoViewer so that Babel can use it

The photoViewer now supports the needs of the Babel app.
In particular:
1. It allows for applications to extend the PhotoBitmapLoader
for their own needs. Babel needs this because it already
maintains a customized image cache in memory, and we don't
want to have duplicate bitmaps in memory.
2. The photoViewActivity can optionally use an animation
that scales the image up from the image's original location
on screen to the full size.
3. The photoViewActivity can optionally be in fullscreen
mode by default, rather than switching to fullscreen
when tapped.

Change-Id: Id5d62f1961c1ce2b9402c7fb19583baad4d96580
ndroid/ex/photo/Intents.java
ndroid/ex/photo/PhotoViewActivity.java
ndroid/ex/photo/PhotoViewCallbacks.java
ndroid/ex/photo/adapters/PhotoPagerAdapter.java
ndroid/ex/photo/fragments/PhotoViewFragment.java
ndroid/ex/photo/loaders/PhotoBitmapLoader.java
ndroid/ex/photo/loaders/PhotoBitmapLoaderInterface.java
ndroid/ex/photo/provider/PhotoContract.java
ndroid/ex/photo/util/ImageUtils.java
757c044ccfa74343245d8a65fccec137553aa749 31-Jul-2013 Scott Kennedy <skennedy@google.com> am 73841d32: Remove all remaining warnings

* commit '73841d3240ea553c5f95400a4bbf83dbbb3f872f':
Remove all remaining warnings
73841d3240ea553c5f95400a4bbf83dbbb3f872f 31-Jul-2013 Scott Kennedy <skennedy@google.com> Remove all remaining warnings

Or at least, those that my Eclipse settings can pick up

Change-Id: I416b89bdf0068734cbacd2a220ae108c12301e85
ndroid/ex/photo/PhotoViewActivity.java
ndroid/ex/photo/fragments/PhotoViewFragment.java
ndroid/ex/photo/util/ImageUtils.java
9bd370faee10bfce255dd187e5b4bdf64af55a49 18-Jul-2013 Adam Copp <adamcopp@google.com> am 7732839c: Clean up internet state intent receiver

* commit '7732839c0cd9d87954a07e166b52b93cabea1374':
Clean up internet state intent receiver
7732839c0cd9d87954a07e166b52b93cabea1374 27-Jun-2013 Adam Copp <adamcopp@google.com> Clean up internet state intent receiver

Previously there were three things wrong here:

1. We never unregistered the intent receiver
2. The Intent receiver was being created even when there was no use for it.
3. The mConnected was not being set to false in some circumstances.

This change addresses all three problems

Change-Id: I6117080c434a7d1c99bcdf12787a66a9a6b2e055
(cherry picked from commit 4e0bb7ba9fad4bd479fa1ac2f3210f6dbc808ec3)
ndroid/ex/photo/Intents.java
ndroid/ex/photo/fragments/PhotoViewFragment.java
3178de8dc308fc4f97ce51b3a3b2959b4581393d 12-Jul-2013 Mark Wei <markwei@google.com> am 0e3c85d4: Photoviewer should only compare paths when matching initialPhotoUri.

* commit '0e3c85d4c62529beed821252355c4a61e21c6070':
Photoviewer should only compare paths when matching initialPhotoUri.
0e3c85d4c62529beed821252355c4a61e21c6070 12-Jul-2013 Mark Wei <markwei@google.com> Photoviewer should only compare paths when matching initialPhotoUri.

Change-Id: Id0ffb58b78af0cf85c7fc298a2fb1f0a8f222470
ndroid/ex/photo/PhotoViewActivity.java
2362ca90eb2c5a20ffab5066a62ebdfda00ccf20 01-Jul-2013 Andrew Sapperstein <asapperstein@google.com> am a3c441f1: Return when loader reset.

* commit 'a3c441f144e3acc7aa32d8236f590cf1aac179f5':
Return when loader reset.
a3c441f144e3acc7aa32d8236f590cf1aac179f5 29-Jun-2013 Andrew Sapperstein <asapperstein@google.com> Return when loader reset.

No idea why we weren't doing this previously
but we really need to be doing so. May
be the cause of the recycling bug. b/8808280.

Change-Id: I133a5a5c6ee96d601cd0b6f162942b173c85234a
ndroid/ex/photo/loaders/PhotoBitmapLoader.java
4cb179bc7c0b4b1723c9c8735c8dfd8ff4234fc5 07-May-2013 Mike Dodd <mdodd@google.com> Get rid of a log from Exif when no orientation found.

Change-Id: I5712947f4012faa2f6dee6b509e9bbc23c662d4d
ndroid/ex/photo/util/Exif.java
5f63dbf97a88c337faf3e5031de652e92a76d5d8 23-Apr-2013 Paul Westbrook <pwestbro@google.com> resolved conflicts for merge of c5648887 to master

Change-Id: Iad72a44a732c77da657f425946fa10de25d04b72
ff9cbd0e86e313e03ddbd40226e1d8adba9f3de2 15-Apr-2013 Alice Yang <alice@google.com> am c4fa70b9: Merge "Use ConnectionManager to restart loaders" into ur9

* commit 'c4fa70b936298b1b153ab99a9cbd4dddb1f5aaae':
Use ConnectionManager to restart loaders
48036293358c0cc81443f0ca6a0f04755e78e732 15-Apr-2013 Adam Copp <adamcopp@google.com> am 4caec680: Merge "Hide spinners if airplane mode enabled whilst browsing images" into jb-mr2-dev

* commit '4caec680c1384983c0fea5216191b4ef2c9c531a':
Hide spinners if airplane mode enabled whilst browsing images
1c0f1cdf675f084dde1b11044ff1e58c9255af54 15-Apr-2013 Mark Wei <markwei@google.com> am c494d535: Merge "This CL breaks existing functionality. Gmail uses the photoviewer to display attachments that are not yet downloaded. While we download the image, we expect that the Bitmap will be null." into jb-mr2-dev

* commit 'c494d535894da28f32e95e79ea0cfc5814d1fe75':
This CL breaks existing functionality. Gmail uses the photoviewer to display attachments that are not yet downloaded. While we download the image, we expect that the Bitmap will be null.
f6adcd291d356ee0a1232c40d883fcbd44d87de5 15-Apr-2013 Adam Copp <adamcopp@google.com> am a4cddf7e: Merge "Hide the spinner and show failure message if photo data is null" into jb-mr2-dev

* commit 'a4cddf7e7832368b861c8b79978c58c7cc1476c8':
Hide the spinner and show failure message if photo data is null
0e6550a79f38712d26026d7b34d70a589ec2fa34 15-Apr-2013 Adam Copp <adamcopp@google.com> am efd51fc1: Always set ViewPager adapter immediately.

* commit 'efd51fc103301ca5e6e6eb3825623f50d0497b62':
Always set ViewPager adapter immediately.
9724eddc8594426b27cd0724cbb946322e0ff793 15-Apr-2013 Adam Copp <adamcopp@google.com> am 8d833d1d: Use resources to specify wether or not to enforce no upscaling

* commit '8d833d1da17c83fc2f949160054438c912b0bba0':
Use resources to specify wether or not to enforce no upscaling
e348198314f925bb6cec8a8b8855fd4254f28cd2 15-Apr-2013 Martin Hibdon <mhibdon@google.com> am 5c16562c: Allow any class to be used for viewing photos

* commit '5c16562ccda53e0f204490c2218f0f8127169dd8':
Allow any class to be used for viewing photos
c5648887405cdcd9507b3edbfcdff55941868fd4 15-Apr-2013 Paul Westbrook <pwestbro@google.com> resolved conflicts for merge of 99f6f3ea to jb-ub-mail-ur10

Change-Id: Ie28610f8a473a292a4fcb76102311bc2c71a2073
c4fa70b936298b1b153ab99a9cbd4dddb1f5aaae 10-Apr-2013 Alice Yang <alice@google.com> Merge "Use ConnectionManager to restart loaders" into ur9

Change-Id: I5a63f77f348c735d1617e44e5e17386e2965ac56
ccc951329c261f2986c2b086149ba3bce568d393 03-Apr-2013 Adam Copp <adamcopp@google.com> Merge "Use ConnectionManager to restart loaders" into jb-mr2-dev
517945660a8160b9c6ef34b9e84d1d3cff4f6b87 25-Mar-2013 Adam Copp <adamcopp@google.com> Use ConnectionManager to restart loaders

When we come back from having no connection, but we had failed to load
anything before, we don't bother trying to restart our loaders.

This change ensures that if we get notified that the device now has an
active internet connection, and we haven't bound a photo (or a
thumbnail), then we restart the appropriate loaders and show the loading
indicator.

Bug: 8407579

Change-Id: I30295ca9585839760421fb37c3a28c987357aacd
ndroid/ex/photo/fragments/PhotoViewFragment.java
4caec680c1384983c0fea5216191b4ef2c9c531a 25-Mar-2013 Adam Copp <adamcopp@google.com> Merge "Hide spinners if airplane mode enabled whilst browsing images" into jb-mr2-dev
112958e7a0493f2e692bbc40d113e98715caaab8 25-Mar-2013 Adam Copp <adamcopp@google.com> Hide spinners if airplane mode enabled whilst browsing images

This change ensures loading spinners are hidden if the image cannot be
loaded, such as when we enter airplane mode.

The behaviour is poor upon returning from airplane mode - spinners do
not show immediately, and loads may not kick off until the user scrolls
around.

Bug: 8407579

Change-Id: If11b4f9a453eeb2f381a77a860fb32c87dbd3b13
ndroid/ex/photo/loaders/PhotoBitmapLoader.java
ndroid/ex/photo/util/ImageUtils.java
c494d535894da28f32e95e79ea0cfc5814d1fe75 18-Mar-2013 Mark Wei <markwei@google.com> Merge "This CL breaks existing functionality. Gmail uses the photoviewer to display attachments that are not yet downloaded. While we download the image, we expect that the Bitmap will be null." into jb-mr2-dev
22d4e84a266942ec2dbbdb65dcb25fc2ee7a5bd9 18-Mar-2013 Mark Wei <markwei@google.com> This CL breaks existing functionality. Gmail uses the photoviewer to display attachments that are not yet downloaded. While we download the image, we expect that the Bitmap will be null.

There needs to be another way for Google Now to show that the file is missing. Instead of checking whether BitmapResult.result == null, perhaps BitmapResult.status should be used.

Revert "Hide the spinner and show failure message if photo data is null"

This reverts commit 0c8b9eda5311dfc69ff532353c3e7f4ee6c1acb7

Bug: 8407579
Change-Id: I1283cb6cb9315e053938b4316b338781b1af40da
ndroid/ex/photo/fragments/PhotoViewFragment.java
a4cddf7e7832368b861c8b79978c58c7cc1476c8 18-Mar-2013 Adam Copp <adamcopp@google.com> Merge "Hide the spinner and show failure message if photo data is null" into jb-mr2-dev
0c8b9eda5311dfc69ff532353c3e7f4ee6c1acb7 18-Mar-2013 Adam Copp <adamcopp@google.com> Hide the spinner and show failure message if photo data is null

When we fail to load the photo and the data for the photo is null, we
should hide the spinner and show the failure message. This happens if
you're loading from the network and airplane mode is enabled.

Bug: 8407579
Change-Id: Id473cead577f614df2cc6b09898f6048cccf5965
ndroid/ex/photo/fragments/PhotoViewFragment.java
c06b017aac740a6f9690f4c44c0068bc06db3206 18-Mar-2013 Adam Copp <adamcopp@google.com> Always set ViewPager adapter immediately.

This appears to be an oversight and may be causing b/8270164.

cherry-pick of: https://googleplex-android-review.googlesource.com/285178
Change-Id: I840a79d28c55d478a1182059b057da092947720b
ndroid/ex/photo/PhotoViewActivity.java
efd51fc103301ca5e6e6eb3825623f50d0497b62 18-Mar-2013 Adam Copp <adamcopp@google.com> Always set ViewPager adapter immediately.

This appears to be an oversight and may be causing b/8270164.

Change-Id: I840a79d28c55d478a1182059b057da092947720b
ndroid/ex/photo/PhotoViewActivity.java
118df0eb335ee3d670dec73b5c228d872cfac350 14-Mar-2013 Alice Yang <alice@google.com> Merge remote-tracking branch 'goog/jb-ub-mail-ur9' into merge

Merge UR8 into MR2.

Change-Id: I543d9284ef7eb1efcc1ec568a9660d03c4cbf32a
06d8b5e82b9b75588051a492152fda0b63f70484 08-Mar-2013 Mark Wei <markwei@google.com> When image bytes are unable to be decoded into a Bitmap (like TIFF files), we
distinguish that apart from when there are no image bytes at all.

In the first case, the download was complete and the file is present, but the
decoding fails. In the second case, the download is still in progress. We now
show an error in the first case.

Bug: 8229258
Change-Id: I664a322f1656dc10d632dcdb259d817abc894047
ndroid/ex/photo/fragments/PhotoViewFragment.java
ndroid/ex/photo/loaders/PhotoBitmapLoader.java
ndroid/ex/photo/util/ImageUtils.java
8d833d1da17c83fc2f949160054438c912b0bba0 01-Mar-2013 Adam Copp <adamcopp@google.com> Use resources to specify wether or not to enforce no upscaling

Add a resource which controls whether or not to enforce using
ScaleType.CENTER for thumbnail images. This allows other apps to
override this resource if they wish to have custom behaviour here.

This is change ag/278873 but moved to jb-mr2-dev

Change-Id: I599b3d0a6b099fc1d8d8429349ef1765d9a633b9
ndroid/ex/photo/fragments/PhotoViewFragment.java
e328c342674a9bd62e86ed14408635c10b600f9f 26-Feb-2013 Mark Wei <markwei@google.com> am ea8c4b44: Continuously attempt to load thumbnail if it fails the first time. This behavior is the same as loading the full image.

* commit 'ea8c4b44178e7593870472743bde05d0d079b9ee':
Continuously attempt to load thumbnail if it fails the first time. This behavior is the same as loading the full image.
ea8c4b44178e7593870472743bde05d0d079b9ee 21-Feb-2013 Mark Wei <markwei@google.com> Continuously attempt to load thumbnail if it fails the first time. This behavior
is the same as loading the full image.

Bug: 8235723
Change-Id: I2b0786cb7482afe6dd1464be8f54d8f6e810eab8
ndroid/ex/photo/adapters/PhotoPagerAdapter.java
ndroid/ex/photo/fragments/PhotoViewFragment.java
8e97065f7cfb2ff7c6b3bde13bf19c23b0358ee4 15-Feb-2013 Paul Westbrook <pwestbro@google.com> Merge branch 'goog/jb-ub-mail-ur8' into master

Change-Id: Ie28475b31bb0d5d214c948c498d88e540d6f93a9
2de1aa6bc9a936ff3f2f654db770a091904533d7 13-Feb-2013 Mark Wei <markwei@google.com> Ignore the SecurityException for now so that Gmail does not crash. A later CL
will fix the underlying issue.

Bug: 8184899
Change-Id: Iae9e452367237442d723794b95313e3afbb36a48
ndroid/ex/photo/util/ImageUtils.java
b98521a8db7157b8982515670345bec69c10e0e2 08-Feb-2013 Vikram Aggarwal <viki@google.com> Merge "Let the framework manage fragments" into jb-ub-mail-ur8
41db3eb9741a222432b367409c67d2263856a0a7 08-Feb-2013 Vikram Aggarwal <viki@google.com> Let the framework manage fragments

The original crash is deep in the framework. Looking into the code, I
found the following strangeness, which this change fixes:

1. Fragments don't have a public no-arg constructor, which is required
for the framework to restore state.

2. Fragments keep a reference to the adapter, passed through the
constructor. This is a terrible idea: the adapter might get stale,
it might not be tied to the current activity, it can't be parcelled
into a bundle, .... At the very least, the adapter should come
directly via the activity.

3. A lot of computation is happening in onAttach(Activity) which is
too early. At this point, the activity is made, but has not gone
through onCreate() yet, so might be uninitialized. Most of this
code should move to onCreateView() or, even better,
onActivityCreated()

4. The index of the current fragment might still be negative in
onCreate(). This causes problems with the ViewPager when it tries
to load the current fragment from the adapter. We should never set
the current position to -1.

5. The computation for currentPosition is incorrect in
PhotoViewActivity.onCreate(), from a cursory glance at
MessageAttachmentTile.viewAttachment() where both the photo index
and the photo uri are populated at the same time. Once the index
is read, it will be > 0, and the URI won't be set. This is a bug.

These changes ameliorate the original issue, but don't fix it
altogether. The remaining issues will be fixed in a subsequent CL.

Bug: 8143282 PhotoViewerActivity crashes on orientation change

Change-Id: Ia0652b2eea9e976603f0d6686077b9f6a75abb78
ndroid/ex/photo/PhotoViewActivity.java
ndroid/ex/photo/PhotoViewCallbacks.java
ndroid/ex/photo/adapters/PhotoPagerAdapter.java
ndroid/ex/photo/fragments/PhotoViewFragment.java
7b2d2778159adf9d01e5e7fc5371e49850b2e084 06-Feb-2013 Vikram Aggarwal <viki@google.com> Save/Restore Actionbar title

In rare cases, we cannot restore the actionbar title in the photo
viewer because we require the fragment to be visible on the screen to
update the title.

Since this is a rather rare problem, the easiest fix is to save the
actionbar title to a bundle and restore it on orientation changes.

Bug: 8124251 Action bar text for the attachment disappears on
orientation change

Change-Id: I27b2768b3e7edb18e1ddd272f48a3ad8ebdd408a
ndroid/ex/photo/PhotoViewActivity.java
79bc0d5ba2f06b25052fe95fac1593ebde234d9a 23-Jan-2013 Mark Wei <markwei@google.com> Starts a pending download immediately when swiping to that image.

Add a new Attachment state, PAUSED, for when we've queued the attachment in the
DownloadManager, but it hasn't started yet.

Modified onViewActivated() so it would only get triggered once when you swipe to
that fragment.

Bug: 8023818
Change-Id: I319f12235559feb1f716515155881188894d6f05
ndroid/ex/photo/PhotoViewActivity.java
ndroid/ex/photo/PhotoViewCallbacks.java
ndroid/ex/photo/fragments/PhotoViewFragment.java
f766f358fa68de426e013df10930701682ae356c 24-Jan-2013 Martin Hibdon <mhibdon@google.com> Allow the use of any fragment instead of a PhotoViewFragment

This lets other users build their own photoViewFragment

Change-Id: I7c915b7ed3ccdadf00bc9e46c7a686cb0146188f
ndroid/ex/photo/PhotoViewActivity.java
ndroid/ex/photo/PhotoViewCallbacks.java
0bf849421d303e05c600cdcd7dab73cc84809a36 17-Jan-2013 Mark Wei <markwei@google.com> Modify image attachments previews to conform to UX specs

Thumbnail and full image start loading at the same time.

Once thumbnail is shown, we display a determinate progress bar while downloading
the full image.

Remove progress bar from image tiles in ConversationView.

Bug: 8021747
Change-Id: Ic1c7e7fcdc5683ad9e899c82b6bbdb5861d16a55
ndroid/ex/photo/PhotoViewActivity.java
ndroid/ex/photo/PhotoViewCallbacks.java
ndroid/ex/photo/fragments/PhotoViewFragment.java
98ee665434ba99543c13a99b70a1ad5340a34c23 16-Jan-2013 Mark Wei <markwei@google.com> Load image attachments from live conversations.

MessageAttachmentTile automatically downloads image attachment thumbnails when
missing.

PhotoViewFragment first loads thumbnail, then loads the full image. Shows and
hides the progressbar correctly.

Added ability for UiProvider to specify which rendition of an attachment to
download.

Bug: 7987412
Change-Id: I7aec4dd80e6fda1b7f4b5f25caffa69380d269d3
ndroid/ex/photo/fragments/PhotoViewFragment.java
5c16562ccda53e0f204490c2218f0f8127169dd8 14-Jan-2013 Martin Hibdon <mhibdon@google.com> Allow any class to be used for viewing photos

You no longer need to extend PhotoViewActivity.

Change-Id: Ia18f2d984668b397335c8fd337f02a9200ced7bb
ndroid/ex/photo/Intents.java
40a26567ebaf6311bd7a102491d669abd1d68646 20-Dec-2012 Paul Westbrook <pwestbro@google.com> Set the fullscreen timeout, even with no actionbar

We need to set the timeout even when there is no action bar, as it
still will affect lights out mode.

Renamed the variable & methods to better names

Change-Id: I1752a5c9a1f2212f3a17af2e8aa2d78a2377e1fa
ndroid/ex/photo/PhotoViewActivity.java
972da3320682b6bbb3ffae1b693b41b7c73eaa32 19-Dec-2012 Paul Westbrook <pwestbro@google.com> Merge "Fix some build errors" into jb-ub-mail-ur8
29e47d946fd19443c12ebad9f94e83741c7d9120 19-Dec-2012 Paul Westbrook <pwestbro@google.com> Fix some build errors

These need to be fixed before switching to the photoviewer library
in frameworks/opt

Change-Id: Ie02e759edecfb3c47c2db7534ae881761ecc2d95
ndroid/ex/photo/PhotoViewActivity.java
ndroid/ex/photo/PhotoViewCallbacks.java
577c1c0ba2d28a0c3b488b0592f11e827dfde610 19-Dec-2012 Paul Westbrook <pwestbro@google.com> Merge: "Set the scale type for the default image icon"

This merges: https://googleplex-android-review.googlesource.com/#/c/238674

Change-Id: I038e08bd4cc3ca58737a48c6caaccdc52f1015cd
ndroid/ex/photo/fragments/PhotoViewFragment.java
19c6d4851728e63ad4275579034dc60a3c958ce2 19-Dec-2012 Paul Westbrook <pwestbro@google.com> Merge: "Restart loader on attachment cursor updates:

This merges: https://googleplex-android-review.googlesource.com/#/c/245483

Change-Id: I86440eacd0b48b9be1cf1c80574c3634fc6bdd79
ndroid/ex/photo/fragments/PhotoViewFragment.java
8f359e98b9f18064a75c80b9c9ad8bda2713c612 19-Dec-2012 Paul Westbrook <pwestbro@google.com> Merge "Fix for panorama icon not always showing up in photo viewer"

Merge CL: https://googleplex-android-review.googlesource.com/#/c/246161

Change-Id: I8cc5f339b4ffde31eadc2412aa6389354cfea45b
ndroid/ex/photo/PhotoViewActivity.java
ndroid/ex/photo/fragments/PhotoViewFragment.java
fd925449925f3eb6e2ab6e1c50203c4a4bc165b2 19-Dec-2012 Paul Westbrook <pwestbro@google.com> Merge "Fix problem where part of wrong photo shows"

This is a manual merge of:
https://googleplex-android-review.googlesource.com/#/c/260544/1

Change-Id: Id872c4dd23db5c0d4e107a52a50a43c4b12a291d
ndroid/ex/photo/PhotoViewActivity.java
d4f7888c44dbc6808c20db3605bc48cc42f0b350 19-Dec-2012 Paul Westbrook <pwestbro@google.com> Merge photo viewer changes from master

Change-Id: I3d4835aa10bbcccc8cf07ba53182da2ca017a1b9
ndroid/ex/photo/Intents.java
ndroid/ex/photo/PhotoViewActivity.java
ndroid/ex/photo/fragments/PhotoViewFragment.java
99f6f3ea0e43d5ac96344a987735fc39485f8f05 18-Dec-2012 Martin Hibdon <mhibdon@google.com> Performance improvement for photoViewer

I noticed that when we bring up the photoViewer,
it always initializes the first two fragments, and
then switches to whatever fragments we actually
want to look at based upon the intent parameters.
This issue is that we were assigning the adapter
to the ViewPager before we had any cursor at all.
If we hold off on setting the adpater until we have
a cursor, then this doesn't happen. This improves
startup time of the PhotoViewActivity noticeably.

Also, made a few changes to make it easier to
extend PhotoViewActivity and PhotoViewFragment,
to change its behavior.

Change-Id: Icc4c397529bd147d0ac6818f79a48db1c4a25f32
ndroid/ex/photo/Intents.java
ndroid/ex/photo/PhotoViewActivity.java
ndroid/ex/photo/fragments/PhotoViewFragment.java
dccd6d91ca82225395af470595e4ffb8734dac1a 26-Nov-2012 Mark Brophy <mbrophy@google.com> Support data URIs in photoviewer.

GoogleSearch needs to support data URLs, since GWS often provides
thumbnails in that way.

Change-Id: Ic981725ef052eb61f780aa3672b3cfbde721696b
ndroid/ex/photo/util/ImageUtils.java
535ffb18682c17d08be17aae5a31c11bf9d44ae5 16-Nov-2012 Mike Dodd <mdodd@google.com> Need one more initLoader in a runnable.

b/7544801

Change-Id: Ieffca5389f0b560b041f96a8daf363302f53f7ad
ndroid/ex/photo/fragments/PhotoViewFragment.java
fc3a6f46f375ef9347f57b88fd7e0c8b62ce1058 15-Nov-2012 Martin Hibdon <mhibdon@google.com> call initLoader in a runnable

b/7544801
Apparently, calling initLoader() from inside onLoadFinished()
is no good when using the support library. Now we post a
runnable to the main handler to call initLoader()

Change-Id: Idedfad5f3be0aecc55ca0f3d593c2df96482da77
ndroid/ex/photo/fragments/PhotoViewFragment.java
bf77f3b89ad05406eecb30c2ea9390f7e921de32 13-Nov-2012 Martin Hibdon <mhibdon@google.com> Make some static members protected

Change-Id: I9b2a1e177c369246bc3070a8ebdf5aebb70cfc2a
ndroid/ex/photo/fragments/PhotoViewFragment.java
934bd9e0b4b3fcf7730325fa416b8c162141f7e9 09-Nov-2012 Martin Hibdon <mhibdon@google.com> Make some members protected

This allows users to extend PhotoViewFragment and
PhotoPagerAdapter.

Change-Id: I7945b33116601fe23f84723f14c76634c2219f52
ndroid/ex/photo/adapters/BaseCursorPagerAdapter.java
ndroid/ex/photo/adapters/PhotoPagerAdapter.java
ndroid/ex/photo/fragments/PhotoViewFragment.java
399fe3d995ed4366a18c7ce6632b3014284df57a 30-Oct-2012 Martin Hibdon <mhibdon@google.com> Remove PhotoViewFragment's dependency on PhotoViewActivity

Now, there is a interface called PhotoViewCallbacks
that PhotoViewFragment depends upon. This way other
users can use PhotoViewFragment without using
PhotoViewActivity.

Change-Id: Ibbda93d2e0226bcc993ef98be1de7cf3a323f41a
ndroid/ex/photo/PhotoViewActivity.java
ndroid/ex/photo/PhotoViewCallbacks.java
ndroid/ex/photo/fragments/PhotoViewFragment.java
8746927a945358bb9e515985a37cac7807261026 27-Oct-2012 Martin Hibdon <mhibdon@google.com> Make PhotoViewer use the support library

Now it uses the support library for fragments and loaders,
so it's compatible back to Froyo.

Change-Id: I887dd57760606e22a8376cdfdf3ecf7c99295a61
ndroid/ex/photo/PhotoViewActivity.java
ndroid/ex/photo/adapters/BaseCursorPagerAdapter.java
ndroid/ex/photo/adapters/BaseFragmentPagerAdapter.java
ndroid/ex/photo/adapters/PhotoPagerAdapter.java
ndroid/ex/photo/fragments/PhotoViewFragment.java
ndroid/ex/photo/loaders/PhotoBitmapLoader.java
ndroid/ex/photo/loaders/PhotoPagerLoader.java
cb5b7f22ed594cb02a8ab900bdce4f87ddb50a9e 25-Oct-2012 Adam Copp <adamcopp@google.com> Merge "Fix scale popping by disabling zoom on thumbnails"
3102e82e0187363d453f4bcde00e396ef5420a46 24-Oct-2012 Adam Copp <adamcopp@google.com> Remove unused imports and variables

Removes a couple of unused imports and an unused variable

Change-Id: Ie2b0109230a3393adde69a0744af5d0f262b5b8e
ndroid/ex/photo/PhotoViewPager.java
ndroid/ex/photo/util/ImageUtils.java
ndroid/ex/photo/views/PhotoView.java
edad0e0512af73ea89b85c5e4568a42bdae3f539 23-Oct-2012 Adam Copp <adamcopp@google.com> Fix scale popping by disabling zoom on thumbnails

In order to prevent the situation where a user scales a low-res image in
the image viewer before the new image has loaded, we disable the scaling
and panning of low-res images.

This is desirable because when the high-res image loads, it will "pop"
back to it's default scale and pan settings.

In the longer term I would like to fix this problem by making high-res
images load in at the current scale and pan settings. This is a much
quicker fix, however.

Bug: 7338705

Change-Id: I0c8f3dc5a7b29943db9c03e9c82cc3cee5ce2734
ndroid/ex/photo/fragments/PhotoViewFragment.java
7aabd796bbcb149db9ac183c1d0aec09fccd42a4 05-Oct-2012 Adam Copp <adamcopp@google.com> Temporary fix for image viewer crash

This fixes a bug causing the app to crash when we can't open a stream to
a url when we download an image.

Bug: 7294701
Change-Id: Ifd0c62c3f5bb6a168e2e2932734fa448ffb9344c
ndroid/ex/photo/util/ImageUtils.java
237ded1a59b1fc148a3ffcf78d6f9d34af5c170c 26-Sep-2012 Paul Westbrook <pwestbro@google.com> resolved conflicts for merge of b3f0f056 to master

Change-Id: I5def1804466ff971ed5bc5afd2a2d68e135d20a2
9323b13fc9bc79ce38ce7c851a2aa894ab988ed0 20-Sep-2012 Paul Westbrook <pwestbro@google.com> Add Exif parser

Class to parse exif headers of images to detect orientation

Modify ImageUtils#decodeStream to parse the exif header and respect
orientation

Bug: 7087307

Change-Id: I93c3a69a50ae26d3fd4e96944439f87e9d511945
ndroid/ex/photo/util/Exif.java
ndroid/ex/photo/util/ImageUtils.java
413185316e9e6f0713185d9adc733b2768ab5aa1 21-Sep-2012 Paul Westbrook <pwestbro@google.com> am 29c041a3: am 88d18b9f: am 4054bd6d: Use gesture detector from support lib

* commit '29c041a3e41b93c7ffd8f29550df501f0b45ea02':
Use gesture detector from support lib
bdf13fd95aa92f794be827421945370c1456ea7c 21-Sep-2012 Paul Westbrook <pwestbro@google.com> Use gesture detector from support lib

Bug: 7206080
Change-Id: I9b5d332d095335f13b61c9c9ccd8152a462a9eb5
ndroid/ex/photo/views/GestureDetector.java
ndroid/ex/photo/views/PhotoView.java
2aadb54327f77df1468826249ba63b91b65d8090 21-Sep-2012 Adam Copp <adamcopp@google.com> Merge "Add option to permenantly show ProgressBar"
075e0938e1413b6743f51baa5260cd9c8dea0711 20-Sep-2012 Mark Wei <markwei@google.com> am 05783789: am da78c1dc: am c907eecd: Prevent NPE while viewing photo from attachment.

* commit '057837890de13cc9fd6909f4c4a69abec388a34d':
Prevent NPE while viewing photo from attachment.
ae78bbd1c97e702147b29966903ca6e08ed3616f 13-Sep-2012 Adam Copp <adamcopp@google.com> Add option to permenantly show ProgressBar

In order to indicate to the user that more content is loading, the
provider can provide an image with the loading field set and null as it's
url. In this case, we will not try loading any image, and will just show the
ProgressBar.

Something like this is nessecary in Velvet, where we wish to load
infinite images.

Change-Id: Ib26412a579abdbe7fbd338b99ff39f4d1c13f806
ndroid/ex/photo/adapters/BaseCursorPagerAdapter.java
ndroid/ex/photo/adapters/PhotoPagerAdapter.java
ndroid/ex/photo/fragments/PhotoViewFragment.java
ndroid/ex/photo/provider/PhotoContract.java
ndroid/ex/photo/util/ImageUtils.java
2795f43ff0b98f6aab16b5db7d56c646875d6dae 20-Sep-2012 Adam Copp <adamcopp@google.com> Merge "Cursor listeners can use setPhotoIndex meaningfully"
4a6a7183e0740dfb305a16676c867e182aced7aa 19-Sep-2012 Adam Copp <adamcopp@google.com> Cursor listeners can use setPhotoIndex meaningfully

Cursor listeners can now use setPhotoIndex and have the changes take
effect immediately. It appears that nobody in code search will have
their code broken by this change.

Change-Id: I76afd8545310c24f05307d38ed03081914a17987
ndroid/ex/photo/PhotoViewActivity.java
2539f2ef0fa351d40551dda5ba0b543b2a042b0f 19-Sep-2012 Mark Wei <markwei@google.com> Prevent NPE while viewing photo from attachment.

Bug: 7189283
Change-Id: Ibcb98ae13cf801a6934e0ed4efb4c5349678dcce
ndroid/ex/photo/fragments/PhotoViewFragment.java
da471e748028dd1d30fbb140432a897f4868f238 19-Sep-2012 Paul Westbrook <pwestbro@google.com> am dd2a57c4: am d9904217: am bd64181d: Integrate copy of GestureDetector into photoviewer

* commit 'dd2a57c446c05fe7cd8453bc249f38c03d2ab299':
Integrate copy of GestureDetector into photoviewer
190f6bd9a66ab01364451e22cb7992f86227a4c6 18-Sep-2012 Paul Westbrook <pwestbro@google.com> Integrate copy of GestureDetector into photoviewer

This allows the MR0/1 behavior to be used when Email/Gmail is
running on older versions of the platform

Change-Id: I1936d36ddb9f09a3b48d38c2ad44e70ac002fbda
ndroid/ex/photo/views/GestureDetector.java
ndroid/ex/photo/views/PhotoView.java
524ac65920b684ca4602e23981cb976e2bab0f0d 17-Sep-2012 Mark Wei <markwei@google.com> am 34672da4: am 4030071b: am 697c046e: Prevent NPE in Gmail while viewing photo from attachment

* commit '34672da452ddf07347d2e9fc02f6d66c954ebba3':
Prevent NPE in Gmail while viewing photo from attachment
c4d9382e8e52e1122d51f52402c6c4a609a785d6 17-Sep-2012 Mark Wei <markwei@google.com> Prevent NPE in Gmail while viewing photo from attachment

Bug: 7174197
Change-Id: I29ca226b5134888dbe3488f859d9790fe1388984
ndroid/ex/photo/fragments/PhotoViewFragment.java
1389ae2ea3376b317e4810f9e3b123a0cb5ac008 11-Sep-2012 Adam Copp <adamcopp@google.com> Do not show loading bar after thumbnail has loaded

After talking to the designers for Google Now, who have said they talked
to the designers from gallery app, it appears that we should not show
the loading spinner once the thumbnail has loaded.

Let me know if this is orthogonal to the behaviour you would like in the
gmail app, and I can write a more involved patch with an overridable
callback to decide wether to show the spinner or not.

Change-Id: I77a3f2e2487d469ab47e45c7a94942f831528d41
ndroid/ex/photo/fragments/PhotoViewFragment.java
3b16fb64efd107102fe93bf0c6cd09ae1c1614f5 06-Sep-2012 Adam Copp <adamcopp@google.com> Merge "Make setLightsOutMode protected"
b462d1bf5d3833fabbdc38d13f66dadcf6ceda54 06-Sep-2012 Adam Copp <adamcopp@google.com> Fix double-tap to restore from fullscreen

After auto-hiding the actionbar, two taps must be made to restore
the action bar.

this change fixes that by calling setFullScreen instead of just changing
lights out mode. This correctly updates the mFullScreen variable and
means only one tap is required to restore the action bar.

Bug: 7117697

Change-Id: I8645ca77c2f025868c487c2c63e7057d696d6dac
ndroid/ex/photo/PhotoViewActivity.java
7e6995626b551c215bc3064c95b9996af940746a 06-Sep-2012 Adam Copp <adamcopp@google.com> Make setLightsOutMode protected

setLightsOutMode becomes protected so that subclasses can reliably
hide and show ui elements when fullscreen mode is enabled.

Change-Id: I891cfd80b515df72020d5df21427247615f04a74
ndroid/ex/photo/PhotoViewActivity.java
0ab3e0cf9cbb5751a276e4c2555640a0e8173b5f 28-Aug-2012 Adam Copp <adamcopp@google.com> Scope changes and removal of unnessecary variable

Adds isFullScreen() and setPhotoIndex() protected methods to
PhotoViewActivity in order to allow subclasses access to this
information.

Removes mDataValid from BaseCursorPagerAdapter since it was hiding how
simple the checks actually were (it was just mCursor != null)

A nullcheck has also been added to BaseFragmentPagerAdapter in
instantiateItem. in the long term, BaseCursorPagerAdapter should not be
so fragile, and should not surface nulls, but that change could be quite
involved, so should probably not be rolled into this change.

Change-Id: I4889c5ae2a764660926c70da25b85565f4600188
ndroid/ex/photo/PhotoViewActivity.java
ndroid/ex/photo/adapters/BaseCursorPagerAdapter.java
ndroid/ex/photo/adapters/BaseFragmentPagerAdapter.java
91dbfd25cc234de393ae22fc39a832a6335e1bc2 04-Sep-2012 Adam Copp <adamcopp@google.com> Add parameter for max initial scale factor

you can now pass EXTRA_MAX_INITIAL_SCALE into PhotoViewActivity in order
to specify the maximum initial scale of images displayed. This parameter
defaults to 1x if now supplied, so images will not be displayed larger
than their actual size by default.

This allows the gmail team to resolve 7049410 whilst velvet can keep
something like the old behaviour (which is more natural for their app)

Bug: 7049410
Change-Id: I7d230666ca50a4634d8436519ed280cc6e558ee3
ndroid/ex/photo/Intents.java
ndroid/ex/photo/PhotoViewActivity.java
ndroid/ex/photo/adapters/PhotoPagerAdapter.java
ndroid/ex/photo/fragments/PhotoViewFragment.java
ndroid/ex/photo/views/PhotoView.java
d4a7a6c3fbbeed97d6550612e81c57f98f093a84 30-Aug-2012 Paul Westbrook <pwestbro@google.com> am 7d920938: am 45faaf4d: am 2b4059cd: Allow action bar to be updated

* commit '7d9209389c0c678cbd5a82d767fb6c984fcd0d64':
Allow action bar to be updated
2989cf0c8e4b0aee4c9ac2b5384a392fd74cd6a9 30-Aug-2012 Paul Westbrook <pwestbro@google.com> Allow action bar to be updated

Allow the action bar to be updated when the photo list loader
loads data

Bug: 7082929
Change-Id: I476df1fa2ec7dcb1adfe5aed359a5126c60be179
ndroid/ex/photo/PhotoViewActivity.java
f24e7099f9688518d705116c1b4279fc6279d3d6 30-Aug-2012 Mark Wei <markwei@google.com> resolved conflicts for merge of f688fc95 to master

Change-Id: Ib4ade547d76faa4a730b75ea691c1cf1f99888cd
0f7d1502f4f7c0b364e7644875a04fb0c90807ff 30-Aug-2012 Mark Wei <markwei@google.com> Fix NullPointerException when tapping attachment.

Bug: 7083179
Change-Id: I9955aeda9a0d2bb6d30ce9f7e7e3961cb47284e0
ndroid/ex/photo/loaders/PhotoBitmapLoader.java
ndroid/ex/photo/util/ImageUtils.java
11661deff6135a896c8bc716d30a17c08892b56b 30-Aug-2012 Mark Wei <markwei@google.com> am 97992e59: am c645df0a: am 4f38cc16: Attachment image viewer should not scale images larger than original size.

* commit '97992e595ffb8eef8a6a12609cc4da368d4e0f6f':
Attachment image viewer should not scale images larger than original size.
3a14814364ff1e48109d32a06bd063c66914889b 30-Aug-2012 Mark Wei <markwei@google.com> Attachment image viewer should not scale images larger than original size.

Bug: 7049410
Change-Id: I1ed2555203e1541f1481cae4f17f532eaa57c1cd
ndroid/ex/photo/loaders/PhotoBitmapLoader.java
ndroid/ex/photo/views/PhotoView.java
e9d441306cc11d5538f8af05db4d0f94a1e91f70 29-Aug-2012 Paul Westbrook <pwestbro@google.com> am 4689c6f8: am 162052cc: am 114cef99: Fix crash in email with attachments

* commit '4689c6f834a99fe8b57f2391bc14d13a3c6645cb':
Fix crash in email with attachments
e6d03190d2b2ec6ea07a59daa7e687c3c383f9c3 29-Aug-2012 Paul Westbrook <pwestbro@google.com> Fix crash in email with attachments

There isn't a need to call swapCursor in a runnable

Bug: 7072747
Change-Id: I0a0a9b6835acc4a1d1748c94f4d8bec4551638b0
ndroid/ex/photo/PhotoViewActivity.java
ndroid/ex/photo/adapters/PhotoPagerAdapter.java
502e7156de49b62863ef0824cfd8b5a0be65dbed 22-Aug-2012 Adam Copp <adamcopp@google.com> Merge "Add HTTP uri handling & fetch thumbnail first"
bd8b47b147f29f196f37d66ccb561d40414ab5b6 22-Aug-2012 Adam Copp <adamcopp@google.com> Add HTTP uri handling & fetch thumbnail first

If a http:// or https:// url is specified as the thumbnail uri or
regular uri for an image, we attempt to fetch it over the internet.

Also, changed the order of loading so that we always attempt to fetch
the thumbnail image before we fetch the regular image. This aids in the
http:// uri case, since it should take significantly less time to be
presented with a thumbnail than the full image.

Finally, finishes the photo viewer activity when the "top" button on the
action bar is pressed, unless a custom override has been added.

These 3 changes could be seperated into different patches if you would
like

Change-Id: Iddc8cc6bef3f9e66198dfb98eb2f7bd309023b3f
ndroid/ex/photo/PhotoViewActivity.java
ndroid/ex/photo/fragments/PhotoViewFragment.java
ndroid/ex/photo/util/ImageUtils.java
abfecf5511e7f4e700f77826b9ed9834313143ff 21-Aug-2012 Marc Blank <mblank@google.com> Abort posted runnable if cursor is no longer open

Bug: 7002552
Change-Id: I38ce1231b0ec88ebf02d4d0edb5495b8baac65d5
ndroid/ex/photo/PhotoViewActivity.java
9556f61c11991d6e955cfd68ca53f4f489dfa8c5 14-Aug-2012 Paul Westbrook <pwestbro@google.com> Fix some photo view problems

Make sure to stop the indeterminate progress bare when we can't
load an image

Bug: 6956516
Change-Id: Ifb69ca2e08a8ddfb351989d8e276e7fb6e3b06e5
ndroid/ex/photo/PhotoViewActivity.java
ndroid/ex/photo/adapters/BaseFragmentPagerAdapter.java
ndroid/ex/photo/fragments/PhotoViewFragment.java
ndroid/ex/photo/views/ProgressBarWrapper.java
7d13b0b858f6d2bce1a1f0088ab6739033087d19 11-Aug-2012 Andrew Sapperstein <asapperstein@google.com> Created a sample photo viewer implementation.

Change-Id: Ida5ab5c3247a52c5fbbd495d6e127c18493356ce
ndroid/ex/photo/provider/PhotoContract.java
68a16aa04f9b98868f4412e7324b0fc292c9d858 07-Aug-2012 Andrew Sapperstein <asapperstein@google.com> Made title and subtitle not show immediately.

Fixes an issue where we used to show the app title
for an instant before getting the data for the photo.
Now we show nothing until we have the photo data.

Change-Id: I2a77b18af2ec2051848c188e0dad7ca04be4f285
ndroid/ex/photo/Intents.java
ndroid/ex/photo/PhotoViewActivity.java
ndroid/ex/photo/adapters/PhotoPagerAdapter.java
1a7f70300256d443fe2236a0008b4aa016e2d834 07-Aug-2012 Andrew Sapperstein <asapperstein@google.com> Fix Build.

Change-Id: If36065612faadc4d6b44ddbfc9efde0597db4718
ndroid/ex/photo/PhotoViewActivity.java
150e623129eef49467f1d6f67649e4636a4513f2 03-Aug-2012 Andrew Sapperstein <asapperstein@google.com> Enabled optional support for showing progress.

Added some progress bars to the "empty" view
so that implementors of the API can show the
progress of things like downloads or loading.

Additionally, added a retry button and an optional
text that allows you to indicate status to the user.

Due to a bug in the framework, we actually use two
progress bars (one determinate and one indeterminate)
to update our status. Created a wrapper that allows
the controlling of both progress bars in sync.

Change-Id: I710e06317948d376d445abf1603545982ac8479d
ndroid/ex/photo/PhotoViewActivity.java
ndroid/ex/photo/fragments/PhotoViewFragment.java
ndroid/ex/photo/views/ProgressBarWrapper.java
1abd4654c2eeacc7d854a438a9c72d7239278bea 30-Jul-2012 Andrew Sapperstein <asapperstein@google.com> ActionBar now auto-hides like Gallery's version.

5 second delay from opened. Will not hide on first
appearance. Has be closed and re-opened. Also,
eliminated the progress spinner when the photo hadn't
yet loaded.

Additionally, modified the action bar to match gallery's
transparency.

Change-Id: I69e72d787bc2cda9c18df6a9cf1800d155d6876a
ndroid/ex/photo/PhotoViewActivity.java
ndroid/ex/photo/fragments/PhotoViewFragment.java
c3f8a6b51c1d78806616ac4dcc5204e7e9053285 28-Jul-2012 Andrew Sapperstein <asapperstein@google.com> Fixes a bug where scaling would not be performed.

Had to add an additional case to the page transform
that handles the new issue where the just disappeared
view is actually behind the screen but still getting
touch events. Victory.

Change-Id: Ifb760fd7d7510fec37c4101d448dbc980575b1be
ndroid/ex/photo/PhotoViewPager.java
9db663e1e820c3445f57fe11d9a12e9c8777e704 27-Jul-2012 Andrew Sapperstein <asapperstein@google.com> Partial fix of 6890014.

No longer crashing. But the attachment is now
in a very weird state.

Change-Id: If688d9c19a81124cbd1ecd0266821800f76f3c74
ndroid/ex/photo/Intents.java
ndroid/ex/photo/adapters/PhotoPagerAdapter.java
ndroid/ex/photo/util/ImageUtils.java
9007d640832f674a9d65058a3c2a484c078d239e 27-Jul-2012 Andrew Sapperstein <asapperstein@google.com> Showing a default preview photo.

If we do not have a preview and are currently
waiting on a full photo, we will show a stock
photo. Currently shows a grey box as we do not
have assets yet.

Change-Id: I155071598b20bf81b2b60bdd8ac881a64b8ee1b7
ndroid/ex/photo/PhotoViewActivity.java
ndroid/ex/photo/fragments/PhotoViewFragment.java
6361dccee51bc01d75df08bc35b7893a98e7ed48 25-Jul-2012 Andrew Sapperstein <asapperstein@google.com> Finalized the photo viewer transitions.

Changed the black background to be on the
FrameLayout behind the view pager rather than
on the the photo view. Also deleted some dead code.

Change-Id: I19759d3f7e93c32b6c6aceda0c296610f90f20f7
ndroid/ex/photo/views/PhotoView.java
d04cec7495069a1a72a7721fab33eca94cd49043 25-Jul-2012 Andrew Sapperstein <asapperstein@google.com> Added transitions to photo viewer.

Change-Id: Ie3c9a36019e161cf0f7b32cfbeba4749ef5ccfd8
ndroid/ex/photo/PhotoViewPager.java
928a39fb533255b34145285fabbd4f51961df63a 24-Jul-2012 Andrew Sapperstein <asapperstein@google.com> Support showing previews in the photo viewer.

The photo viewer now supports the notion of a
preview of the full image. The preview is not
pinchable in any manner and displays a circular
progress bar over top of it while we are downloading
the full version of the image.

To enable this functionality, there is a new column
in the PhotoContract API called thumbnailUri. If it is
not set to null and if the attempted load of the contentUri
is unsuccessful, we will attempt to load a thumbnail version
that will show until the contentUri is finished loading.

Change-Id: I5547a5fc6a30ee6a30f137dc1dee76a77fb5b304
ndroid/ex/photo/Intents.java
ndroid/ex/photo/adapters/PhotoPagerAdapter.java
ndroid/ex/photo/fragments/PhotoViewFragment.java
ndroid/ex/photo/provider/PhotoContract.java
ndroid/ex/photo/views/PhotoView.java
0c18e5deef5209d21b527a01feb6b789715eb48e 21-Jul-2012 Andrew Sapperstein <asapperstein@google.com> Reloading bitmaps if cursor updates.

Change-Id: I5624e533d4f35255028cd1a31508dabdb33dfe7f
ndroid/ex/photo/PhotoViewActivity.java
ndroid/ex/photo/adapters/BaseCursorPagerAdapter.java
ndroid/ex/photo/adapters/PhotoPagerAdapter.java
ndroid/ex/photo/fragments/PhotoViewFragment.java
ndroid/ex/photo/loaders/PhotoBitmapLoader.java
8122882aaf14820bc2241605b2ab818ad358b9af 27-Jun-2012 Ying Wang <wangying@google.com> Import translations. DO NOT MERGE

Change-Id: Ib683da0aa64c2c63dfc672ea18b7417aded3ec5c
ndroid/ex/photo/Intents.java
ndroid/ex/photo/PhotoViewActivity.java
ndroid/ex/photo/PhotoViewPager.java
ndroid/ex/photo/adapters/BaseCursorPagerAdapter.java
ndroid/ex/photo/adapters/BaseFragmentPagerAdapter.java
ndroid/ex/photo/adapters/PhotoPagerAdapter.java
ndroid/ex/photo/fragments/PhotoViewFragment.java
ndroid/ex/photo/loaders/PhotoBitmapLoader.java
ndroid/ex/photo/loaders/PhotoPagerLoader.java
ndroid/ex/photo/provider/PhotoContract.java
ndroid/ex/photo/util/ImageUtils.java
ndroid/ex/photo/views/PhotoView.java