Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4ae8d4a7 authored by twyen's avatar twyen Committed by android-build-merger
Browse files

Merge "Prevent SIM selection and change SIM from showing when there are active...

Merge "Prevent SIM selection and change SIM from showing when there are active calls" am: e9641f86
am: 37310560

Change-Id: Icf1134fae6c1bcbb81f932658f81a9d3bdd9b05a
parents c023065c 37310560
Loading
Loading
Loading
Loading
+12 −0
Original line number Diff line number Diff line
@@ -54,6 +54,7 @@ import com.android.dialer.preferredsim.PreferredSimFallbackContract;
import com.android.dialer.preferredsim.PreferredSimFallbackContract.PreferredSim;
import com.android.dialer.preferredsim.suggestion.SimSuggestionComponent;
import com.android.dialer.preferredsim.suggestion.SuggestionProvider.Suggestion;
import com.android.dialer.telecom.TelecomUtil;
import com.google.common.base.Optional;
import java.util.ArrayList;
import java.util.List;
@@ -87,6 +88,17 @@ public class CallingAccountSelector implements PreCallAction {
    if (accounts.size() <= 1) {
      return false;
    }

    if (TelecomUtil.isInManagedCall(context)) {
      // Most devices are DSDS (dual SIM dual standby) which only one SIM can have active calls at
      // a time. Telecom will ignore the phone account handle and use the current active SIM, thus
      // there's no point of selecting SIMs
      // TODO(a bug): let the user know selections are not available and preferred SIM is not
      // used
      // TODO(twyen): support other dual SIM modes when the API is exposed.
      return false;
    }

    return true;
  }

+5 −1
Original line number Diff line number Diff line
@@ -464,7 +464,11 @@ public class CallButtonPresenter
            && call.getState() != DialerCall.State.CONNECTING;

    mOtherAccount = TelecomUtil.getOtherAccount(getContext(), call.getAccountHandle());
    boolean showSwapSim = mOtherAccount != null && DialerCall.State.isDialing(call.getState());
    boolean showSwapSim =
        mOtherAccount != null
            && DialerCall.State.isDialing(call.getState())
            // Most devices cannot make calls on 2 SIMs at the same time.
            && InCallPresenter.getInstance().getCallList().getAllCalls().size() == 1;

    mInCallButtonUi.showButton(InCallButtonIds.BUTTON_AUDIO, true);
    mInCallButtonUi.showButton(InCallButtonIds.BUTTON_SWAP, showSwap);