Loading android/app/res/values/strings.xml +1 −0 Original line number Diff line number Diff line Loading @@ -204,6 +204,7 @@ <string name="btopp_live_folder">Bluetooth received</string> <!-- Bluetooth OPP Transfer History --> <string name="opp_notification_group">Bluetooth Share</string> <string name="download_success"> <xliff:g id="file_size">%1$s</xliff:g> Received complete.</string> <string name="upload_success"> <xliff:g id="file_size">%1$s</xliff:g> Sent complete.</string> <string name="inbound_history_title">Inbound transfers</string> Loading android/app/src/com/android/bluetooth/opp/BluetoothOppNotification.java +52 −55 Original line number Diff line number Diff line Loading @@ -39,6 +39,7 @@ import android.content.Context; import android.app.Notification; import android.app.Notification.Action; import android.app.NotificationManager; import android.app.NotificationChannel; import android.app.PendingIntent; import android.content.Intent; import android.database.Cursor; Loading Loading @@ -91,6 +92,9 @@ class BluetoothOppNotification { public NotificationManager mNotificationMgr; private NotificationChannel mNotificationChannel; private static final String OPP_NOTIFICATION_CHANNEL = "opp_notification_channel"; private Context mContext; private HashMap<String, NotificationItem> mNotifications; Loading @@ -99,13 +103,13 @@ class BluetoothOppNotification { private int mPendingUpdate = 0; private static final int NOTIFICATION_ID_OUTBOUND = -1000005; public static final int NOTIFICATION_ID_PROGRESS = -1000004; private static final int NOTIFICATION_ID_INBOUND = -1000006; private static final int NOTIFICATION_ID_OUTBOUND_COMPLETE = -1000005; private boolean mUpdateCompleteNotification = true; private static final int NOTIFICATION_ID_INBOUND_COMPLETE = -1000006; private int mActiveNotificationId = 0; private boolean mUpdateCompleteNotification = true; private ContentResolver mContentResolver = null; /** Loading Loading @@ -139,6 +143,11 @@ class BluetoothOppNotification { mContext = ctx; mNotificationMgr = (NotificationManager)mContext .getSystemService(Context.NOTIFICATION_SERVICE); mNotificationChannel = new NotificationChannel(OPP_NOTIFICATION_CHANNEL, mContext.getString(R.string.opp_notification_group), NotificationManager.IMPORTANCE_HIGH); mNotificationMgr.createNotificationChannel(mNotificationChannel); mNotifications = new HashMap<String, NotificationItem>(); // Get Content Resolver object one time mContentResolver = mContext.getContentResolver(); Loading Loading @@ -320,7 +329,8 @@ class BluetoothOppNotification { } // Build the notification object // TODO: split description into two rows with filename in second row Notification.Builder b = new Notification.Builder(mContext); Notification.Builder b = new Notification.Builder(mContext, OPP_NOTIFICATION_CHANNEL); b.setOnlyAlertOnce(true); b.setColor(mContext.getResources().getColor( com.android.internal.R.color.system_notification_accent_color, mContext.getTheme())); Loading Loading @@ -351,9 +361,7 @@ class BluetoothOppNotification { intent.setDataAndNormalize(Uri.parse(BluetoothShare.CONTENT_URI + "/" + item.id)); b.setContentIntent(PendingIntent.getBroadcast(mContext, 0, intent, 0)); mNotificationMgr.notify(item.id, b.build()); mActiveNotificationId = item.id; mNotificationMgr.notify(NOTIFICATION_ID_PROGRESS, b.build()); } } Loading @@ -366,22 +374,6 @@ class BluetoothOppNotification { int inboundSuccNumber = 0; int inboundFailNumber = 0; // If there is active transfer, no need to update complete transfer // notification if (!mUpdateCompleteNotification) { if (V) Log.v(TAG, "No need to update complete notification"); return; } // After merge complete notifications to 2 notifications, there is no // chance to update the active notifications to complete notifications // as before. So need cancel the active notification after the active // transfer becomes complete. if (mNotificationMgr != null && mActiveNotificationId != 0) { mNotificationMgr.cancel(mActiveNotificationId); if (V) Log.v(TAG, "ongoing transfer notification was removed"); } // Creating outbound notification Cursor cursor = mContentResolver.query(BluetoothShare.CONTENT_URI, null, WHERE_COMPLETED_OUTBOUND, null, BluetoothShare.TIMESTAMP + " DESC"); Loading Loading @@ -422,21 +414,25 @@ class BluetoothOppNotification { Intent delete_intent = new Intent(Constants.ACTION_COMPLETE_HIDE) .setClassName(Constants.THIS_PACKAGE_NAME, BluetoothOppReceiver.class.getName()); Notification outNoti = new Notification.Builder(mContext) Notification outNoti = new Notification.Builder(mContext, OPP_NOTIFICATION_CHANNEL) .setOnlyAlertOnce(true) .setContentTitle(mContext.getString(R.string.outbound_noti_title)) .setContentText(caption) .setSmallIcon(android.R.drawable.stat_sys_upload_done) .setColor(mContext.getResources().getColor( com.android.internal.R.color.system_notification_accent_color, mContext.getTheme())) .setContentIntent(PendingIntent.getBroadcast(mContext, 0, content_intent, 0)) .setDeleteIntent(PendingIntent.getBroadcast(mContext, 0, delete_intent, 0)) .setContentIntent( PendingIntent.getBroadcast(mContext, 0, content_intent, 0)) .setDeleteIntent( PendingIntent.getBroadcast(mContext, 0, delete_intent, 0)) .setWhen(timeStamp) .build(); mNotificationMgr.notify(NOTIFICATION_ID_OUTBOUND, outNoti); mNotificationMgr.notify(NOTIFICATION_ID_OUTBOUND_COMPLETE, outNoti); } else { if (mNotificationMgr != null) { mNotificationMgr.cancel(NOTIFICATION_ID_OUTBOUND); mNotificationMgr.cancel(NOTIFICATION_ID_OUTBOUND_COMPLETE); if (V) Log.v(TAG, "outbound notification was removed."); } } Loading Loading @@ -478,21 +474,25 @@ class BluetoothOppNotification { Intent delete_intent = new Intent(Constants.ACTION_COMPLETE_HIDE) .setClassName(Constants.THIS_PACKAGE_NAME, BluetoothOppReceiver.class.getName()); Notification inNoti = new Notification.Builder(mContext) Notification inNoti = new Notification.Builder(mContext, OPP_NOTIFICATION_CHANNEL) .setOnlyAlertOnce(true) .setContentTitle(mContext.getString(R.string.inbound_noti_title)) .setContentText(caption) .setSmallIcon(android.R.drawable.stat_sys_download_done) .setColor(mContext.getResources().getColor( com.android.internal.R.color.system_notification_accent_color, mContext.getTheme())) .setContentIntent(PendingIntent.getBroadcast(mContext, 0, content_intent, 0)) .setDeleteIntent(PendingIntent.getBroadcast(mContext, 0, delete_intent, 0)) .setContentIntent( PendingIntent.getBroadcast(mContext, 0, content_intent, 0)) .setDeleteIntent( PendingIntent.getBroadcast(mContext, 0, delete_intent, 0)) .setWhen(timeStamp) .build(); mNotificationMgr.notify(NOTIFICATION_ID_INBOUND, inNoti); mNotificationMgr.notify(NOTIFICATION_ID_INBOUND_COMPLETE, inNoti); } else { if (mNotificationMgr != null) { mNotificationMgr.cancel(NOTIFICATION_ID_INBOUND); mNotificationMgr.cancel(NOTIFICATION_ID_INBOUND_COMPLETE); if (V) Log.v(TAG, "inbound notification was removed."); } } Loading Loading @@ -530,13 +530,10 @@ class BluetoothOppNotification { 0)) .build(); Notification n = new Notification.Builder(mContext) new Notification.Builder(mContext, OPP_NOTIFICATION_CHANNEL) .setOnlyAlertOnce(true) .setOngoing(true) .setVibrate(new long[] {200}) .setWhen(info.mTimeStamp) .setDefaults(Notification.DEFAULT_SOUND) .setPriority(Notification.PRIORITY_HIGH) .addAction(actionDecline) .addAction(actionAccept) .setContentIntent(PendingIntent.getBroadcast(mContext, 0, Loading @@ -557,7 +554,7 @@ class BluetoothOppNotification { .setContentInfo(Formatter.formatFileSize(mContext, info.mTotalBytes)) .setSmallIcon(R.drawable.bt_incomming_file_notification) .build(); mNotificationMgr.notify(info.mID, n); mNotificationMgr.notify(NOTIFICATION_ID_PROGRESS, n); } cursor.close(); } Loading android/app/src/com/android/bluetooth/opp/BluetoothOppObexClientSession.java +5 −0 Original line number Diff line number Diff line Loading @@ -38,6 +38,7 @@ import javax.obex.HeaderSet; import javax.obex.ObexTransport; import javax.obex.ResponseCodes; import android.app.NotificationManager; import android.content.ContentValues; import android.content.Context; import android.net.Uri; Loading Loading @@ -103,6 +104,10 @@ public class BluetoothOppObexClientSession implements BluetoothOppObexSession { if (V) Log.v(TAG, "Interrupted waiting for thread to join"); } } NotificationManager nm = (NotificationManager) mContext.getSystemService(Context.NOTIFICATION_SERVICE); nm.cancel(BluetoothOppNotification.NOTIFICATION_ID_PROGRESS); mCallback = null; } Loading android/app/src/com/android/bluetooth/opp/BluetoothOppObexServerSession.java +6 −0 Original line number Diff line number Diff line Loading @@ -38,6 +38,7 @@ import java.io.IOException; import java.io.InputStream; import java.util.Arrays; import android.app.NotificationManager; import android.content.ContentValues; import android.content.Context; import android.content.Intent; Loading Loading @@ -107,6 +108,7 @@ public class BluetoothOppObexServerSession extends ServerRequestHandler implemen mServerSocket = serverSocket; PowerManager pm = (PowerManager)mContext.getSystemService(Context.POWER_SERVICE); mPartialWakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, TAG); mPartialWakeLock.setReferenceCounted(false); } public void unblock() { Loading Loading @@ -596,6 +598,10 @@ public class BluetoothOppObexServerSession extends ServerRequestHandler implemen mServerSocket.prepareForNewConnect(); } NotificationManager nm = (NotificationManager) mContext.getSystemService(Context.NOTIFICATION_SERVICE); nm.cancel(BluetoothOppNotification.NOTIFICATION_ID_PROGRESS); /* onClose could happen even before start() where mCallback is set */ if (mCallback != null) { Message msg = Message.obtain(mCallback); Loading android/app/src/com/android/bluetooth/opp/BluetoothOppReceiver.java +2 −15 Original line number Diff line number Diff line Loading @@ -90,7 +90,6 @@ public class BluetoothOppReceiver extends BroadcastReceiver { in.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); in.setDataAndNormalize(uri); context.startActivity(in); cancelNotification(context, uri); } else if (action.equals(Constants.ACTION_DECLINE)) { if (V) Log.v(TAG, "Receiver ACTION_DECLINE"); Loading @@ -99,7 +98,7 @@ public class BluetoothOppReceiver extends BroadcastReceiver { ContentValues values = new ContentValues(); values.put(BluetoothShare.USER_CONFIRMATION, BluetoothShare.USER_CONFIRMATION_DENIED); context.getContentResolver().update(uri, values, null, null); cancelNotification(context, uri); cancelNotification(context, BluetoothOppNotification.NOTIFICATION_ID_PROGRESS); } else if (action.equals(Constants.ACTION_ACCEPT)) { if (V) Log.v(TAG, "Receiver ACTION_ACCEPT"); Loading @@ -108,8 +107,6 @@ public class BluetoothOppReceiver extends BroadcastReceiver { ContentValues values = new ContentValues(); values.put(BluetoothShare.USER_CONFIRMATION, BluetoothShare.USER_CONFIRMATION_CONFIRMED); context.getContentResolver().update(uri, values, null, null); cancelNotification(context, uri); } else if (action.equals(Constants.ACTION_OPEN) || action.equals(Constants.ACTION_LIST)) { if (V) { if (action.equals(Constants.ACTION_OPEN)) { Loading Loading @@ -140,7 +137,6 @@ public class BluetoothOppReceiver extends BroadcastReceiver { context.startActivity(in); } cancelNotification(context, uri); } else if (action.equals(Constants.ACTION_OPEN_OUTBOUND_TRANSFER)) { if (V) Log.v(TAG, "Received ACTION_OPEN_OUTBOUND_TRANSFER."); Loading Loading @@ -252,19 +248,10 @@ public class BluetoothOppReceiver extends BroadcastReceiver { } } private void cancelNotification(Context context, Uri uri) { private void cancelNotification(Context context, int id) { NotificationManager notMgr = (NotificationManager)context .getSystemService(Context.NOTIFICATION_SERVICE); if (notMgr == null) return; int id = -1; try { id = (int) ContentUris.parseId(uri); } catch (NumberFormatException ex) { Log.v(TAG, "Can't parse notification ID from Uri!"); return; } notMgr.cancel(id); if (V) Log.v(TAG, "notMgr.cancel called"); } Loading Loading
android/app/res/values/strings.xml +1 −0 Original line number Diff line number Diff line Loading @@ -204,6 +204,7 @@ <string name="btopp_live_folder">Bluetooth received</string> <!-- Bluetooth OPP Transfer History --> <string name="opp_notification_group">Bluetooth Share</string> <string name="download_success"> <xliff:g id="file_size">%1$s</xliff:g> Received complete.</string> <string name="upload_success"> <xliff:g id="file_size">%1$s</xliff:g> Sent complete.</string> <string name="inbound_history_title">Inbound transfers</string> Loading
android/app/src/com/android/bluetooth/opp/BluetoothOppNotification.java +52 −55 Original line number Diff line number Diff line Loading @@ -39,6 +39,7 @@ import android.content.Context; import android.app.Notification; import android.app.Notification.Action; import android.app.NotificationManager; import android.app.NotificationChannel; import android.app.PendingIntent; import android.content.Intent; import android.database.Cursor; Loading Loading @@ -91,6 +92,9 @@ class BluetoothOppNotification { public NotificationManager mNotificationMgr; private NotificationChannel mNotificationChannel; private static final String OPP_NOTIFICATION_CHANNEL = "opp_notification_channel"; private Context mContext; private HashMap<String, NotificationItem> mNotifications; Loading @@ -99,13 +103,13 @@ class BluetoothOppNotification { private int mPendingUpdate = 0; private static final int NOTIFICATION_ID_OUTBOUND = -1000005; public static final int NOTIFICATION_ID_PROGRESS = -1000004; private static final int NOTIFICATION_ID_INBOUND = -1000006; private static final int NOTIFICATION_ID_OUTBOUND_COMPLETE = -1000005; private boolean mUpdateCompleteNotification = true; private static final int NOTIFICATION_ID_INBOUND_COMPLETE = -1000006; private int mActiveNotificationId = 0; private boolean mUpdateCompleteNotification = true; private ContentResolver mContentResolver = null; /** Loading Loading @@ -139,6 +143,11 @@ class BluetoothOppNotification { mContext = ctx; mNotificationMgr = (NotificationManager)mContext .getSystemService(Context.NOTIFICATION_SERVICE); mNotificationChannel = new NotificationChannel(OPP_NOTIFICATION_CHANNEL, mContext.getString(R.string.opp_notification_group), NotificationManager.IMPORTANCE_HIGH); mNotificationMgr.createNotificationChannel(mNotificationChannel); mNotifications = new HashMap<String, NotificationItem>(); // Get Content Resolver object one time mContentResolver = mContext.getContentResolver(); Loading Loading @@ -320,7 +329,8 @@ class BluetoothOppNotification { } // Build the notification object // TODO: split description into two rows with filename in second row Notification.Builder b = new Notification.Builder(mContext); Notification.Builder b = new Notification.Builder(mContext, OPP_NOTIFICATION_CHANNEL); b.setOnlyAlertOnce(true); b.setColor(mContext.getResources().getColor( com.android.internal.R.color.system_notification_accent_color, mContext.getTheme())); Loading Loading @@ -351,9 +361,7 @@ class BluetoothOppNotification { intent.setDataAndNormalize(Uri.parse(BluetoothShare.CONTENT_URI + "/" + item.id)); b.setContentIntent(PendingIntent.getBroadcast(mContext, 0, intent, 0)); mNotificationMgr.notify(item.id, b.build()); mActiveNotificationId = item.id; mNotificationMgr.notify(NOTIFICATION_ID_PROGRESS, b.build()); } } Loading @@ -366,22 +374,6 @@ class BluetoothOppNotification { int inboundSuccNumber = 0; int inboundFailNumber = 0; // If there is active transfer, no need to update complete transfer // notification if (!mUpdateCompleteNotification) { if (V) Log.v(TAG, "No need to update complete notification"); return; } // After merge complete notifications to 2 notifications, there is no // chance to update the active notifications to complete notifications // as before. So need cancel the active notification after the active // transfer becomes complete. if (mNotificationMgr != null && mActiveNotificationId != 0) { mNotificationMgr.cancel(mActiveNotificationId); if (V) Log.v(TAG, "ongoing transfer notification was removed"); } // Creating outbound notification Cursor cursor = mContentResolver.query(BluetoothShare.CONTENT_URI, null, WHERE_COMPLETED_OUTBOUND, null, BluetoothShare.TIMESTAMP + " DESC"); Loading Loading @@ -422,21 +414,25 @@ class BluetoothOppNotification { Intent delete_intent = new Intent(Constants.ACTION_COMPLETE_HIDE) .setClassName(Constants.THIS_PACKAGE_NAME, BluetoothOppReceiver.class.getName()); Notification outNoti = new Notification.Builder(mContext) Notification outNoti = new Notification.Builder(mContext, OPP_NOTIFICATION_CHANNEL) .setOnlyAlertOnce(true) .setContentTitle(mContext.getString(R.string.outbound_noti_title)) .setContentText(caption) .setSmallIcon(android.R.drawable.stat_sys_upload_done) .setColor(mContext.getResources().getColor( com.android.internal.R.color.system_notification_accent_color, mContext.getTheme())) .setContentIntent(PendingIntent.getBroadcast(mContext, 0, content_intent, 0)) .setDeleteIntent(PendingIntent.getBroadcast(mContext, 0, delete_intent, 0)) .setContentIntent( PendingIntent.getBroadcast(mContext, 0, content_intent, 0)) .setDeleteIntent( PendingIntent.getBroadcast(mContext, 0, delete_intent, 0)) .setWhen(timeStamp) .build(); mNotificationMgr.notify(NOTIFICATION_ID_OUTBOUND, outNoti); mNotificationMgr.notify(NOTIFICATION_ID_OUTBOUND_COMPLETE, outNoti); } else { if (mNotificationMgr != null) { mNotificationMgr.cancel(NOTIFICATION_ID_OUTBOUND); mNotificationMgr.cancel(NOTIFICATION_ID_OUTBOUND_COMPLETE); if (V) Log.v(TAG, "outbound notification was removed."); } } Loading Loading @@ -478,21 +474,25 @@ class BluetoothOppNotification { Intent delete_intent = new Intent(Constants.ACTION_COMPLETE_HIDE) .setClassName(Constants.THIS_PACKAGE_NAME, BluetoothOppReceiver.class.getName()); Notification inNoti = new Notification.Builder(mContext) Notification inNoti = new Notification.Builder(mContext, OPP_NOTIFICATION_CHANNEL) .setOnlyAlertOnce(true) .setContentTitle(mContext.getString(R.string.inbound_noti_title)) .setContentText(caption) .setSmallIcon(android.R.drawable.stat_sys_download_done) .setColor(mContext.getResources().getColor( com.android.internal.R.color.system_notification_accent_color, mContext.getTheme())) .setContentIntent(PendingIntent.getBroadcast(mContext, 0, content_intent, 0)) .setDeleteIntent(PendingIntent.getBroadcast(mContext, 0, delete_intent, 0)) .setContentIntent( PendingIntent.getBroadcast(mContext, 0, content_intent, 0)) .setDeleteIntent( PendingIntent.getBroadcast(mContext, 0, delete_intent, 0)) .setWhen(timeStamp) .build(); mNotificationMgr.notify(NOTIFICATION_ID_INBOUND, inNoti); mNotificationMgr.notify(NOTIFICATION_ID_INBOUND_COMPLETE, inNoti); } else { if (mNotificationMgr != null) { mNotificationMgr.cancel(NOTIFICATION_ID_INBOUND); mNotificationMgr.cancel(NOTIFICATION_ID_INBOUND_COMPLETE); if (V) Log.v(TAG, "inbound notification was removed."); } } Loading Loading @@ -530,13 +530,10 @@ class BluetoothOppNotification { 0)) .build(); Notification n = new Notification.Builder(mContext) new Notification.Builder(mContext, OPP_NOTIFICATION_CHANNEL) .setOnlyAlertOnce(true) .setOngoing(true) .setVibrate(new long[] {200}) .setWhen(info.mTimeStamp) .setDefaults(Notification.DEFAULT_SOUND) .setPriority(Notification.PRIORITY_HIGH) .addAction(actionDecline) .addAction(actionAccept) .setContentIntent(PendingIntent.getBroadcast(mContext, 0, Loading @@ -557,7 +554,7 @@ class BluetoothOppNotification { .setContentInfo(Formatter.formatFileSize(mContext, info.mTotalBytes)) .setSmallIcon(R.drawable.bt_incomming_file_notification) .build(); mNotificationMgr.notify(info.mID, n); mNotificationMgr.notify(NOTIFICATION_ID_PROGRESS, n); } cursor.close(); } Loading
android/app/src/com/android/bluetooth/opp/BluetoothOppObexClientSession.java +5 −0 Original line number Diff line number Diff line Loading @@ -38,6 +38,7 @@ import javax.obex.HeaderSet; import javax.obex.ObexTransport; import javax.obex.ResponseCodes; import android.app.NotificationManager; import android.content.ContentValues; import android.content.Context; import android.net.Uri; Loading Loading @@ -103,6 +104,10 @@ public class BluetoothOppObexClientSession implements BluetoothOppObexSession { if (V) Log.v(TAG, "Interrupted waiting for thread to join"); } } NotificationManager nm = (NotificationManager) mContext.getSystemService(Context.NOTIFICATION_SERVICE); nm.cancel(BluetoothOppNotification.NOTIFICATION_ID_PROGRESS); mCallback = null; } Loading
android/app/src/com/android/bluetooth/opp/BluetoothOppObexServerSession.java +6 −0 Original line number Diff line number Diff line Loading @@ -38,6 +38,7 @@ import java.io.IOException; import java.io.InputStream; import java.util.Arrays; import android.app.NotificationManager; import android.content.ContentValues; import android.content.Context; import android.content.Intent; Loading Loading @@ -107,6 +108,7 @@ public class BluetoothOppObexServerSession extends ServerRequestHandler implemen mServerSocket = serverSocket; PowerManager pm = (PowerManager)mContext.getSystemService(Context.POWER_SERVICE); mPartialWakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, TAG); mPartialWakeLock.setReferenceCounted(false); } public void unblock() { Loading Loading @@ -596,6 +598,10 @@ public class BluetoothOppObexServerSession extends ServerRequestHandler implemen mServerSocket.prepareForNewConnect(); } NotificationManager nm = (NotificationManager) mContext.getSystemService(Context.NOTIFICATION_SERVICE); nm.cancel(BluetoothOppNotification.NOTIFICATION_ID_PROGRESS); /* onClose could happen even before start() where mCallback is set */ if (mCallback != null) { Message msg = Message.obtain(mCallback); Loading
android/app/src/com/android/bluetooth/opp/BluetoothOppReceiver.java +2 −15 Original line number Diff line number Diff line Loading @@ -90,7 +90,6 @@ public class BluetoothOppReceiver extends BroadcastReceiver { in.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); in.setDataAndNormalize(uri); context.startActivity(in); cancelNotification(context, uri); } else if (action.equals(Constants.ACTION_DECLINE)) { if (V) Log.v(TAG, "Receiver ACTION_DECLINE"); Loading @@ -99,7 +98,7 @@ public class BluetoothOppReceiver extends BroadcastReceiver { ContentValues values = new ContentValues(); values.put(BluetoothShare.USER_CONFIRMATION, BluetoothShare.USER_CONFIRMATION_DENIED); context.getContentResolver().update(uri, values, null, null); cancelNotification(context, uri); cancelNotification(context, BluetoothOppNotification.NOTIFICATION_ID_PROGRESS); } else if (action.equals(Constants.ACTION_ACCEPT)) { if (V) Log.v(TAG, "Receiver ACTION_ACCEPT"); Loading @@ -108,8 +107,6 @@ public class BluetoothOppReceiver extends BroadcastReceiver { ContentValues values = new ContentValues(); values.put(BluetoothShare.USER_CONFIRMATION, BluetoothShare.USER_CONFIRMATION_CONFIRMED); context.getContentResolver().update(uri, values, null, null); cancelNotification(context, uri); } else if (action.equals(Constants.ACTION_OPEN) || action.equals(Constants.ACTION_LIST)) { if (V) { if (action.equals(Constants.ACTION_OPEN)) { Loading Loading @@ -140,7 +137,6 @@ public class BluetoothOppReceiver extends BroadcastReceiver { context.startActivity(in); } cancelNotification(context, uri); } else if (action.equals(Constants.ACTION_OPEN_OUTBOUND_TRANSFER)) { if (V) Log.v(TAG, "Received ACTION_OPEN_OUTBOUND_TRANSFER."); Loading Loading @@ -252,19 +248,10 @@ public class BluetoothOppReceiver extends BroadcastReceiver { } } private void cancelNotification(Context context, Uri uri) { private void cancelNotification(Context context, int id) { NotificationManager notMgr = (NotificationManager)context .getSystemService(Context.NOTIFICATION_SERVICE); if (notMgr == null) return; int id = -1; try { id = (int) ContentUris.parseId(uri); } catch (NumberFormatException ex) { Log.v(TAG, "Can't parse notification ID from Uri!"); return; } notMgr.cancel(id); if (V) Log.v(TAG, "notMgr.cancel called"); } Loading