1560114f591be31d0fb73c26a1ee1cc0a15184abaAdam Powell/*
2560114f591be31d0fb73c26a1ee1cc0a15184abaAdam Powell * Copyright (C) 2011 The Android Open Source Project
3560114f591be31d0fb73c26a1ee1cc0a15184abaAdam Powell *
4560114f591be31d0fb73c26a1ee1cc0a15184abaAdam Powell * Licensed under the Apache License, Version 2.0 (the "License");
5560114f591be31d0fb73c26a1ee1cc0a15184abaAdam Powell * you may not use this file except in compliance with the License.
6560114f591be31d0fb73c26a1ee1cc0a15184abaAdam Powell * You may obtain a copy of the License at
7560114f591be31d0fb73c26a1ee1cc0a15184abaAdam Powell *
8560114f591be31d0fb73c26a1ee1cc0a15184abaAdam Powell *      http://www.apache.org/licenses/LICENSE-2.0
9560114f591be31d0fb73c26a1ee1cc0a15184abaAdam Powell *
10560114f591be31d0fb73c26a1ee1cc0a15184abaAdam Powell * Unless required by applicable law or agreed to in writing, software
11560114f591be31d0fb73c26a1ee1cc0a15184abaAdam Powell * distributed under the License is distributed on an "AS IS" BASIS,
12560114f591be31d0fb73c26a1ee1cc0a15184abaAdam Powell * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13560114f591be31d0fb73c26a1ee1cc0a15184abaAdam Powell * See the License for the specific language governing permissions and
14560114f591be31d0fb73c26a1ee1cc0a15184abaAdam Powell * limitations under the License.
15560114f591be31d0fb73c26a1ee1cc0a15184abaAdam Powell */
16560114f591be31d0fb73c26a1ee1cc0a15184abaAdam Powellpackage android.support.v4.widget;
17560114f591be31d0fb73c26a1ee1cc0a15184abaAdam Powell
18560114f591be31d0fb73c26a1ee1cc0a15184abaAdam Powellimport android.content.Context;
19560114f591be31d0fb73c26a1ee1cc0a15184abaAdam Powellimport android.graphics.Canvas;
20560114f591be31d0fb73c26a1ee1cc0a15184abaAdam Powellimport android.widget.EdgeEffect;
21560114f591be31d0fb73c26a1ee1cc0a15184abaAdam Powell
22560114f591be31d0fb73c26a1ee1cc0a15184abaAdam Powell/**
23560114f591be31d0fb73c26a1ee1cc0a15184abaAdam Powell * Stub implementation that contains a real EdgeEffect on ICS.
24560114f591be31d0fb73c26a1ee1cc0a15184abaAdam Powell *
25560114f591be31d0fb73c26a1ee1cc0a15184abaAdam Powell * This class is an implementation detail for EdgeEffectCompat
26560114f591be31d0fb73c26a1ee1cc0a15184abaAdam Powell * and should not be used directly.
27560114f591be31d0fb73c26a1ee1cc0a15184abaAdam Powell */
28560114f591be31d0fb73c26a1ee1cc0a15184abaAdam Powellclass EdgeEffectCompatIcs {
29560114f591be31d0fb73c26a1ee1cc0a15184abaAdam Powell    public static Object newEdgeEffect(Context context) {
30560114f591be31d0fb73c26a1ee1cc0a15184abaAdam Powell        return new EdgeEffect(context);
31560114f591be31d0fb73c26a1ee1cc0a15184abaAdam Powell    }
32560114f591be31d0fb73c26a1ee1cc0a15184abaAdam Powell
33560114f591be31d0fb73c26a1ee1cc0a15184abaAdam Powell    public static void setSize(Object edgeEffect, int width, int height) {
34560114f591be31d0fb73c26a1ee1cc0a15184abaAdam Powell        ((EdgeEffect) edgeEffect).setSize(width, height);
35560114f591be31d0fb73c26a1ee1cc0a15184abaAdam Powell    }
36560114f591be31d0fb73c26a1ee1cc0a15184abaAdam Powell
37560114f591be31d0fb73c26a1ee1cc0a15184abaAdam Powell    public static boolean isFinished(Object edgeEffect) {
38560114f591be31d0fb73c26a1ee1cc0a15184abaAdam Powell        return ((EdgeEffect) edgeEffect).isFinished();
39560114f591be31d0fb73c26a1ee1cc0a15184abaAdam Powell    }
40560114f591be31d0fb73c26a1ee1cc0a15184abaAdam Powell
41560114f591be31d0fb73c26a1ee1cc0a15184abaAdam Powell    public static void finish(Object edgeEffect) {
42560114f591be31d0fb73c26a1ee1cc0a15184abaAdam Powell        ((EdgeEffect) edgeEffect).finish();
43560114f591be31d0fb73c26a1ee1cc0a15184abaAdam Powell    }
44560114f591be31d0fb73c26a1ee1cc0a15184abaAdam Powell
45560114f591be31d0fb73c26a1ee1cc0a15184abaAdam Powell    public static boolean onPull(Object edgeEffect, float deltaDistance) {
46560114f591be31d0fb73c26a1ee1cc0a15184abaAdam Powell        ((EdgeEffect) edgeEffect).onPull(deltaDistance);
47560114f591be31d0fb73c26a1ee1cc0a15184abaAdam Powell        return true;
48560114f591be31d0fb73c26a1ee1cc0a15184abaAdam Powell    }
49560114f591be31d0fb73c26a1ee1cc0a15184abaAdam Powell
50560114f591be31d0fb73c26a1ee1cc0a15184abaAdam Powell    public static boolean onRelease(Object edgeEffect) {
51560114f591be31d0fb73c26a1ee1cc0a15184abaAdam Powell        EdgeEffect eff = (EdgeEffect) edgeEffect;
52560114f591be31d0fb73c26a1ee1cc0a15184abaAdam Powell        eff.onRelease();
53560114f591be31d0fb73c26a1ee1cc0a15184abaAdam Powell        return eff.isFinished();
54560114f591be31d0fb73c26a1ee1cc0a15184abaAdam Powell    }
55560114f591be31d0fb73c26a1ee1cc0a15184abaAdam Powell
56560114f591be31d0fb73c26a1ee1cc0a15184abaAdam Powell    public static boolean onAbsorb(Object edgeEffect, int velocity) {
57560114f591be31d0fb73c26a1ee1cc0a15184abaAdam Powell        ((EdgeEffect) edgeEffect).onAbsorb(velocity);
58560114f591be31d0fb73c26a1ee1cc0a15184abaAdam Powell        return true;
59560114f591be31d0fb73c26a1ee1cc0a15184abaAdam Powell    }
60560114f591be31d0fb73c26a1ee1cc0a15184abaAdam Powell
61560114f591be31d0fb73c26a1ee1cc0a15184abaAdam Powell    public static boolean draw(Object edgeEffect, Canvas canvas) {
62560114f591be31d0fb73c26a1ee1cc0a15184abaAdam Powell        return ((EdgeEffect) edgeEffect).draw(canvas);
63560114f591be31d0fb73c26a1ee1cc0a15184abaAdam Powell    }
64560114f591be31d0fb73c26a1ee1cc0a15184abaAdam Powell}