Commit Graph

34674 Commits

Author SHA1 Message Date
Dave Platt
98a027a506 Merge "Harden NsdManager against null-dereference crashes" into klp-dev 2014-03-19 00:50:30 +00:00
Daniel 2 Olofsson
09421fab07 Re-initialize error after attach
If flag for error after attach is not reinitialized, it may cause
NullPointerException on subsequent onAttachedWindow if error text
was reset to null.

Change-Id: I8976c28a6ca71017e5c4b3f29d4eeeb2eda48c38
2014-03-14 14:49:23 -07:00
Yohei Yukawa
51b921d0e3 DO NOT MERGE - Preserve the order of InputMethodManager method calls
Cherrypick of I0f8d33b0c77129f72581bc43e7f4fdc25469b520

This CL allows the Framework class InputMethodManager to behave
in a more deterministic way, that is to say, with an I/O barrier.

InputMethodManager#setAdditionalInputMethodSubtypes is internally
implemented as a RPC to the corresponding counterpart in
InputMethodManagerService. The problem here is that this RPC is
marked as "oneway". As a consequence, this public API call
returns immediately without waiting the additional subtypes are
actually added. This behavior is also not documented so far
unfortunately.

See the following demo code:

  Final InputMethodManager imm = ...;
  imm.setAdditionalInputMethodSubtypes(id, subTypes);
  Final List<InputMethodInfo> ims = imm.getInputMethodList();

Currently, it is not guaranteed that the InputMethodInfo returned
from #getInputMethodList reflects the result of the previous call
of #setAdditionalInputMethodSubtypes because of its undocumented
asynchronous nature.

With this CL, InputMethodManager#setAdditionalInputMethodSubtypes
behaves as if it has I/O barrier. This change should make it easy
for IME developers to use additional subtype mechanism.

BUG: 13033954
BUG: 13291370
Change-Id: I0455b176bfb3176c533ba3241881f05092b98abc
2014-03-14 11:52:09 +09:00
Dave Platt
97121c923c Harden NsdManager against null-dereference crashes
Due to race conditions or programming errors, the NsdManager
can attempt to process an asynchronous status message (and issue
a callback to the listener) after the listener has already been
removed from the NsdManager state.  This causes dereferencing of
null objects, and a crash.

Split out the three async-queue message cases:  these are ones
in which message.arg2 does not hold an NsdManager array index
and the code should not interpret this field as if it were.

Add an explicit check for "null listener" (the array index in the
message has already been released), log a warning, and exit early.

Safeguard accesses to the "NSD service type" string from a possibly
null) NsdServiceInfo object... return a constant "?" string rather
than crashing.

Bug: 9016259

Manual cherrypick of commit b1fbb14122a99c62363a949dd634294f5e887ef,
change-ID I7a6ff6842cf035cefbafe2a023ae1fd43734081e in master.

Change-Id: I8d9b7a1763d47d061a0f46b3cb453de4bdb8c2ed
2014-03-13 17:27:03 -07:00
JP Abgrall
7baa7c8045 Merge "ConnectivityService: add support to set TCP initial rwnd" into klp-dev 2014-03-13 20:33:44 +00:00
Chad Brubaker
8e240af51d Merge "Remove SO_BINDTODEVICE from VPN protect" into klp-dev 2014-03-13 18:09:58 +00:00
Svetoslav
11b7d9fa66 Merge "PrintSpooler crash if printer is reported to have only one color mode." into klp-dev 2014-03-13 17:26:44 +00:00
JP Abgrall
3f7f3221df ConnectivityService: add support to set TCP initial rwnd
The value for the TCP initial receive window comes from,
in order,

kernel
  /proc/sys/net/ipv4/tcp_default_init_rwnd

init.rc (via properties)
  net.tcp.default_init_rwnd

properties
  net.tcp.default_init_rwnd

gservices
  Settings.Global.TCP_DEFAULT_INIT_RWND

Bug: 12020135
Change-Id: I0e271be19472900fa9f3bab037d53383ec014a9e
2014-03-12 20:22:47 -07:00
Jeff Brown
73bd57f7ab Merge "Retain display when creating specialized contexts. (DO NOT MERGE)" into klp-dev 2014-03-13 00:12:53 +00:00
Svetoslav
b628dd825b PrintSpooler crash if printer is reported to have only one color mode.
bug:11993304

Change-Id: I4932cf1b5b9b89f0cbf97011782ede037e7d814c
(cherry picked from commit b0d97b87ba)
2014-03-12 14:20:27 -07:00
Jeff Brown
f86c3a44f2 Retain display when creating specialized contexts. (DO NOT MERGE)
Fixed a bug that cause Context.createPackageContext() to discard
display information.  Likewise also fixes issues where the
activity token, override configuration, user handle, and
restriction state might be discarded.

