From af8ec86843ff020697f22ec9d4fa8ffe32d44f8c Mon Sep 17 00:00:00 2001 From: Unrud Date: Sun, 12 Jun 2016 22:48:25 +0200 Subject: [PATCH] Make multiple PendingIntents distinguishable If notifications for multiple new devices or folders are shown, the last Intent was used for all of them. --- .../syncthingandroid/syncthing/EventProcessor.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/nutomic/syncthingandroid/syncthing/EventProcessor.java b/src/main/java/com/nutomic/syncthingandroid/syncthing/EventProcessor.java index df551cea..5ecc1034 100644 --- a/src/main/java/com/nutomic/syncthingandroid/syncthing/EventProcessor.java +++ b/src/main/java/com/nutomic/syncthingandroid/syncthing/EventProcessor.java @@ -99,7 +99,10 @@ public class EventProcessor implements SyncthingService.OnWebGuiAvailableListene .setAction(SettingsActivity.ACTION_DEVICE_SETTINGS) .putExtra(SettingsActivity.EXTRA_IS_CREATE, true) .putExtra(DeviceFragment.EXTRA_DEVICE_ID, deviceId); - PendingIntent pi = PendingIntent.getActivity(mContext, 0, intent, 0); + // HACK: Use a random, deterministic ID to make multiple PendingIntents + // distinguishable + int requestCode = deviceId.hashCode(); + PendingIntent pi = PendingIntent.getActivity(mContext, requestCode, intent, 0); String title = mContext.getString(R.string.device_rejected, deviceId.substring(0, 7)); @@ -118,7 +121,10 @@ public class EventProcessor implements SyncthingService.OnWebGuiAvailableListene .putExtra(FolderFragment.EXTRA_DEVICE_ID, deviceId) .putExtra(FolderFragment.EXTRA_FOLDER_ID, folderId) .putExtra(FolderFragment.EXTRA_FOLDER_LABEL, folderLabel); - pi = PendingIntent.getActivity(mContext, 0, intent, 0); + // HACK: Use a random, deterministic ID to make multiple PendingIntents + // distinguishable + requestCode = (deviceId + folderId + folderLabel).hashCode(); + pi = PendingIntent.getActivity(mContext, requestCode, intent, 0); String deviceName = null; for (RestApi.Device d : mApi.getDevices(false)) {