summaryrefslogtreecommitdiff
path: root/core/java/android
diff options
context:
space:
mode:
authorSergey Nikolaienkov <sergeynv@google.com>2022-01-10 08:58:39 +0100
committerSergey Nikolaienkov <sergeynv@google.com>2022-01-10 09:36:09 +0100
commita4d4186ffbb06078d2a2544bd0772556128c4932 (patch)
tree1ca3203309c9a2dcf563bad2284600e1f1666387 /core/java/android
parent2ffcd6dc422309dafed857e7f9234baf43ad567d (diff)
postAtFrontOfQueue() in ICompanionDeviceService.Stub
postAtFrontOfQueue() instead of post()-ing at the back of the queue in ICompanionDeviceService.Stub to prevent "posted" methods are invoked *before* onUnbind()/onDestroy(). Add missing @Override annotation to onDispatchMessage method. Clean up dispatchMessage() which is not a part of ICompanionDeviceService interface. Make the Stub implementation class private. Bug: 198485833 Bug: 200940347 Test: atest CtsCompanionDeviceManagerCoreTestCases Test: atest CtsCompanionDeviceManagerUiAutomationTestCases Test: atest CtsOsTestCases:CompanionDeviceManagerTest Change-Id: Ic44e7968b1cef42355631151aa6958fe1ec7dd6e
Diffstat (limited to 'core/java/android')
-rw-r--r--core/java/android/companion/CompanionDeviceService.java26
1 files changed, 8 insertions, 18 deletions
diff --git a/core/java/android/companion/CompanionDeviceService.java b/core/java/android/companion/CompanionDeviceService.java
index 3237f7ca340a..12ced96a0ffb 100644
--- a/core/java/android/companion/CompanionDeviceService.java
+++ b/core/java/android/companion/CompanionDeviceService.java
@@ -28,9 +28,6 @@ import android.os.Handler;
import android.os.IBinder;
import android.util.Log;
-
-import com.android.internal.util.function.pooled.PooledLambda;
-
import java.util.Objects;
/**
@@ -185,31 +182,24 @@ public abstract class CompanionDeviceService extends Service {
public void onBindCompanionDeviceService(@NonNull Intent intent) {
}
- class Stub extends ICompanionDeviceService.Stub {
+ private class Stub extends ICompanionDeviceService.Stub {
+ final Handler mMainHandler = Handler.getMain();
+ final CompanionDeviceService mService = CompanionDeviceService.this;
@Override
public void onDeviceAppeared(AssociationInfo associationInfo) {
- Handler.getMain().post(
- () -> CompanionDeviceService.this.onDeviceAppeared(associationInfo));
+ mMainHandler.postAtFrontOfQueue(() -> mService.onDeviceAppeared(associationInfo));
}
@Override
public void onDeviceDisappeared(AssociationInfo associationInfo) {
- Handler.getMain().post(
- () -> CompanionDeviceService.this.onDeviceDisappeared(associationInfo));
+ mMainHandler.postAtFrontOfQueue(() -> mService.onDeviceDisappeared(associationInfo));
}
+ @Override
public void onDispatchMessage(int messageId, int associationId, @NonNull byte[] message) {
- Handler.getMain().sendMessage(PooledLambda.obtainMessage(
- CompanionDeviceService::onDispatchMessage,
- CompanionDeviceService.this, messageId, associationId, message));
- }
-
- public final void dispatchMessage(int messageId, int associationId,
- @NonNull byte[] message) {
- Handler.getMain().sendMessage(PooledLambda.obtainMessage(
- CompanionDeviceService::dispatchMessage,
- CompanionDeviceService.this, messageId, associationId, message));
+ mMainHandler.postAtFrontOfQueue(
+ () -> mService.onDispatchMessage(messageId, associationId, message));
}
}
}