Add MSIM support for Call Forwarding.

+ Set subcription info dynamically on intents to open
GsmUmtsCallForwardOptions and GsmUmtsAdditionalCallOptions.

+ Allow phone to be set on initialization for the preferences
used in those settings.

Bug: 18114923
Bug: 18233808
Bug: 18233614
Change-Id: I79a708872ea57ff9ba7a52a61835204caf156733
diff --git a/src/com/android/phone/CallWaitingCheckBoxPreference.java b/src/com/android/phone/CallWaitingCheckBoxPreference.java
index a2f5c70..ce2a420 100644
--- a/src/com/android/phone/CallWaitingCheckBoxPreference.java
+++ b/src/com/android/phone/CallWaitingCheckBoxPreference.java
@@ -20,13 +20,11 @@
     private final boolean DBG = (PhoneGlobals.DBG_LEVEL >= 2);
 
     private final MyHandler mHandler = new MyHandler();
-    private final Phone mPhone;
+    private Phone mPhone;
     private TimeConsumingPreferenceListener mTcpListener;
 
     public CallWaitingCheckBoxPreference(Context context, AttributeSet attrs, int defStyle) {
         super(context, attrs, defStyle);
-
-        mPhone = PhoneGlobals.getPhone();
     }
 
     public CallWaitingCheckBoxPreference(Context context, AttributeSet attrs) {
@@ -37,7 +35,9 @@
         this(context, null);
     }
 
-    /* package */ void init(TimeConsumingPreferenceListener listener, boolean skipReading) {
+    /* package */ void init(
+            TimeConsumingPreferenceListener listener, boolean skipReading, Phone phone) {
+        mPhone = phone;
         mTcpListener = listener;
 
         if (!skipReading) {