Context from an Activity are not meant to be store past the
lifetime of the Activity.
Fix for bug 3306898
Change-Id: Ib2f12cbdc3ec8aa0a6adf4770e6be4569fa6402c
Rewrote interceptKeyBeforeQueueing to make the handling more systematic.
Behavior should be identical except:
- We never pass keys to applications when the screen is off and the keyguard
is not showing (the proximity sensor turned off the screen).
Previously we passed all non-wake keys through in this case which
caused a bug on Crespo where the screen would come back on if a soft key
was held at the time of power off because the resulting key up event
would sneak in just before the keyguard was shown. It would then be
passed through to the dispatcher which would poke user activity and
wake up the screen.
- We propagate the key flags when broadcasting media keys which
ensures that recipients can tell when the key is canceled.
- We ignore endcall or power if canceled (shouldn't happen anyways).
Changed the input dispatcher to not poke user activity for canceled
events since they are synthetic and should not wake the device.
Changed the lock screen so that it does not poke the wake lock when the
grab handle is released. This fixes a bug where the screen would come
back on immediately if the power went off while the user was holding
one of the grab handles because the sliding tab would receive an up
event after screen turned off and release the grab handles.
Bug: 3144874
Change-Id: Iebb91e10592b4ef2de4b1dd3a2e1e4254aacb697
Bug: 3306953
Previously with BrowserProvider1 all bookmarks were considered
visited URLs. Updated Browser.getAllVisitedUrls to match that behavior
when using BrowserProvider2
Change-Id: I15e6e4e91af4e7d1b21860aabf4ce5a5c6a9d81e
Allow a non-epidited ignore-backoff op to pass through
an expidited backed off op.
To do this, I first refactored the complicated if statement:
if (best == null
|| ((bestSyncableIsUnknownAndNotARetry == syncableIsUnknownAndNotARetry)
? (best.expedited == op.expedited
? opRunTime < bestRunTime
: op.expedited)
: syncableIsUnknownAndNotARetry)) {
best = op;
bestSyncableIsUnknownAndNotARetry = syncableIsUnknownAndNotARetry;
bestRunTime = opRunTime;
}
Into a more readable:
boolean setBest = false;
if (best == null) {
setBest = true;
} else if (bestSyncableIsUnknownAndNotARetry == syncableIsUnknownAndNotARetry) {
if (best.expedited == op.expedited) {
if (opRunTime < bestRunTime) {
// if both have same level, earlier time wins
setBest = true;
}
} else {
if (op.expedited) {
setBest = true;
}
}
} else {
if (syncableIsUnknownAndNotARetry) {
setBest = true;
}
}
if (setBest) {
best = op;
bestSyncableIsUnknownAndNotARetry = syncableIsUnknownAndNotARetry;
bestRunTime = opRunTime;
}
The refactoring was all done automatically with IntelliJ to avoid human error
in the conversion.
After verifying this code still behaved as expected including the error
condition in the bug, I added handling for the cases when a non-expidited op
may override an expedited op if certain conditions occur, specificaly, if the
expidited op is backed off and the non-expidited op is not.
Finally, refactored to make it testable and added tests and logging.
Bug: 3128963
Change-Id: I131cbcec6073ea5fe425f6b5aa88ca56c02b6598
Prior to this change, saveInstanceState would
call directly to Activity.onSaveInstanceState(),
rather than performSaveInstanceState().
This meant that saveManagdDialogs() was not called,
so Activities running under a LocalActivityManager
do not get their dialogs restored on configuration changes.
Change-Id: Id45110a8716a86958c14f4b1ea5a84c9cdf107f1
It's not easy to determine if this
is possible, so instead apps should
attempt a format and handle errors
in the format request.
Change-Id: I078a208b849e71ef3fb6b5970a9111ece4a2d201
LayoutTransition may set the left, right, top, bottom properties of a View when
animating it. If the View has a background drawable, and if these properties change
the actual dimensions of the view, then the background drawable must be informed
of the size change in order to display itself correctly.
Change-Id: I8ae47a051b250d0d4bdee97b1f1b5d27fe3f7f8b
This enables Select All, Cut, Copy and Paste behavior in TextViews
and provides a general pattern for implementing additional keyboard
accelerators based on Control key shortcuts. The same shortcuts
also apply to menu accelerators.
Bug: 3286262
Change-Id: I7d458ee26abf51e0de1735ce490ce3baf504b471
The breakOnlyAtSpaces test did not include the reset at the end of the loop
which resets j and w (current position and width). As a result, the second line
was too long from the start and never cut again.
Hours a debug, a simple { change.
Bug 2969667
Change-Id: I1e5b4a37cd9e64d115e6343d7788db3a6ef881e0
Now checking if the ProxyProperties object is null, and if the
string returned by getHost() is null.
Change-Id: I727e26c2a41fe057501c3b610ba6fa221d16da45
The content resolver does not take care of the IllegalStateException
that is thrown in getType and that needs to be fixed.
Change-Id: I3e66f1aa259ab91fb9233e1ba07faa1ab6c3f2dd
Books had a bug where the search menu item would come back with an
out of date background color. The problem was that the logic to
change the background color was tied into StateListDrawable animations.
These animations were not always completing because the action bar would
remove the associated View and the drawable animations would stop being
scheduled (no handler to post to).
The fix is to always set the drawable state to the current state when
a View is added to the hierarchy.
Change-Id: I0fc8008381f7439b9e49d6449ae618512c8e9dd0
let cursor window size be set per device in device resources file.
default is 1MB.
for SR, it is 2MB.
it can be set to any value (in kB) in the device resource
strings.xml file
Change-Id: I67b1d04a5c9fc18b0cd4da6184d0b814b64d89e9
* commit '0655b31d758ce8fe054c98c6d288e424f2d273e2':
Unhide RecognizerResultsIntent. This API was reviewed for Froyo, but we didn't want to make it public then because it wasn't until our first Market release of Voice Search that the APIs would be in use by our app.