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...
This commit is contained in:
Dianne Hackborn
2013-03-06 21:44:09 +00:00
committed by Android Git Automerger
4 changed files with 56 additions and 100 deletions

View File

@@ -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();
}
}
}

View File

@@ -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"
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_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_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: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>

View File

@@ -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>

View File

@@ -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" />