|
14 | 14 | public class SamsungReferrerClient { |
15 | 15 |
|
16 | 16 | public static ReferrerDetails getReferrer(Context context, final ILogger logger, long maxWaitTimeInMilli) { |
17 | | - final InstallReferrerClient referrerClient = InstallReferrerClient.newBuilder(context).build(); |
18 | | - final BlockingQueue<ReferrerDetails> referrerDetailsHolder = new LinkedBlockingQueue<ReferrerDetails>(1); |
19 | | - referrerClient.startConnection(new InstallReferrerStateListener() { |
20 | | - @Override |
21 | | - public void onInstallReferrerSetupFinished(int responseCode) { |
22 | | - switch (responseCode) { |
23 | | - case InstallReferrerClient.InstallReferrerResponse.OK: |
24 | | - try { |
25 | | - ReferrerDetails details = referrerClient.getInstallReferrer(); |
26 | | - referrerDetailsHolder.offer(details); |
27 | | - } catch (Exception e) { |
28 | | - logger.error("SamsungReferrer getInstallReferrer: " + e.getMessage()); |
29 | | - referrerDetailsHolder.offer(null); |
30 | | - } finally { |
31 | | - referrerClient.endConnection(); |
| 17 | + try { |
| 18 | + final InstallReferrerClient referrerClient = InstallReferrerClient.newBuilder(context).build(); |
| 19 | + final BlockingQueue<ReferrerDetails> referrerDetailsHolder = new LinkedBlockingQueue<ReferrerDetails>(1); |
| 20 | + referrerClient.startConnection(new InstallReferrerStateListener() { |
| 21 | + @Override |
| 22 | + public void onInstallReferrerSetupFinished(int responseCode) { |
| 23 | + try { |
| 24 | + switch (responseCode) { |
| 25 | + case InstallReferrerClient.InstallReferrerResponse.OK: |
| 26 | + try { |
| 27 | + ReferrerDetails details = referrerClient.getInstallReferrer(); |
| 28 | + referrerDetailsHolder.offer(details); |
| 29 | + } catch (Exception e) { |
| 30 | + logger.error("SamsungReferrer getInstallReferrer: " + e.getMessage()); |
| 31 | + } finally { |
| 32 | + referrerClient.endConnection(); |
| 33 | + } |
| 34 | + break; |
| 35 | + case InstallReferrerClient.InstallReferrerResponse.FEATURE_NOT_SUPPORTED: |
| 36 | + logger.info("SamsungReferrer onInstallReferrerSetupFinished: FEATURE_NOT_SUPPORTED"); |
| 37 | + break; |
| 38 | + case InstallReferrerClient.InstallReferrerResponse.SERVICE_UNAVAILABLE: |
| 39 | + logger.info("SamsungReferrer onInstallReferrerSetupFinished: SERVICE_UNAVAILABLE"); |
| 40 | + break; |
32 | 41 | } |
33 | | - break; |
34 | | - case InstallReferrerClient.InstallReferrerResponse.FEATURE_NOT_SUPPORTED: |
35 | | - logger.info("SamsungReferrer onInstallReferrerSetupFinished: FEATURE_NOT_SUPPORTED"); |
36 | | - break; |
37 | | - case InstallReferrerClient.InstallReferrerResponse.SERVICE_UNAVAILABLE: |
38 | | - logger.info("SamsungReferrer onInstallReferrerSetupFinished: SERVICE_UNAVAILABLE"); |
39 | | - break; |
| 42 | + } catch (Exception e) { |
| 43 | + logger.error("SamsungReferrer onInstallReferrerSetupFinished: " + e.getMessage()); |
| 44 | + } |
40 | 45 | } |
41 | | - } |
42 | 46 |
|
43 | | - @Override |
44 | | - public void onInstallReferrerServiceDisconnected() { |
45 | | - referrerClient.endConnection(); |
46 | | - } |
47 | | - }); |
| 47 | + @Override |
| 48 | + public void onInstallReferrerServiceDisconnected() { |
| 49 | + referrerClient.endConnection(); |
| 50 | + } |
| 51 | + }); |
48 | 52 |
|
49 | | - try { |
50 | 53 | return referrerDetailsHolder.poll(maxWaitTimeInMilli, TimeUnit.MILLISECONDS); |
| 54 | + |
51 | 55 | } catch (Exception e) { |
52 | | - logger.error("Exception while waiting to get referrer: ", e.getMessage()); |
| 56 | + logger.error("Exception while getting referrer: ", e.getMessage()); |
53 | 57 | } |
54 | 58 |
|
55 | 59 | return null; |
|
0 commit comments