summaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorDeepanshu Gupta <deepanshu@google.com>2014-05-13 02:20:51 +0000
committerAndroid Git Automerger <android-git-automerger@android.com>2014-05-13 02:20:51 +0000
commitdf2da3d7c9f82ff2304f630f4ff9fc2cb3001c6f (patch)
tree2ef9039f147820ccee9ccfe48dde02053908e32d /tools
parent4eab4e14c8453a0b41923c714a05dccdd72d7829 (diff)
parent7bc363ba72d4cdd9a0b3b1601e432acfc09c0dc0 (diff)
downloadframeworks_base-df2da3d7c9f82ff2304f630f4ff9fc2cb3001c6f.zip
frameworks_base-df2da3d7c9f82ff2304f630f4ff9fc2cb3001c6f.tar.gz
frameworks_base-df2da3d7c9f82ff2304f630f4ff9fc2cb3001c6f.tar.bz2
am 7bc363ba: Add special system view cookie to OverflowButton. [DO NOT MERGE]
* commit '7bc363ba72d4cdd9a0b3b1601e432acfc09c0dc0': Add special system view cookie to OverflowButton. [DO NOT MERGE]
Diffstat (limited to 'tools')
-rw-r--r--tools/layoutlib/bridge/src/com/android/layoutlib/bridge/bars/ActionBarLayout.java29
1 files changed, 28 insertions, 1 deletions
diff --git a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/bars/ActionBarLayout.java b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/bars/ActionBarLayout.java
index 67120f1..997fca1 100644
--- a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/bars/ActionBarLayout.java
+++ b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/bars/ActionBarLayout.java
@@ -22,8 +22,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;
@@ -56,6 +58,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 {
if (mActionBarView != null) {
// 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));
+ }
}
}