docs: private OmemoCachedDeviceList removeStaleDevicesFromDeviceList(OmemoDevice userDevice,
                                                                     BareJid contact,
                                                                     OmemoCachedDeviceList contactsDeviceList,
                                                                     int maxAgeHours) {
          OmemoCachedDeviceList deviceList = new OmemoCachedDeviceList(contactsDeviceList); // Don't work on original list.
  
          // Iterate through original list, but modify copy instead
          for (int deviceId : contactsDeviceList.getActiveDevices()) {
              OmemoDevice device = new OmemoDevice(contact, deviceId);
  
              Date lastDeviceIdPublication = getOmemoStoreBackend().getDateOfLastDeviceIdPublication(userDevice, device);
              if (lastDeviceIdPublication == null) {
                  lastDeviceIdPublication = new Date();
                  getOmemoStoreBackend().setDateOfLastDeviceIdPublication(userDevice, device, lastDeviceIdPublication);
              }
  
              Date lastMessageReceived = getOmemoStoreBackend().getDateOfLastReceivedMessage(userDevice, device);
              if (lastMessageReceived == null) {
                  lastMessageReceived = new Date();
                  getOmemoStoreBackend().setDateOfLastReceivedMessage(userDevice, device, lastMessageReceived);
              }
  
              boolean stale = isStale(userDevice, device, lastDeviceIdPublication, maxAgeHours);
              stale &= isStale(userDevice, device, lastMessageReceived, maxAgeHours);
  
              if (stale) {
                  deviceList.addInactiveDevice(deviceId);
              }
          }
          return deviceList;
      }