diff options
author | David Braun <dabraun@google.com> | 2013-10-07 09:35:52 -0700 |
---|---|---|
committer | David Braun <dabraun@google.com> | 2013-10-07 09:35:52 -0700 |
commit | 1c17255d5edadaf1790af365d2ed5f962a7bcc65 (patch) | |
tree | 96294b34ee1f95b82a86a2922c0ff6081e087203 /src/com/android/settings/SmsDefaultDialog.java | |
parent | 8aecb7cea083366fc85d8088d7e5e18e775fee80 (diff) | |
download | packages_apps_Settings-1c17255d5edadaf1790af365d2ed5f962a7bcc65.zip packages_apps_Settings-1c17255d5edadaf1790af365d2ed5f962a7bcc65.tar.gz packages_apps_Settings-1c17255d5edadaf1790af365d2ed5f962a7bcc65.tar.bz2 |
Block "SMS Default Dialog" on non-phone devices
This change also handles the case where getDefaultSmsApplication returns
null more elegantly, though this is only really possible on a device that
is a tablet (blocked earlier in the method) or a phone device that had no
SMS apps at boot (when we force the setting of an SMS app.)
Bug: 11072894 People app should not launch into default SMS app on tablets
Change-Id: I1e253873e053c21bc1652bd03d7b486aaf9be5e1
Diffstat (limited to 'src/com/android/settings/SmsDefaultDialog.java')
-rw-r--r-- | src/com/android/settings/SmsDefaultDialog.java | 28 |
1 files changed, 22 insertions, 6 deletions
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; |