101054e922aa547b937a71131ad04c6bd15356240Angus Kong/*
201054e922aa547b937a71131ad04c6bd15356240Angus Kong * Copyright (C) 2013 The Android Open Source Project
301054e922aa547b937a71131ad04c6bd15356240Angus Kong *
401054e922aa547b937a71131ad04c6bd15356240Angus Kong * Licensed under the Apache License, Version 2.0 (the "License");
501054e922aa547b937a71131ad04c6bd15356240Angus Kong * you may not use this file except in compliance with the License.
601054e922aa547b937a71131ad04c6bd15356240Angus Kong * You may obtain a copy of the License at
701054e922aa547b937a71131ad04c6bd15356240Angus Kong *
801054e922aa547b937a71131ad04c6bd15356240Angus Kong *      http://www.apache.org/licenses/LICENSE-2.0
901054e922aa547b937a71131ad04c6bd15356240Angus Kong *
1001054e922aa547b937a71131ad04c6bd15356240Angus Kong * Unless required by applicable law or agreed to in writing, software
1101054e922aa547b937a71131ad04c6bd15356240Angus Kong * distributed under the License is distributed on an "AS IS" BASIS,
1201054e922aa547b937a71131ad04c6bd15356240Angus Kong * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1301054e922aa547b937a71131ad04c6bd15356240Angus Kong * See the License for the specific language governing permissions and
1401054e922aa547b937a71131ad04c6bd15356240Angus Kong * limitations under the License.
1501054e922aa547b937a71131ad04c6bd15356240Angus Kong */
1601054e922aa547b937a71131ad04c6bd15356240Angus Kong
1701054e922aa547b937a71131ad04c6bd15356240Angus Kongpackage com.android.camera.filmstrip;
1801054e922aa547b937a71131ad04c6bd15356240Angus Kong
1901054e922aa547b937a71131ad04c6bd15356240Angus Kongimport com.android.camera.widget.FilmstripLayout;
2001054e922aa547b937a71131ad04c6bd15356240Angus Kong
2101054e922aa547b937a71131ad04c6bd15356240Angus Kong/**
228a2350a3d557465b53445685db0f9ac838cf90c5Angus Kong * The filmstrip panel holding the filmstrip and other controls/widgets.
2301054e922aa547b937a71131ad04c6bd15356240Angus Kong */
2401054e922aa547b937a71131ad04c6bd15356240Angus Kongpublic interface FilmstripContentPanel {
2501054e922aa547b937a71131ad04c6bd15356240Angus Kong    /**
2601054e922aa547b937a71131ad04c6bd15356240Angus Kong     * An listener interface extending {@link
2701054e922aa547b937a71131ad04c6bd15356240Angus Kong     * com.android.camera.filmstrip.FilmstripController.FilmstripListener} defining extra callbacks
2801054e922aa547b937a71131ad04c6bd15356240Angus Kong     * for filmstrip being shown and hidden.
2901054e922aa547b937a71131ad04c6bd15356240Angus Kong     */
3001054e922aa547b937a71131ad04c6bd15356240Angus Kong    interface Listener extends FilmstripController.FilmstripListener {
3101054e922aa547b937a71131ad04c6bd15356240Angus Kong
3201054e922aa547b937a71131ad04c6bd15356240Angus Kong        /**
333488188fa8dff9a90021446e6ed4f9c321c4d4dbErin Dahlgren         * Callback on a swipe out of filmstrip.
343488188fa8dff9a90021446e6ed4f9c321c4d4dbErin Dahlgren         */
353488188fa8dff9a90021446e6ed4f9c321c4d4dbErin Dahlgren        public void onSwipeOut();
363488188fa8dff9a90021446e6ed4f9c321c4d4dbErin Dahlgren
373488188fa8dff9a90021446e6ed4f9c321c4d4dbErin Dahlgren        /**
3873e09f39f7d4075f3c95d20bb229f354211d05c0Angus Kong         * Callback on a swiping out begins.
3973e09f39f7d4075f3c95d20bb229f354211d05c0Angus Kong         */
4073e09f39f7d4075f3c95d20bb229f354211d05c0Angus Kong        public void onSwipeOutBegin();
4173e09f39f7d4075f3c95d20bb229f354211d05c0Angus Kong
4273e09f39f7d4075f3c95d20bb229f354211d05c0Angus Kong        /**
4301054e922aa547b937a71131ad04c6bd15356240Angus Kong         * Callback when the filmstrip becomes invisible or gone.
4401054e922aa547b937a71131ad04c6bd15356240Angus Kong         */
4501054e922aa547b937a71131ad04c6bd15356240Angus Kong        public void onFilmstripHidden();
4601054e922aa547b937a71131ad04c6bd15356240Angus Kong
4701054e922aa547b937a71131ad04c6bd15356240Angus Kong        /**
4801054e922aa547b937a71131ad04c6bd15356240Angus Kong         * Callback when the filmstrip is shown in full-screen.
4901054e922aa547b937a71131ad04c6bd15356240Angus Kong         */
5001054e922aa547b937a71131ad04c6bd15356240Angus Kong        public void onFilmstripShown();
5101054e922aa547b937a71131ad04c6bd15356240Angus Kong    }
5201054e922aa547b937a71131ad04c6bd15356240Angus Kong
53b2510252fb020f3ccb88787c870930427377b9dfAngus Kong    /** Sets the listener. */
5401054e922aa547b937a71131ad04c6bd15356240Angus Kong    void setFilmstripListener(FilmstripLayout.Listener listener);
5501054e922aa547b937a71131ad04c6bd15356240Angus Kong
561f9db2dfe59c33228103c54523281501ef52c9baAngus Kong    /**
571f9db2dfe59c33228103c54523281501ef52c9baAngus Kong     * Hides this panel with animation.
581f9db2dfe59c33228103c54523281501ef52c9baAngus Kong     *
591f9db2dfe59c33228103c54523281501ef52c9baAngus Kong     * @return {@code false} if already hidden.
601f9db2dfe59c33228103c54523281501ef52c9baAngus Kong     */
611f9db2dfe59c33228103c54523281501ef52c9baAngus Kong    boolean animateHide();
621f9db2dfe59c33228103c54523281501ef52c9baAngus Kong
638a2350a3d557465b53445685db0f9ac838cf90c5Angus Kong    /** Hides this panel */
64b2510252fb020f3ccb88787c870930427377b9dfAngus Kong    void hide();
65b2510252fb020f3ccb88787c870930427377b9dfAngus Kong
668a2350a3d557465b53445685db0f9ac838cf90c5Angus Kong    /** Shows this panel */
67b2510252fb020f3ccb88787c870930427377b9dfAngus Kong    void show();
68b2510252fb020f3ccb88787c870930427377b9dfAngus Kong
6901054e922aa547b937a71131ad04c6bd15356240Angus Kong    /**
7001054e922aa547b937a71131ad04c6bd15356240Angus Kong     * Called when the back key is pressed.
7101054e922aa547b937a71131ad04c6bd15356240Angus Kong     *
7201054e922aa547b937a71131ad04c6bd15356240Angus Kong     * @return Whether the UI responded to the key event.
7301054e922aa547b937a71131ad04c6bd15356240Angus Kong     */
7401054e922aa547b937a71131ad04c6bd15356240Angus Kong    boolean onBackPressed();
7501054e922aa547b937a71131ad04c6bd15356240Angus Kong}
76