In eventLoopMain we were correctly translating from unix events to dbus flags,
but a coding typo then gave the unix events to dbus. Fix this typo.
Also noticed that we were passing raw dbus flags to poll() in another area.
This did not cause any immediate problem, since POLLIN | POLLPRI is harmless
and we do not usually need POLLOUT. But fixed anyway.
ro.sf.lcd_density is usually defined in the build.prop file which is parsed by init
before anything else. Since its name begins with "ro.", this property is write-once
and cannot later be modified, e.g. in /system/etc/init.goldfish.sh.
In other words, you cannot use "emulator -prop ro.sf.lcd_density=<value>", since
it is impossible to override the value defined in build.prop
This patch modifies the system to recognize "qemu.sf.lcd_density" as an override
value, which can be set with "emulator -prop qemu.sf.lcd_density=<value>", forcing
a specific density.
A later patch will allow the emulator to automatically set this property depending
on AVD hardware configuration settings.
The Resources class keeps a cache of known resources. The keys used by the
cache are stored as int primitives. For any given drawable resource, a key
is built thusly:
TypeValue.assetCookie << 24 | TypedValue.data
In the case of a plain color drawable, assetCookie always equals -1, that
is 0xFF once right-shifted and the data contains the color value. Which
means the key for the following two colors is the same:
0xFF000000
0x00000000
Because of the int storage and the use of the (constant in this case)
asset cookie, the alpha channel of a color is ignored. That means that
if you first load an opaque black color (0xFF000000), subsequent loads
of a totally transparent black color (0x00000000) will give you an
opaque black color.
A workaround is to use a transparent color that is not black,
0x00000001 for instance. Note that this issue would arise with any color
and any opacity level.
The solution to fix this issue is simply to change the cache to use
longs instead of ints to represent the keys. A key thus becomes:
TypedValue.assetCookie << 32 | TypedValue.data
This allows us correct storage of all colors at the cost of a few bytes.
The tradeoff is that we can keep caching ColorDrawable, which is
definitely worth it.
Merge commit '7153739a92dda971fd865defae0747bec921d8af'
* commit '7153739a92dda971fd865defae0747bec921d8af':
Grouping under TextToSpeech.Engine the constants to be used by
* changes:
Grouping under TextToSpeech.Engine the constants to be used by a TTS engine implementation or a settings application for default values, and data integrity check return codes.
Merge commit '77dcf735ff3115ef20244408313823d489d88143'
* commit '77dcf735ff3115ef20244408313823d489d88143':
Work around the Czech lack of abbreviated month names.
Merge commit 'df1ff2cb332ad2d819671f1e78e5bd68d758ca54'
* commit 'df1ff2cb332ad2d819671f1e78e5bd68d758ca54':
Use a full-screen-width version of the in-app search dropdown with
Merge commit '0b1ff191cd94a450c01e0ce5139ca08af0677dd6'
* commit '0b1ff191cd94a450c01e0ce5139ca08af0677dd6':
Icons for create a contact and call contact suggestions, to be used by all
A change to BrowserProvider has added an extra
column. Edit HISTORY_PROJECTION to include it,
add a constant index to access it, and add a
constant to BookmarkColumns to refer to it. Requires
the change to the browser's application package.
Pass moveGeneration to setScrollOffset so it can
generate mouseMove event
Remove node from event messages (no longer used)
Remove CursorData ignoreNullFocus parameter (no longer used)
Fix debug message range
Merge commit 'c14b9ccdf13163cae5ce5d21bcf377010b37594b'
* commit 'c14b9ccdf13163cae5ce5d21bcf377010b37594b':
Extend Intent/Uri conversion for use by Browser
Merge commit 'e9190a2750e1fb67e300d2c128227cc9b7339efe'
* commit 'e9190a2750e1fb67e300d2c128227cc9b7339efe':
Base64 the keys to make filenames in LocalTransport
Merge commit '3c2f8e6651178742bc685e7bd62fa8a6ca409a74'
* commit '3c2f8e6651178742bc685e7bd62fa8a6ca409a74':
Replace the stub GoogleTransport with callout to the
Merge commit '6ce1983a2b5e9f5e735ac09b270b400084edb7db'
* commit '6ce1983a2b5e9f5e735ac09b270b400084edb7db':
Fixes#1924909. When restoring managed dialogs, do exactly the same thing as when showing a dialog.
Merge commit 'cff19c1a014284dce2577f82d931e4c65edd437e'
* commit 'cff19c1a014284dce2577f82d931e4c65edd437e':
Fixes#1925003. Make ListView honor the android:choiceMode XML attribute.
Merge commit '465dee4b4b491fdbb082218e5eb1010a416992f9'
* commit '465dee4b4b491fdbb082218e5eb1010a416992f9':
Fixes#1819572. Do not resurrect the list's selection when the user moved it away.
This introduces a new Uri form of Intent with an "intent:" scheme, and a
corresponding update to the parser to handle these, so that the browser
can use this generic facility for starting activities based on the links
that are clicked and allow for web pages to link to arbitrary intents.
There is also a new "package" field on Intent which allows you to limit
the components it finds to a given package. This replaces the new method
that was added to PackageManger for doing this when resolving activities,
and implements it for all Intent queries against the package manager.
* changes:
Replace the stub GoogleTransport with callout to the GoogleTransportService (which lives in vendor/google). Use the Google transport by default. Also, fix a bug: Thread.run() != Thread.start()
This is a workaround for a touch mode issue.
Touch mode is propagated lazily to windows. This causes problems in
the following scenario:
- Type something in the AutoCompleteTextView and get some results
- Move down with the d-pad to select an item in the list
- Move up with the d-pad until the selection disappears
- Type more text in the AutoCompleteTextView *using the soft keyboard*
and get new results; you are now in touch mode
- The selection comes back on the first item in the list, even though
the list is supposed to be in touch mode
Using the soft keyboard triggers the touch mode change but that change
is propagated to our window only after the first list layout, therefore
after the list attempts to resurrect the selection.
The trick to work around this issue is to pretend the list is in touch
mode when we know that the selection should not appear, that is when
we know the user moved the selection away from the list.
This boolean is set to true whenever we explicitely hide the list's
selection and reset to false whenver we know the user moved the
selection back to the list.
When this boolean is true, isInTouchMode() returns true, otherwise it
returns super.isInTouchMode().