static String formatInteger(String value) {
try {
final int intValue = Integer.parseInt(value);
- return String.format("%d", intValue);
+ return String.format(getCorrectDigitsFormat(value), intValue);
} catch (NumberFormatException e) {
return value;
}
}
/**
+ * Get the digits format so we preserve leading 0's.
+ * MCCs are 3 digits and MNCs are either 2 or 3.
+ */
+ static String getCorrectDigitsFormat(String value) {
+ if (value.length() == 2) return "%02d";
+ else return "%03d";
+ }
+
+
+ /**
* Check if passed in array of APN types indicates all APN types
* @param apnTypes array of APN types. "*" indicates all types.
* @return true if all apn types are included in the array, false otherwise
@Test
public void formatInteger_shouldParseString() {
assertThat(ApnEditor.formatInteger("42")).isEqualTo("42");
+ assertThat(ApnEditor.formatInteger("01")).isEqualTo("01");
+ assertThat(ApnEditor.formatInteger("001")).isEqualTo("001");
}
@Test
mUri = uri;
}
}
-}
\ No newline at end of file
+}