Loading src/com/android/server/telecom/CallsManager.java +2 −1 Original line number Diff line number Diff line Loading @@ -733,7 +733,8 @@ public class CallsManager extends Call.ListenerBase audioManager.generateAudioSessionId())); InCallTonePlayer.Factory playerFactory = new InCallTonePlayer.Factory( callAudioRoutePeripheralAdapter, lock, toneGeneratorFactory, mediaPlayerFactory, () -> audioManager.getStreamVolume(AudioManager.STREAM_RING) > 0, featureFlags); () -> audioManager.getStreamVolume(AudioManager.STREAM_RING) > 0, featureFlags, Looper.getMainLooper()); SystemSettingsUtil systemSettingsUtil = new SystemSettingsUtil(); RingtoneFactory ringtoneFactory = new RingtoneFactory(this, context, featureFlags); Loading src/com/android/server/telecom/InCallTonePlayer.java +8 −4 Original line number Diff line number Diff line Loading @@ -56,17 +56,19 @@ public class InCallTonePlayer extends Thread { private final MediaPlayerFactory mMediaPlayerFactory; private final AudioManagerAdapter mAudioManagerAdapter; private final FeatureFlags mFeatureFlags; private final Looper mLooper; public Factory(CallAudioRoutePeripheralAdapter callAudioRoutePeripheralAdapter, TelecomSystem.SyncRoot lock, ToneGeneratorFactory toneGeneratorFactory, MediaPlayerFactory mediaPlayerFactory, AudioManagerAdapter audioManagerAdapter, FeatureFlags flags) { FeatureFlags flags, Looper looper) { mCallAudioRoutePeripheralAdapter = callAudioRoutePeripheralAdapter; mLock = lock; mToneGeneratorFactory = toneGeneratorFactory; mMediaPlayerFactory = mediaPlayerFactory; mAudioManagerAdapter = audioManagerAdapter; mFeatureFlags = flags; mLooper = looper; } public void setCallAudioManager(CallAudioManager callAudioManager) { Loading @@ -76,7 +78,7 @@ public class InCallTonePlayer extends Thread { public InCallTonePlayer createPlayer(Call call, int tone) { return new InCallTonePlayer(call, tone, mCallAudioManager, mCallAudioRoutePeripheralAdapter, mLock, mToneGeneratorFactory, mMediaPlayerFactory, mAudioManagerAdapter, mFeatureFlags); mMediaPlayerFactory, mAudioManagerAdapter, mFeatureFlags, mLooper); } } Loading Loading @@ -199,7 +201,7 @@ public class InCallTonePlayer extends Thread { private final CallAudioManager mCallAudioManager; private final CallAudioRoutePeripheralAdapter mCallAudioRoutePeripheralAdapter; private final Handler mMainThreadHandler = new Handler(Looper.getMainLooper()); private final Handler mMainThreadHandler; /** The ID of the tone to play. */ private final int mToneId; Loading Loading @@ -242,7 +244,8 @@ public class InCallTonePlayer extends Thread { ToneGeneratorFactory toneGeneratorFactory, MediaPlayerFactory mediaPlayerFactor, AudioManagerAdapter audioManagerAdapter, FeatureFlags flags) { FeatureFlags flags, Looper looper) { mCall = call; mState = STATE_OFF; mToneId = toneId; Loading @@ -253,6 +256,7 @@ public class InCallTonePlayer extends Thread { mMediaPlayerFactory = mediaPlayerFactor; mAudioManagerAdapter = audioManagerAdapter; mFeatureFlags = flags; mMainThreadHandler = new Handler(looper); } /** {@inheritDoc} */ Loading tests/src/com/android/server/telecom/tests/InCallTonePlayerTest.java +6 −2 Original line number Diff line number Diff line Loading @@ -127,7 +127,8 @@ public class InCallTonePlayerTest extends TelecomTestCase { mCallAudioRouteStateMachine, mBluetoothRouteManager, mWiredHeadsetManager, mDockManager, mRingtonePlayer); mFactory = new InCallTonePlayer.Factory(mCallAudioRoutePeripheralAdapter, mLock, mToneGeneratorFactory, mMediaPlayerFactory, mAudioManagerAdapter, mFeatureFlags); mToneGeneratorFactory, mMediaPlayerFactory, mAudioManagerAdapter, mFeatureFlags, getLooper()); mFactory.setCallAudioManager(mCallAudioManager); mInCallTonePlayer = mFactory.createPlayer(mCall, InCallTonePlayer.TONE_CALL_ENDED); } Loading @@ -136,7 +137,10 @@ public class InCallTonePlayerTest extends TelecomTestCase { @After public void tearDown() throws Exception { super.tearDown(); if (mInCallTonePlayer != null) { mInCallTonePlayer.cleanup(); mInCallTonePlayer = null; } } @SmallTest Loading tests/src/com/android/server/telecom/tests/TelecomTestCase.java +16 −0 Original line number Diff line number Diff line Loading @@ -18,6 +18,8 @@ package com.android.server.telecom.tests; import android.content.Context; import android.os.Handler; import android.os.HandlerThread; import android.os.Looper; import android.telecom.Log; import androidx.test.InstrumentationRegistry; Loading @@ -38,6 +40,7 @@ public abstract class TelecomTestCase { protected Context mContext; @Mock FeatureFlags mFeatureFlags; private HandlerThread mHandlerThread; MockitoHelper mMockitoHelper = new MockitoHelper(); ComponentContextFixture mComponentContextFixture; Loading @@ -57,12 +60,25 @@ public abstract class TelecomTestCase { } public void tearDown() throws Exception { if (mHandlerThread != null) { mHandlerThread.quit(); mHandlerThread.join(); mHandlerThread = null; } mComponentContextFixture.destroy(); mComponentContextFixture = null; mMockitoHelper.tearDown(); Mockito.framework().clearInlineMocks(); } protected Looper getLooper() { if (mHandlerThread == null) { mHandlerThread = new HandlerThread("TelecomTestCase"); mHandlerThread.start(); } return mHandlerThread.getLooper(); } protected static void waitForHandlerAction(Handler h, long timeoutMillis) { final CountDownLatch lock = new CountDownLatch(1); h.post(lock::countDown); Loading Loading
src/com/android/server/telecom/CallsManager.java +2 −1 Original line number Diff line number Diff line Loading @@ -733,7 +733,8 @@ public class CallsManager extends Call.ListenerBase audioManager.generateAudioSessionId())); InCallTonePlayer.Factory playerFactory = new InCallTonePlayer.Factory( callAudioRoutePeripheralAdapter, lock, toneGeneratorFactory, mediaPlayerFactory, () -> audioManager.getStreamVolume(AudioManager.STREAM_RING) > 0, featureFlags); () -> audioManager.getStreamVolume(AudioManager.STREAM_RING) > 0, featureFlags, Looper.getMainLooper()); SystemSettingsUtil systemSettingsUtil = new SystemSettingsUtil(); RingtoneFactory ringtoneFactory = new RingtoneFactory(this, context, featureFlags); Loading
src/com/android/server/telecom/InCallTonePlayer.java +8 −4 Original line number Diff line number Diff line Loading @@ -56,17 +56,19 @@ public class InCallTonePlayer extends Thread { private final MediaPlayerFactory mMediaPlayerFactory; private final AudioManagerAdapter mAudioManagerAdapter; private final FeatureFlags mFeatureFlags; private final Looper mLooper; public Factory(CallAudioRoutePeripheralAdapter callAudioRoutePeripheralAdapter, TelecomSystem.SyncRoot lock, ToneGeneratorFactory toneGeneratorFactory, MediaPlayerFactory mediaPlayerFactory, AudioManagerAdapter audioManagerAdapter, FeatureFlags flags) { FeatureFlags flags, Looper looper) { mCallAudioRoutePeripheralAdapter = callAudioRoutePeripheralAdapter; mLock = lock; mToneGeneratorFactory = toneGeneratorFactory; mMediaPlayerFactory = mediaPlayerFactory; mAudioManagerAdapter = audioManagerAdapter; mFeatureFlags = flags; mLooper = looper; } public void setCallAudioManager(CallAudioManager callAudioManager) { Loading @@ -76,7 +78,7 @@ public class InCallTonePlayer extends Thread { public InCallTonePlayer createPlayer(Call call, int tone) { return new InCallTonePlayer(call, tone, mCallAudioManager, mCallAudioRoutePeripheralAdapter, mLock, mToneGeneratorFactory, mMediaPlayerFactory, mAudioManagerAdapter, mFeatureFlags); mMediaPlayerFactory, mAudioManagerAdapter, mFeatureFlags, mLooper); } } Loading Loading @@ -199,7 +201,7 @@ public class InCallTonePlayer extends Thread { private final CallAudioManager mCallAudioManager; private final CallAudioRoutePeripheralAdapter mCallAudioRoutePeripheralAdapter; private final Handler mMainThreadHandler = new Handler(Looper.getMainLooper()); private final Handler mMainThreadHandler; /** The ID of the tone to play. */ private final int mToneId; Loading Loading @@ -242,7 +244,8 @@ public class InCallTonePlayer extends Thread { ToneGeneratorFactory toneGeneratorFactory, MediaPlayerFactory mediaPlayerFactor, AudioManagerAdapter audioManagerAdapter, FeatureFlags flags) { FeatureFlags flags, Looper looper) { mCall = call; mState = STATE_OFF; mToneId = toneId; Loading @@ -253,6 +256,7 @@ public class InCallTonePlayer extends Thread { mMediaPlayerFactory = mediaPlayerFactor; mAudioManagerAdapter = audioManagerAdapter; mFeatureFlags = flags; mMainThreadHandler = new Handler(looper); } /** {@inheritDoc} */ Loading
tests/src/com/android/server/telecom/tests/InCallTonePlayerTest.java +6 −2 Original line number Diff line number Diff line Loading @@ -127,7 +127,8 @@ public class InCallTonePlayerTest extends TelecomTestCase { mCallAudioRouteStateMachine, mBluetoothRouteManager, mWiredHeadsetManager, mDockManager, mRingtonePlayer); mFactory = new InCallTonePlayer.Factory(mCallAudioRoutePeripheralAdapter, mLock, mToneGeneratorFactory, mMediaPlayerFactory, mAudioManagerAdapter, mFeatureFlags); mToneGeneratorFactory, mMediaPlayerFactory, mAudioManagerAdapter, mFeatureFlags, getLooper()); mFactory.setCallAudioManager(mCallAudioManager); mInCallTonePlayer = mFactory.createPlayer(mCall, InCallTonePlayer.TONE_CALL_ENDED); } Loading @@ -136,7 +137,10 @@ public class InCallTonePlayerTest extends TelecomTestCase { @After public void tearDown() throws Exception { super.tearDown(); if (mInCallTonePlayer != null) { mInCallTonePlayer.cleanup(); mInCallTonePlayer = null; } } @SmallTest Loading
tests/src/com/android/server/telecom/tests/TelecomTestCase.java +16 −0 Original line number Diff line number Diff line Loading @@ -18,6 +18,8 @@ package com.android.server.telecom.tests; import android.content.Context; import android.os.Handler; import android.os.HandlerThread; import android.os.Looper; import android.telecom.Log; import androidx.test.InstrumentationRegistry; Loading @@ -38,6 +40,7 @@ public abstract class TelecomTestCase { protected Context mContext; @Mock FeatureFlags mFeatureFlags; private HandlerThread mHandlerThread; MockitoHelper mMockitoHelper = new MockitoHelper(); ComponentContextFixture mComponentContextFixture; Loading @@ -57,12 +60,25 @@ public abstract class TelecomTestCase { } public void tearDown() throws Exception { if (mHandlerThread != null) { mHandlerThread.quit(); mHandlerThread.join(); mHandlerThread = null; } mComponentContextFixture.destroy(); mComponentContextFixture = null; mMockitoHelper.tearDown(); Mockito.framework().clearInlineMocks(); } protected Looper getLooper() { if (mHandlerThread == null) { mHandlerThread = new HandlerThread("TelecomTestCase"); mHandlerThread.start(); } return mHandlerThread.getLooper(); } protected static void waitForHandlerAction(Handler h, long timeoutMillis) { final CountDownLatch lock = new CountDownLatch(1); h.post(lock::countDown); Loading