As part of this change, reworked how Contexts are created to make
initialization easier to understand and less error-prone.
The init() methods have been removed and most of the state is
now stored in final variables.

Bug: 12015587
Change-Id: If795851f1cd078bef889b76a52e00d9b3c06ab11
2014-03-11 20:43:52 -07:00
Adam Powell
7f2c9e9420 Merge "Add a config override for ViewConfiguration#hasPermanentMenuKey" into klp-dev 2014-03-11 23:19:37 +00:00
Adam Powell
15b13a792c Add a config override for ViewConfiguration#hasPermanentMenuKey
Allow device overlays to override the behavior of the
hasPermanentMenuKey method at build time. This is useful for devices
that do not behave as the usual autodetection mechanism expects.

Device overlays should set config_overrideHasPermanentMenuKey to 1 if
the device DOES have a permanent menu key or 2 if the device DOES NOT
have a permanent menu key.

Bug 11698700

Change-Id: I467b68528cf681b08adcaebc2402d8bdd84f6b5c
2014-03-11 21:20:13 +00:00
Chad Brubaker
a1d7c74449 Remove SO_BINDTODEVICE from VPN protect
SO_BINDTODEVICE is not needed with policy routing.
SO_BINDTODEVICE was also used on the default iface which causes problems
when the default iface is IPv6 only and the socket tries to connect to a
IPv4 address.

Bug: 12940882
Change-Id: I5b2bde0ac5459433fc5749f509072a548532f730
2014-03-11 10:58:19 -07:00
Chad Brubaker
decfd7079b Merge "Add the calling package name to requestRouteToHost" into klp-dev 2014-03-11 17:51:45 +00:00
Alan Viverette
6e6dc23c69 Merge "DO NOT MERGE Quick fix for updating the FastScroller long list property" into klp-dev 2014-03-11 02:12:13 +00:00
Alan Viverette
e910a7ce8b Merge "DO NOT MERGE Check item type before re-binding transient state views" into klp-dev 2014-03-11 02:12:05 +00:00
Alan Viverette
6a5b7c6ffb Merge "DO NOT MERGE Ensure transient state views are temporarily detached" into klp-dev 2014-03-11 02:11:58 +00:00
Adam Powell
190909f2c1 Fix a bug in submenu presenter priority handling
Now that overflow menus and the PhoneWindow-level ListMenuPresenter
can coexist, make sure that ListMenuPresenter handles submenus spawned
by itself. Introduce an internal API for menus to prefer a specific
presenter when performing item actions.

Bug 11979407

Change-Id: Id0b8fcbb8b310cbb3a63a1e5ea7a89de5d53f86f
2014-03-10 10:30:59 -07:00
Wei Wang
1327e59f36 Merge "DO NOT MERGE BLE peripheral mode (3/4): Add peripheral mode API." into klp-dev 2014-03-08 02:01:02 +00:00
Alan Viverette
bca20aaf0e DO NOT MERGE Quick fix for updating the FastScroller long list property
BUG: 12553181
Change-Id: I5305b0ec4ae8e069fc98d45dc3d5daaa0628ca79
2014-03-07 16:50:24 -08:00
Adam Powell
f175b19aaa Merge "Fix a bug where OnTouchListeners in action views could be removed" into klp-dev 2014-03-07 23:28:19 +00:00
Alan Viverette
df262cd922 DO NOT MERGE Check item type before re-binding transient state views
BUG: 12701797
Change-Id: I180613cc342d24b63f80fd699937c7543c38fc20
2014-03-07 15:20:13 -08:00
Alan Viverette
e8d2846fb9 DO NOT MERGE Ensure transient state views are temporarily detached
BUG: 12024471
Change-Id: I02659d65d664b3fd8991a0527bd23801db6f1a9d
2014-03-07 14:08:02 -08:00
Dianne Hackborn
785d764bd5 Merge "More on issue #12031685 (DO NOT MERGE)" into klp-dev 2014-03-07 18:12:30 +00:00
Chris Wren
70d5ed2692 Merge "use relative positioning for notification actions" into klp-dev 2014-03-07 15:08:29 +00:00
Adam Powell
c9e5f540a9 Fix a bug where OnTouchListeners in action views could be removed
ActionMenuPresenter should only replace the touch listener when binding
a generated item view.

Bug 12470259

Change-Id: I8c4c6110065605225a20cb7ed872255282085661
2014-03-06 17:57:05 -08:00
Dianne Hackborn
cb15c7a83b More on issue #12031685 (DO NOT MERGE)
Integrate from master:

