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

Commit 79a220b7 authored by Daichi Hirono's avatar Daichi Hirono Committed by Android Git Automerger
Browse files

am 4ba81a08: Merge "Update visibility of the stack dropdown list after the...

am 4ba81a08: Merge "Update visibility of the stack dropdown list after the search view is collapsed." into mnc-dev

* commit '4ba81a0878d058734e9eb2c298d7fc4df7e597ed':
  Update visibility of the stack dropdown list after the search view is collapsed.
parents 3fff6aed e577ef07
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);
    }
}