From 73a8b87a4dd106656b8759fb747155e08b4a855c Mon Sep 17 00:00:00 2001 From: Thomas Stuart Date: Tue, 10 Jan 2023 16:21:51 -0800 Subject: [PATCH] remove CallControl#close() Clients cannot make CallControl a final object inside their representation of a Call object and therefore auto-closeable cannot be called. bug: 265074967 Test: none Change-Id: Ic36f667ec3d39de648e7cf0741481d43e506258f --- core/api/current.txt | 3 +-- telecomm/java/android/telecom/CallControl.java | 15 +++------------ 2 files changed, 4 insertions(+), 14 deletions(-) diff --git a/core/api/current.txt b/core/api/current.txt index 1b54cc9cc9735..bc1131dbee985 100644 --- a/core/api/current.txt +++ b/core/api/current.txt @@ -41305,8 +41305,7 @@ package android.telecom { field public static final int ROUTE_WIRED_OR_EARPIECE = 5; // 0x5 } - public final class CallControl implements java.lang.AutoCloseable { - method public void close(); + public final class CallControl { method public void disconnect(@NonNull android.telecom.DisconnectCause, @NonNull java.util.concurrent.Executor, @NonNull android.os.OutcomeReceiver); method @NonNull public android.os.ParcelUuid getCallId(); method public void rejectCall(@NonNull java.util.concurrent.Executor, @NonNull android.os.OutcomeReceiver); diff --git a/telecomm/java/android/telecom/CallControl.java b/telecomm/java/android/telecom/CallControl.java index 770a3741b867c..315ac6741c51f 100644 --- a/telecomm/java/android/telecom/CallControl.java +++ b/telecomm/java/android/telecom/CallControl.java @@ -21,6 +21,7 @@ import static android.telecom.CallException.TRANSACTION_EXCEPTION_KEY; import android.annotation.CallbackExecutor; import android.annotation.NonNull; import android.annotation.Nullable; +import android.annotation.SuppressLint; import android.os.Binder; import android.os.Bundle; import android.os.OutcomeReceiver; @@ -45,7 +46,8 @@ import java.util.concurrent.Executor; * {@link OutcomeReceiver#onError} is called and provides a {@link CallException} that details why * the operation failed. */ -public final class CallControl implements AutoCloseable { +@SuppressLint("NotCloseable") +public final class CallControl { private static final String TAG = CallControl.class.getSimpleName(); private static final String INTERFACE_ERROR_MSG = "Call Control is not available"; private final String mCallId; @@ -260,17 +262,6 @@ public final class CallControl implements AutoCloseable { } } - /** - * This method should be called after - * {@link CallControl#disconnect(DisconnectCause, Executor, OutcomeReceiver)} or - * {@link CallControl#rejectCall(Executor, OutcomeReceiver)} - * to destroy all references of this object and avoid memory leaks. - */ - @Override - public void close() { - mRepository.removeCallFromServiceWrapper(mPhoneAccountHandle, mCallId); - } - /** * Since {@link OutcomeReceiver}s cannot be passed via AIDL, a ResultReceiver (which can) must * wrap the Clients {@link OutcomeReceiver} passed in and await for the Telecom Server side