Fix issue #13065185: Frequent runtime restarts on launching...

..."Hill Climb Racing" app

A service is in use when it is in the restarting state.

Change-Id: Iffdea96f867f89089e7ad07b4b1bef056951a5e8
2014-03-06 17:39:11 -08:00
Svetoslav
8cb232cb79 Merge "ProgressBar is important for accessibility by default." into klp-dev 2014-03-07 00:37:14 +00:00
Jay Shrauner
a3ea4be542 Prevent SpellChecker from setting invalid range - DO NOT MERGE
Add check for invalid range before setting for further check
at end of parse() loop.

Bug:12936072
Change-Id: Ie0b33b8e69fe47e5d3371640be5681f13a4e4f6e
(cherry picked from commit ea4adf2847)
2014-03-06 22:29:12 +00:00
Chris Wren
be63a95d2b use relative positioning for notification actions
Bug: 10531101
Change-Id: Ia1d7cac880f620a9760271344edf920caf0d852d
2014-03-06 14:55:23 -05:00
Svetoslav
6a1846a084 ProgressBar is important for accessibility by default.
If a view does not have callbacks, or content description, or does not draw
content, and it is marked as important for accessibility auto, then the system
decides it is not important and does not report it. Apparently progress bar
draws content that means something and it should be important for accessibility
by default.

Change-Id: Icd3837fb8b9e208c98b90707f3b195622d71949e
(cherry picked from commit 7face75f2c)
2014-03-06 19:31:19 +00:00
Wei Wang
ee0b3e9f82 DO NOT MERGE BLE peripheral mode (3/4): Add peripheral mode API.
Add bluetooth adv data, APIs in BluetoothAdpater etc.

Cherry picking ble advertising changes from master to KLP MR2.
b/13137996

Change-Id: Id9d2f566b6d9ed0fffe73b67efad2e3d045360b4

Conflicts:
	core/java/android/bluetooth/BluetoothAdapter.java
	core/java/android/bluetooth/BluetoothGatt.java

Conflicts:
	core/java/android/bluetooth/BluetoothAdapter.java
2014-03-06 18:45:17 +00:00
Michael Wright
c5dea68e98 Merge "Revert Japanese special case fallback keys." into klp-dev 2014-03-06 00:50:15 +00:00
Fabrice Di Meglio
1ff2df6194 Merge "Fix bug #12066726 java.lang.NullPointerException at android.widget.CalendarView.onScroll(CalendarView.java:1216) - DO NOT MERGE" into klp-dev 2014-03-06 00:29:35 +00:00
Fabrice Di Meglio
2b58a29f82 Merge "Fix bug #12422326 Unable to change text direction programmatically using setTextDirection Android SDK API - DO NOT MERGE" into klp-dev 2014-03-06 00:29:20 +00:00
Chad Brubaker
18dd015e6e Add the calling package name to requestRouteToHost
The calling package name will be used to check if an application is a
system application when deciding if a route should be exempt from VPN
routing rules.

Bug: 12937545
Change-Id: I2c09c875fe9bb9685871a0a801ddcbb32fc17405
2014-03-05 13:35:20 -08:00
Fabrice Di Meglio
25d9ce4058 Fix bug #12066726 java.lang.NullPointerException at android.widget.CalendarView.onScroll(CalendarView.java:1216) - DO NOT MERGE
- fix the NPE by checking the validity of the child reference retrieved by View.getChildAt(...)

Change-Id: I61b9233345a4f1110aa06ea563a81dcdf6b35783
2014-03-05 18:42:56 +00:00
Fabrice Di Meglio
b3670c54e6 Fix bug #12422326 Unable to change text direction programmatically using setTextDirection Android SDK API - DO NOT MERGE
- force TextView internal layout recreation when its TextDirection is changed

Change-Id: I7d6b088a9235362e03cb6694392df71bbf5a323a
(cherry picked from commit 22228fec05)
2014-03-05 18:41:36 +00:00
Christopher Tate
1e995c7648 Merge "Update PackageMonitor to recognize new 'replacing' semantics" into klp-dev 2014-03-05 00:51:04 +00:00
John Spurlock
ca4d040342 Volume panel should not clear system ui flags.
Remove private WM flag (used only by the volume panel) to force
the clearable system UI flags clear.

Instead, always lay out the volume panel as if the bars are visible,
as we do for system dialogs - and don't clear the flags.

Reverts part of I25f29af5b6518aba695b64a75977ae240b742118

