diff options
| author | 2013-03-06 21:44:09 +0000 | |
|---|---|---|
| committer | 2013-03-06 21:44:09 +0000 | |
| commit | 95529f730ccd7dfafb4bc2024aa156928db3c04c (patch) | |
| tree | a3bea6c87df7a95c0c03344d9e02c3f604523137 | |
| parent | e60525181d830b18f29c3cdf3bb77481a46aef0e (diff) | |
| parent | f6fcea602750bbc0eb7d394f4daf3848ffaaed7d (diff) | |
am f6fcea60: Merge "Fix issue #8325007: EyeEm app crashes on launch- NPE at..." into jb-mr2-dev
* commit 'f6fcea602750bbc0eb7d394f4daf3848ffaaed7d':
Fix issue #8325007: EyeEm app crashes on launch- NPE at...
| -rw-r--r-- | core/java/com/android/internal/widget/ActionBarOverlayLayout.java | 37 | ||||
| -rw-r--r-- | core/res/res/layout-xlarge/screen_action_bar.xml | 58 | ||||
| -rw-r--r-- | core/res/res/layout-xlarge/screen_action_bar_overlay.xml | 58 | ||||
| -rw-r--r-- | core/res/res/values/symbols.xml | 1 |
4 files changed, 55 insertions, 99 deletions
diff --git a/core/java/com/android/internal/widget/ActionBarOverlayLayout.java b/core/java/com/android/internal/widget/ActionBarOverlayLayout.java index 79dadd75581b..f3591463e283 100644 --- a/core/java/com/android/internal/widget/ActionBarOverlayLayout.java +++ b/core/java/com/android/internal/widget/ActionBarOverlayLayout.java @@ -73,10 +73,6 @@ public class ActionBarOverlayLayout extends ViewGroup { ta.recycle(); } - public void setOverlayMode(boolean mode) { - mOverlayMode = mode; - } - public void setActionBar(ActionBarImpl impl, boolean overlayMode) { mActionBar = impl; mOverlayMode = overlayMode; @@ -177,7 +173,9 @@ public class ActionBarOverlayLayout extends ViewGroup { // The top and bottom action bars are always within the content area. boolean changed = applyInsets(mActionBarTop, insets, true, true, false, true); - changed |= applyInsets(mActionBarBottom, insets, true, false, true, true); + if (mActionBarBottom != null) { + changed |= applyInsets(mActionBarBottom, insets, true, false, true, true); + } mBaseInnerInsets.set(insets); computeFitSystemWindows(mBaseInnerInsets, mBaseContentInsets); @@ -219,6 +217,8 @@ public class ActionBarOverlayLayout extends ViewGroup { @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { + pullChildren(); + int maxHeight = 0; int maxWidth = 0; int childState = 0; @@ -234,13 +234,16 @@ public class ActionBarOverlayLayout extends ViewGroup { mActionBarTop.getMeasuredHeight() + lp.topMargin + lp.bottomMargin); childState = combineMeasuredStates(childState, mActionBarTop.getMeasuredState()); - measureChildWithMargins(mActionBarBottom, widthMeasureSpec, 0, heightMeasureSpec, 0); - lp = (LayoutParams) mActionBarBottom.getLayoutParams(); - maxWidth = Math.max(maxWidth, - mActionBarBottom.getMeasuredWidth() + lp.leftMargin + lp.rightMargin); - maxHeight = Math.max(maxHeight, - mActionBarBottom.getMeasuredHeight() + lp.topMargin + lp.bottomMargin); - childState = combineMeasuredStates(childState, mActionBarBottom.getMeasuredState()); + // xlarge screen layout doesn't have bottom action bar. + if (mActionBarBottom != null) { + measureChildWithMargins(mActionBarBottom, widthMeasureSpec, 0, heightMeasureSpec, 0); + lp = (LayoutParams) mActionBarBottom.getLayoutParams(); + maxWidth = Math.max(maxWidth, + mActionBarBottom.getMeasuredWidth() + lp.leftMargin + lp.rightMargin); + maxHeight = Math.max(maxHeight, + mActionBarBottom.getMeasuredHeight() + lp.topMargin + lp.bottomMargin); + childState = combineMeasuredStates(childState, mActionBarBottom.getMeasuredState()); + } final int vis = getWindowSystemUiVisibility(); final boolean stable = (vis & SYSTEM_UI_FLAG_LAYOUT_STABLE) != 0; @@ -264,10 +267,12 @@ public class ActionBarOverlayLayout extends ViewGroup { if (mActionView.isSplitActionBar()) { // If action bar is split, adjust bottom insets for it. - if (stable) { - bottomInset = mActionBarHeight; - } else { - bottomInset = mActionBarBottom.getMeasuredHeight(); + if (mActionBarBottom != null) { + if (stable) { + bottomInset = mActionBarHeight; + } else { + bottomInset = mActionBarBottom.getMeasuredHeight(); + } } } diff --git a/core/res/res/layout-xlarge/screen_action_bar.xml b/core/res/res/layout-xlarge/screen_action_bar.xml index 0b6122d5f149..4f286780104f 100644 --- a/core/res/res/layout-xlarge/screen_action_bar.xml +++ b/core/res/res/layout-xlarge/screen_action_bar.xml @@ -15,33 +15,43 @@ --> <!-- -This is an optimized layout for a screen with the Action Bar enabled. +This is an optimized layout for a screen with +the Action Bar enabled overlaying application content. --> -<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" - android:orientation="vertical" - android:fitsSystemWindows="true" +<com.android.internal.widget.ActionBarOverlayLayout + xmlns:android="http://schemas.android.com/apk/res/android" + android:id="@+id/action_bar_overlay_layout" + android:layout_width="match_parent" + android:layout_height="match_parent" android:splitMotionEvents="false"> - <com.android.internal.widget.ActionBarContainer android:id="@+id/action_bar_container" + <FrameLayout android:id="@android:id/content" android:layout_width="match_parent" - android:layout_height="wrap_content" - style="?android:attr/actionBarStyle"> - <com.android.internal.widget.ActionBarView - android:id="@+id/action_bar" - android:layout_width="match_parent" - android:layout_height="wrap_content" - style="?android:attr/actionBarStyle" /> - <com.android.internal.widget.ActionBarContextView - android:id="@+id/action_context_bar" + android:layout_height="match_parent" /> + <LinearLayout android:id="@+id/top_action_bar" + android:layout_width="match_parent" + android:layout_height="wrap_content"> + <com.android.internal.widget.ActionBarContainer android:id="@+id/action_bar_container" android:layout_width="match_parent" android:layout_height="wrap_content" - android:visibility="gone" - style="?android:attr/actionModeStyle" /> - </com.android.internal.widget.ActionBarContainer> - <FrameLayout android:id="@android:id/content" - android:layout_width="match_parent" - android:layout_height="0dip" - android:layout_weight="1" - android:foregroundGravity="fill_horizontal|top" - android:foreground="?android:attr/windowContentOverlay" /> -</LinearLayout> + android:layout_alignParentTop="true" + style="?android:attr/actionBarStyle" + android:gravity="top"> + <com.android.internal.widget.ActionBarView + android:id="@+id/action_bar" + android:layout_width="match_parent" + android:layout_height="wrap_content" + style="?android:attr/actionBarStyle" /> + <com.android.internal.widget.ActionBarContextView + android:id="@+id/action_context_bar" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:visibility="gone" + style="?android:attr/actionModeStyle" /> + </com.android.internal.widget.ActionBarContainer> + <ImageView android:src="?android:attr/windowContentOverlay" + android:scaleType="fitXY" + android:layout_width="match_parent" + android:layout_height="wrap_content" /> + </LinearLayout> +</com.android.internal.widget.ActionBarOverlayLayout> diff --git a/core/res/res/layout-xlarge/screen_action_bar_overlay.xml b/core/res/res/layout-xlarge/screen_action_bar_overlay.xml deleted file mode 100644 index a95635e6a662..000000000000 --- a/core/res/res/layout-xlarge/screen_action_bar_overlay.xml +++ /dev/null @@ -1,58 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Copyright (C) 2010 The Android Open Source Project - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. ---> - -<!-- -This is an optimized layout for a screen with -the Action Bar enabled overlaying application content. ---> - -<com.android.internal.widget.ActionBarOverlayLayout - xmlns:android="http://schemas.android.com/apk/res/android" - android:id="@+id/action_bar_overlay_layout" - android:layout_width="match_parent" - android:layout_height="match_parent" - android:splitMotionEvents="false"> - <FrameLayout android:id="@android:id/content" - android:layout_width="match_parent" - android:layout_height="match_parent" /> - <LinearLayout android:id="@+id/top_action_bar" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:layout_gravity="top"> - <com.android.internal.widget.ActionBarContainer android:id="@+id/action_bar_container" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:layout_alignParentTop="true" - style="?android:attr/actionBarStyle" - android:gravity="top"> - <com.android.internal.widget.ActionBarView - android:id="@+id/action_bar" - android:layout_width="match_parent" - android:layout_height="wrap_content" - style="?android:attr/actionBarStyle" /> - <com.android.internal.widget.ActionBarContextView - android:id="@+id/action_context_bar" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:visibility="gone" - style="?android:attr/actionModeStyle" /> - </com.android.internal.widget.ActionBarContainer> - <ImageView android:src="?android:attr/windowContentOverlay" - android:scaleType="fitXY" - android:layout_width="match_parent" - android:layout_height="wrap_content" /> - </LinearLayout> -</com.android.internal.widget.ActionBarOverlayLayout> diff --git a/core/res/res/values/symbols.xml b/core/res/res/values/symbols.xml index c87cb27ee31c..140ff704f277 100644 --- a/core/res/res/values/symbols.xml +++ b/core/res/res/values/symbols.xml @@ -1363,7 +1363,6 @@ <java-symbol type="layout" name="keyguard_account_view" /> <java-symbol type="layout" name="recent_apps_dialog" /> <java-symbol type="layout" name="screen_action_bar" /> - <java-symbol type="layout" name="screen_action_bar_overlay" /> <java-symbol type="layout" name="screen_custom_title" /> <java-symbol type="layout" name="screen_progress" /> <java-symbol type="layout" name="screen_simple" /> |