History log of /frameworks/base/packages/PrintSpooler/src/com/android/printspooler/ui/PageAdapter.java
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
4ef83c4647471aa5aefce463ed8abfe37da7fd00 24-Mar-2016 Philip P. Moltmann <moltmann@google.com> Update print preview when option is changed and clear ranges when they
layout changes

Before we updated the print preview when the paper size changed but not
when the page ranges changed. This is not consistent. We always change.

Also if there is a change to the options that changes the layout (i.e.
papersize, orientation, minMargins) then clear the selected ranges as
this does not make sense anymore.

This also fixes a bug that when having pages selected while we reduce
the number of pages in the preview we got a NPE.

Bonus: do not constantly re-update the options UI when range or copies
text is updated.

Bug: 27830850, 27741420
Change-Id: I7abe4a74b44ac5c5ee54d12cc0c1ca1540793f0e
/frameworks/base/packages/PrintSpooler/src/com/android/printspooler/ui/PageAdapter.java
066bf81b983ce23b91d19b85b7c37a61fba7a9a6 10-Mar-2016 Philip P. Moltmann <moltmann@google.com> Deal with print-preview renderings that do not match the correct number
of pages.

If the printing app declares more pages than the print preview pdf has
we used to throw an exception in the PDFManupulationService. This caused
the bitmap to be never written and the read-bitmap function to hang
forever. This was because read() return 0 meaning "pipe is closed" which
lead to an infinite loop. Now a read of 0 page might cause an exception
if the page is not fully read. This exception then causes the
preview_page_error to be displayed.

Bug: 27556666
Change-Id: I7b9de50dce930629e8d38efd4e2659a00b70cc4e
/frameworks/base/packages/PrintSpooler/src/com/android/printspooler/ui/PageAdapter.java
e7f06a874a47df969603654e3ceb8beed288b4ec 17-Mar-2016 Philip P. Moltmann <moltmann@google.com> The PageAdapter update might be caused by the RecylerView.

In this case it cannot call back into the recyclerView and update the
data. For the call path please see the bug.

Bug: 27614499
Change-Id: I84733fea30429c20a2c96085efb47d4da5e1948a
/frameworks/base/packages/PrintSpooler/src/com/android/printspooler/ui/PageAdapter.java
c43639c3067dda5df189fb3cbf14f256c17e677d 18-Dec-2015 Philip P. Moltmann <moltmann@google.com> Clean up print subsystem

- Stop using deprecated APIs
- Fix all public and some internal javadoc
- Add @Decorations to public APIs
- Some minor cleanup, e.g. don't use variables with overlapping names in same scope
- remove unnecessary properties from manifest (they are set by the build
system)

Change-Id: I0ce8849a516414763fe9de76c3a18ce17d896816
/frameworks/base/packages/PrintSpooler/src/com/android/printspooler/ui/PageAdapter.java
c80814e70aea8940d0d43cd7170baae8c0c4e8e3 24-Nov-2014 Svet Ganov <svetoslavganov@google.com> Lockup in the print spooler.

A recent change modified the way we destroy the remote renderer from
asynchronous to synchronous. This caused problems since it was possible
that the remote rendering service is unbound while we are reading the
contents of a rendered page. As a result the reader was blocking on I/O
and the print spooler was getting into a locked state that required a
restart of its process. Now the remote renderer is destroyed
asynchronously.

bug:18498626

Change-Id: I1312bf808f30430728b4038dd4be43c55d2be825
/frameworks/base/packages/PrintSpooler/src/com/android/printspooler/ui/PageAdapter.java
fce84f035c35606c5707e735f503f7bdcfd5b2a1 01-Nov-2014 Svet Ganov <svetoslavganov@google.com> Crash apps that print malformed or password protected PDFs.

If apps are writing malformed content (typically not a PDF file) or if the
PDF content they provide to the print system is password protected, are now
crashed as both of these are app bugs.

bug:17636435

Change-Id: Ifce6a3199e587448dd38f6a84290a965c24b698b
/frameworks/base/packages/PrintSpooler/src/com/android/printspooler/ui/PageAdapter.java
4237c92d850b7fb0fa0be15df94e4d1689e353fc 24-Oct-2014 Svet Ganov <svetoslavganov@google.com> Crash in print spooler if printing app killed from recents.

