aboutsummaryrefslogtreecommitdiffstats
path: root/java/src/com/android/inputmethod/latin/utils/AsyncResultHolder.java
diff options
context:
space:
mode:
authorAmin Bandali <bandali@kelar.org>2024-12-16 21:45:41 -0500
committerAmin Bandali <bandali@kelar.org>2025-01-11 14:17:35 -0500
commite9a0e66716dab4dd3184d009d8920de1961efdfa (patch)
tree02dcc096643d74645bf28459c2834c3d4a2ad7f2 /java/src/com/android/inputmethod/latin/utils/AsyncResultHolder.java
parentfb3b9360d70596d7e921de8bf7d3ca99564a077e (diff)
downloadlatinime-e9a0e66716dab4dd3184d009d8920de1961efdfa.tar.gz
latinime-e9a0e66716dab4dd3184d009d8920de1961efdfa.tar.xz
latinime-e9a0e66716dab4dd3184d009d8920de1961efdfa.zip
Rename to Kelar Keyboard (org.kelar.inputmethod.latin)
Diffstat (limited to 'java/src/com/android/inputmethod/latin/utils/AsyncResultHolder.java')
-rw-r--r--java/src/com/android/inputmethod/latin/utils/AsyncResultHolder.java72
1 files changed, 0 insertions, 72 deletions
diff --git a/java/src/com/android/inputmethod/latin/utils/AsyncResultHolder.java b/java/src/com/android/inputmethod/latin/utils/AsyncResultHolder.java
deleted file mode 100644
index 1525f2d56..000000000
--- a/java/src/com/android/inputmethod/latin/utils/AsyncResultHolder.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * Copyright (C) 2013 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.latin.utils;
-
-import android.util.Log;
-
-import java.util.concurrent.CountDownLatch;
-import java.util.concurrent.TimeUnit;
-
-/**
- * This class is a holder of the result of an asynchronous computation.
- *
- * @param <E> the type of the result.
- */
-public class AsyncResultHolder<E> {
-
- private final Object mLock = new Object();
-
- private E mResult;
- private final String mTag;
- private final CountDownLatch mLatch;
-
- public AsyncResultHolder(final String tag) {
- mTag = tag;
- mLatch = new CountDownLatch(1);
- }
-
- /**
- * Sets the result value of this holder.
- *
- * @param result the value to set.
- */
- public void set(final E result) {
- synchronized(mLock) {
- if (mLatch.getCount() > 0) {
- mResult = result;
- mLatch.countDown();
- }
- }
- }
-
- /**
- * Gets the result value held in this holder.
- * Causes the current thread to wait unless the value is set or the specified time is elapsed.
- *
- * @param defaultValue the default value.
- * @param timeOut the maximum time to wait.
- * @return if the result is set before the time limit then the result, otherwise defaultValue.
- */
- public E get(final E defaultValue, final long timeOut) {
- try {
- return mLatch.await(timeOut, TimeUnit.MILLISECONDS) ? mResult : defaultValue;
- } catch (InterruptedException e) {
- Log.w(mTag, "get() : Interrupted after " + timeOut + " ms");
- return defaultValue;
- }
- }
-}