diff options
-rw-r--r-- | res/values/strings.xml | 3 | ||||
-rw-r--r-- | src/com/android/settings/SmsDefaultDialog.java | 28 |
2 files changed, 24 insertions, 7 deletions
diff --git a/res/values/strings.xml b/res/values/strings.xml index 71eefe8..3bcb0e1 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -2386,7 +2386,8 @@ <!-- SMS Application [CHAR LIMIT=35]--> <string name="sms_application_title" translatable="true">Default SMS app</string> <string name="sms_change_default_dialog_title" translatable="true">Change SMS app?</string> - <string name="sms_change_default_dialog_text" translatable="true">Use <xliff:g id="new_app">%s</xliff:g> instead of <xliff:g id="current_app">%s</xliff:g> as your SMS application?</string> + <string name="sms_change_default_dialog_text" translatable="true">Use <xliff:g id="new_app">%s</xliff:g> instead of <xliff:g id="current_app">%s</xliff:g> as your SMS app?</string> + <string name="sms_change_default_no_previous_dialog_text" translatable="true">Use <xliff:g id="new_app">%s</xliff:g> as your SMS app?</string> <!-- The SIM operator is not known [CHAR_ LIMIT=50]--> <string name="mobile_unknown_sim_operator" translatable="true">Uknown SIM operator</string> diff --git a/src/com/android/settings/SmsDefaultDialog.java b/src/com/android/settings/SmsDefaultDialog.java index 93ac864..d9a6c5f 100644 --- a/src/com/android/settings/SmsDefaultDialog.java +++ b/src/com/android/settings/SmsDefaultDialog.java @@ -24,6 +24,7 @@ import android.content.pm.ApplicationInfo; import android.content.pm.PackageManager; import android.os.Bundle; import android.provider.Telephony.Sms.Intents; +import android.telephony.TelephonyManager; import com.android.internal.app.AlertActivity; import com.android.internal.app.AlertController; @@ -62,23 +63,38 @@ public final class SmsDefaultDialog extends AlertActivity implements } private boolean buildDialog(String packageName) { + TelephonyManager tm = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE); + if (tm.getPhoneType() == TelephonyManager.PHONE_TYPE_NONE) { + // No phone, no SMS + return false; + } + mNewSmsApplicationData = SmsApplication.getSmsApplicationData(packageName, this); if (mNewSmsApplicationData == null) { return false; } + SmsApplicationData oldSmsApplicationData = null; ComponentName oldSmsComponent = SmsApplication.getDefaultSmsApplication(this, true); - SmsApplicationData oldSmsApplicationData = - SmsApplication.getSmsApplicationData(oldSmsComponent.getPackageName(), this); - if (oldSmsApplicationData.mPackageName.equals(mNewSmsApplicationData.mPackageName)) { - return false; + if (oldSmsComponent != null) { + oldSmsApplicationData = + SmsApplication.getSmsApplicationData(oldSmsComponent.getPackageName(), this); + if (oldSmsApplicationData.mPackageName.equals(mNewSmsApplicationData.mPackageName)) { + return false; + } } // Compose dialog; get final AlertController.AlertParams p = mAlertParams; p.mTitle = getString(R.string.sms_change_default_dialog_title); - p.mMessage = getString(R.string.sms_change_default_dialog_text, - mNewSmsApplicationData.mApplicationName, oldSmsApplicationData.mApplicationName); + if (oldSmsApplicationData != null) { + p.mMessage = getString(R.string.sms_change_default_dialog_text, + mNewSmsApplicationData.mApplicationName, + oldSmsApplicationData.mApplicationName); + } else { + p.mMessage = getString(R.string.sms_change_default_no_previous_dialog_text, + mNewSmsApplicationData.mApplicationName); + } p.mPositiveButtonText = getString(R.string.yes); p.mNegativeButtonText = getString(R.string.no); p.mPositiveButtonListener = this; |