If the printing app with the print UI on top is killed from recents we get
a crash because: 1) the remote print document was not transitioned to a
failed state if the printing app dies (this is an unrecoverable failure);
2) the print preview controller was destroyed asyncronosly during which it
also asynchronously disconnects from the rendering service which however
happens after the system has already cleaned up all connections of the print
UI activity as it is being destoryed.

bug:18109386

Change-Id: If6200b14a8aa90622228bbb659e9c4962226f561
/frameworks/base/packages/PrintSpooler/src/com/android/printspooler/ui/PageAdapter.java
237806bbc540938a87a26b53f117c82ce75025fa 24-Sep-2014 Svetoslav <svetoslavganov@google.com> Missing pages in print preview when scorolling.

It is possible that two providers for the same page are assigned
to two preview views despite temporariliy while rebinding. We were
however releasing the provider from the view which is being bound
if not for the same page which as a result was cancelling rendering
of this page which is provided to another view via another provider.
Hence, having an empty page. Removed the unnecessary code to release
a provider when binding the view - release is happening only if the
view holder is recycled.

bug:17515670

Change-Id: I197438c16cfdb363f521cd1320f154da54eea5f5
/frameworks/base/packages/PrintSpooler/src/com/android/printspooler/ui/PageAdapter.java
9424b733c7f777fc806a751a7f00d234c11c0e7c 19-Sep-2014 Svetoslav <svetoslavganov@google.com> Fix a print spooler crash when printing.

The spooler communicates with he remote PDF renderer asynchronously.
When print is confirmed we close the renderer, destroy it, and unbind
from its service. If we unbind from the service after the print activiy
is finished we get a crash. The bug was that we did not wait until we
disconnect from the remote renderer before finishing the print activity.

bug:17583115

Change-Id: I55b0135f9c5658b3a4fda2901b8b3bdef044e211
/frameworks/base/packages/PrintSpooler/src/com/android/printspooler/ui/PageAdapter.java
0d2d9637ed4f46062d508cfa7da0e9776fc444f8 18-Sep-2014 Svetoslav <svetoslavganov@google.com> Page content sometimes missing in preview when scrolling.

Removed the restriction for the page content providers to
be singletons as the RecyclerView may hold on views with
providers and ask us to bind other views for the same page.
Note that the views that RecyclerView is holding will be
soon rebound or recycled just they are not at the time we
bind other views for the same position. We were guarding
against this but caused some pages not appearing sometimes
on scrolling. Also now keeping the media size and magins
of recycled page view (will be updated if needed on
rebinding) or avoid changes of the background to null as
setting it to not null later causes an undesired layout pass.

bug:17537922

Change-Id: If029f6c413e15d4f5c1ba1ac5e4d52ad2cad5904
/frameworks/base/packages/PrintSpooler/src/com/android/printspooler/ui/PageAdapter.java
7fd5ada98aa9e035682531d9fe25633fdd24a058 16-Sep-2014 Svetoslav <svetoslavganov@google.com> Page content sometimes disappears when scrolling a long doc in print preview.

The operations of the remote renderer have to be performed in order, open,
render some pages, close. One of the tasks was executed on the wrong executor
resuling in a race and an occassional bad state.

Also fixed a NPE if the preview list is flinged and then the user presses
back.

bug:17537922

Change-Id: I5048078ba2b875a2a8335f3a4324afaa34d014a2
/frameworks/base/packages/PrintSpooler/src/com/android/printspooler/ui/PageAdapter.java
f3f963b0bebea91b17f7e60d9b826c458bfde38c 16-Sep-2014 Svetoslav <svetoslavganov@google.com> Missing or wrong pages in preview when scorlling large docs.

The bound pages in the adapter were not properly tracked, more
specifically we did not remove pages from the bound set ending
up in a bad state. Also when the printer changes and if the
new one has different page size the content disappears due to
us not notifying for the data set change.

bug:17515670

Change-Id: Iac74e864609012f6804584fa133e87c27dc186a5
/frameworks/base/packages/PrintSpooler/src/com/android/printspooler/ui/PageAdapter.java
e771caf332bb3f2b668aaf249b30f37f13755553 15-Sep-2014 Svet Ganov <svetoslavganov@google.com> Fix a crash in pring spooler.

