Make MotionClassifier 'final'

MotionClassifier's destructor invokes requestExit(), which then
invokes the virtual method reset().  If MotionClassifier had a
child class, this call to reset() from the destructor would
not use the dynamic binding, and thus wouldn't invoke any
child class's reset() override.

To avoid this potentially buggy and confusing situation, we
preemptively declare MotionClassifier 'final', which prevents
it from having children classes in the first place.

Test: TreeHugger
Change-Id: Id78cfe657b4be952b629bc43ce99b6927c833f05
diff --git a/services/inputflinger/InputClassifier.h b/services/inputflinger/InputClassifier.h
index 8133623..1f7dd41 100644
--- a/services/inputflinger/InputClassifier.h
+++ b/services/inputflinger/InputClassifier.h
@@ -93,7 +93,7 @@
  * NotifyMotionArgs::videoFrames field to drive the classification decisions.
  * The HAL is called from a separate thread.
  */
-class MotionClassifier : public MotionClassifierInterface {
+class MotionClassifier final : public MotionClassifierInterface {
 public:
     MotionClassifier(sp<android::hardware::input::classifier::V1_0::IInputClassifier> service);
     ~MotionClassifier();
@@ -201,4 +201,4 @@
 };
 
 } // namespace android
-#endif
\ No newline at end of file
+#endif