696cba573e
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