If the printer capabilities are reported with a delay which is pretty
common we were trying to evaluate the preview page dimensions without
having a media size resulting in a NPE.

bug:17501953

Change-Id: I6765137f61b8fd060e9eabff07e632875d934963
/frameworks/base/packages/PrintSpooler/src/com/android/printspooler/ui/PageAdapter.java
139ba7fb0ed976bdbc7c283e3f7fe9980eed22a6 12-Sep-2014 Svetoslav <svetoslavganov@google.com> Fix a crash in print preview on multiple rotations.

bug:16966145

Change-Id: I8266315bd9253953cb6c3b9dab1ba36f104a74a5
/frameworks/base/packages/PrintSpooler/src/com/android/printspooler/ui/PageAdapter.java
c65510a7bc0a1519c5633940bce52d7f2334b640 11-Sep-2014 Svetoslav <svetoslavganov@google.com> Merge "Accessibilty support for the print UI." into lmp-dev
e652b02d45bbda11c9cb8f663fa7f25903b90225 10-Sep-2014 Svetoslav <svetoslavganov@google.com> Accessibilty support for the print UI.

bug:15816751

Change-Id: I5dcdbdd0357843b870ddd47d7c41cfba114d194c
/frameworks/base/packages/PrintSpooler/src/com/android/printspooler/ui/PageAdapter.java
dfa3e7c6fd4e8a28ba51b54c769b891191459012 10-Sep-2014 Svetoslav <svetoslavganov@google.com> Fix page spacing in preview list.

bug:16966145

Change-Id: I2c4bde3a50ee0fc202fc169a63d4eeeb43c5f4ae
/frameworks/base/packages/PrintSpooler/src/com/android/printspooler/ui/PageAdapter.java
6552bf3da60159607d9266eb295ee3c448f6c3de 04-Sep-2014 Svetoslav <svetoslavganov@google.com> Print spooler UI polish and bug fixes.

1. Added an empty state for pages that are being rendered.

2. Fixed a NPA on a binder thread when destoroying the
remote print adapter.

3. Fixed a rare crash when the print activity gets an
activity class callback while initializing.

4. Changed the preview pages on phone in land to four.

5. Fixed a flicker from a list of pages to an empty state
and then back to the list of pages.

bug:15704969
bug:16966145

Change-Id: I0eea2f30a102d8fefcbf90187fa6d8612fb19434

Conflicts:
packages/PrintSpooler/src/com/android/printspooler/widget/PageContentView.java
/frameworks/base/packages/PrintSpooler/src/com/android/printspooler/ui/PageAdapter.java
c404cacd3a480776dd625fb300810ffccc5f51b0 28-Aug-2014 Svetoslav <svetoslavganov@google.com> Print UI polish.

1. Fixed an issue where input focus is given to the copies
edit text every other time we expand the options UI. We
want focus there only if the user touches the control.

bug:16966145

2. Fixed the all printers list view to have item dividers
reaching the left and right ends of the list view.

bug:17288761

3. Fixed an issue where the user can deselect all pages
which is not only an invalid state but also causes a crash.

bug:17286198

4. Tweaked the minimal size of the preview in landscape on
phone to better accomodate the page.

bug:17288904

5. Fixed a regression introduced by a change from the UI folks.

Change-Id: Ida7dad7eea413295a840028060810b2619c616e8
/frameworks/base/packages/PrintSpooler/src/com/android/printspooler/ui/PageAdapter.java
38781bd2c2c61385651314098b4a615cb8e8efa1 12-Aug-2014 Svet Ganov <svetoslavganov@google.com> Fix some minor print UX bugs.

1. The last row of print options was not visible on a phone.

2. The preview page size on a phone in landscape unusably small.

3. Updated the Save to PDF icon.

bug:16966145

Change-Id: I25ce1572758c62f34344683af2452fb045bb857e
/frameworks/base/packages/PrintSpooler/src/com/android/printspooler/ui/PageAdapter.java
5ef522bc19cc9fc1af48cccd2865744228c5ec02 24-Jul-2014 Svetoslav <svetoslavganov@google.com> Handle wrong file format when printing.

PDF is the only format suppored for printing but a buggy app
can write content in another format which was crashing the
print spooler. Now we are generating an error instead of
crashing.

bug:16487161

