Consider the situation that there are 2 SDKs (SDK_A and SDK_B) using ConnectSDK. Both of them run DiscoveryManager.init() in their SDK.init() method and told their clients to run it in Application.onCreate(). 2 DiscoveryManager instances will be created in that case, and potentially leaked a DiscoveryManager.
This pull request will make sure there is only one single static instance of DiscoveryManager will be used. Event DiscoveryManager.init() is run twice, only one DiscoveryManager will be used.
Also, making DiscoveryManager's constructor private can prevent clients from creating multiple instances of DiscoveryManager, as it is not recommended already in the original code.
Consider the situation that there are 2 SDKs (SDK_A and SDK_B) using ConnectSDK. Both of them run
DiscoveryManager.init()
in theirSDK.init()
method and told their clients to run it inApplication.onCreate()
. 2DiscoveryManager
instances will be created in that case, and potentially leaked aDiscoveryManager
.This pull request will make sure there is only one single static instance of
DiscoveryManager
will be used. EventDiscoveryManager.init()
is run twice, only oneDiscoveryManager
will be used.Also, making
DiscoveryManager
's constructor private can prevent clients from creating multiple instances ofDiscoveryManager
, as it is not recommended already in the original code.