Provide prediction time from the application

After further discussion with the graphics team, it turns out that the
Choreographer isn't the best way to compute the prediction time.

There may be some strategy that would use the Choreographer, like
looking at the last vsync and trying to guess when the next drawing will
occur.

However, for now, let's just provide this time from the application and
experiment with it. If we do need the Choreographer, we should be able
to get this data from libgui here in the native layer, so we don't need
the java to set this time, anyways.

Bug: 167946763
Test: atest libinput_tests inputflinger_tests
Change-Id: I496a9c184745d4cec085b880f913983cc2be9e3f
diff --git a/include/input/MotionPredictor.h b/include/input/MotionPredictor.h
index 6c07849..045e61b 100644
--- a/include/input/MotionPredictor.h
+++ b/include/input/MotionPredictor.h
@@ -63,14 +63,10 @@
     MotionPredictor(nsecs_t predictionTimestampOffsetNanos,
                     std::function<bool()> checkEnableMotionPrediction = isMotionPredictionEnabled);
     void record(const MotionEvent& event);
-    std::vector<std::unique_ptr<MotionEvent>> predict();
+    std::vector<std::unique_ptr<MotionEvent>> predict(nsecs_t timestamp);
     bool isPredictionAvailable(int32_t deviceId, int32_t source);
-    void setExpectedPresentationTimeNanos(int64_t expectedPresentationTimeNanos);
 
 private:
-    std::mutex mLock;
-    int64_t mExpectedPresentationTimeNanos GUARDED_BY(mLock) = 0;
-    int64_t getExpectedPresentationTimeNanos();
     std::vector<MotionEvent> mEvents;
     const nsecs_t mPredictionTimestampOffsetNanos;
     const std::function<bool()> mCheckMotionPredictionEnabled;