Change-Id: Ic59d2ac6d57213f4e8f364659d8dc7df2140e61d
/frameworks/base/packages/PrintSpooler/src/com/android/printspooler/ui/PageAdapter.java
cc2b210ff8d4aefc890c016e4d352f069a5d3eef 16-Jul-2014 Svetoslav <svetoslavganov@google.com> Merge "Update the promoted action background color per UX spec" into lmp-dev
4bcc4a042c760a776ef52a0f727331db3fa315d2 16-Jul-2014 Svetoslav <svetoslavganov@google.com> Update the promoted action background color per UX spec

bug:16303010

Change-Id: I54663a0be79b232a29d8fced4a772a32b4d83ae5
/frameworks/base/packages/PrintSpooler/src/com/android/printspooler/ui/PageAdapter.java
e323dcc31d403085d6ede0f8884c816f4420ef25 16-Jul-2014 Svetoslav <svetoslavganov@google.com> Drop of the final UX assets for printing.

bug:15705610

Change-Id: I82104a2c0b3d1f4e34f71357b10bed24c0583e71
/frameworks/base/packages/PrintSpooler/src/com/android/printspooler/ui/PageAdapter.java
41233447f9c2368946ef1266ae339c71cbe310b1 16-Jul-2014 Svetoslav <svetoslavganov@google.com> Merge "Drop of the final UX assets for printing." into lmp-dev
17d734fee434ca4a37104b783a78fabcda0ac2a5 14-Jul-2014 Svetoslav <svetoslavganov@google.com> Page size not always adjusted

A user can select the pages to print by selecting a range from the
UI after which the selected pages appear in the preview list. Now
the user can further prune pages by clicking on them. If the number
of pages change to two or one the page position and size were not
adjusted. Now after the constraints of desected by clicking pages
are propafated the page size position is also computed.

bug:16297811

Change-Id: I62c0ae8ab5b1d91b120cbf9faa9653ef4ccbd97f
/frameworks/base/packages/PrintSpooler/src/com/android/printspooler/ui/PageAdapter.java
9fb7b07c6cbdd1c6f394bfc456ccc034619b6727 14-Jul-2014 Svet Ganov <svetoslavganov@google.com> Dimming deselected preview pages

For print preview we show the pages the user selected in the range
affordance but the user can optionally further prune pages to be
printed by deselecting them in the preview. The deselected pages
change elevation and now also are dimmed.

bug:15912256

Change-Id: I53357b8e8b592387bbc26b937eda786bb4660d85
/frameworks/base/packages/PrintSpooler/src/com/android/printspooler/ui/PageAdapter.java
1710e0318db5db833974e390eb4bde54ab2f3c62 12-Jul-2014 Svetoslav <svetoslavganov@google.com> Fix print preview rendered page preloading.

After the preview list is scrolled we are preloading the
pages around the ones that are shown, so now if the user
does a slight adjustment (expected after a scroll) the
pages around are rendered. There was an off by one error
and one of the bitmaps of the shown pages was reused and
as a result the wrong content was shown.

Change-Id: If04aebf46bcc637491221c6218005ecc1a7253d2
/frameworks/base/packages/PrintSpooler/src/com/android/printspooler/ui/PageAdapter.java
15cbc8a03250eafdf947cd8ad4e77f34444d5ba4 11-Jul-2014 Svetoslav <svetoslavganov@google.com> Addressing comments for the print preview feature.

Change-Id: Ib72140a912e22f859258d970e0d1c4ef06e807d5
/frameworks/base/packages/PrintSpooler/src/com/android/printspooler/ui/PageAdapter.java
525a66b2bb5abf844aff2109bdc9ed819566bece 15-Jun-2014 Svet Ganov <svetoslavganov@google.com> Adding print preview.

This change adds the pring preview part of the new print UX. The
UI has two parts, the top section is the print options and the
bottom section print preview with a list of pages. The user can
interact only with one of them. When print options are expanded
they cover the preview content and a scrim is laid out on top of
the preview. Tapping the scrim collapses the print options. When
the user types in page ranges and closes the options to look at
the preview, the latter is updated to show only these pages. In
the list of pages the user can further prune pages by deselecting
them.

Change-Id: I0b23d2c598afe2a34400ccfa43e4e935af83c72f
/frameworks/base/packages/PrintSpooler/src/com/android/printspooler/ui/PageAdapter.java