In the old world, MenuBuilder and MenuItemImpl were responsible for
generating views for any presentation of a menu. MenuBuilder needed to
know any types and resources involved, and the implied caching
semantics did not work well for menus presented within AdapterViews.
In the new world, the MenuPresenter interface takes over the
responsibility of generating views or adapters for menu
items. MenuBuilder/MenuItemImpl still provide extra metadata tracking
used by these presenters. Mutiple presenters may be active for a
single menu at a time. All of this remains internal framework
implementation details.
BaseMenuPresenter provides a simple base for presenters that treats
the host MenuView more like an AdapterView. This allows for less
rebuilding of views when items are added/removed.
Callbacks have been restructured. Calls that relate to the menu itself
are still handled by MenuBuilder.Callback, but calls related to a
specific presentation of a menu are handled by MenuPresenter.Callback
objects attached to a MenuPresenter.
Also add API to programmatically set divider options for LinearLayout
and hidden API so that ActionBarView can have finer-grained control
over divider placement.
Change-Id: I2265b86a084279822908021aec20dfbadc1bb56b
Multiple threads are adding messages about the current
state of the views to the main looper. This can cause
onDetachedFromWindow to be posted on the looper before
onAttachedToWindow. This change will make sure to only
dispatch onDetachedFromWindow if we have previously
dispatched onAttachToWindow.
Change-Id: Ibc7cbcafb098bc000d2ef5480d2110d3fff4d55a
It was impossible to reach the end of a large test when scrolling down
using the arrowkeys when the ScrollView had padding. A common example
of this would be an AlertDialog with a text that is too long to fit on
the screen.
Change-Id: I55464290a0cdeabde83ccccc76fe8d015ae57a8d
TextUtils.writeToParcel can handle null as input CharSequence
but createFromParcel will throw NullPointerException. Transforming
to and from parcel should handle null in the same way.
Change-Id: I707ea9be2091d2655c5f63eaa57c5674befa5ad3
If an invalid input string ends with a backslash inside a comment
or quoted string, the returned index would be past the end of the
string. In one case this would lead to a runtime exception being
thrown from MultiAutoCompleteTextView.performValidation.
Change-Id: If629372b429716c25cdc25764f088e95d4812d57
A race condition when mounting a container in PackageHelper may cause
the system_server to crash (uncaught exception). Calling methods are
prepared to handle null, so return null instead.
Change-Id: I852ee21a2d847e37d81c1b900c27ddf94ef24fcb
Make ConnectPanReceiver a child of ConnectProfileReceiver, check if a
profile proxy is null before trying to connect. Change log output in
bluetooth. Remove some oververbose parameters from test runner. Make
the setup for the tests more consistent (delete pairings, etc).
Most of this work has been done to facilitate the tests created for
trade federation.
Change-Id: I7350d308b5d09c2052e0a3f3308a69c564ba4d74
Bug http://code.google.com/p/android/issues/detail?id=14786
Empty spans are affecting the text before and after them. See the
comment in TextUtils.removeEmptySpans for details.
Change-Id: I40376c32fd56a17efde6219f9b2593e4b4ab1ba1
paths of code getting the mCacheLock and DB locks in different
orders.
The philosophy I followed for this was to ensure that the
DatabaseHelper is only ever accessed from within a
synchronized(mCacheLock) block. I also renamed a bunch of
methods to make it easier to know if a given method should
be called from within this synchronized block.
Bug: 3404506
Change-Id: Ia48f95e77b77647d0717f70f1d8364da3719cc13
Before the IPackageDeleteObserver only knew whether the deletion
succeeded or failed, but not the reason why.
Bug: 2520191
Change-Id: I1f0d7c04f06c539660b6e17e7e133defb0f61b5b
Add test cases for AudioManager.startBluetoothSco() and
AudioManager.stopBluetoothSco()
Bug: http://b/3292864
Change-Id: I743c8d732270262fbaaff79a53d43cedcd5de528
Don't hold locks while running create or remove callbacks. That gets a bit
ugly because it means a create could be unwanted by the time it returns.
Change-Id: I14b2b3ed41a446750f8ee5a7e35cb8d801c4ce6d
http://b/3461302