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