Add a workaround to ensure that the WebViewDatabase and JniUtil can
still be initialized as side effect of making a CookieSyncManager
This was collateral damage from the fixes for Bug 10932261
Change-Id: If5ba65a7822d5b0afc14139dd84125058bf96897
Thanks to a measurement optimization in KK, the view recycling
behavior of ActionMenuPresenter could get into a state where the
resulting ActionMenuView had changed but no layout was
requested. Explicitly request a layout during menu update. Also fix an
ancient typo.
Bug 11047996
Change-Id: I6289fd2d142ac7d2101fbec6de19b7d3d7fbd6a2
On some display sizes, the wave animation was sometimes
running more than once, starting over in the center and animating
outward... partially.
The problem was that the calculations determining the alpha value
of the dots was returning bogus values when the display area was
large enough, which is why the bug is only on some devices.
This fix simplifies the math and ensures that the wave only animates
once, from start to finish.
Issue #11005936 regression on lockscreen animation for multi-wave widget
Change-Id: Id21a2e4d2271f01c82c4bc6e1f37d78e68b9b6e4
Added two public APIs under TelephonyManager to return MMS UserAgent and
UAProfUrl strings, for apps that handle SMS/MMS.
Bug: 11054501
Change-Id: Ifa1a64990fa2bf7d0e340d784a9672bf79525338
Not enough time to fix everything, so instead we'll make it a warning
in this release and finish up turning it into a target-SDK based
exception in the next release.
Change-Id: I5aae64a1225a145f03ba4162238b53d5e401aba2
...fails from KRS84 across all platforms
My fix for issue #10807048 was wrong, wrong, wrong. The problem was
actually just a stupid mistake in ArrayMap.erase(). This makes it
all right.
Change-Id: I762f7a2d5100bceb86a091ab3d6368edc21b4266
Bug 10932261
Most of this flow exists purely to get the Context from
CookieSyncManager.createInstance over to WebViewDatabaseClassic. Make
that depenency more explicit (with a TODO to remove it) and this allows
a much simpler CookieSyncManager implementation for the normal case.
Note after this patch, CookieSyncManager.getInstance() is technically fine
to call without a prior call to createInstance, but retaining the
ordering requirement as a convenience for anyone developing on new OS
but still supporting the older versions.
(Note that CookieSyncManager instance is not required for correct
operation of either existing webview, so these changes only impact
the public API contract of object lifetimes, not the underlying
implementation)
Change-Id: I51fdd6622704f1c749277fee6df2f84ac4c704d2
- Rework camera callback binder interface
- Connect up idle, disconnect callbacks
- A few unit tests for shutter firing and idle use
Bug: 10549462
Change-Id: I8455a8a0561e366b7edeef6b101682be2ec44d79
There are two bugs one is I was clearing the notification in
CaptivePortalTracker when entering the ActivateState. (double check
according to bug 5021626 we should be calling enter)
Second is we could have the need to display both icons but can't
because we only allow one.
The solution I'm proposing here is to allow two notifications and
have then controlled separately.
Bug: 10886908
Change-Id: I30e7130bc542535492d175640a4990c592f32806
Apps that run components in separate processes, especially that
host providers in separate processes, can hit a race condition
where two processes simultaneously discover that the files/cache
dir must be created, then each calls mkdirs(). One of these will
fail not because the dir couldn't be created, but because it lost
the race and mkdirs() returned false to signal that it already
existed -- and this was assumed to be a hard failure.
We now recheck existence after a mkdirs() failure to discern this
case and proceed appropriately.
Bug 10515463
Change-Id: I13fbdd838921223f75ab11faa47291c82b21c650
Bug: 10918599
Reduce the number of recent tasks to 10 on lowram devices
Use RGB_565 on low ram devices for thumbnails instead of ARGB_8888
Combined this saves ~9MB across system_process and systemui
Change-Id: Ieddcb512c7341a90097bc7cbc72d7355a775b416
Since older versions of the platform will crash if the mode is
set to 3, this CL adds an extra bit and uses 4 as the mode. This
will also cleanly default the mode to AUTO on unsupported
platforms.
BUG: 11031947
Change-Id: I48035abbf35523d65cead6f27be10f8087973ceb
Newly added private flags were being masked in the public flag variable
as opposed to the correct privateFlags variable.
bug:11033280
bug:11043194
Change-Id: Idda3a70a083457f3f1b7d4b46d231f4a7e704cf0
Instead of keeping a single global system decor rect around
in WindowManagerService, calculate and store policy-defined
system-decor frame for each window.
The per-window decor rect is useful for smooth transitions, since it
determines window cropping during transition animations.
Bug:10938001
Change-Id: Ice6652aa5946027c45c0b7ab4e46473a0f8e3f90
All background work is going through AsyncTasks, which uses a shared
thread pool. Even with the new ContentProviderClient logic to detect
ANRs, the UI can still appear to be unresponsive for 20 seconds, even
if the user attempted to switch to a different backend. In the worst
case, a backlog of thumbnail requests would end up wedging Loaders
for a long time, since they all share the same THREAD_POOL_EXECUTOR.
This change isolates calls to each provider onto their own thread,
which they're free to wedge and recover from over time.
It also means we no longer need a dedicated thread pool for recents
loading, and can use a simpler Semaphore instead.
Disables thumbnails in recents on svelte devices.
Bug: 10993301, 11014856
Change-Id: I7f8a5bbb5f64437e006cb2c48b7e854136d5c38c
The main problem here was a mistake when turning a single process
structure to a multi-package-process structure with a common
process. When we cloned the original process state, if there were
any services already created for the process for that package, they
would be left with their process pointer still referencing the
original now common process instead of the package-specific process,
allowing the active counts to get bad. Now we switch any of those
processes over to the new package-specific process.
There was also another smaller issue with how ServiceRecord is
associated with a ServiceState -- we could be waiting for an
old ServiceRecord to be destroyed while at the same time creating
a new ServiceRecord for that same service class. These would share
the same ServiceState, so when the old record finally finished
destroying itself it would trample over whatever the new service
is doing.
This is fixed by changing the model to instead of using an "active"
reference count, we have an object identifying the current owner
of the ServiceState. Then when the old ServiceRecord is cleaning
up, we know if it is still the owner at that point.
Also some other small things along the way -- new Log.wtfStack()
method that is convenient, new suite of Slog.wtf methods, fixed
some services to use Slog.wtf when catching exceptions being
returned to the caller so that we actually know about them.
Change-Id: I75674ce38050b6423fd3c6f43d1be172b470741f