aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/java/com/android/internal/telephony/SmsApplication.java12
-rw-r--r--src/java/com/android/internal/telephony/UiccSmsController.java7
2 files changed, 16 insertions, 3 deletions
diff --git a/src/java/com/android/internal/telephony/SmsApplication.java b/src/java/com/android/internal/telephony/SmsApplication.java
index 5a9539424..b269ed217 100644
--- a/src/java/com/android/internal/telephony/SmsApplication.java
+++ b/src/java/com/android/internal/telephony/SmsApplication.java
@@ -38,6 +38,7 @@ import android.provider.Telephony.Sms.Intents;
import android.telephony.Rlog;
import android.telephony.SmsManager;
import android.telephony.TelephonyManager;
+import android.text.TextUtils;
import android.util.Log;
import com.android.internal.content.PackageMonitor;
@@ -57,6 +58,7 @@ public final class SmsApplication {
private static final String BLUETOOTH_PACKAGE_NAME = "com.android.bluetooth";
private static final String MMS_SERVICE_PACKAGE_NAME = "com.android.mms.service";
private static final String TELEPHONY_PROVIDER_PACKAGE_NAME = "com.android.providers.telephony";
+ private static final String DEFAULT_SYSTEM_MMS_PACKAGE_NAME = "com.android.messaging";
private static final String SCHEME_SMS = "sms";
private static final String SCHEME_SMSTO = "smsto";
@@ -737,6 +739,16 @@ public final class SmsApplication {
return false;
}
+ /**
+ * @hide
+ */
+ public static boolean canSmsAppHandleAlwaysAsk(Context context) {
+ final ComponentName defaultMmsApplication = SmsApplication.getDefaultMmsApplication(context,
+ false);
+ return TextUtils.equals(DEFAULT_SYSTEM_MMS_PACKAGE_NAME,
+ defaultMmsApplication.getPackageName());
+ }
+
private static String getDefaultSmsApplicationPackageName(Context context) {
final ComponentName component = getDefaultSmsApplication(context, false);
if (component != null) {
diff --git a/src/java/com/android/internal/telephony/UiccSmsController.java b/src/java/com/android/internal/telephony/UiccSmsController.java
index 7d17d441b..f9777d329 100644
--- a/src/java/com/android/internal/telephony/UiccSmsController.java
+++ b/src/java/com/android/internal/telephony/UiccSmsController.java
@@ -291,13 +291,14 @@ public class UiccSmsController extends ISms.Stub {
@Override
public boolean isSmsSimPickActivityNeeded(int subId) {
- if (!isSMSPromptEnabled()) {
+ final Context context = ActivityThread.currentApplication().getApplicationContext();
+ boolean canCurrentAppHandleAlwaysAsk = SmsApplication.canSmsAppHandleAlwaysAsk(context);
+ if (!isSMSPromptEnabled() && canCurrentAppHandleAlwaysAsk) {
Rlog.d(LOG_TAG, "isSmsSimPickActivityNeeded: false, sms prompt disabled.");
// user knows best
return false;
}
- final Context context = ActivityThread.currentApplication().getApplicationContext();
TelephonyManager telephonyManager =
(TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
List<SubscriptionInfo> subInfoList;
@@ -331,7 +332,7 @@ public class UiccSmsController extends ISms.Stub {
}
}
- return false;
+ return !canCurrentAppHandleAlwaysAsk;
}
@Override