summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Amit Mahajan <amitmahajan@google.com> 2016-05-02 21:37:05 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2016-05-02 21:37:07 +0000
commitfc6a3ad85bcac1df6b0fc1f79ec65f1a23eb8f71 (patch)
tree4f07cb0d7e43ef29805b3e3b3e83da6140161599
parentc99febc3e346e4b24fce4bcb52d71732695c10fb (diff)
parent2c222510f602197354f9eb1f26871a70e5892606 (diff)
Merge "Change to return phone count as 0 if voice, sms, data not supported." into nyc-dev
-rw-r--r--telephony/java/android/telephony/TelephonyManager.java25
1 files changed, 24 insertions, 1 deletions
diff --git a/telephony/java/android/telephony/TelephonyManager.java b/telephony/java/android/telephony/TelephonyManager.java
index 343b110d068c..5fed594d7207 100644
--- a/telephony/java/android/telephony/TelephonyManager.java
+++ b/telephony/java/android/telephony/TelephonyManager.java
@@ -24,6 +24,7 @@ import android.app.ActivityThread;
import android.content.ContentResolver;
import android.content.Context;
import android.content.Intent;
+import android.net.ConnectivityManager;
import android.net.Uri;
import android.os.BatteryStats;
import android.os.ResultReceiver;
@@ -183,6 +184,7 @@ public class TelephonyManager {
/**
* Returns the number of phones available.
+ * Returns 0 if none of voice, sms, data is not supported
* Returns 1 for Single standby mode (Single SIM functionality)
* Returns 2 for Dual standby mode.(Dual SIM functionality)
*/
@@ -190,7 +192,28 @@ public class TelephonyManager {
int phoneCount = 1;
switch (getMultiSimConfiguration()) {
case UNKNOWN:
- phoneCount = 1;
+ // if voice or sms or data is supported, return 1 otherwise 0
+ if (isVoiceCapable() || isSmsCapable()) {
+ phoneCount = 1;
+ } else {
+ // todo: try to clean this up further by getting rid of the nested conditions
+ if (mContext == null) {
+ phoneCount = 1;
+ } else {
+ // check for data support
+ ConnectivityManager cm = (ConnectivityManager)mContext.getSystemService(
+ Context.CONNECTIVITY_SERVICE);
+ if (cm == null) {
+ phoneCount = 1;
+ } else {
+ if (cm.isNetworkSupported(ConnectivityManager.TYPE_MOBILE)) {
+ phoneCount = 1;
+ } else {
+ phoneCount = 0;
+ }
+ }
+ }
+ }
break;
case DSDS:
case DSDA: