summaryrefslogtreecommitdiffstats
path: root/src/com/android/settings/sim
diff options
context:
space:
mode:
authorSanket Padawe <sanketpadawe@google.com>2015-03-03 17:43:38 -0800
committerRobert Greenwalt <rgreenwalt@google.com>2015-04-22 16:21:56 -0700
commit55d4d75f4ae4337639e7d920dd87fca3cca7b7c9 (patch)
treec123ac2207d51b7ab02ab0a02309826191ca6032 /src/com/android/settings/sim
parenta15b87544e1037f432b88c4a73213f9529b50480 (diff)
downloadpackages_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.java31
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();