Revert "Revert "Bug fixes and performance improvements""

This reverts commit 436466d75edb5f6fd848504d998f244426ea5a09.
diff --git a/core/java/android/gesture/GestureLibrary.java b/core/java/android/gesture/GestureLibrary.java
index 1cf192e..9020d2b 100644
--- a/core/java/android/gesture/GestureLibrary.java
+++ b/core/java/android/gesture/GestureLibrary.java
@@ -136,7 +136,7 @@
      * @return a list of predictions of possible entries for a given gesture
      */
     public ArrayList<Prediction> recognize(Gesture gesture) {
-        Instance instance = Instance.createInstance(mSequenceType, gesture, null);
+        Instance instance = Instance.createInstance(mSequenceType, mOrientationStyle, gesture, null);
         return mClassifier.classify(mSequenceType, instance.vector);
     }
 
@@ -156,7 +156,7 @@
             mNamedGestures.put(entryName, gestures);
         }
         gestures.add(gesture);
-        mClassifier.addInstance(Instance.createInstance(mSequenceType, gesture, entryName));
+        mClassifier.addInstance(Instance.createInstance(mSequenceType, mOrientationStyle, gesture, entryName));
         mChanged = true;
     }
 
@@ -337,10 +337,14 @@
             for (int j = 0; j < gestureCount; j++) {
                 final Gesture gesture = Gesture.deserialize(in);
                 gestures.add(gesture);
-                classifier.addInstance(Instance.createInstance(mSequenceType, gesture, name));
+                classifier.addInstance(Instance.createInstance(mSequenceType, mOrientationStyle, gesture, name));
             }
 
             namedGestures.put(name, gestures);
         }
     }
+    
+    Learner getLearner() {
+        return mClassifier;
+    }
 }