summaryrefslogtreecommitdiff
path: root/java/src/com/android/inputmethod/keyboard/internal/TimerProxy.java
diff options
context:
space:
mode:
authorTadashi G. Takaoka <takaoka@google.com>2014-11-04 02:52:13 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2014-11-04 02:52:15 +0000
commitd60f49425bb43a14cea12dcba3f54d52050d0777 (patch)
tree1c8f0cf3a1331a8acf4bfc1ff4d761a3bea7974f /java/src/com/android/inputmethod/keyboard/internal/TimerProxy.java
parent933920feae1de5f8a851ec39ea5b9524ad794c75 (diff)
parent34a9e2ae87c6718d439b294d9536b6587a4f89f8 (diff)
Merge "Make DrawingProxy and TimerProxy as a top-level interface"
Diffstat (limited to 'java/src/com/android/inputmethod/keyboard/internal/TimerProxy.java')
-rw-r--r--java/src/com/android/inputmethod/keyboard/internal/TimerProxy.java133
1 files changed, 133 insertions, 0 deletions
diff --git a/java/src/com/android/inputmethod/keyboard/internal/TimerProxy.java b/java/src/com/android/inputmethod/keyboard/internal/TimerProxy.java
new file mode 100644
index 000000000..0ce3de8d9
--- /dev/null
+++ b/java/src/com/android/inputmethod/keyboard/internal/TimerProxy.java
@@ -0,0 +1,133 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.keyboard.internal;
+
+import com.android.inputmethod.keyboard.Key;
+import com.android.inputmethod.keyboard.PointerTracker;
+
+import javax.annotation.Nonnull;
+
+public interface TimerProxy {
+ /**
+ * Start a timer to detect if a user is typing keys.
+ * @param typedKey the key that is typed.
+ */
+ public void startTypingStateTimer(@Nonnull Key typedKey);
+
+ /**
+ * Check if a user is key typing.
+ * @return true if a user is in typing.
+ */
+ public boolean isTypingState();
+
+ /**
+ * Start a timer to simulate repeated key presses while a user keep pressing a key.
+ * @param tracker the {@link PointerTracker} that points the key to be repeated.
+ * @param repeatCount the number of times that the key is repeating. Starting from 1.
+ * @param delay the interval delay to the next key repeat, in millisecond.
+ */
+ public void startKeyRepeatTimerOf(@Nonnull PointerTracker tracker, int repeatCount, int delay);
+
+ /**
+ * Start a timer to detect a long pressed key.
+ * If a key pointed by <code>tracker</code> is a shift key, start another timer to detect
+ * long pressed shift key.
+ * @param tracker the {@link PointerTracker} that starts long pressing.
+ * @param delay the delay to fire the long press timer, in millisecond.
+ */
+ public void startLongPressTimerOf(@Nonnull PointerTracker tracker, int delay);
+
+ /**
+ * Cancel timers for detecting a long pressed key and a long press shift key.
+ * @param tracker cancel long press timers of this {@link PointerTracker}.
+ */
+ public void cancelLongPressTimersOf(@Nonnull PointerTracker tracker);
+
+ /**
+ * Cancel a timer for detecting a long pressed shift key.
+ */
+ public void cancelLongPressShiftKeyTimer();
+
+ /**
+ * Cancel timers for detecting repeated key press, long pressed key, and long pressed shift key.
+ * @param tracker the {@link PointerTracker} that starts timers to be canceled.
+ */
+ public void cancelKeyTimersOf(@Nonnull PointerTracker tracker);
+
+ /**
+ * Start a timer to detect double tapped shift key.
+ */
+ public void startDoubleTapShiftKeyTimer();
+
+ /**
+ * Cancel a timer of detecting double tapped shift key.
+ */
+ public void cancelDoubleTapShiftKeyTimer();
+
+ /**
+ * Check if a timer of detecting double tapped shift key is running.
+ * @return true if detecting double tapped shift key is on going.
+ */
+ public boolean isInDoubleTapShiftKeyTimeout();
+
+ /**
+ * Start a timer to fire updating batch input while <code>tracker</code> is on hold.
+ * @param tracker the {@link PointerTracker} that stops moving.
+ */
+ public void startUpdateBatchInputTimer(@Nonnull PointerTracker tracker);
+
+ /**
+ * Cancel a timer of firing updating batch input.
+ * @param tracker the {@link PointerTracker} that resumes moving or ends gesture input.
+ */
+ public void cancelUpdateBatchInputTimer(@Nonnull PointerTracker tracker);
+
+ /**
+ * Cancel all timers of firing updating batch input.
+ */
+ public void cancelAllUpdateBatchInputTimers();
+
+ public static class Adapter implements TimerProxy {
+ @Override
+ public void startTypingStateTimer(@Nonnull Key typedKey) {}
+ @Override
+ public boolean isTypingState() { return false; }
+ @Override
+ public void startKeyRepeatTimerOf(@Nonnull PointerTracker tracker, int repeatCount,
+ int delay) {}
+ @Override
+ public void startLongPressTimerOf(@Nonnull PointerTracker tracker, int delay) {}
+ @Override
+ public void cancelLongPressTimersOf(@Nonnull PointerTracker tracker) {}
+ @Override
+ public void cancelLongPressShiftKeyTimer() {}
+ @Override
+ public void cancelKeyTimersOf(@Nonnull PointerTracker tracker) {}
+ @Override
+ public void startDoubleTapShiftKeyTimer() {}
+ @Override
+ public void cancelDoubleTapShiftKeyTimer() {}
+ @Override
+ public boolean isInDoubleTapShiftKeyTimeout() { return false; }
+ @Override
+ public void startUpdateBatchInputTimer(@Nonnull PointerTracker tracker) {}
+ @Override
+ public void cancelUpdateBatchInputTimer(@Nonnull PointerTracker tracker) {}
+ @Override
+ public void cancelAllUpdateBatchInputTimers() {}
+ }
+}