Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4ba81a08 authored by Daichi Hirono's avatar Daichi Hirono Committed by Android (Google) Code Review
Browse files

Merge "Update visibility of the stack dropdown list after the search view is...

Merge "Update visibility of the stack dropdown list after the search view is collapsed." into mnc-dev
parents c34f2f15 186efa38
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -19,7 +19,7 @@
    android:layout_height="match_parent"
    android:orientation="vertical">

    <Toolbar
    <com.android.documentsui.DocumentsToolBar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="?android:attr/actionBarSize"
@@ -34,7 +34,7 @@
            android:layout_marginStart="4dp"
            android:overlapAnchor="true" />

    </Toolbar>
    </com.android.documentsui.DocumentsToolBar>

    <LinearLayout
        android:layout_width="match_parent"
+2 −2
Original line number Diff line number Diff line
@@ -24,7 +24,7 @@
        android:layout_height="match_parent"
        android:orientation="vertical">

        <Toolbar
        <com.android.documentsui.DocumentsToolBar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="?android:attr/actionBarSize"
@@ -39,7 +39,7 @@
                android:layout_marginStart="4dp"
                android:overlapAnchor="true" />

        </Toolbar>
        </com.android.documentsui.DocumentsToolBar>

        <com.android.documentsui.DirectoryContainerView
            android:id="@+id/container_directory"
+28 −7
Original line number Diff line number Diff line
@@ -101,7 +101,7 @@ abstract class BaseActivity extends Activity {
        boolean showMenu = super.onCreateOptionsMenu(menu);

        getMenuInflater().inflate(R.menu.activity, menu);
        mSearchManager.install(menu.findItem(R.id.menu_search));
        mSearchManager.install((DocumentsToolBar) findViewById(R.id.toolbar));

        return showMenu;
    }
@@ -666,20 +666,24 @@ abstract class BaseActivity extends Activity {
     * Facade over the various search parts in the menu.
     */
    final class SearchManager implements
            SearchView.OnCloseListener, OnActionExpandListener, OnQueryTextListener {
            SearchView.OnCloseListener, OnActionExpandListener, OnQueryTextListener,
            DocumentsToolBar.OnActionViewCollapsedListener {

        private boolean mSearchExpanded;
        private boolean mIgnoreNextClose;
        private boolean mIgnoreNextCollapse;

        private DocumentsToolBar mActionBar;
        private MenuItem mMenu;
        private SearchView mView;

        public void install(MenuItem menu) {
            assert(mMenu == null);
            mMenu = menu;
            mView = (SearchView) menu.getActionView();
        public void install(DocumentsToolBar actionBar) {
            assert(mActionBar == null);
            mActionBar = actionBar;
            mMenu = actionBar.getSearchMenu();
            mView = (SearchView) mMenu.getActionView();

            mActionBar.setOnActionViewCollapsedListener(this);
            mMenu.setOnActionExpandListener(this);
            mView.setOnQueryTextListener(this);
            mView.setOnCloseListener(this);
@@ -730,6 +734,19 @@ abstract class BaseActivity extends Activity {
            }
        }

        /**
         * Cancels current search operation.
         * @return True if it cancels search. False if it does not operate
         *     search currently.
         */
        boolean cancelSearch() {
            if (mActionBar.hasExpandedActionView()) {
                mActionBar.collapseActionView();
                return true;
            }
            return false;
        }

        boolean isSearching() {
            return getDisplayState().currentSearch != null;
        }
@@ -765,7 +782,6 @@ abstract class BaseActivity extends Activity {
                mIgnoreNextCollapse = false;
                return true;
            }

            getDisplayState().currentSearch = null;
            onCurrentDirectoryChanged(ANIM_NONE);
            return true;
@@ -784,5 +800,10 @@ abstract class BaseActivity extends Activity {
        public boolean onQueryTextChange(String newText) {
            return false;
        }

        @Override
        public void onActionViewCollapsed() {
            updateActionBar();
        }
    }
}
+6 −0
Original line number Diff line number Diff line
@@ -31,6 +31,7 @@ import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

import android.app.ActionBar;
import android.app.Activity;
import android.app.Fragment;
import android.app.FragmentManager;
@@ -508,6 +509,11 @@ public class DocumentsActivity extends BaseActivity {

    @Override
    public void onBackPressed() {
        // While action bar is expanded, the state stack UI is hidden.
        if (mSearchManager.cancelSearch()) {
            return;
        }

        if (!mState.stackTouched) {
            super.onBackPressed();
            return;
+72 −0
Original line number Diff line number Diff line
/*
 * 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);
    }
}