Loading core/java/android/view/translation/TranslationManager.java +4 −2 Original line number Original line Diff line number Diff line Loading @@ -168,8 +168,10 @@ public final class TranslationManager { return; return; } } synchronized (mLock) { mTranslators.put(tId, translator); mTranslators.put(tId, translator); mTranslatorIds.put(translationContext, tId); mTranslatorIds.put(translationContext, tId); } final long token = Binder.clearCallingIdentity(); final long token = Binder.clearCallingIdentity(); try { try { executor.execute(() -> callback.accept(translator)); executor.execute(() -> callback.accept(translator)); Loading core/java/android/view/translation/Translator.java +6 −11 Original line number Original line Diff line number Diff line Loading @@ -102,19 +102,19 @@ public class Translator { static class ServiceBinderReceiver extends IResultReceiver.Stub { static class ServiceBinderReceiver extends IResultReceiver.Stub { // TODO: refactor how translator is instantiated after removing deprecated createTranslator. // TODO: refactor how translator is instantiated after removing deprecated createTranslator. private final WeakReference<Translator> mTranslator; private final Translator mTranslator; private final CountDownLatch mLatch = new CountDownLatch(1); private final CountDownLatch mLatch = new CountDownLatch(1); private int mSessionId; private int mSessionId; private Consumer<Translator> mCallback; private Consumer<Translator> mCallback; ServiceBinderReceiver(Translator translator, Consumer<Translator> callback) { ServiceBinderReceiver(Translator translator, Consumer<Translator> callback) { mTranslator = new WeakReference<>(translator); mTranslator = translator; mCallback = callback; mCallback = callback; } } ServiceBinderReceiver(Translator translator) { ServiceBinderReceiver(Translator translator) { mTranslator = new WeakReference<>(translator); mTranslator = translator; } } int getSessionStateResult() throws TimeoutException { int getSessionStateResult() throws TimeoutException { Loading @@ -139,14 +139,9 @@ public class Translator { } } return; return; } } mSessionId = resultData.getInt(EXTRA_SESSION_ID); final Translator translator = mTranslator.get(); if (translator == null) { Log.w(TAG, "received result after session is finished"); return; } final IBinder binder; final IBinder binder; if (resultData != null) { if (resultData != null) { mSessionId = resultData.getInt(EXTRA_SESSION_ID); binder = resultData.getBinder(EXTRA_SERVICE_BINDER); binder = resultData.getBinder(EXTRA_SERVICE_BINDER); if (binder == null) { if (binder == null) { Log.wtf(TAG, "No " + EXTRA_SERVICE_BINDER + " extra result"); Log.wtf(TAG, "No " + EXTRA_SERVICE_BINDER + " extra result"); Loading @@ -155,10 +150,10 @@ public class Translator { } else { } else { binder = null; binder = null; } } translator.setServiceBinder(binder); mTranslator.setServiceBinder(binder); mLatch.countDown(); mLatch.countDown(); if (mCallback != null) { if (mCallback != null) { mCallback.accept(translator); mCallback.accept(mTranslator); } } } } Loading Loading
core/java/android/view/translation/TranslationManager.java +4 −2 Original line number Original line Diff line number Diff line Loading @@ -168,8 +168,10 @@ public final class TranslationManager { return; return; } } synchronized (mLock) { mTranslators.put(tId, translator); mTranslators.put(tId, translator); mTranslatorIds.put(translationContext, tId); mTranslatorIds.put(translationContext, tId); } final long token = Binder.clearCallingIdentity(); final long token = Binder.clearCallingIdentity(); try { try { executor.execute(() -> callback.accept(translator)); executor.execute(() -> callback.accept(translator)); Loading
core/java/android/view/translation/Translator.java +6 −11 Original line number Original line Diff line number Diff line Loading @@ -102,19 +102,19 @@ public class Translator { static class ServiceBinderReceiver extends IResultReceiver.Stub { static class ServiceBinderReceiver extends IResultReceiver.Stub { // TODO: refactor how translator is instantiated after removing deprecated createTranslator. // TODO: refactor how translator is instantiated after removing deprecated createTranslator. private final WeakReference<Translator> mTranslator; private final Translator mTranslator; private final CountDownLatch mLatch = new CountDownLatch(1); private final CountDownLatch mLatch = new CountDownLatch(1); private int mSessionId; private int mSessionId; private Consumer<Translator> mCallback; private Consumer<Translator> mCallback; ServiceBinderReceiver(Translator translator, Consumer<Translator> callback) { ServiceBinderReceiver(Translator translator, Consumer<Translator> callback) { mTranslator = new WeakReference<>(translator); mTranslator = translator; mCallback = callback; mCallback = callback; } } ServiceBinderReceiver(Translator translator) { ServiceBinderReceiver(Translator translator) { mTranslator = new WeakReference<>(translator); mTranslator = translator; } } int getSessionStateResult() throws TimeoutException { int getSessionStateResult() throws TimeoutException { Loading @@ -139,14 +139,9 @@ public class Translator { } } return; return; } } mSessionId = resultData.getInt(EXTRA_SESSION_ID); final Translator translator = mTranslator.get(); if (translator == null) { Log.w(TAG, "received result after session is finished"); return; } final IBinder binder; final IBinder binder; if (resultData != null) { if (resultData != null) { mSessionId = resultData.getInt(EXTRA_SESSION_ID); binder = resultData.getBinder(EXTRA_SERVICE_BINDER); binder = resultData.getBinder(EXTRA_SERVICE_BINDER); if (binder == null) { if (binder == null) { Log.wtf(TAG, "No " + EXTRA_SERVICE_BINDER + " extra result"); Log.wtf(TAG, "No " + EXTRA_SERVICE_BINDER + " extra result"); Loading @@ -155,10 +150,10 @@ public class Translator { } else { } else { binder = null; binder = null; } } translator.setServiceBinder(binder); mTranslator.setServiceBinder(binder); mLatch.countDown(); mLatch.countDown(); if (mCallback != null) { if (mCallback != null) { mCallback.accept(translator); mCallback.accept(mTranslator); } } } } Loading