135aa84b1f9f5e42dd00cb66df993ed1628c8963bYang Li/*
20a63716ed0e44f7cd32b81a444429318d42d8f08Romain Guy * Copyright (C) 2009 The Android Open Source Project
335aa84b1f9f5e42dd00cb66df993ed1628c8963bYang Li *
435aa84b1f9f5e42dd00cb66df993ed1628c8963bYang Li * Licensed under the Apache License, Version 2.0 (the "License");
535aa84b1f9f5e42dd00cb66df993ed1628c8963bYang Li * you may not use this file except in compliance with the License.
635aa84b1f9f5e42dd00cb66df993ed1628c8963bYang Li * You may obtain a copy of the License at
735aa84b1f9f5e42dd00cb66df993ed1628c8963bYang Li *
835aa84b1f9f5e42dd00cb66df993ed1628c8963bYang Li *      http://www.apache.org/licenses/LICENSE-2.0
935aa84b1f9f5e42dd00cb66df993ed1628c8963bYang Li *
1035aa84b1f9f5e42dd00cb66df993ed1628c8963bYang Li * Unless required by applicable law or agreed to in writing, software
1135aa84b1f9f5e42dd00cb66df993ed1628c8963bYang Li * distributed under the License is distributed on an "AS IS" BASIS,
1235aa84b1f9f5e42dd00cb66df993ed1628c8963bYang Li * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1335aa84b1f9f5e42dd00cb66df993ed1628c8963bYang Li * See the License for the specific language governing permissions and
1435aa84b1f9f5e42dd00cb66df993ed1628c8963bYang Li * limitations under the License.
1535aa84b1f9f5e42dd00cb66df993ed1628c8963bYang Li */
1635aa84b1f9f5e42dd00cb66df993ed1628c8963bYang Li
1735aa84b1f9f5e42dd00cb66df993ed1628c8963bYang Li
180a63716ed0e44f7cd32b81a444429318d42d8f08Romain Guypackage android.gesture;
1935aa84b1f9f5e42dd00cb66df993ed1628c8963bYang Li
2035aa84b1f9f5e42dd00cb66df993ed1628c8963bYang Liimport java.util.Set;
210a63716ed0e44f7cd32b81a444429318d42d8f08Romain Guyimport java.util.ArrayList;
22b6d99b7d17fd1bb1326a70744bd01be5d1586487Romain Guy
230a63716ed0e44f7cd32b81a444429318d42d8f08Romain Guypublic abstract class GestureLibrary {
240a63716ed0e44f7cd32b81a444429318d42d8f08Romain Guy    protected final GestureStore mStore;
2535aa84b1f9f5e42dd00cb66df993ed1628c8963bYang Li
260a63716ed0e44f7cd32b81a444429318d42d8f08Romain Guy    protected GestureLibrary() {
270a63716ed0e44f7cd32b81a444429318d42d8f08Romain Guy        mStore = new GestureStore();
280a63716ed0e44f7cd32b81a444429318d42d8f08Romain Guy    }
2935aa84b1f9f5e42dd00cb66df993ed1628c8963bYang Li
300a63716ed0e44f7cd32b81a444429318d42d8f08Romain Guy    public abstract boolean save();
3135aa84b1f9f5e42dd00cb66df993ed1628c8963bYang Li
320a63716ed0e44f7cd32b81a444429318d42d8f08Romain Guy    public abstract boolean load();
3335aa84b1f9f5e42dd00cb66df993ed1628c8963bYang Li
340a63716ed0e44f7cd32b81a444429318d42d8f08Romain Guy    public boolean isReadOnly() {
350a63716ed0e44f7cd32b81a444429318d42d8f08Romain Guy        return false;
360a63716ed0e44f7cd32b81a444429318d42d8f08Romain Guy    }
3735aa84b1f9f5e42dd00cb66df993ed1628c8963bYang Li
387f2054392e9957d3ba8579ef08c29cfb27df564eDianne Hackborn    /** @hide */
390a63716ed0e44f7cd32b81a444429318d42d8f08Romain Guy    public Learner getLearner() {
400a63716ed0e44f7cd32b81a444429318d42d8f08Romain Guy        return mStore.getLearner();
4135aa84b1f9f5e42dd00cb66df993ed1628c8963bYang Li    }
4235aa84b1f9f5e42dd00cb66df993ed1628c8963bYang Li
4335aa84b1f9f5e42dd00cb66df993ed1628c8963bYang Li    public void setOrientationStyle(int style) {
440a63716ed0e44f7cd32b81a444429318d42d8f08Romain Guy        mStore.setOrientationStyle(style);
4535aa84b1f9f5e42dd00cb66df993ed1628c8963bYang Li    }
4635aa84b1f9f5e42dd00cb66df993ed1628c8963bYang Li
4735aa84b1f9f5e42dd00cb66df993ed1628c8963bYang Li    public int getOrientationStyle() {
480a63716ed0e44f7cd32b81a444429318d42d8f08Romain Guy        return mStore.getOrientationStyle();
4935aa84b1f9f5e42dd00cb66df993ed1628c8963bYang Li    }
5035aa84b1f9f5e42dd00cb66df993ed1628c8963bYang Li
51ac6a4b8eab8311a02e1988c1dbd1c85f867b6bc4Yang Li    public void setSequenceType(int type) {
520a63716ed0e44f7cd32b81a444429318d42d8f08Romain Guy        mStore.setSequenceType(type);
5335aa84b1f9f5e42dd00cb66df993ed1628c8963bYang Li    }
5435aa84b1f9f5e42dd00cb66df993ed1628c8963bYang Li
55ac6a4b8eab8311a02e1988c1dbd1c85f867b6bc4Yang Li    public int getSequenceType() {
560a63716ed0e44f7cd32b81a444429318d42d8f08Romain Guy        return mStore.getSequenceType();
5735aa84b1f9f5e42dd00cb66df993ed1628c8963bYang Li    }
5835aa84b1f9f5e42dd00cb66df993ed1628c8963bYang Li
5935aa84b1f9f5e42dd00cb66df993ed1628c8963bYang Li    public Set<String> getGestureEntries() {
600a63716ed0e44f7cd32b81a444429318d42d8f08Romain Guy        return mStore.getGestureEntries();
6135aa84b1f9f5e42dd00cb66df993ed1628c8963bYang Li    }
6235aa84b1f9f5e42dd00cb66df993ed1628c8963bYang Li
6335aa84b1f9f5e42dd00cb66df993ed1628c8963bYang Li    public ArrayList<Prediction> recognize(Gesture gesture) {
640a63716ed0e44f7cd32b81a444429318d42d8f08Romain Guy        return mStore.recognize(gesture);
6535aa84b1f9f5e42dd00cb66df993ed1628c8963bYang Li    }
6635aa84b1f9f5e42dd00cb66df993ed1628c8963bYang Li
6735aa84b1f9f5e42dd00cb66df993ed1628c8963bYang Li    public void addGesture(String entryName, Gesture gesture) {
680a63716ed0e44f7cd32b81a444429318d42d8f08Romain Guy        mStore.addGesture(entryName, gesture);
6935aa84b1f9f5e42dd00cb66df993ed1628c8963bYang Li    }
7035aa84b1f9f5e42dd00cb66df993ed1628c8963bYang Li
7135aa84b1f9f5e42dd00cb66df993ed1628c8963bYang Li    public void removeGesture(String entryName, Gesture gesture) {
720a63716ed0e44f7cd32b81a444429318d42d8f08Romain Guy        mStore.removeGesture(entryName, gesture);
7335aa84b1f9f5e42dd00cb66df993ed1628c8963bYang Li    }
7435aa84b1f9f5e42dd00cb66df993ed1628c8963bYang Li
75db567c390bd56c05614eaa83c02dbb99f97ad9ccRomain Guy    public void removeEntry(String entryName) {
760a63716ed0e44f7cd32b81a444429318d42d8f08Romain Guy        mStore.removeEntry(entryName);
7735aa84b1f9f5e42dd00cb66df993ed1628c8963bYang Li    }
7835aa84b1f9f5e42dd00cb66df993ed1628c8963bYang Li
7935aa84b1f9f5e42dd00cb66df993ed1628c8963bYang Li    public ArrayList<Gesture> getGestures(String entryName) {
800a63716ed0e44f7cd32b81a444429318d42d8f08Romain Guy        return mStore.getGestures(entryName);
81f40f074c43fcef627131d4b631251192761b4daaRomain Guy    }
8235aa84b1f9f5e42dd00cb66df993ed1628c8963bYang Li}
83