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

Commit aab38e2b authored by Calvin Pan's avatar Calvin Pan Committed by Automerger Merge Worker
Browse files

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

Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/15819074

Change-Id: I5f15b643e74e226ebdb5a5c742564b20ae7b7901
parents e44708ea 21631552
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;
    }
}