Fix a DocsUI crash...

when user toggles multiwindow mode with an empty search widget. Also a
bit cleaning around Toolbar.

Bug: 34881838
Change-Id: Ib093ed5bf5e9f9a95d815119620ecddd84d428f7
diff --git a/res/layout/drawer_layout.xml b/res/layout/drawer_layout.xml
index 32ba6d0..8eefa3e 100644
--- a/res/layout/drawer_layout.xml
+++ b/res/layout/drawer_layout.xml
@@ -32,7 +32,7 @@
             android:layout_height="match_parent"
             android:orientation="vertical">
 
-            <com.android.documentsui.DocumentsToolbar
+            <Toolbar
                 android:id="@+id/toolbar"
                 android:layout_width="match_parent"
                 android:layout_height="?android:attr/actionBarSize"
@@ -50,7 +50,7 @@
                     android:background="@android:color/transparent"
                     android:overlapAnchor="true" />
 
-            </com.android.documentsui.DocumentsToolbar>
+            </Toolbar>
 
             <FrameLayout
                 android:layout_width="match_parent"
diff --git a/res/layout/fixed_layout.xml b/res/layout/fixed_layout.xml
index 9882e94..ffcc940 100644
--- a/res/layout/fixed_layout.xml
+++ b/res/layout/fixed_layout.xml
@@ -30,7 +30,7 @@
         android:layout_height="match_parent"
         android:orientation="vertical">
 
-        <com.android.documentsui.DocumentsToolbar
+        <Toolbar
             android:id="@+id/toolbar"
             android:layout_width="match_parent"
             android:layout_height="?android:attr/actionBarSize"
@@ -45,7 +45,7 @@
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content" />
 
-        </com.android.documentsui.DocumentsToolbar>
+        </Toolbar>
 
         <LinearLayout
             android:layout_width="match_parent"
diff --git a/src/com/android/documentsui/BaseActivity.java b/src/com/android/documentsui/BaseActivity.java
index c4dc810..f799515 100644
--- a/src/com/android/documentsui/BaseActivity.java
+++ b/src/com/android/documentsui/BaseActivity.java
@@ -39,6 +39,7 @@
 import android.view.Menu;
 import android.view.MenuItem;
 import android.view.View;
+import android.widget.Toolbar;
 
 import com.android.documentsui.AbstractActionHandler.CommonAddons;
 import com.android.documentsui.Injector.Injected;
@@ -140,7 +141,7 @@
         mRoots = DocumentsApplication.getRootsCache(this);
         mDocs = DocumentsAccess.create(this);
 
-        DocumentsToolbar toolbar = (DocumentsToolbar) findViewById(R.id.toolbar);
+        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
         setActionBar(toolbar);
 
         Breadcrumb breadcrumb =
@@ -227,7 +228,7 @@
         getMenuInflater().inflate(R.menu.activity, menu);
         mNavigator.update();
         boolean fullBarSearch = getResources().getBoolean(R.bool.full_bar_search_view);
-        mSearchManager.install((DocumentsToolbar) findViewById(R.id.toolbar), fullBarSearch);
+        mSearchManager.install(menu, fullBarSearch);
 
         return showMenu;
     }
diff --git a/src/com/android/documentsui/DocumentsToolbar.java b/src/com/android/documentsui/DocumentsToolbar.java
deleted file mode 100644
index 7742cbf..0000000
--- a/src/com/android/documentsui/DocumentsToolbar.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * Copyright (C) 2015 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.
- */
-
-package com.android.documentsui;
-
-import android.content.Context;
-import android.util.AttributeSet;
-import android.view.MenuItem;
-import android.widget.Toolbar;
-
-/**
- * ToolBar of Documents UI.
- */
-public class DocumentsToolbar extends Toolbar {
-    interface OnActionViewCollapsedListener {
-        void onActionViewCollapsed();
-    }
-
-    private OnActionViewCollapsedListener mOnActionViewCollapsedListener;
-
-    public DocumentsToolbar(Context context, AttributeSet attrs,
-            int defStyleAttr, int defStyleRes) {
-        super(context, attrs, defStyleAttr, defStyleRes);
-    }
-
-    public DocumentsToolbar(Context context, AttributeSet attrs,
-            int defStyleAttr) {
-        super(context, attrs, defStyleAttr);
-    }
-
-    public DocumentsToolbar(Context context, AttributeSet attrs) {
-        super(context, attrs);
-    }
-
-    public DocumentsToolbar(Context context) {
-        super(context);
-    }
-
-    @Override
-    public void collapseActionView() {
-        super.collapseActionView();
-        if (mOnActionViewCollapsedListener != null) {
-            mOnActionViewCollapsedListener.onActionViewCollapsed();
-        }
-    }
-
-    /**
-     * Adds a listener that is invoked after collapsing the action view.
-     * @param listener
-     */
-    public void setOnActionViewCollapsedListener(
-            OnActionViewCollapsedListener listener) {
-        mOnActionViewCollapsedListener = listener;
-    }
-
-    public MenuItem getSearchMenu() {
-        return getMenu().findItem(R.id.menu_search);
-    }
-}
diff --git a/src/com/android/documentsui/NavigationViewManager.java b/src/com/android/documentsui/NavigationViewManager.java
index 694381e..f0faaa4 100644
--- a/src/com/android/documentsui/NavigationViewManager.java
+++ b/src/com/android/documentsui/NavigationViewManager.java
@@ -22,6 +22,7 @@
 import android.graphics.drawable.Drawable;
 import android.util.Log;
 import android.view.View;
