Disable smart forwarding based on subid
Smart forwrading did not specify the subid when disabling feature, which caused always dsiabled on default subid. Bug: 194112447 Test: Enable/disable smart forwarding Change-Id: Id900500f065c32b326ca6dfc39482f913fb9b8ff
This commit is contained in:
@@ -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;
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user