diff options
author | Sanket Padawe <sanketpadawe@google.com> | 2015-03-03 17:43:38 -0800 |
---|---|---|
committer | Robert Greenwalt <rgreenwalt@google.com> | 2015-04-22 16:21:56 -0700 |
commit | 55d4d75f4ae4337639e7d920dd87fca3cca7b7c9 (patch) | |
tree | c123ac2207d51b7ab02ab0a02309826191ca6032 /src/com/android/settings/sim | |
parent | a15b87544e1037f432b88c4a73213f9529b50480 (diff) | |
download | packages_apps_Settings-55d4d75f4ae4337639e7d920dd87fca3cca7b7c9.zip packages_apps_Settings-55d4d75f4ae4337639e7d920dd87fca3cca7b7c9.tar.gz packages_apps_Settings-55d4d75f4ae4337639e7d920dd87fca3cca7b7c9.tar.bz2 |
Disable data sim selection when phone call active.
Bug: 19301456
Bug: 19150497
Change-Id: I396641b24e78616c93510bf367b61fa7c47ec068
Diffstat (limited to 'src/com/android/settings/sim')
-rw-r--r-- | src/com/android/settings/sim/SimSettings.java | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/src/com/android/settings/sim/SimSettings.java b/src/com/android/settings/sim/SimSettings.java index 184e882..efc71d8 100644 --- a/src/com/android/settings/sim/SimSettings.java +++ b/src/com/android/settings/sim/SimSettings.java @@ -29,6 +29,7 @@ import android.os.Bundle; import android.preference.Preference; import android.preference.PreferenceScreen; import android.provider.SearchIndexableResource; +import android.telephony.PhoneStateListener; import android.telephony.SubscriptionInfo; import android.telephony.SubscriptionManager; import android.telephony.TelephonyManager; @@ -52,6 +53,8 @@ import com.android.settings.Utils; import com.android.settings.search.BaseSearchIndexProvider; import com.android.settings.search.Indexable; import com.android.settings.R; +import android.os.SystemProperties; +import com.android.internal.telephony.TelephonyProperties; import java.util.ArrayList; import java.util.List; @@ -245,11 +248,39 @@ public class SimSettings extends RestrictedSettingsFragment implements Indexable // FIXME: b/18385348, needs to handle null from getActiveSubscriptionInfoList if (DBG) log("[onResme] mSubInfoList=" + mSubInfoList); + final TelephonyManager tm = + (TelephonyManager) getActivity().getSystemService(Context.TELEPHONY_SERVICE); + tm.listen(mPhoneStateListener, PhoneStateListener.LISTEN_CALL_STATE); + updateAvailableSubInfos(); updateAllOptions(); } @Override + public void onPause() { + super.onPause(); + final TelephonyManager tm = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE); + tm.listen(mPhoneStateListener, PhoneStateListener.LISTEN_NONE); + } + + private final PhoneStateListener mPhoneStateListener = new PhoneStateListener() { + // Disable Sim selection for Data when voice call is going on as changing the default data + // sim causes a modem reset currently and call gets disconnected + // ToDo : Add subtext on disabled preference to let user know that default data sim cannot + // be changed while call is going on + @Override + public void onCallStateChanged(int state, String incomingNumber) { + if (DBG) log("PhoneStateListener.onCallStateChanged: state=" + state); + final Preference pref = findPreference(KEY_CELLULAR_DATA); + if (pref != null) { + final boolean ecbMode = SystemProperties.getBoolean( + TelephonyProperties.PROPERTY_INECM_MODE, false); + pref.setEnabled((state == TelephonyManager.CALL_STATE_IDLE) && !ecbMode); + } + } + }; + + @Override public boolean onPreferenceTreeClick(final PreferenceScreen preferenceScreen, final Preference preference) { final Context context = getActivity(); |