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

Commit 21631552 authored by Calvin Pan's avatar Calvin Pan Committed by Android (Google) Code Review
Browse files

Merge "Disable smart forwarding based on subid" into sc-qpr1-dev

parents ebe477db e32a2abc
Loading
Loading
Loading
Loading
+18 −4
Original line number Diff line number Diff line
@@ -19,6 +19,7 @@ package com.android.settings.sim.smartForwarding;
import static com.android.settings.sim.smartForwarding.SmartForwardingUtils.TAG;

import android.telephony.CallForwardingInfo;
import android.telephony.SubscriptionManager;
import android.telephony.TelephonyManager;
import android.util.Log;

@@ -37,16 +38,29 @@ public class DisableSmartForwardingTask implements Runnable {
    @Override
    public void run() {
        for (int i = 0; i < tm.getActiveModemCount(); i++) {
            if (callWaitingStatus != null) {
            int subId = getSubId(i);
            if (callWaitingStatus != null
                    && subId != SubscriptionManager.INVALID_SUBSCRIPTION_ID) {
                Log.d(TAG, "Restore call waiting to " + callWaitingStatus[i]);
                tm.setCallWaitingEnabled(callWaitingStatus[i], null, null);
                tm.createForSubscriptionId(subId)
                        .setCallWaitingEnabled(callWaitingStatus[i], null, null);
            }

            if (callForwardingInfo != null
                    && callForwardingInfo[i] != null) {
                    && callForwardingInfo[i] != null
                    && subId != SubscriptionManager.INVALID_SUBSCRIPTION_ID) {
                Log.d(TAG, "Restore call forwarding to " + callForwardingInfo[i]);
                tm.setCallForwarding(callForwardingInfo[i], null, null);
                tm.createForSubscriptionId(subId)
                        .setCallForwarding(callForwardingInfo[i], null, null);
            }
        }
    }

    private int getSubId(int slotIndex) {
        int[] subId = SubscriptionManager.getSubId(slotIndex);
        if (subId != null && subId.length > 0) {
            return subId[0];
        }
        return SubscriptionManager.INVALID_SUBSCRIPTION_ID;
    }
}