Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Fix issues with CustomerSession listeners (#856)
* Fix issues with CustomerSession listeners **Motivation** The previous implementation of `CustomerSession` listeners had a reference to a single `CustomerRetrievalListener` and `SourceRetrievalListener`. After a listener is called, it would be nulled out. This logic was buggy because it resulted in possible race conditions in which two calls are both in flight, and the first call that completes nulls out the listener for the second. **Summary** The solution to this issue is to associate an `operationId` (i.e. UUID) with each listener. This avoids the race condition and ambiguity about which listener is being referenced. Additionally, the listeners were being held with a strong reference, which could lead to memory leaks if the listener held a reference to an Activity. **Testing** Manually verified with samplestore and example apps.
- Loading branch information