Implement InCallUiLock

When any locks are acquired, the InCallActivity will not auto-finish when there are no active calls. The disconnected cause and reject with SMS dialogs are migrated to use this API, which prevents the activity form ending before the user has finished interacting with the dialogs.

Bug: 64215256
Test: InCallPresenterTest
PiperOrigin-RevId: 171362338
Change-Id: Ied07ebbf6bee056ea6b2314c57f3324561b1651a
diff --git a/java/com/android/incallui/AnswerScreenPresenter.java b/java/com/android/incallui/AnswerScreenPresenter.java
index 58231d5..b9a84ae 100644
--- a/java/com/android/incallui/AnswerScreenPresenter.java
+++ b/java/com/android/incallui/AnswerScreenPresenter.java
@@ -34,6 +34,7 @@
 import com.android.incallui.call.CallList;
 import com.android.incallui.call.DialerCall;
 import com.android.incallui.call.DialerCallListener;
+import com.android.incallui.incalluilock.InCallUiLock;
 
 /** Manages changes for an incoming call screen. */
 public class AnswerScreenPresenter
@@ -72,19 +73,18 @@
   }
 
   @Override
+  public InCallUiLock acquireInCallUiLock(String tag) {
+    return InCallPresenter.getInstance().acquireInCallUiLock(tag);
+  }
+
+  @Override
   public void onAnswerScreenUnready() {
     call.removeCannedTextResponsesLoadedListener(this);
   }
 
   @Override
-  public void onDismissDialog() {
-    InCallPresenter.getInstance().onDismissDialog();
-  }
-
-  @Override
   public void onRejectCallWithMessage(String message) {
     call.reject(true /* rejectWithMessage */, message);
-    onDismissDialog();
     addTimeoutCheck();
   }