Skip to content

Commit 663d444

Browse files
authored
Initialize the userMetaData field for iot SDK with the default value (#803)
* Initialize the userMetaData field for iot SDK with default value
1 parent 11ad285 commit 663d444

File tree

2 files changed

+11
-9
lines changed

2 files changed

+11
-9
lines changed

aws-android-sdk-iot/src/main/java/com/amazonaws/mobileconnectors/iot/AWSIotMqttManager.java

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -162,18 +162,16 @@ public class AWSIotMqttManager {
162162
*/
163163
private boolean metricsIsEnabled = true;
164164

165-
/** User metadata string. */
166-
String userMetaData;
167-
168165
/**
169-
* This is your custom endpoint that allows you to connect to AWS IoT.
166+
* User metadata string. getVersion method returns the SDK version that will be sent in
167+
* the mqtt connect message if metrics collection is enabled.
170168
*/
171-
private final String endpoint;
169+
String userMetaData = "?SDK=Android&Version=" + VersionInfoUtils.getVersion();
172170

173171
/**
174-
* The SDK version that will be sent in the mqtt connect message if metrics collection is enabled.
172+
* This is your custom endpoint that allows you to connect to AWS IoT.
175173
*/
176-
private static final String SDK_VERSION = VersionInfoUtils.getVersion();
174+
private final String endpoint;
177175

178176
/**
179177
* Turning on/off metrics collection. By default metrics collection is enabled.
@@ -219,7 +217,7 @@ public boolean isMetricsEnabled() {
219217
* @param userMetaDataMap userMetaData map
220218
*/
221219
public void addUserMetaData(Map<String, String> userMetaDataMap) {
222-
StringBuilder userMetadata = new StringBuilder("?SDK=Android&Version=" + SDK_VERSION);
220+
StringBuilder userMetadata = new StringBuilder(this.userMetaData);
223221
int baseLength = userMetadata.length();
224222

225223
if (userMetaDataMap != null) {

aws-android-sdk-iot/src/test/java/com/amazonaws/mobileconnectors/iot/AWSIotMqttManagerTest.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
import com.amazonaws.regions.Region;
1414
import com.amazonaws.regions.Regions;
1515
import com.amazonaws.util.StringUtils;
16+
import com.amazonaws.util.VersionInfoUtils;
1617

1718
import org.eclipse.paho.client.mqttv3.MqttException;
1819
import org.eclipse.paho.client.mqttv3.MqttMessage;
@@ -90,6 +91,8 @@ public void testCreateClientWithPrefix() throws Exception {
9091
AWSIotMqttManager testClient = new AWSIotMqttManager("test-client",
9192
Region.getRegion(Regions.US_EAST_1), TEST_ENDPOINT_PREFIX);
9293

94+
// UserMetaData field before setting additional metadata
95+
assertEquals(testClient.userMetaData, "?SDK=Android&Version=" + VersionInfoUtils.getVersion());
9396
// Set user metadata
9497
Map<String, String> userMetaData = new HashMap<String, String>();
9598
userMetaData.put("AFRSDK", "Android");
@@ -108,7 +111,8 @@ public void testCreateClientWithPrefix() throws Exception {
108111
assertEquals(100L, (long)testClient.getOfflinePublishQueueBound());
109112
assertEquals(TEST_ENDPOINT_PREFIX, testClient.getAccountEndpointPrefix());
110113
assertEquals(MqttManagerConnectionState.Disconnected, testClient.getConnectionState());
111-
assertNotNull(testClient.userMetaData);
114+
assertEquals(testClient.userMetaData, "?SDK=Android&Version=" + VersionInfoUtils.getVersion() +
115+
"&AFRSDK=Android&AFRSDKVersion=1.0.0&AFRLibVersion=1.4.1");
112116

113117

114118
testClient.setAutoReconnect(false);

0 commit comments

Comments
 (0)