Home | History | Annotate | Download | only in classifier
      1 /*
      2  * Copyright (C) 2015 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 
     17 package com.android.systemui.classifier;
     18 
     19 public class DirectionEvaluator {
     20     public static float evaluate(float xDiff, float yDiff, int type) {
     21         float falsingEvaluation = 5.5f;
     22         boolean vertical = Math.abs(yDiff) >= Math.abs(xDiff);
     23         switch (type) {
     24             case Classifier.QUICK_SETTINGS:
     25             case Classifier.NOTIFICATION_DRAG_DOWN:
     26                 if (!vertical || yDiff <= 0.0) {
     27                     return falsingEvaluation;
     28                 }
     29                 break;
     30             case Classifier.NOTIFICATION_DISMISS:
     31                 if (vertical) {
     32                     return falsingEvaluation;
     33                 }
     34                 break;
     35             case Classifier.UNLOCK:
     36                 if (!vertical || yDiff >= 0.0) {
     37                     return falsingEvaluation;
     38                 }
     39                 break;
     40             case Classifier.LEFT_AFFORDANCE:
     41                 if (xDiff < 0.0 && yDiff > 0.0) {
     42                     return falsingEvaluation;
     43                 }
     44                 break;
     45             case Classifier.RIGHT_AFFORDANCE:
     46                 if (xDiff > 0.0 && yDiff > 0.0) {
     47                     return falsingEvaluation;
     48                 }
     49             default:
     50                 break;
     51         }
     52         return 0.0f;
     53     }
     54 }
     55