From dd500a1f42e65043595840c173cd5a4763f6099d Mon Sep 17 00:00:00 2001 From: Pawit Pornkitprasan Date: Sat, 18 Apr 2015 11:40:43 +0700 Subject: [PATCH] SetupWizard: don't access SubscriptionController directly SubscriptionController exists in the telephony process and cannot be accessed by SetupWizard. getInstance() will always return null. Change-Id: I017682d3aad539e1954348664b1c1fec7f76009d --- Android.mk | 3 --- .../setupwizard/setup/ChooseDataSimPage.java | 23 +++++++++---------- .../setupwizard/util/SetupWizardUtils.java | 17 +++++--------- 3 files changed, 17 insertions(+), 26 deletions(-) diff --git a/Android.mk b/Android.mk index aa8859d..3f1db8c 100644 --- a/Android.mk +++ b/Android.mk @@ -17,9 +17,6 @@ LOCAL_STATIC_JAVA_LIBRARIES := \ play \ libphonenumber -LOCAL_JAVA_LIBRARIES := \ - telephony-common - # Include res dir from chips google_play_dir := ../../../external/google/google_play_services/libproject/google-play-services_lib/res res_dir := $(google_play_dir) res diff --git a/src/com/cyanogenmod/setupwizard/setup/ChooseDataSimPage.java b/src/com/cyanogenmod/setupwizard/setup/ChooseDataSimPage.java index c5aedc4..e9e71ec 100644 --- a/src/com/cyanogenmod/setupwizard/setup/ChooseDataSimPage.java +++ b/src/com/cyanogenmod/setupwizard/setup/ChooseDataSimPage.java @@ -38,8 +38,6 @@ import android.widget.ImageView; import android.widget.ProgressBar; import android.widget.TextView; -import com.android.internal.telephony.SubscriptionController; - import com.cyanogenmod.setupwizard.R; import com.cyanogenmod.setupwizard.SetupWizardApp; import com.cyanogenmod.setupwizard.cmstats.SetupStats; @@ -52,11 +50,8 @@ public class ChooseDataSimPage extends SetupPage { public static final String TAG = "ChooseDataSimPage"; - private SubscriptionManager mSubscriptionManager; - public ChooseDataSimPage(Context context, SetupDataCallbacks callbacks) { super(context, callbacks); - mSubscriptionManager = SubscriptionManager.from(context); } @Override @@ -100,6 +95,7 @@ public class ChooseDataSimPage extends SetupPage { private boolean mIsAttached = false; private Context mContext; + private SubscriptionManager mSubscriptionManager; private final Handler mHandler = new Handler(); @@ -115,8 +111,7 @@ public class ChooseDataSimPage extends SetupPage { public void onClick(View view) { SubscriptionInfo subInfoRecord = (SubscriptionInfo)view.getTag(); if (subInfoRecord != null) { - SubscriptionController.getInstance() - .setDefaultDataSubId(subInfoRecord.getSubscriptionId()); + mSubscriptionManager.setDefaultDataSubId(subInfoRecord.getSubscriptionId()); setDataSubChecked(subInfoRecord); } } @@ -126,8 +121,7 @@ public class ChooseDataSimPage extends SetupPage { protected void initializePage() { mPageView = (ViewGroup)mRootView.findViewById(R.id.page_view); mProgressBar = (ProgressBar) mRootView.findViewById(R.id.progress); - List subInfoRecords = SubscriptionController - .getInstance().getActiveSubscriptionInfoList(); + List subInfoRecords = mSubscriptionManager.getActiveSubscriptionInfoList(); int simCount = subInfoRecords.size(); mSubInfoRecords = new SparseArray(simCount); for (int i = 0; i < simCount; i++) { @@ -162,11 +156,17 @@ public class ChooseDataSimPage extends SetupPage { return R.layout.choose_data_sim_page; } + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + mContext = getActivity().getApplicationContext(); + mSubscriptionManager = SubscriptionManager.from(mContext); + } + @Override public void onResume() { super.onResume(); mIsAttached = true; - mContext = getActivity().getApplicationContext(); mPhone = (TelephonyManager)getActivity().getSystemService(Context.TELEPHONY_SERVICE); for (int i = 0; i < mPhoneStateListeners.size(); i++) { mPhone.listen(mPhoneStateListeners.get(i), @@ -253,9 +253,8 @@ public class ChooseDataSimPage extends SetupPage { if (mIsAttached) { for (int i = 0; i < mSubInfoRecords.size(); i++) { SubscriptionInfo subInfoRecord = mSubInfoRecords.get(i); - mCheckBoxes.get(i).setChecked(SubscriptionManager.getDefaultDataSubId() + mCheckBoxes.get(i).setChecked(mSubscriptionManager.getDefaultDataPhoneId() == subInfoRecord.getSimSlotIndex()); - } } } diff --git a/src/com/cyanogenmod/setupwizard/util/SetupWizardUtils.java b/src/com/cyanogenmod/setupwizard/util/SetupWizardUtils.java index 1aeda14..d201080 100644 --- a/src/com/cyanogenmod/setupwizard/util/SetupWizardUtils.java +++ b/src/com/cyanogenmod/setupwizard/util/SetupWizardUtils.java @@ -32,8 +32,6 @@ import android.telephony.SubscriptionManager; import android.telephony.TelephonyManager; import android.util.Log; -import com.android.internal.telephony.SubscriptionController; - import com.cyanogenmod.setupwizard.SetupWizardApp; import com.google.android.gms.common.ConnectionResult; @@ -115,15 +113,12 @@ public class SetupWizardUtils { public static boolean isSimMissing(Context context) { TelephonyManager tm = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE); - SubscriptionController subscriptionController = SubscriptionController.getInstance(); - if (subscriptionController != null) { - int simCount = subscriptionController.getActiveSubInfoCount(); - for (int i = 0; i < simCount; i++) { - int simState = tm.getSimState(i); - if (simState != TelephonyManager.SIM_STATE_ABSENT && - simState != TelephonyManager.SIM_STATE_UNKNOWN) { - return false; - } + int simCount = SubscriptionManager.from(context).getDefaultDataPhoneId(); + for (int i = 0; i < simCount; i++) { + int simState = tm.getSimState(i); + if (simState != TelephonyManager.SIM_STATE_ABSENT && + simState != TelephonyManager.SIM_STATE_UNKNOWN) { + return false; } } return true;