1
0
Fork 0
mirror of https://github.com/syncthing/syncthing-android.git synced 2024-12-23 19:31:30 +00:00

Make multiple PendingIntents distinguishable

If notifications for multiple new devices or folders are shown, the last Intent was used for all of them.
This commit is contained in:
Unrud 2016-06-12 22:48:25 +02:00 committed by Unrud
parent ea96011c39
commit af8ec86843

View file

@ -99,7 +99,10 @@ public class EventProcessor implements SyncthingService.OnWebGuiAvailableListene
.setAction(SettingsActivity.ACTION_DEVICE_SETTINGS) .setAction(SettingsActivity.ACTION_DEVICE_SETTINGS)
.putExtra(SettingsActivity.EXTRA_IS_CREATE, true) .putExtra(SettingsActivity.EXTRA_IS_CREATE, true)
.putExtra(DeviceFragment.EXTRA_DEVICE_ID, deviceId); .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, String title = mContext.getString(R.string.device_rejected,
deviceId.substring(0, 7)); deviceId.substring(0, 7));
@ -118,7 +121,10 @@ public class EventProcessor implements SyncthingService.OnWebGuiAvailableListene
.putExtra(FolderFragment.EXTRA_DEVICE_ID, deviceId) .putExtra(FolderFragment.EXTRA_DEVICE_ID, deviceId)
.putExtra(FolderFragment.EXTRA_FOLDER_ID, folderId) .putExtra(FolderFragment.EXTRA_FOLDER_ID, folderId)
.putExtra(FolderFragment.EXTRA_FOLDER_LABEL, folderLabel); .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; String deviceName = null;
for (RestApi.Device d : mApi.getDevices(false)) { for (RestApi.Device d : mApi.getDevices(false)) {