Remove toolbar's child views from previous parents

Before calling addView, we should first remove the child
views from their previous parents when they are a part
of an existing view hierarchy

Test: ./gradlew appcompat-v7:connectedCheck --info --daemon -Pandroid.testInstrumentationRunnerArguments.package=android.support.v7.app
Test: ./gradlew design:connectedCheck --info --daemon -Pandroid.testInstrumentationRunnerArguments.package=android.support.design.widget
Bug: 69104241
Change-Id: I4735046d700161d1dc27e86979207de55e70543a
diff --git a/v7/appcompat/src/main/java/android/support/v7/widget/Toolbar.java b/v7/appcompat/src/main/java/android/support/v7/widget/Toolbar.java
index 45e2583..f383e90 100644
--- a/v7/appcompat/src/main/java/android/support/v7/widget/Toolbar.java
+++ b/v7/appcompat/src/main/java/android/support/v7/widget/Toolbar.java
@@ -56,6 +56,7 @@
 import android.view.MotionEvent;
 import android.view.View;
 import android.view.ViewGroup;
+import android.view.ViewParent;
 import android.widget.ImageButton;
 import android.widget.ImageView;
 import android.widget.TextView;
@@ -2366,12 +2367,20 @@
         @Override
         public boolean expandItemActionView(MenuBuilder menu, MenuItemImpl item) {
             ensureCollapseButtonView();
-            if (mCollapseButtonView.getParent() != Toolbar.this) {
+            ViewParent collapseButtonParent = mCollapseButtonView.getParent();
+            if (collapseButtonParent != Toolbar.this) {
+                if (collapseButtonParent instanceof ViewGroup) {
+                    ((ViewGroup) collapseButtonParent).removeView(mCollapseButtonView);
+                }
                 addView(mCollapseButtonView);
             }
             mExpandedActionView = item.getActionView();
             mCurrentExpandedItem = item;
-            if (mExpandedActionView.getParent() != Toolbar.this) {
+            ViewParent expandedActionParent = mExpandedActionView.getParent();
+            if (expandedActionParent != Toolbar.this) {
+                if (expandedActionParent instanceof ViewGroup) {
+                    ((ViewGroup) expandedActionParent).removeView(mExpandedActionView);
+                }
                 final LayoutParams lp = generateDefaultLayoutParams();
                 lp.gravity = GravityCompat.START | (mButtonGravity & Gravity.VERTICAL_GRAVITY_MASK);
                 lp.mViewType = LayoutParams.EXPANDED;