+import android.widget.Toolbar;
 
 import com.android.documentsui.base.RootInfo;
 import com.android.documentsui.base.State;
@@ -36,15 +37,15 @@
 
     private static final String TAG = "NavigationViewManager";
 
-    final DrawerController mDrawer;
-    final DocumentsToolbar mToolbar;
-    final State mState;
-    final NavigationViewManager.Environment mEnv;
-    final Breadcrumb mBreadcrumb;
+    private final DrawerController mDrawer;
+    private final Toolbar mToolbar;
+    private final State mState;
+    private final NavigationViewManager.Environment mEnv;
+    private final Breadcrumb mBreadcrumb;
 
     public NavigationViewManager(
             DrawerController drawer,
-            DocumentsToolbar toolbar,
+            Toolbar toolbar,
             State state,
             NavigationViewManager.Environment env,
             Breadcrumb breadcrumb) {
diff --git a/src/com/android/documentsui/queries/SearchViewManager.java b/src/com/android/documentsui/queries/SearchViewManager.java
index 61e07b2..5af97cd 100644
--- a/src/com/android/documentsui/queries/SearchViewManager.java
+++ b/src/com/android/documentsui/queries/SearchViewManager.java
@@ -32,7 +32,6 @@
 import android.widget.SearchView;
 import android.widget.SearchView.OnQueryTextListener;
 
-import com.android.documentsui.DocumentsToolbar;
 import com.android.documentsui.R;
 import com.android.documentsui.base.DocumentInfo;
 import com.android.documentsui.base.DocumentStack;
@@ -56,7 +55,7 @@
     private boolean mIgnoreNextClose;
     private boolean mFullBar;
 
-    private DocumentsToolbar mActionBar;
+    private Menu mMenu;
     private MenuItem mMenuItem;
     private SearchView mSearchView;
 
@@ -73,9 +72,9 @@
         mCurrentSearch = savedState != null ? savedState.getString(Shared.EXTRA_QUERY) : null;
     }
 
-    public void install(DocumentsToolbar actionBar, boolean isFullBarSearch) {
-        mActionBar = actionBar;
-        mMenuItem = actionBar.getSearchMenu();
+    public void install(Menu menu, boolean isFullBarSearch) {
+        mMenu = menu;
+        mMenuItem = mMenu.findItem(R.id.menu_search);
         mSearchView = (SearchView) mMenuItem.getActionView();
 
         mSearchView.setOnQueryTextListener(this);
@@ -99,8 +98,7 @@
      */
     public void updateMenu() {
         if (isSearching() && mFullBar) {
-            Menu menu = mActionBar.getMenu();
-            menu.setGroupVisible(R.id.group_hide_when_searching, false);
+            mMenu.setGroupVisible(R.id.group_hide_when_searching, false);
         }
     }
 
@@ -203,8 +201,7 @@
     private void onSearchExpanded() {
         mSearchExpanded = true;
         if(mFullBar) {
-            Menu menu = mActionBar.getMenu();
-            menu.setGroupVisible(R.id.group_hide_when_searching, false);
+            mMenu.setGroupVisible(R.id.group_hide_when_searching, false);
         }
 
         mListener.onSearchViewChanged(true);
@@ -291,8 +288,7 @@
 
     @Override
     public boolean onMenuItemActionCollapse(MenuItem item) {
-        Menu menu = mActionBar.getMenu();
-        menu.setGroupVisible(R.id.group_hide_when_searching, true);
+        mMenu.setGroupVisible(R.id.group_hide_when_searching, true);
 
         // Handles case when search view is collapsed by using the arrow on the left of the bar
         if (isExpanded() || isSearching()) {