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