This fixes a bug that prevented the USB mass storage activity from closing
when USB is disconnected.
The bug was actually due to using == for a string compare instead of equals(),
but using the new notifications is a better solution than using battery events
since it will work for devices that do not charge over USB.
BUG: 3018954
Change-Id: Ia447974726a52cd865e59df5af79e828b5134b6c
Signed-off-by: Mike Lockwood <lockwood@android.com>
Don't wipe out the connected status every time we get a cellular status change.
Don't filter out disconnect event for wifi - we need them.
bug:3009923
Change-Id: I68cadac5f44d6eb4e0fe711fda7c5d218abb45bd
The main problem here was in the error recovery when we are waiting
for a process to start but it has failed for some reason. The code
was just setting mPendingBroadcast to null, but this would cause
an eventual ANR because the state was not set back to IDLE so we
would continue waiting for the broadcast without trying to restart
its process.
Now we set it to idle. We also need to reset the "nextReceiver"
index, so there is a new mPendingBroadcastRecvIndex variable holding
what it should be set back to.
While digging into this, I found a number of other lesser problems:
- There is a race when booting the system where we set mSystemReady
to true before restarting the upgrade processes. This could allow
a broadcast to happen between those two and its process to immediately
be removed. To fix this, there is a new mProcessesReady that is set
once we are truly ready to start launching processes.
- There were various places where we were calling sendBroadcastLocked()
without the flag to send only to receivers... if this is called before
mProcessesReady is set, then we would end up sticking any process for
the broadcast on the holding list to not get launched until later
(and hang up all broadcasts as they want for it). Now we always make
sure to set this appropriately.
- sendBroadcastInPackage() was not doing all of the validation that
sendBroadcast() does.
And of course a bunch of new debugging logs that were done in the
course of tracking this down.
Change-Id: I6134bbd94fdb73db8b693507b29499eae012d543
+fix the unknown call flash for answering an incoming call and
updating the screen if the background call got dropped.
+change the getFirstActiveBgCall to return the call if the state
is not IDLE. This will help to fix unknown flash if the background
call got dropped.
Change-Id: I9803ccebd919acbd5296e7dfde7dc5f29cc9f180
This is a temporary enable to allow us to identify
the issue with multiple icons on StatusBar
Bug: 2984213
Change-Id: I36ac7baff6544c63fa44d9b2c7453bca6a33bd62
Also rename Geocoder.isImplemented() to Geocoder.isPresent()
BUG: 3000738
BUG: 3001413
Change-Id: I56bb4e9a9c59f8b79de585eeb168f74c3ff1a853
Signed-off-by: Mike Lockwood <lockwood@android.com>
Merge commit '73e150c886afc6cd92e8b065a58d61e0b2a098ed' into gingerbread
* commit '73e150c886afc6cd92e8b065a58d61e0b2a098ed':
provide link to backup guide above the fold
- New API for iterating over history that will allow a better implementation
in the future.
- Now do writes asynchronously.
Also improve the documentation for Activity.onRetainNonInstanceState().
Change-Id: Idf67f2796a8868eb62f288bcbb2bad29876c8554
Also changing the behavior of the local URI column slightly to better
match the spec -- it should return the client-provided destination so
that it's valid even if the download failed.
Change-Id: Ibf9c07519e647e677ebac8b334b9f2e930e47033
also fix delivering bad news before closing a SipAudioCallImpl object so that
apps can get the current audio-call object state before it's closed:
http://b/issue?id=3009262
Change-Id: I94c19dae8b4f252de869e614ec462b19b4ff2077
This change is already in master
On some devices, switching the USB configuration to enable RNDIS can
result in multiple USB disconnect/reconnect events being generated.
Change-Id: I14b02aaca11bb708f6b3334e41a2f4d4fa7b7296
Signed-off-by: Mike Lockwood <lockwood@android.com>
For bug 3001613.
Only use PhoneBase (not PhoneProxy) in CallManager.
Both PhoneBase and PhoneProxy implement Phone interface,
such as dial(). The real implementation, for
example in GSM, is in GSMPhone extending from PhoneBase.
So that foregroundCall.getPhone() returns GSMPhone obj. On the other hand,
PhoneFactory.getDefaultPhone() returns PhoneProxy obj, which has a class
member of GSMPhone.
Therefore for phone returned by PhoneFacotry, which is used by PhoneApp,
phone.getForegroundCall().getPhone() != phone
Change-Id: I8a304098dd86762aaee56fb3c8b76c883e8c9a4f
In the common case, there is nothing interesting happening on the native
Looper besides occasional wake ups. There is no point grabbing the
semaphore then.
Change-Id: Ib5c426d0e158dfa37891b7ff5537b6f833592fad
We now distribute "wifi started" time across all apps that are
holding WIFI locks that cause it to be started. But only when
WIFI would not normally be running. Also have a mechanism to
distribute other WIFI work that has happened across those processes
based on their use.
Also fixed a bug where we were not retaining the CPU speed step
stats across boots...!
Change-Id: I00e3153b98429166273750512cc37e7975211ab9
Overlays let views draw and respond to touch events outside of their
bounds. This allows selection anchors to be friendlier and easier to
grab. This is currently private API, pending further evaluation.
Added themes/styles for text selection anchors.
Added assets for text selection anchors as provided by UX. The
left/right anchors are currently not suitable for use. They are here
for bookkeeping and replacement later. The theme currently uses the
'middle' anchor asset for all three. This will be changed once assets
are ready.
Change-Id: I01b21e5ae90cab201f86f38f2f5eeaf2bd7f6bcd