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
This will let it play nicely with heads up.
- Move to QS Container.
- QS Edit is always full height (some layout hacks to do this)
- Always draw QS customizer on top when animating
- Block all panel scrolling while QS edit is open (all touches
go to editing)
- Instantaneously change the height of the QS container at
start/end of animation as needed
Bug: 26969293
Change-Id: Iedc6f5aaf659dcc6750972eae5f69cc0cd2df844
KeyChain can throw an assertion error if
is not around, don't allow that to take down
system.
Bug: 27518175
Change-Id: I99418dfb65c58d3e07cbda91860cdb493b96a836
Currently PopupDecorView temporarily gets FLAG_NOT_FOCUSABLE bit during
exit transition. When doing this we it is important that PopupDecorView
does not have FLAG_ALT_FOCUSABLE_IM bit, because having both
FLAG_NOT_FOCUSABLE and FLAG_ALT_FOCUSABLE_IM means that PopupDecorView
is IME-focusable.
To prevent IMEs from flickering, this CL ensures that PopupDecorView is
not IME-focusable during exit transition.
Bug: 27396330
Change-Id: I0cc81791b826f7d4257f0b6085c028c796fd9536
This CL changes nothing except for deleting redundant type parameters by
using diamond operator in TextServicesManagerService (TSMS).
No behavior change is intended.
Bug: 27456430
Change-Id: I18708fe44d2d9edfef8c1cf7cffef1bb0b5c003a
This reverts commit 9e7a1c9824.
Seems that that CL causes ArrayIndexOutOfBoundsException when
initializing InputMethodManagerService, which results in an infinite
boot animation.
Bug: 27129703
Bug: 27348943
Change-Id: I474a87876670ac018c675ac7b4608e90fbb2434b
We allow the home stack to be visible right behind the fullscreen
stack if all the activities fullscreen stack are translucent and
visible. However, if we are starting an acitvity it isn't visible
yet so our check for translucent activities in the fullscreen
stack will return true since there is nothing visible. This will
cause the home stack to the visible and the visiblilty of its app
token set to true in window manager and it been factored into the
transition animation.
In addition to checking if the activity is visible, we now also
check if it is the starting activity when trying to determine if
the stack is translucent.
Bug: 27448511
Change-Id: Icbbd57c0632cc5389c7ac894800a41f75d4bc450
The motivation of this CL is enhance the default IME subtype enabling
algorithm. The new approach is done by score based algorithm. The
design of the matching score is determined as follows:
- The matching score for the each two locale is up to 3 and determined
as follows:
- Score of 3 : matches all language, script and country.
- Score of 2 : matches the language and script.
- Score of 1 : matches the language regardless of country.
- Score of 0 : doesn't match the language regardless of script and
country.
- All locales are fully expanded before matching by addLikelySubtags in
ICU.
Bug: 27129703
Change-Id: I5bb1bd8cdb9096d516d60beb9936e55bf2b757ae
If the list of providers for the application being bound is empty,
don't bother trying to register them.
Bug: 27510621
Change-Id: I921fb70a4c97433fa123fa88e170745ee013ee35
For instrumentation test apks, it should not statically include
Java libraries that are already present in the app module being
instrumented. They only need to be on classpath during compile
time.
Bug: 26689464
Change-Id: I68d4be95e30ae70bbab23d016a87eb085c10cc50
RingtoneManager is the public API that everyone should be going
through, and it now has the side-effect of caching the set ringtone
to make it available before CE storage is unlocked.
Bug: 27435331
Change-Id: I30ed4e2df2ef1e4fd47f947c70845aaa74356384
When setting default ringtones, RingtoneManager now caches the
selected media for playback before the device is unlocked. However,
this API hasn't historically required the caller to hold storage
permissions.
To keep this working, we attempt to delegate ringtone access over
through RingtonePlayer, which is what we do for playback. However,
because we're caching the real ringtone bits now, we need to be much
more careful about the PFDs we're willing to return. This change
requires that they be in external storage, and that they have the
ringtone/alarm/notification bit set.
Bug: 27366059
Change-Id: I59c2adc1d1250a3eac281f190f35a7cb3119967b