Address API review on CarrierMessagingServiceWrapper
* Rename disposeConnection to disconnect * Save the instance of Context used to bind the service Fixes: 176822560 Test: atest CarrierMessagingServiceWrapperTest Change-Id: I9d9f76033076f7a1261dddbe81429f81b0603bf4
This commit is contained in:
@@ -9464,10 +9464,10 @@ package android.service.carrier {
|
||||
method @NonNull @WorkerThread public abstract java.util.List<android.content.ContentValues> onRestoreApns(int);
|
||||
}
|
||||
|
||||
public final class CarrierMessagingServiceWrapper {
|
||||
public final class CarrierMessagingServiceWrapper implements java.lang.AutoCloseable {
|
||||
ctor public CarrierMessagingServiceWrapper();
|
||||
method public boolean bindToCarrierMessagingService(@NonNull android.content.Context, @NonNull String, @NonNull java.util.concurrent.Executor, @NonNull Runnable);
|
||||
method public void disposeConnection(@NonNull android.content.Context);
|
||||
method public void disconnect();
|
||||
method public void downloadMms(@NonNull android.net.Uri, int, @NonNull android.net.Uri, @NonNull java.util.concurrent.Executor, @NonNull android.service.carrier.CarrierMessagingServiceWrapper.CarrierMessagingCallback);
|
||||
method public void receiveSms(@NonNull android.service.carrier.MessagePdu, @NonNull String, int, int, @NonNull java.util.concurrent.Executor, @NonNull android.service.carrier.CarrierMessagingServiceWrapper.CarrierMessagingCallback);
|
||||
method public void sendDataSms(@NonNull byte[], int, @NonNull String, int, int, @NonNull java.util.concurrent.Executor, @NonNull android.service.carrier.CarrierMessagingServiceWrapper.CarrierMessagingCallback);
|
||||
|
||||
@@ -48,12 +48,12 @@ import java.util.concurrent.Executor;
|
||||
* // Unable to bind: handle error.
|
||||
* }
|
||||
* </code>
|
||||
* <p> Upon completion {@link #disposeConnection} should be called to unbind the
|
||||
* <p> Upon completion {@link #disconnect} should be called to unbind the
|
||||
* CarrierMessagingService.
|
||||
* @hide
|
||||
*/
|
||||
@SystemApi
|
||||
public final class CarrierMessagingServiceWrapper {
|
||||
public final class CarrierMessagingServiceWrapper implements AutoCloseable {
|
||||
// Populated by bindToCarrierMessagingService. bindToCarrierMessagingService must complete
|
||||
// prior to calling disposeConnection so that mCarrierMessagingServiceConnection is initialized.
|
||||
private volatile CarrierMessagingServiceConnection mCarrierMessagingServiceConnection;
|
||||
@@ -61,6 +61,7 @@ public final class CarrierMessagingServiceWrapper {
|
||||
private volatile ICarrierMessagingService mICarrierMessagingService;
|
||||
private Runnable mOnServiceReadyCallback;
|
||||
private Executor mServiceReadyCallbackExecutor;
|
||||
private Context mContext;
|
||||
|
||||
/**
|
||||
* Binds to the carrier messaging service under package {@code carrierPackageName}. This method
|
||||
@@ -89,6 +90,7 @@ public final class CarrierMessagingServiceWrapper {
|
||||
mCarrierMessagingServiceConnection = new CarrierMessagingServiceConnection();
|
||||
mOnServiceReadyCallback = onServiceReadyCallback;
|
||||
mServiceReadyCallbackExecutor = executor;
|
||||
mContext = context;
|
||||
return context.bindService(intent, mCarrierMessagingServiceConnection,
|
||||
Context.BIND_AUTO_CREATE);
|
||||
}
|
||||
@@ -96,13 +98,12 @@ public final class CarrierMessagingServiceWrapper {
|
||||
/**
|
||||
* Unbinds the carrier messaging service. This method should be called exactly once.
|
||||
*
|
||||
* @param context the context
|
||||
* @hide
|
||||
*/
|
||||
@SystemApi
|
||||
public void disposeConnection(@NonNull Context context) {
|
||||
public void disconnect() {
|
||||
Preconditions.checkNotNull(mCarrierMessagingServiceConnection);
|
||||
context.unbindService(mCarrierMessagingServiceConnection);
|
||||
mContext.unbindService(mCarrierMessagingServiceConnection);
|
||||
mCarrierMessagingServiceConnection = null;
|
||||
mOnServiceReadyCallback = null;
|
||||
mServiceReadyCallbackExecutor = null;
|
||||
@@ -291,6 +292,12 @@ public final class CarrierMessagingServiceWrapper {
|
||||
}
|
||||
}
|
||||
|
||||
/** @hide */
|
||||
@Override
|
||||
public void close() {
|
||||
disconnect();
|
||||
}
|
||||
|
||||
/**
|
||||
* A basic {@link ServiceConnection}.
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user