diff options
| author | 2024-06-11 10:16:31 +0000 | |
|---|---|---|
| committer | 2024-06-11 10:36:24 +0000 | |
| commit | a028a8a41f79aed291bf810c6c3c2363a71264a1 (patch) | |
| tree | 1fca5da6ca226188b818454f4d79ade3252373f2 | |
| parent | 07d8de08875b5149baf2fd9987ab1f528c901ab8 (diff) | |
Refactor ServiceConnection impl into inner class
As a prep change to move post that call into the handler.
Bug: b/338940163
Test: mp droid
Flag: EXEMPT refactor
Change-Id: If9bcb9f65892e2e10a2cdda5d771bd4f18e7ab08
| -rw-r--r-- | services/core/java/com/android/server/media/MediaRoute2ProviderServiceProxy.java | 47 |
1 files changed, 32 insertions, 15 deletions
diff --git a/services/core/java/com/android/server/media/MediaRoute2ProviderServiceProxy.java b/services/core/java/com/android/server/media/MediaRoute2ProviderServiceProxy.java index 71cbcb91100f..31706063eb34 100644 --- a/services/core/java/com/android/server/media/MediaRoute2ProviderServiceProxy.java +++ b/services/core/java/com/android/server/media/MediaRoute2ProviderServiceProxy.java @@ -53,11 +53,8 @@ import java.util.List; import java.util.Objects; import java.util.Set; -/** - * Maintains a connection to a particular {@link MediaRoute2ProviderService}. - */ -final class MediaRoute2ProviderServiceProxy extends MediaRoute2Provider - implements ServiceConnection { +/** Maintains a connection to a particular {@link MediaRoute2ProviderService}. */ +final class MediaRoute2ProviderServiceProxy extends MediaRoute2Provider { private static final String TAG = "MR2ProviderSvcProxy"; private static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG); @@ -65,6 +62,7 @@ final class MediaRoute2ProviderServiceProxy extends MediaRoute2Provider private final int mUserId; private final Handler mHandler; private final boolean mIsSelfScanOnlyProvider; + private final ServiceConnection mServiceConnection = new ServiceConnectionImpl(); // Connection state private boolean mRunning; @@ -259,9 +257,12 @@ final class MediaRoute2ProviderServiceProxy extends MediaRoute2Provider Intent service = new Intent(MediaRoute2ProviderService.SERVICE_INTERFACE); service.setComponent(mComponentName); try { - mBound = mContext.bindServiceAsUser(service, this, - Context.BIND_AUTO_CREATE | Context.BIND_FOREGROUND_SERVICE, - new UserHandle(mUserId)); + mBound = + mContext.bindServiceAsUser( + service, + mServiceConnection, + Context.BIND_AUTO_CREATE | Context.BIND_FOREGROUND_SERVICE, + new UserHandle(mUserId)); if (!mBound && DEBUG) { Slog.d(TAG, this + ": Bind failed"); } @@ -281,12 +282,11 @@ final class MediaRoute2ProviderServiceProxy extends MediaRoute2Provider mBound = false; disconnect(); - mContext.unbindService(this); + mContext.unbindService(mServiceConnection); } } - @Override - public void onServiceConnected(ComponentName name, IBinder service) { + private void onServiceConnectedInternal(IBinder service) { if (DEBUG) { Slog.d(TAG, this + ": Connected"); } @@ -310,16 +310,14 @@ final class MediaRoute2ProviderServiceProxy extends MediaRoute2Provider } } - @Override - public void onServiceDisconnected(ComponentName name) { + private void onServiceDisconnectedInternal() { if (DEBUG) { Slog.d(TAG, this + ": Service disconnected"); } disconnect(); } - @Override - public void onBindingDied(ComponentName name) { + private void onBindingDiedInternal(ComponentName name) { unbind(); if (Flags.enablePreventionOfKeepAliveRouteProviders()) { Slog.w( @@ -536,6 +534,25 @@ final class MediaRoute2ProviderServiceProxy extends MediaRoute2Provider mConnectionReady); } + // All methods in this class are called on the main thread. + private final class ServiceConnectionImpl implements ServiceConnection { + + @Override + public void onServiceConnected(ComponentName name, IBinder service) { + onServiceConnectedInternal(service); + } + + @Override + public void onServiceDisconnected(ComponentName name) { + onServiceDisconnectedInternal(); + } + + @Override + public void onBindingDied(ComponentName name) { + onBindingDiedInternal(name); + } + } + private final class Connection implements DeathRecipient { private final IMediaRoute2ProviderService mService; private final ServiceCallbackStub mCallbackStub; |