diff options
| author | Sergey Nikolaienkov <sergeynv@google.com> | 2022-01-10 08:58:39 +0100 |
|---|---|---|
| committer | Sergey Nikolaienkov <sergeynv@google.com> | 2022-01-10 09:36:09 +0100 |
| commit | a4d4186ffbb06078d2a2544bd0772556128c4932 (patch) | |
| tree | 1ca3203309c9a2dcf563bad2284600e1f1666387 /core/java/android | |
| parent | 2ffcd6dc422309dafed857e7f9234baf43ad567d (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.java | 26 |
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)); } } } |
