Revert "Add synchronized lock for ringback playing start/stop request to avoid"
This reverts commit 7b6c9ba0b8b712d008009b323d5a25ebb4dc6ed1.
Reason for revert: seems to be the reason for test break b/276142299
Change-Id: I552292e7addc4f4b20241d6757b40c870fc359e1
diff --git a/src/com/android/server/telecom/RingbackPlayer.java b/src/com/android/server/telecom/RingbackPlayer.java
index e0c6136..a8af3ac 100644
--- a/src/com/android/server/telecom/RingbackPlayer.java
+++ b/src/com/android/server/telecom/RingbackPlayer.java
@@ -19,7 +19,6 @@
import static com.android.server.telecom.LogUtils.Events.START_RINBACK;
import static com.android.server.telecom.LogUtils.Events.STOP_RINGBACK;
-import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.util.Preconditions;
import android.telecom.Log;
@@ -43,12 +42,8 @@
*/
private InCallTonePlayer mTonePlayer;
- private final Object mLock;
-
- @VisibleForTesting
- public RingbackPlayer(InCallTonePlayer.Factory playerFactory) {
+ RingbackPlayer(InCallTonePlayer.Factory playerFactory) {
mPlayerFactory = playerFactory;
- mLock = new Object();
}
/**
@@ -57,27 +52,25 @@
* @param call The call for which to ringback.
*/
public void startRingbackForCall(Call call) {
- synchronized (mLock) {
- Preconditions.checkState(call.getState() == CallState.DIALING);
+ Preconditions.checkState(call.getState() == CallState.DIALING);
- if (mCall == call) {
- Log.w(this, "Ignoring duplicate requests to ring for %s.", call);
- return;
- }
+ if (mCall == call) {
+ Log.w(this, "Ignoring duplicate requests to ring for %s.", call);
+ return;
+ }
- if (mCall != null) {
- // We only get here for the foreground call so, there's no reason why there should
- // exist a current dialing call.
- Log.wtf(this, "Ringback player thinks there are two foreground-dialing calls.");
- }
+ if (mCall != null) {
+ // We only get here for the foreground call so, there's no reason why there should
+ // exist a current dialing call.
+ Log.wtf(this, "Ringback player thinks there are two foreground-dialing calls.");
+ }
- mCall = call;
- if (mTonePlayer == null) {
- Log.i(this, "Playing the ringback tone for %s.", call);
- Log.addEvent(call, START_RINBACK);
- mTonePlayer = mPlayerFactory.createPlayer(InCallTonePlayer.TONE_RING_BACK);
- mTonePlayer.startTone();
- }
+ mCall = call;
+ if (mTonePlayer == null) {
+ Log.i(this, "Playing the ringback tone for %s.", call);
+ Log.addEvent(call, START_RINBACK);
+ mTonePlayer = mPlayerFactory.createPlayer(InCallTonePlayer.TONE_RING_BACK);
+ mTonePlayer.startTone();
}
}
@@ -87,27 +80,19 @@
* @param call The call for which to stop ringback.
*/
public void stopRingbackForCall(Call call) {
- synchronized (mLock) {
- if (mCall == call) {
- // The foreground call is no longer dialing or is no longer the foreground call. In
- // either case, stop the ringback tone.
- mCall = null;
+ if (mCall == call) {
+ // The foreground call is no longer dialing or is no longer the foreground call. In
+ // either case, stop the ringback tone.
+ mCall = null;
- if (mTonePlayer == null) {
- Log.w(this, "No player found to stop.");
- } else {
- Log.i(this, "Stopping the ringback tone for %s.", call);
- Log.addEvent(call, STOP_RINGBACK);
- mTonePlayer.stopTone();
- mTonePlayer = null;
- }
+ if (mTonePlayer == null) {
+ Log.w(this, "No player found to stop.");
+ } else {
+ Log.i(this, "Stopping the ringback tone for %s.", call);
+ Log.addEvent(call, STOP_RINGBACK);
+ mTonePlayer.stopTone();
+ mTonePlayer = null;
}
}
}
-
- public boolean isRingbackPlaying() {
- synchronized (mLock) {
- return mTonePlayer != null;
- }
- }
}
\ No newline at end of file
diff --git a/tests/src/com/android/server/telecom/tests/RingbackPlayerTest.java b/tests/src/com/android/server/telecom/tests/RingbackPlayerTest.java
deleted file mode 100644
index f69d532..0000000
--- a/tests/src/com/android/server/telecom/tests/RingbackPlayerTest.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * Copyright (C) 2022 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.server.telecom.tests;
-
-import static org.junit.Assert.assertFalse;
-import static org.mockito.ArgumentMatchers.anyInt;
-import static org.mockito.Mockito.doAnswer;
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.when;
-
-import android.test.suitebuilder.annotation.SmallTest;
-
-import com.android.server.telecom.Call;
-import com.android.server.telecom.CallState;
-import com.android.server.telecom.InCallTonePlayer;
-import com.android.server.telecom.RingbackPlayer;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.junit.runners.JUnit4;
-import org.mockito.Mock;
-
-import java.util.concurrent.CountDownLatch;
-
-@RunWith(JUnit4.class)
-public class RingbackPlayerTest extends TelecomTestCase {
- @Mock InCallTonePlayer.Factory mFactory;
- @Mock Call mCall;
- @Mock InCallTonePlayer mTonePlayer;
-
- private RingbackPlayer mRingbackPlayer;
-
- @Before
- @Override
- public void setUp() throws Exception {
- super.setUp();
- when(mFactory.createPlayer(anyInt())).thenReturn(mTonePlayer);
- mRingbackPlayer = new RingbackPlayer(mFactory);
- }
-
- @SmallTest
- @Test
- public void testPlayerSync() {
- // make sure InCallTonePlayer try to start playing the tone after RingbackPlayer receives
- // stop tone request.
- CountDownLatch latch = new CountDownLatch(1);
- doReturn(CallState.DIALING).when(mCall).getState();
- doAnswer(x -> {
- new Thread(() -> {
- try {
- latch.wait();
- } catch (InterruptedException e) {
- // Ignore
- }
- }).start();
- return true;
- }).when(mTonePlayer).startTone();
-
- mRingbackPlayer.startRingbackForCall(mCall);
- mRingbackPlayer.stopRingbackForCall(mCall);
- assertFalse(mRingbackPlayer.isRingbackPlaying());
- latch.countDown();
- }
-}