14498d9cd8ee7aa44d25cd9018d83044409c1c395Blazej Magnowski/*
24498d9cd8ee7aa44d25cd9018d83044409c1c395Blazej Magnowski * Copyright (C) 2015 The Android Open Source Project
34498d9cd8ee7aa44d25cd9018d83044409c1c395Blazej Magnowski *
44498d9cd8ee7aa44d25cd9018d83044409c1c395Blazej Magnowski * Licensed under the Apache License, Version 2.0 (the "License");
54498d9cd8ee7aa44d25cd9018d83044409c1c395Blazej Magnowski * you may not use this file except in compliance with the License.
64498d9cd8ee7aa44d25cd9018d83044409c1c395Blazej Magnowski * You may obtain a copy of the License at
74498d9cd8ee7aa44d25cd9018d83044409c1c395Blazej Magnowski *
84498d9cd8ee7aa44d25cd9018d83044409c1c395Blazej Magnowski *      http://www.apache.org/licenses/LICENSE-2.0
94498d9cd8ee7aa44d25cd9018d83044409c1c395Blazej Magnowski *
104498d9cd8ee7aa44d25cd9018d83044409c1c395Blazej Magnowski * Unless required by applicable law or agreed to in writing, software
114498d9cd8ee7aa44d25cd9018d83044409c1c395Blazej Magnowski * distributed under the License is distributed on an "AS IS" BASIS,
124498d9cd8ee7aa44d25cd9018d83044409c1c395Blazej Magnowski * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
134498d9cd8ee7aa44d25cd9018d83044409c1c395Blazej Magnowski * See the License for the specific language governing permissions and
144498d9cd8ee7aa44d25cd9018d83044409c1c395Blazej Magnowski * limitations under the License
154498d9cd8ee7aa44d25cd9018d83044409c1c395Blazej Magnowski */
164498d9cd8ee7aa44d25cd9018d83044409c1c395Blazej Magnowski
174498d9cd8ee7aa44d25cd9018d83044409c1c395Blazej Magnowskipackage com.android.systemui.classifier;
184498d9cd8ee7aa44d25cd9018d83044409c1c395Blazej Magnowski
194498d9cd8ee7aa44d25cd9018d83044409c1c395Blazej Magnowskipublic class DirectionEvaluator {
204498d9cd8ee7aa44d25cd9018d83044409c1c395Blazej Magnowski    public static float evaluate(float xDiff, float yDiff, int type) {
214498d9cd8ee7aa44d25cd9018d83044409c1c395Blazej Magnowski        float falsingEvaluation = 5.5f;
224498d9cd8ee7aa44d25cd9018d83044409c1c395Blazej Magnowski        boolean vertical = Math.abs(yDiff) >= Math.abs(xDiff);
234498d9cd8ee7aa44d25cd9018d83044409c1c395Blazej Magnowski        switch (type) {
244498d9cd8ee7aa44d25cd9018d83044409c1c395Blazej Magnowski            case Classifier.QUICK_SETTINGS:
254498d9cd8ee7aa44d25cd9018d83044409c1c395Blazej Magnowski            case Classifier.NOTIFICATION_DRAG_DOWN:
264498d9cd8ee7aa44d25cd9018d83044409c1c395Blazej Magnowski                if (!vertical || yDiff <= 0.0) {
274498d9cd8ee7aa44d25cd9018d83044409c1c395Blazej Magnowski                    return falsingEvaluation;
284498d9cd8ee7aa44d25cd9018d83044409c1c395Blazej Magnowski                }
294498d9cd8ee7aa44d25cd9018d83044409c1c395Blazej Magnowski                break;
304498d9cd8ee7aa44d25cd9018d83044409c1c395Blazej Magnowski            case Classifier.NOTIFICATION_DISMISS:
314498d9cd8ee7aa44d25cd9018d83044409c1c395Blazej Magnowski                if (vertical) {
324498d9cd8ee7aa44d25cd9018d83044409c1c395Blazej Magnowski                    return falsingEvaluation;
334498d9cd8ee7aa44d25cd9018d83044409c1c395Blazej Magnowski                }
344498d9cd8ee7aa44d25cd9018d83044409c1c395Blazej Magnowski                break;
354498d9cd8ee7aa44d25cd9018d83044409c1c395Blazej Magnowski            case Classifier.UNLOCK:
364498d9cd8ee7aa44d25cd9018d83044409c1c395Blazej Magnowski                if (!vertical || yDiff >= 0.0) {
374498d9cd8ee7aa44d25cd9018d83044409c1c395Blazej Magnowski                    return falsingEvaluation;
384498d9cd8ee7aa44d25cd9018d83044409c1c395Blazej Magnowski                }
394498d9cd8ee7aa44d25cd9018d83044409c1c395Blazej Magnowski                break;
404498d9cd8ee7aa44d25cd9018d83044409c1c395Blazej Magnowski            case Classifier.LEFT_AFFORDANCE:
414498d9cd8ee7aa44d25cd9018d83044409c1c395Blazej Magnowski                if (xDiff < 0.0 && yDiff > 0.0) {
424498d9cd8ee7aa44d25cd9018d83044409c1c395Blazej Magnowski                    return falsingEvaluation;
434498d9cd8ee7aa44d25cd9018d83044409c1c395Blazej Magnowski                }
444498d9cd8ee7aa44d25cd9018d83044409c1c395Blazej Magnowski                break;
454498d9cd8ee7aa44d25cd9018d83044409c1c395Blazej Magnowski            case Classifier.RIGHT_AFFORDANCE:
464498d9cd8ee7aa44d25cd9018d83044409c1c395Blazej Magnowski                if (xDiff > 0.0 && yDiff > 0.0) {
474498d9cd8ee7aa44d25cd9018d83044409c1c395Blazej Magnowski                    return falsingEvaluation;
484498d9cd8ee7aa44d25cd9018d83044409c1c395Blazej Magnowski                }
494498d9cd8ee7aa44d25cd9018d83044409c1c395Blazej Magnowski            default:
504498d9cd8ee7aa44d25cd9018d83044409c1c395Blazej Magnowski                break;
514498d9cd8ee7aa44d25cd9018d83044409c1c395Blazej Magnowski        }
524498d9cd8ee7aa44d25cd9018d83044409c1c395Blazej Magnowski        return 0.0f;
534498d9cd8ee7aa44d25cd9018d83044409c1c395Blazej Magnowski    }
544498d9cd8ee7aa44d25cd9018d83044409c1c395Blazej Magnowski}
55