12 Commits

Author SHA1 Message Date
Philip P. Moltmann
66c96591e2 Add "app printer activity" and always keep the print service state
updated. Also fiddle with the UI to use more standard values.

To be sure the print service state alwasy updated I changed
PrintManager.getPrintServices to return a loader which just wraps a
registerListener/getList/removeListener combo.

I also added a new function to enabled/disable a print service to be
keep all updating logic inside the PrintManagerService->UserState.

Then I changed all code to use this new interface.

Detailed comments:

PrintServiceInfo:
- I had to add the enabled state to the PrintServiceInfo as some users
  of PrintManager.getPrintServices want all services but then display
  different data depending on the enabled state. Of course I could have
  created two PrintManager.getPrintServices-loaders to load the two
  separate list of services. I think it is much easier to add this
  property though. It is updated every time new data is returned to the
  PrintManager.getPrintServices-loader.

AddPrinterActivity:
- This is shown as a dialog-style overlay to indicate that the user will
  return to the select-printers activity. It contains of three list that
  are updated via separate loaders.
- The recommended services will be added later to keep this path set
  small.

PrintActivity:
- There are two small places where we have to update the data when we
  get a new list of print services.
  - In very, very rare conditions it can happen that the print service
    of the current printer gains or looses the "advancedOptions"
    activity
  - If we have no enabled print services we want to show "Add printer"
    instead of "All printers...".
- Also the print registry is not the only loader anymore, hence we have
  to assign loader ids to it to not conflict with the other loaders in
  this activity.
- Small bug in onPrintersChanged: If a printer is selected and the print
  service of this printer gets disabled the holder goes into "removed"
  state which disables the printer. When the print service is then
  enabled again, we forgot to re-enable the holder.

PrinterRegistry:
- The registry assumed that the FusedPrinterProvider was the only loader
  in the activity. This is not true anymore, hence it has to assign the
  appropriate loader ids.
- The FusedPrinterProvider has an internal loader, hence we have to
  forward a loader Id into it.
- The PrintRegistry is only called backed for a single loader, hence no
  need to check the loader-id.

SelectPrinterActivity:
- The AddPrinterDialog was removed as we now have the
  AddPrinterActivity.
- Added a loader for the enabled services to update the empty state.
- Added dedicated loader Id for the PrinterRegistry again.
- If we have no enabled services, the SelectPrinterActivity chainloads
  the AddPrinterActivity as this is the only thing the user can do
  anyway. "Save a click". This should only happen when the activity is
  create the first time.
- Moved the "add printer" from the menu item to the list of printers as
  suggested by UX and Zach.

PrintManagerService, UserState and IPrintManagerParamtersTest:
- As the only place where the print service state is updated is now the
  userstate, we have no more sychronization problems. Whohoo.
- The users can now register for changes to the print services similar
  as they can register for changes to the print jobs.
- UserState.getPrintServices is the only function can exposes any
  knowledge of the print services to the outside world.

Change-Id: I9be2c7300431e06aaff9bdf7eb36120d869b56ac
2016-03-07 09:58:08 -08:00
Philip P. Moltmann
443075ab97 UI improvements for the print spooler
- gray out printer icons of unavailable printers
- Increase touch target of more into button
- Use same info icon as in the Settings
- Align text correctly in destination drop down
- In general use same layout as generic list-item (as much as possible)
- remove unnecesary color file

Change-Id: I8b0339df0cb6a5130b5530f21c4ef86cb75a683b
2016-01-29 10:49:29 -08:00
Philip P. Moltmann
bb9f686b40 Allow a print service to specify per printer icons, description and
info-activities

The icon is loaded from the discovery session only when it is displayed
to avoid having to store too many icons in memory.

Also the icons are not maintained in the historical printers. Only if
the printers are available nice icons are shown. A historical printer is
updated with the appropriate properties (including icon) once it becomes
available.

Bug: 24135005
Change-Id: Iec389bab514b024634be8fb5fc8928371cba8740
2015-12-21 09:54:57 -08:00
Philip P. Moltmann
7dfe4f64dc Switch add icons to the default menu add icon
Also use the material search icon.

Bug: 22563699
Change-Id: Iff7c6b5cac8a9f0bf282e061d2ed09c4c0fb480a
2015-11-16 11:58:46 -08:00
Svetoslav
3c238245eb Update the "More options" button in printing.
The "More options" button needed changes to match the
new UX spec. Also fixed some identation issues as well
as a missing marging in the erorr UI.

bug:16301066

Change-Id: I29f0d41915d1816d754f2c6288a7387aafeba2c2
2014-08-20 19:57:16 +00:00
Svetoslav
309f6a0e1b Update the print spooler icon.
Removed a duplicate resource also defined in the platform
resources. Added a tint to the print spooler icon.

bug:16568027

Change-Id: I1c0b9a7bd75bc59d1d86653c05d8fc2bb77056c1
2014-08-18 23:37:56 +00:00
Svet Ganov
38781bd2c2 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
2014-08-13 04:07:21 +00:00
Svetoslav
e323dcc31d Drop of the final UX assets for printing.
bug:15705610

Change-Id: I82104a2c0b3d1f4e34f71357b10bed24c0583e71
2014-07-15 17:16:40 -07:00
Svetoslav
283203e204 Style the all printers activity in material theme.
bug:16301078

Change-Id: Ib96f1e232914802d0b5ddc874be4a4d24a74b685
2014-07-15 14:02:55 -07:00
Svetoslav
53912d07d2 Fix the print button appearance.
Change-Id: Ie19a52eaf08e1e39bb488c5afa2344c72e646b0b
2014-07-11 21:42:06 +00:00
Ruben Brunk
ef1b1398e9 fixbuild: Remove 'pinned' attr.
Needed by ag/481620

BUG: 15523923
BUG: 15473856

Change-Id: I5e8bf417368b60fcc33c80852e12f27b8c580774
2014-06-11 11:56:58 -07:00
Svetoslav
a798c0a984 Refactor printing
Change-Id: I19850154ef2798afff511e4490a268ce38e8cbae
2014-06-06 13:33:16 -07:00