Bug:11986621
Change-Id: I842729d729d2a6eb2a687d0b930ddb160c6a1b57
2014-03-04 10:12:01 -05:00
Christopher Tate
88c908323a Update PackageMonitor to recognize new 'replacing' semantics
The ACTION_EXTERNAL_APPLICATIONS_UNAVAILABLE broadcast now uses the
EXTRA_REPLACING intent extra when it is sent as part of an upgrade operation
on a forward-locked application.  Update PackageMonitor to recognize this
new information and express it appropriately to the observer.

Bug 11988313

Cherry-pick from master.

Change-Id: Iecea1876ffc918f23f9fa5845f1f89ed8d740dd5
2014-03-03 17:40:41 -08:00
Jay Shrauner
4ef0aabe93 Merge "Catch ActivityNotFoundException in quick contacts badge" into klp-dev 2014-03-03 21:56:18 +00:00
Jonathan Dixon
efe1b2402a DO NOT MERGE: Fix build after checkThread fix merge to master
Follow up to Change-Id: Ibc2496d5cef97b4685e001086f712fcaac231024 - this
method did not exist in klp-dev branch.

Change-Id: Ie64dd3b2357e0abefb4c7d3492f02d23d347f89f
(cherry picked from commit b212b9f2ba)

Cherry pick to klp-dev as part of Bug: 13246014
2014-03-03 18:48:00 +00:00
Primiano Tucci
f4e2723244 DO NOT MERGE: Adding freeMemoryForTests static method to WebView.
This is going to be used by pagecycler tests.
See: b/10629847

Change-Id: Ie3fda214e7808429d7ed63734ab301525f58513f
(cherry pick of 2442675002)

Cherry pick to klp-dev as part of Bug: 13246014

Conflicts:
	core/java/android/webkit/WebViewClassic.java
	core/java/android/webkit/WebViewFactoryProvider.java
(cherry picked from commit 54daaf1cffddad6366fac2ccfceb1e042dd8e90e)

Change-Id: I8471ee5cfaac2ff72704c2391a1961f441aaa1e6
2014-03-03 18:01:53 +00:00
Yorke Lee
535c9e74d3 Catch ActivityNotFoundException in quick contacts badge
Bug: 12015287
Change-Id: I2fa5daaa54cc7cc0cad9dee0828d751302cb5be7
(cherry picked from commit 4fc601a650)
2014-03-01 18:07:22 +00:00
Michael Wright
bdffc3ad05 Revert Japanese special case fallback keys.
Reverts commits 4567e40eb0 and
a977707d6e, which added special case fallbacks
for game controllers in the Japanese locale.

Bug: 12923922
Change-Id: I229126e589e11fb5de86772ef9c59d09723af941
2014-02-26 15:43:48 -08:00
Dave Platt
76e5ca81b3 Fix descriptor leak after accepting connections
After accepting a connection on a listening socket and
storing the resulting FileDescriptor into a newly created
LocalSocketImpl, the new impl's "descriptor was created
locally and should be closed normally" flag should be set.

Bug: 11805817

(cherry picked from commit 3e7305c6bf)

Change-Id: I723d7c5544ee4b6858894c215716cbc32a958df1
2014-01-06 14:31:28 -08:00
Dave Platt
02f042ddd9 Fix socket descriptor leak from Zygote to child app
Due to an API change in LocalSocket, Zygote must now
manually close the FileDescriptor it created when it
registered a LocalServerSocket.  The LocalSocket.close()
routine will no longer do so.

Bug: 12114500

(cherry picked from commit 70ef29b04e)

Change-Id: Ief23a3c99e007dc4aa6f94dfb47a1b2b6c854dad
2014-01-06 13:59:20 -08:00
Jeff Brown
ce468a35b3 Stop wifi display discovery when no longer needed.
Keep track of how many clients are requesting scans and scan
continuously until all of them are gone then explicitly terminate the
scan instead of letting it time out as before.

Suspend wifi display scans while connecting or connected to a remote
display.  This is handled by both the display manager and media router
since neither has complete information about what is happening.
Much of this code will no longer be needed once wifi display support
is integrated directly into the media router service.

Ensure that we don't attempt to scan or connect to wifi displays
while the wifi display feature is off.

Infer when a connection attempt fails and unselect the wifi display
route automatically so it doesn't appear to be connecting forever.

Fix issues around correctly canceling and retrying connection attempts.
Often we would cancel but not retry.

Improved connection reliability somewhat.  It seems that discovery must
already be in progress in order for a connection attempt to succeed.

Ensure QuickSettings uses exactly the same logic as the MediaRouteButton
to determine when the remote display tile should be made visible.

Bug: 11717053
Change-Id: I18afc977b0e8c26204b8c96adaa79f05225f7b6e
2013-11-21 19:32:59 -08:00