aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/java/com/android/internal/telephony/InboundSmsHandler.java9
-rw-r--r--src/java/com/android/internal/telephony/SmsBroadcastUndelivered.java15
2 files changed, 19 insertions, 5 deletions
diff --git a/src/java/com/android/internal/telephony/InboundSmsHandler.java b/src/java/com/android/internal/telephony/InboundSmsHandler.java
index efc907c0f..2f2d4fd89 100644
--- a/src/java/com/android/internal/telephony/InboundSmsHandler.java
+++ b/src/java/com/android/internal/telephony/InboundSmsHandler.java
@@ -58,6 +58,7 @@ import android.service.carrier.CarrierMessagingService;
import android.service.carrier.ICarrierMessagingCallback;
import android.service.carrier.ICarrierMessagingService;
import android.service.carrier.MessagePdu;
+import android.service.notification.StatusBarNotification;
import android.telephony.CarrierMessagingServiceManager;
import android.telephony.Rlog;
import android.telephony.SmsManager;
@@ -864,6 +865,7 @@ public abstract class InboundSmsHandler extends StateMachine {
Notification.Builder mBuilder = new Notification.Builder(mContext)
.setSmallIcon(com.android.internal.R.drawable.sym_action_chat)
.setAutoCancel(true)
+ .setVisibility(Notification.VISIBILITY_PUBLIC)
.setDefaults(Notification.DEFAULT_ALL)
.setContentTitle(mContext.getString(R.string.new_sms_notification_title))
.setContentText(mContext.getString(R.string.new_sms_notification_content))
@@ -874,6 +876,13 @@ public abstract class InboundSmsHandler extends StateMachine {
NOTIFICATION_TAG, NOTIFICATION_ID_NEW_MESSAGE, mBuilder.build());
}
+ static void cancelNewMessageNotification(Context context) {
+ NotificationManager mNotificationManager =
+ (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
+ mNotificationManager.cancel(InboundSmsHandler.NOTIFICATION_TAG,
+ InboundSmsHandler.NOTIFICATION_ID_NEW_MESSAGE);
+ }
+
/**
* Filters the SMS.
*
diff --git a/src/java/com/android/internal/telephony/SmsBroadcastUndelivered.java b/src/java/com/android/internal/telephony/SmsBroadcastUndelivered.java
index 51f8425ac..57299fe06 100644
--- a/src/java/com/android/internal/telephony/SmsBroadcastUndelivered.java
+++ b/src/java/com/android/internal/telephony/SmsBroadcastUndelivered.java
@@ -23,10 +23,8 @@ import android.content.Intent;
import android.content.IntentFilter;
import android.database.Cursor;
import android.database.SQLException;
-import android.net.Uri;
import android.os.UserHandle;
import android.os.UserManager;
-import android.provider.Telephony;
import android.telephony.Rlog;
import com.android.internal.telephony.cdma.CdmaInboundSmsHandler;
@@ -81,18 +79,25 @@ public class SmsBroadcastUndelivered {
*/
private final BroadcastReceiver mBroadcastReceiver = new BroadcastReceiver() {
@Override
- public void onReceive(Context context, Intent intent) {
+ public void onReceive(final Context context, Intent intent) {
Rlog.d(TAG, "Received broadcast " + intent.getAction());
if (Intent.ACTION_USER_UNLOCKED.equals(intent.getAction())) {
- new ScanRawTableThread().start();
+ new ScanRawTableThread(context).start();
}
}
};
private class ScanRawTableThread extends Thread {
+ private final Context context;
+
+ private ScanRawTableThread(Context context) {
+ this.context = context;
+ }
+
@Override
public void run() {
scanRawTable();
+ InboundSmsHandler.cancelNewMessageNotification(context);
}
}
@@ -123,7 +128,7 @@ public class SmsBroadcastUndelivered {
UserManager userManager = (UserManager) context.getSystemService(Context.USER_SERVICE);
if (userManager.isUserUnlocked()) {
- new ScanRawTableThread().start();
+ new ScanRawTableThread(context).start();
} else {
IntentFilter userFilter = new IntentFilter();
userFilter.addAction(Intent.ACTION_USER_UNLOCKED);