|
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