Add reference to TelephonyManager, renaming, remove checkbox (1/2)

Incorporating API calls to TelephonyManager.getSubscriptions.
Added new SubscriptionManager class to wrap data about subscriptions for
the purpose of passing between Dialer and its fragments.
* This particular CL deals with the renaming of the menu strings and the
* passing of data between the Dialer and its fragments.

Bug: 15473965

Change-Id: Id52b925c618952bd77970c157fa63e665203b04c
diff --git a/src/com/android/dialer/DialtactsActivity.java b/src/com/android/dialer/DialtactsActivity.java
index d48b28e..5c2e17e 100644
--- a/src/com/android/dialer/DialtactsActivity.java
+++ b/src/com/android/dialer/DialtactsActivity.java
@@ -37,6 +37,7 @@
 import android.provider.ContactsContract.Intents;
 import android.speech.RecognizerIntent;
 import android.support.v4.view.ViewPager;
+import android.telecomm.Subscription;
 import android.telephony.TelephonyManager;
 import android.text.Editable;
 import android.text.TextUtils;
@@ -62,10 +63,11 @@
 import android.widget.Toast;
 
 import com.android.contacts.common.CallUtil;
+import com.android.contacts.common.SubscriptionManager;
 import com.android.contacts.common.activity.TransactionSafeActivity;
 import com.android.contacts.common.animation.AnimationListenerAdapter;
 import com.android.contacts.common.dialog.ClearFrequentsDialog;
-import com.android.contacts.common.dialog.SelectSIMDialogFragment;
+import com.android.contacts.common.dialog.SelectSubscriptionDialogFragment;
 import com.android.contacts.common.interactions.ImportExportDialogFragment;
 import com.android.contacts.common.list.OnPhoneNumberPickerActionListener;
 import com.android.contacts.common.widget.FloatingActionButtonController;
@@ -105,13 +107,15 @@
         OnDragDropListener,
         OnPhoneNumberPickerActionListener,
         PopupMenu.OnMenuItemClickListener,
-        SelectSIMDialogFragment.OnClickOkListener,
         ViewPager.OnPageChangeListener,
         ActionBarController.ActivityUi {
     private static final String TAG = "DialtactsActivity";
 
     public static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG);
 
+    /** Temporary flag for disabling subscription selection menu */
+    public static final boolean ENABLE_SUBSCRIPTION_SELECT = false;
+
     public static final String SHARED_PREFS_NAME = "com.android.dialer_preferences";
 
     /** Used to open Call Setting */
@@ -140,11 +144,6 @@
 
     private static final int ACTIVITY_REQUEST_CODE_VOICE_SEARCH = 1;
 
-    /**
-     * Constant to indicate there is only one service provider available.
-     */
-    private static final int NO_MULTI_SIM = -1;
-
     private FrameLayout parentLayout;
 
     /**
@@ -199,9 +198,9 @@
     private boolean mIsLandscape;
 
     /**
-     * Information about the currently selected SIM card.
+     * Information about the currently selected subscription.
      */
-    private int mCurrentSimCard = NO_MULTI_SIM;
+    private SubscriptionManager mSubscriptionManager = null;
 
     /**
      * The position of the currently selected tab in the attached {@link ListsFragment}.
@@ -369,7 +368,6 @@
         mActionBarController = new ActionBarController(this,
                 (SearchEditTextLayout) actionBar.getCustomView());
 
-
         SearchEditTextLayout searchEditTextLayout =
                 (SearchEditTextLayout) actionBar.getCustomView();
         searchEditTextLayout.setPreImeKeyListener(mSearchEditTextLayoutListener);
@@ -390,6 +388,11 @@
 
         mIsLandscape = getResources().getConfiguration().orientation
                 == Configuration.ORIENTATION_LANDSCAPE;
+
+        if (getTelephonyManager().getSubscriptions().size() > 1 && ENABLE_SUBSCRIPTION_SELECT) {
+            mSubscriptionManager = new SubscriptionManager(getTelephonyManager());
+        }
+
         final View floatingActionButtonContainer = findViewById(
                 R.id.floating_action_button_container);
         mFloatingActionButton = (ImageButton) findViewById(R.id.floating_action_button);
@@ -597,22 +600,14 @@
             case R.id.menu_call_settings:
                 handleMenuSettings();
                 return true;
-            case R.id.menu_select_sim:
-                SelectSIMDialogFragment.show(getFragmentManager(), mCurrentSimCard);
+            case R.id.menu_select_subscription:
+                SelectSubscriptionDialogFragment.show(getFragmentManager(), mSubscriptionManager);
                 return true;
         }
         return false;
     }
 
     @Override
-    public void passSimUpdate(int simId) {
-        mCurrentSimCard = simId;
-        if (mIsDialpadShown) {
-            mDialpadFragment.setSimCard(simId);
-        }
-    }
-
-    @Override
     protected void onActivityResult(int requestCode, int resultCode, Intent data) {
         if (requestCode == ACTIVITY_REQUEST_CODE_VOICE_SEARCH) {
             if (resultCode == RESULT_OK) {
@@ -642,7 +637,7 @@
         }
         mIsDialpadShown = true;
         mDialpadFragment.setAnimate(animate);
-        mDialpadFragment.setSimCard(mCurrentSimCard);
+        mDialpadFragment.setSubscriptionManager(mSubscriptionManager);
 
         final FragmentTransaction ft = getFragmentManager().beginTransaction();
         ft.show(mDialpadFragment);
@@ -780,8 +775,8 @@
         final OptionsPopupMenu popupMenu = new OptionsPopupMenu(this, invoker);
         popupMenu.inflate(R.menu.dialtacts_options);
         final Menu menu = popupMenu.getMenu();
-        final MenuItem selectSim = menu.findItem(R.id.menu_select_sim);
-        selectSim.setVisible(mCurrentSimCard != NO_MULTI_SIM);
+        final MenuItem selectSubscription = menu.findItem(R.id.menu_select_subscription);
+        selectSubscription.setVisible(mSubscriptionManager != null);
         popupMenu.setOnMenuItemClickListener(this);
         return popupMenu;
     }