10e2ffbd48bbedf47deb7f6aed96bd07e2fc96f53Blazej Magnowski/*
20e2ffbd48bbedf47deb7f6aed96bd07e2fc96f53Blazej Magnowski * Copyright (C) 2015 The Android Open Source Project
30e2ffbd48bbedf47deb7f6aed96bd07e2fc96f53Blazej Magnowski *
40e2ffbd48bbedf47deb7f6aed96bd07e2fc96f53Blazej Magnowski * Licensed under the Apache License, Version 2.0 (the "License");
50e2ffbd48bbedf47deb7f6aed96bd07e2fc96f53Blazej Magnowski * you may not use this file except in compliance with the License.
60e2ffbd48bbedf47deb7f6aed96bd07e2fc96f53Blazej Magnowski * You may obtain a copy of the License at
70e2ffbd48bbedf47deb7f6aed96bd07e2fc96f53Blazej Magnowski *
80e2ffbd48bbedf47deb7f6aed96bd07e2fc96f53Blazej Magnowski *      http://www.apache.org/licenses/LICENSE-2.0
90e2ffbd48bbedf47deb7f6aed96bd07e2fc96f53Blazej Magnowski *
100e2ffbd48bbedf47deb7f6aed96bd07e2fc96f53Blazej Magnowski * Unless required by applicable law or agreed to in writing, software
110e2ffbd48bbedf47deb7f6aed96bd07e2fc96f53Blazej Magnowski * distributed under the License is distributed on an "AS IS" BASIS,
120e2ffbd48bbedf47deb7f6aed96bd07e2fc96f53Blazej Magnowski * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
130e2ffbd48bbedf47deb7f6aed96bd07e2fc96f53Blazej Magnowski * See the License for the specific language governing permissions and
140e2ffbd48bbedf47deb7f6aed96bd07e2fc96f53Blazej Magnowski * limitations under the License
150e2ffbd48bbedf47deb7f6aed96bd07e2fc96f53Blazej Magnowski */
160e2ffbd48bbedf47deb7f6aed96bd07e2fc96f53Blazej Magnowski
170e2ffbd48bbedf47deb7f6aed96bd07e2fc96f53Blazej Magnowskipackage com.android.systemui.classifier;
180e2ffbd48bbedf47deb7f6aed96bd07e2fc96f53Blazej Magnowski
190e2ffbd48bbedf47deb7f6aed96bd07e2fc96f53Blazej Magnowskiimport android.hardware.SensorEvent;
200e2ffbd48bbedf47deb7f6aed96bd07e2fc96f53Blazej Magnowskiimport android.view.MotionEvent;
210e2ffbd48bbedf47deb7f6aed96bd07e2fc96f53Blazej Magnowski
220e2ffbd48bbedf47deb7f6aed96bd07e2fc96f53Blazej Magnowski/**
239f01c5bfa5c1c63e350808c154adfc2953949b15Blazej Magnowski * An abstract class for classifiers for touch and sensor events.
240e2ffbd48bbedf47deb7f6aed96bd07e2fc96f53Blazej Magnowski */
250e2ffbd48bbedf47deb7f6aed96bd07e2fc96f53Blazej Magnowskipublic abstract class Classifier {
260e2ffbd48bbedf47deb7f6aed96bd07e2fc96f53Blazej Magnowski    public static final int QUICK_SETTINGS = 0;
270e2ffbd48bbedf47deb7f6aed96bd07e2fc96f53Blazej Magnowski    public static final int NOTIFICATION_DISMISS = 1;
280e2ffbd48bbedf47deb7f6aed96bd07e2fc96f53Blazej Magnowski    public static final int NOTIFICATION_DRAG_DOWN = 2;
290e2ffbd48bbedf47deb7f6aed96bd07e2fc96f53Blazej Magnowski    public static final int NOTIFICATION_DOUBLE_TAP = 3;
300e2ffbd48bbedf47deb7f6aed96bd07e2fc96f53Blazej Magnowski    public static final int UNLOCK = 4;
310e2ffbd48bbedf47deb7f6aed96bd07e2fc96f53Blazej Magnowski    public static final int LEFT_AFFORDANCE = 5;
320e2ffbd48bbedf47deb7f6aed96bd07e2fc96f53Blazej Magnowski    public static final int RIGHT_AFFORDANCE = 6;
339f01c5bfa5c1c63e350808c154adfc2953949b15Blazej Magnowski    public static final int GENERIC = 7;
34bc9aac10e2a2c59fbea5a806f636c1bf7b6427c1Lucas Dupin    public static final int BOUNCER_UNLOCK = 8;
350e2ffbd48bbedf47deb7f6aed96bd07e2fc96f53Blazej Magnowski
360e2ffbd48bbedf47deb7f6aed96bd07e2fc96f53Blazej Magnowski    /**
370e2ffbd48bbedf47deb7f6aed96bd07e2fc96f53Blazej Magnowski     * Contains all the information about touch events from which the classifier can query
380e2ffbd48bbedf47deb7f6aed96bd07e2fc96f53Blazej Magnowski     */
390e2ffbd48bbedf47deb7f6aed96bd07e2fc96f53Blazej Magnowski    protected ClassifierData mClassifierData;
400e2ffbd48bbedf47deb7f6aed96bd07e2fc96f53Blazej Magnowski
410e2ffbd48bbedf47deb7f6aed96bd07e2fc96f53Blazej Magnowski    /**
420e2ffbd48bbedf47deb7f6aed96bd07e2fc96f53Blazej Magnowski     * Informs the classifier that a new touch event has occurred
430e2ffbd48bbedf47deb7f6aed96bd07e2fc96f53Blazej Magnowski     */
440e2ffbd48bbedf47deb7f6aed96bd07e2fc96f53Blazej Magnowski    public void onTouchEvent(MotionEvent event) {
450e2ffbd48bbedf47deb7f6aed96bd07e2fc96f53Blazej Magnowski    }
460e2ffbd48bbedf47deb7f6aed96bd07e2fc96f53Blazej Magnowski
470e2ffbd48bbedf47deb7f6aed96bd07e2fc96f53Blazej Magnowski    /**
480e2ffbd48bbedf47deb7f6aed96bd07e2fc96f53Blazej Magnowski     * Informs the classifier that a sensor change occurred
490e2ffbd48bbedf47deb7f6aed96bd07e2fc96f53Blazej Magnowski     */
500e2ffbd48bbedf47deb7f6aed96bd07e2fc96f53Blazej Magnowski    public void onSensorChanged(SensorEvent event) {
510e2ffbd48bbedf47deb7f6aed96bd07e2fc96f53Blazej Magnowski    }
52401caaedd871894620accc1d14592c08095b5523Adrian Roos
53401caaedd871894620accc1d14592c08095b5523Adrian Roos    public abstract String getTag();
540e2ffbd48bbedf47deb7f6aed96bd07e2fc96f53Blazej Magnowski}
55