summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorharibabu.allu <haribabu.allu@sasken.com>2016-03-23 17:02:08 +0530
committerGerrit Code Review <gerrit@cyanogenmod.org>2016-04-05 21:30:21 -0700
commit56aafc2c7e7e7c20b3a9dbd81b6f38876b4b834a (patch)
tree4e9065799bee921e96b747bcae6c1eaf7cf65ae9 /src
parent8831d2c7c2d8da932f20f55ae079b20209999940 (diff)
downloadandroid_packages_apps_Messaging-56aafc2c7e7e7c20b3a9dbd81b6f38876b4b834a.tar.gz
android_packages_apps_Messaging-56aafc2c7e7e7c20b3a9dbd81b6f38876b4b834a.tar.bz2
android_packages_apps_Messaging-56aafc2c7e7e7c20b3a9dbd81b6f38876b4b834a.zip
Added new feature SMS Validity Period
New preference field Validity Period is added in Messaging settings ported from CyanogenMod 12.0 Messaging application to CyanogenMod 13.0 Bug: PAELLA-51 Change-Id: Ia53fdf36fbc18606ce512055445b68f580a312e2
Diffstat (limited to 'src')
-rw-r--r--src/com/android/messaging/sms/SmsSender.java12
-rw-r--r--src/com/android/messaging/ui/appsettings/ApplicationSettingsActivity.java21
-rw-r--r--src/com/android/messaging/util/PhoneUtils.java25
-rw-r--r--src/com/cyanogenmod/messaging/util/PrefsUtils.java18
4 files changed, 75 insertions, 1 deletions
diff --git a/src/com/android/messaging/sms/SmsSender.java b/src/com/android/messaging/sms/SmsSender.java
index 889973f..5060ead 100644
--- a/src/com/android/messaging/sms/SmsSender.java
+++ b/src/com/android/messaging/sms/SmsSender.java
@@ -24,6 +24,7 @@ import android.net.Uri;
import android.os.SystemClock;
import android.telephony.PhoneNumberUtils;
import android.telephony.SmsManager;
+import android.telephony.SubscriptionManager;
import android.text.TextUtils;
import com.android.messaging.Factory;
@@ -35,6 +36,7 @@ import com.android.messaging.util.BugleGservicesKeys;
import com.android.messaging.util.LogUtil;
import com.android.messaging.util.PhoneUtils;
import com.android.messaging.util.UiUtils;
+import com.cyanogenmod.messaging.util.PrefsUtils;
import java.util.ArrayList;
import java.util.Random;
@@ -66,6 +68,7 @@ public class SmsSender {
// Whether we should send multipart SMS as separate messages
private static Boolean sSendMultipartSmsAsSeparateMessages = null;
+ private static int mPriority = 0;
/**
* Class that holds the sent status for all parts of a multipart message sending
@@ -296,8 +299,15 @@ public class SmsSender {
deliveryIntents.get(i));
}
} else {
+ int validityPeriod = PrefsUtils.getValidityPeriod(SubscriptionManager.getPhoneId(subId));
+ // Remove all attributes for CDMA international roaming.
+ if (PhoneUtils.getDefault().isCDMAInternationalRoaming(subId)) {
+ LogUtil.v(TAG, "sendMessage during CDMA international roaming.");
+ validityPeriod = -1;
+ mPriority = -1;
+ }
smsManager.sendMultipartTextMessage(
- dest, serviceCenter, messages, sentIntents, deliveryIntents);
+ dest, serviceCenter, messages, sentIntents, deliveryIntents, mPriority, false, validityPeriod);
}
} catch (final Exception e) {
throw new SmsException("SmsSender: caught exception in sending " + e);
diff --git a/src/com/android/messaging/ui/appsettings/ApplicationSettingsActivity.java b/src/com/android/messaging/ui/appsettings/ApplicationSettingsActivity.java
index 20ffebf..81993a2 100644
--- a/src/com/android/messaging/ui/appsettings/ApplicationSettingsActivity.java
+++ b/src/com/android/messaging/ui/appsettings/ApplicationSettingsActivity.java
@@ -30,6 +30,7 @@ import android.preference.PreferenceScreen;
import android.preference.RingtonePreference;
import android.preference.SwitchPreference;
import android.preference.TwoStatePreference;
+import android.preference.ListPreference;
import android.provider.Settings;
import android.support.v4.app.NavUtils;
import android.text.TextUtils;
@@ -100,6 +101,10 @@ public class ApplicationSettingsActivity extends BugleActionBarActivity {
private boolean mIsSmsPreferenceClicked;
private String mSwipeRightToDeleteConversationkey;
private SwitchPreference mSwipeRightToDeleteConversationPreference;
+ private ListPreference mSmsValidityPref;
+ private ListPreference mSmsValidityCard1Pref;
+ private ListPreference mSmsValidityCard2Pref;
+
public ApplicationSettingsFragment() {
// Required empty constructor
@@ -124,6 +129,22 @@ public class ApplicationSettingsActivity extends BugleActionBarActivity {
mSmsDisabledPreference = findPreference(mSmsDisabledPrefKey);
mSmsEnabledPrefKey = getString(R.string.sms_enabled_pref_key);
mSmsEnabledPreference = findPreference(mSmsEnabledPrefKey);
+ mSmsValidityPref = (ListPreference) findPreference("pref_key_sms_validity_period");
+ mSmsValidityCard1Pref = (ListPreference) findPreference("pref_key_sms_validity_period_slot1");
+ mSmsValidityCard2Pref = (ListPreference) findPreference("pref_key_sms_validity_period_slot2");
+
+ if (getResources().getBoolean(R.bool.config_sms_validity)) {
+ if (PhoneUtils.getDefault().isMultiSimEnabledMms()) {
+ getPreferenceScreen().removePreference(mSmsValidityPref);
+ } else {
+ getPreferenceScreen().removePreference(mSmsValidityCard1Pref);
+ getPreferenceScreen().removePreference(mSmsValidityCard2Pref);
+ }
+ } else {
+ getPreferenceScreen().removePreference(mSmsValidityPref);
+ getPreferenceScreen().removePreference(mSmsValidityCard1Pref);
+ getPreferenceScreen().removePreference(mSmsValidityCard2Pref);
+ }
mSwipeRightToDeleteConversationkey = getString(
R.string.swipe_right_deletes_conversation_key);
mSwipeRightToDeleteConversationPreference =
diff --git a/src/com/android/messaging/util/PhoneUtils.java b/src/com/android/messaging/util/PhoneUtils.java
index 726f083..0fa1f90 100644
--- a/src/com/android/messaging/util/PhoneUtils.java
+++ b/src/com/android/messaging/util/PhoneUtils.java
@@ -1008,4 +1008,29 @@ public abstract class PhoneUtils {
}
return null;
}
+
+ /**
+ * Decide whether the current product is DSDS in MMS
+ */
+ public static boolean isMultiSimEnabledMms() {
+ return TelephonyManager.getDefault().isMultiSimEnabled();
+ }
+
+ private static boolean isCDMAPhone(int subscription) {
+ int activePhone = isMultiSimEnabledMms()
+ ? TelephonyManager.getDefault().getCurrentPhoneType(subscription)
+ : TelephonyManager.getDefault().getPhoneType();
+ return activePhone == TelephonyManager.PHONE_TYPE_CDMA;
+ }
+
+ private static boolean isNetworkRoaming(int subscription) {
+ return isMultiSimEnabledMms()
+ ? TelephonyManager.getDefault().isNetworkRoaming(subscription)
+ : TelephonyManager.getDefault().isNetworkRoaming();
+ }
+
+ public static boolean isCDMAInternationalRoaming(int subscription) {
+ return isCDMAPhone(subscription) && isNetworkRoaming(subscription);
+ }
+
}
diff --git a/src/com/cyanogenmod/messaging/util/PrefsUtils.java b/src/com/cyanogenmod/messaging/util/PrefsUtils.java
index 0cd0899..4afbb6d 100644
--- a/src/com/cyanogenmod/messaging/util/PrefsUtils.java
+++ b/src/com/cyanogenmod/messaging/util/PrefsUtils.java
@@ -23,6 +23,7 @@ import com.android.messaging.Factory;
import com.android.messaging.R;
import com.android.messaging.util.BuglePrefs;
import com.android.messaging.util.UnicodeFilter;
+import com.android.messaging.util.PhoneUtils;
public class PrefsUtils {
@@ -82,4 +83,21 @@ public class PrefsUtils {
}
return null;
}
+
+ public static int getValidityPeriod(int slot) {
+ final BuglePrefs prefs = BuglePrefs.getApplicationPrefs();
+ final Context context = Factory.get().getApplicationContext();
+ String validityPeriod = context.getString(R.string.def_sms_validity_period_value);
+ String prefKey = context.getString(R.string.pref_key_sms_validity_period);
+
+ if (PhoneUtils.getDefault().isMultiSimEnabledMms()) {
+ String prefKeySlot1 = context.getString(R.string.pref_key_sms_validity_period_slot1);
+ String prefKeySlot2 = context.getString(R.string.pref_key_sms_validity_period_slot2);
+ validityPeriod = prefs.getString((slot == 0) ? prefKeySlot1 : prefKeySlot2, null);
+ } else {
+ validityPeriod = prefs.getString(prefKey, null);
+ }
+ return (validityPeriod == null) ? -1 : Integer.parseInt(validityPeriod);
+ }
+
}