1 /*
2  * Copyright (C) 2016 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 package com.android.launcher3.pageindicators;
17 
18 /**
19  * Base class for a page indicator.
20  */
21 public interface PageIndicator {
22 
setScroll(int currentScroll, int totalScroll)23     void setScroll(int currentScroll, int totalScroll);
24 
setActiveMarker(int activePage)25     void setActiveMarker(int activePage);
26 
setMarkersCount(int numMarkers)27     void setMarkersCount(int numMarkers);
28 
29     /**
30      * Sets a flag indicating whether to pause scroll.
31      * <p>Should be set to {@code true} while the screen is binding or new data is being applied,
32      * and to {@code false} once done. This prevents animation conflicts due to scrolling during
33      * those periods.</p>
34      */
setPauseScroll(boolean pause, boolean isTwoPanels)35     default void setPauseScroll(boolean pause, boolean isTwoPanels) {
36         // No-op by default
37     }
38 
39     /**
40      * Sets the flag if the Page Indicator should autohide.
41      */
setShouldAutoHide(boolean shouldAutoHide)42     default void setShouldAutoHide(boolean shouldAutoHide) {
43         // No-op by default
44     }
45 
46     /**
47      * Pauses all currently running animations.
48      */
pauseAnimations()49     default void pauseAnimations() {
50         // No-op by default
51     }
52 
53     /**
54      * Force-ends all currently running or paused animations.
55      */
skipAnimationsToEnd()56     default void skipAnimationsToEnd() {
57         // No-op by default
58     }
59 
60     /**
61      * Sets the paint color.
62      */
setPaintColor(int color)63     default void setPaintColor(int color) {
64         // No-op by default
65     }
66 }
67