public static void collectDeviceData ( final BraintreeFragment fragment , final String merchantId , final BraintreeResponseListener < String > listener ) { fragment . waitForConfiguration ( new ConfigurationListener ( ) { @ Override public void onConfigurationFetched ( Configuration configuration ) { final JSONObject deviceData = new JSONObject ( ) ; try { String clientMetadataId = getPayPalClientMetadataId ( fragment . getApplicationContext ( ) ) ; if ( ! TextUtils . isEmpty ( clientMetadataId ) ) { deviceData . put ( CORRELATION_ID_KEY , clientMetadataId ) ; } } catch ( JSONException ignored ) { } if ( configuration . getKount ( ) . isEnabled ( ) ) { final String id ; if ( merchantId != null ) { id = merchantId ; } else { id = configuration . getKount ( ) . getKountMerchantId ( ) ; } try { final String deviceSessionId = UUIDHelper . getFormattedUUID ( ) ; startDeviceCollector ( fragment , id , deviceSessionId , new BraintreeResponseListener < String > ( ) { @ Override public void onResponse ( String sessionId ) { try { deviceData . put ( DEVICE_SESSION_ID_KEY , deviceSessionId ) ; deviceData . put ( FRAUD_MERCHANT_ID_KEY , id ) ; } catch ( JSONException ignored ) { } listener . onResponse ( deviceData . toString ( ) ) ; } } ) ; } catch ( ClassNotFoundException | NoClassDefFoundError | NumberFormatException ignored ) { listener . onResponse ( deviceData . toString ( ) ) ; } } else { listener . onResponse ( deviceData . toString ( ) ) ; } } } ) ; }
Collect device information for fraud identification purposes . This should be used in conjunction with a non - aggregate fraud id .