/* * Copyright (C) 2014 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.systemui.statusbar.stack; import android.view.View; import com.android.systemui.statusbar.ActivatableNotificationView; import java.util.ArrayList; /** * A global state to track all input states for the algorithm. */ public class AmbientState { private ArrayList mDraggedViews = new ArrayList(); private int mScrollY; private boolean mDimmed; private ActivatableNotificationView mActivatedChild; private float mOverScrollTopAmount; private float mOverScrollBottomAmount; private int mSpeedBumpIndex = -1; private boolean mDark; private boolean mHideSensitive; public int getScrollY() { return mScrollY; } public void setScrollY(int scrollY) { this.mScrollY = scrollY; } public void onBeginDrag(View view) { mDraggedViews.add(view); } public void onDragFinished(View view) { mDraggedViews.remove(view); } public ArrayList getDraggedViews() { return mDraggedViews; } /** * @param dimmed Whether we are in a dimmed state (on the lockscreen), where the backgrounds are * translucent and everything is scaled back a bit. */ public void setDimmed(boolean dimmed) { mDimmed = dimmed; } /** In dark mode, we draw as little as possible, assuming a black background */ public void setDark(boolean dark) { mDark = dark; } public void setHideSensitive(boolean hideSensitive) { mHideSensitive = hideSensitive; } /** * In dimmed mode, a child can be activated, which happens on the first tap of the double-tap * interaction. This child is then scaled normally and its background is fully opaque. */ public void setActivatedChild(ActivatableNotificationView activatedChild) { mActivatedChild = activatedChild; } public boolean isDimmed() { return mDimmed; } public boolean isDark() { return mDark; } public boolean isHideSensitive() { return mHideSensitive; } public ActivatableNotificationView getActivatedChild() { return mActivatedChild; } public void setOverScrollAmount(float amount, boolean onTop) { if (onTop) { mOverScrollTopAmount = amount; } else { mOverScrollBottomAmount = amount; } } public float getOverScrollAmount(boolean top) { return top ? mOverScrollTopAmount : mOverScrollBottomAmount; } public int getSpeedBumpIndex() { return mSpeedBumpIndex; } public void setSpeedBumpIndex(int speedBumpIndex) { mSpeedBumpIndex = speedBumpIndex; } }