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

Commit 2df36136 authored by Jack Yu's avatar Jack Yu Committed by Daniel Bright
Browse files

Properly support handover retry

1. If retrying handover, do not tear down the
   data connection on the source transport.
2. For handover fallback, fail fast the retry instead
   of letting it retry and fail with ON_OTHER_TRANSPORT
   error. This is no behavioral change but optimization
   only.

(clean cherry-pick)

Fix: 170796126
Test: Manual
Merged-In: I1ee4e638892bfdba19f368c5e2ae7ecaf2c7364c
Change-Id: I1ee4e638892bfdba19f368c5e2ae7ecaf2c7364c
parent 8f2f4e14
Loading
Loading
Loading
Loading
+19 −0
Original line number Diff line number Diff line
@@ -409,6 +409,25 @@ public final class DataCallResponse implements Parcelable {
                }
            };

    /**
     * Convert handover failure mode to string.
     *
     * @param handoverFailureMode Handover failure mode
     * @return Handover failure mode in string
     *
     * @hide
     */
    public static String failureModeToString(@HandoverFailureMode int handoverFailureMode) {
        switch (handoverFailureMode) {
            case HANDOVER_FAILURE_MODE_UNKNOWN: return "unknown";
            case HANDOVER_FAILURE_MODE_LEGACY: return "legacy";
            case HANDOVER_FAILURE_MODE_DO_FALLBACK: return "fallback";
            case HANDOVER_FAILURE_MODE_NO_FALLBACK_RETRY_HANDOVER: return "retry handover";
            case HANDOVER_FAILURE_MODE_NO_FALLBACK_RETRY_SETUP_NORMAL: return "retry setup new one";
            default: return Integer.toString(handoverFailureMode);
        }
    }

    /**
     * Provides a convenient way to set the fields of a {@link DataCallResponse} when creating a new
     * instance.