Loading src/com/android/server/telecom/ui/IncomingCallNotifier.java +20 −11 Original line number Original line Diff line number Diff line Loading @@ -41,6 +41,7 @@ import com.android.server.telecom.R; import com.android.server.telecom.TelecomBroadcastIntentProcessor; import com.android.server.telecom.TelecomBroadcastIntentProcessor; import com.android.server.telecom.components.TelecomBroadcastReceiver; import com.android.server.telecom.components.TelecomBroadcastReceiver; import java.util.Objects; import java.util.Optional; import java.util.Optional; import java.util.Set; import java.util.Set; Loading Loading @@ -68,7 +69,7 @@ public class IncomingCallNotifier extends CallsManagerListenerBase { public static final int NOTIFICATION_INCOMING_CALL = 1; public static final int NOTIFICATION_INCOMING_CALL = 1; @VisibleForTesting @VisibleForTesting public static final String NOTIFICATION_TAG = IncomingCallNotifier.class.getSimpleName(); public static final String NOTIFICATION_TAG = IncomingCallNotifier.class.getSimpleName(); private final Object mLock = new Object(); public final Call.ListenerBase mCallListener = new Call.ListenerBase() { public final Call.ListenerBase mCallListener = new Call.ListenerBase() { @Override @Override Loading Loading @@ -104,19 +105,22 @@ public class IncomingCallNotifier extends CallsManagerListenerBase { @Override @Override public void onCallAdded(Call call) { public void onCallAdded(Call call) { synchronized (mLock) { if (!mCalls.contains(call)) { if (!mCalls.contains(call)) { mCalls.add(call); mCalls.add(call); } } } updateIncomingCall(); updateIncomingCall(); } } @Override @Override public void onCallRemoved(Call call) { public void onCallRemoved(Call call) { synchronized (mLock) { if (mCalls.contains(call)) { if (mCalls.contains(call)) { mCalls.remove(call); mCalls.remove(call); } } } updateIncomingCall(); updateIncomingCall(); } } Loading @@ -130,11 +134,16 @@ public class IncomingCallNotifier extends CallsManagerListenerBase { * UI. * UI. */ */ private void updateIncomingCall() { private void updateIncomingCall() { Optional<Call> incomingCallOp = mCalls.stream() Optional<Call> incomingCallOp; synchronized (mLock) { incomingCallOp = mCalls.stream() .filter(Objects::nonNull) .filter(call -> call.isSelfManaged() && call.isIncoming() && .filter(call -> call.isSelfManaged() && call.isIncoming() && call.getState() == CallState.RINGING && call.getState() == CallState.RINGING && call.getHandoverState() == HandoverState.HANDOVER_NONE) call.getHandoverState() == HandoverState.HANDOVER_NONE) .findFirst(); .findFirst(); } Call incomingCall = incomingCallOp.orElse(null); Call incomingCall = incomingCallOp.orElse(null); if (incomingCall != null && mCallsManagerProxy != null && if (incomingCall != null && mCallsManagerProxy != null && !mCallsManagerProxy.hasUnholdableCallsForOtherConnectionService( !mCallsManagerProxy.hasUnholdableCallsForOtherConnectionService( Loading Loading
src/com/android/server/telecom/ui/IncomingCallNotifier.java +20 −11 Original line number Original line Diff line number Diff line Loading @@ -41,6 +41,7 @@ import com.android.server.telecom.R; import com.android.server.telecom.TelecomBroadcastIntentProcessor; import com.android.server.telecom.TelecomBroadcastIntentProcessor; import com.android.server.telecom.components.TelecomBroadcastReceiver; import com.android.server.telecom.components.TelecomBroadcastReceiver; import java.util.Objects; import java.util.Optional; import java.util.Optional; import java.util.Set; import java.util.Set; Loading Loading @@ -68,7 +69,7 @@ public class IncomingCallNotifier extends CallsManagerListenerBase { public static final int NOTIFICATION_INCOMING_CALL = 1; public static final int NOTIFICATION_INCOMING_CALL = 1; @VisibleForTesting @VisibleForTesting public static final String NOTIFICATION_TAG = IncomingCallNotifier.class.getSimpleName(); public static final String NOTIFICATION_TAG = IncomingCallNotifier.class.getSimpleName(); private final Object mLock = new Object(); public final Call.ListenerBase mCallListener = new Call.ListenerBase() { public final Call.ListenerBase mCallListener = new Call.ListenerBase() { @Override @Override Loading Loading @@ -104,19 +105,22 @@ public class IncomingCallNotifier extends CallsManagerListenerBase { @Override @Override public void onCallAdded(Call call) { public void onCallAdded(Call call) { synchronized (mLock) { if (!mCalls.contains(call)) { if (!mCalls.contains(call)) { mCalls.add(call); mCalls.add(call); } } } updateIncomingCall(); updateIncomingCall(); } } @Override @Override public void onCallRemoved(Call call) { public void onCallRemoved(Call call) { synchronized (mLock) { if (mCalls.contains(call)) { if (mCalls.contains(call)) { mCalls.remove(call); mCalls.remove(call); } } } updateIncomingCall(); updateIncomingCall(); } } Loading @@ -130,11 +134,16 @@ public class IncomingCallNotifier extends CallsManagerListenerBase { * UI. * UI. */ */ private void updateIncomingCall() { private void updateIncomingCall() { Optional<Call> incomingCallOp = mCalls.stream() Optional<Call> incomingCallOp; synchronized (mLock) { incomingCallOp = mCalls.stream() .filter(Objects::nonNull) .filter(call -> call.isSelfManaged() && call.isIncoming() && .filter(call -> call.isSelfManaged() && call.isIncoming() && call.getState() == CallState.RINGING && call.getState() == CallState.RINGING && call.getHandoverState() == HandoverState.HANDOVER_NONE) call.getHandoverState() == HandoverState.HANDOVER_NONE) .findFirst(); .findFirst(); } Call incomingCall = incomingCallOp.orElse(null); Call incomingCall = incomingCallOp.orElse(null); if (incomingCall != null && mCallsManagerProxy != null && if (incomingCall != null && mCallsManagerProxy != null && !mCallsManagerProxy.hasUnholdableCallsForOtherConnectionService( !mCallsManagerProxy.hasUnholdableCallsForOtherConnectionService( Loading