Add special system view cookie to OverflowButton. [DO NOT MERGE]

Add a special view cookie to enable the IDE to identify the overflow
menu button in the Action Bar.

Change-Id: Ida3ed776afb8c9fa8af23b73d4cf6d47eef0ab87
(cherry picked from commit 674af92fd3)
This commit is contained in:
Deepanshu Gupta
2014-04-25 11:07:19 -07:00
parent b64732d977
commit c967d8dc62

View File

@@ -23,8 +23,10 @@ import com.android.ide.common.rendering.api.ActionBarCallback.HomeButtonStyle;
import com.android.ide.common.rendering.api.RenderResources;
import com.android.ide.common.rendering.api.ResourceValue;
import com.android.ide.common.rendering.api.SessionParams;
import com.android.ide.common.rendering.api.SystemViewCookie;
import com.android.internal.R;
import com.android.internal.app.ActionBarImpl;
import com.android.internal.util.Predicate;
import com.android.internal.view.menu.MenuBuilder;
import com.android.internal.view.menu.MenuBuilderAccessor;
import com.android.internal.view.menu.MenuItemImpl;
@@ -57,6 +59,8 @@ import android.widget.RelativeLayout;
import java.util.ArrayList;
import static com.android.ide.common.rendering.api.SystemViewCookie.ACTION_BAR_OVERFLOW;
/**
* A layout representing the action bar.
*/
@@ -165,10 +169,33 @@ public class ActionBarLayout extends LinearLayout {
}
// Set action bar to be split, if needed.
mActionBarView.setSplitView((ActionBarContainer) findViewById(R.id.split_action_bar));
ActionBarContainer splitView = (ActionBarContainer) findViewById(R.id.split_action_bar);
mActionBarView.setSplitView(splitView);
mActionBarView.setSplitActionBar(mSplit);
inflateMenus();
// Find if the Overflow Menu Button (the three dots) exists. If yes,
// add the view cookie.
Predicate<View> overflowMenuButtonTest = new Predicate<View>() {
@Override
public boolean apply(View view) {
return view.getClass().getName()
.equals("android.widget.ActionMenuPresenter$OverflowMenuButton");
}
};
View overflowMenu = null;
if (mSplit) {
if (splitView != null) {
overflowMenu = splitView.findViewByPredicate(overflowMenuButtonTest);
}
}
else {
overflowMenu = mActionBarView.findViewByPredicate(overflowMenuButtonTest);
}
if (overflowMenu != null) {
mBridgeContext.addViewKey(overflowMenu, new SystemViewCookie(ACTION_BAR_OVERFLOW));
}
}
}