From f546b97db989b162555803109b1cd05961218e96 Mon Sep 17 00:00:00 2001 From: Jordan Liu Date: Fri, 13 Jul 2018 10:43:47 -0700 Subject: [PATCH] Preserve leading 0s in mcc mnc Fixes: 79408450 Test: ApnEditorTest.java Change-Id: Iad7ffe04f23b30857588e50d7f5f0dd307bd2c6e Merged-In: Iad7ffe04f23b30857588e50d7f5f0dd307bd2c6e --- src/com/android/settings/network/ApnEditor.java | 12 +++++++++++- .../com/android/settings/network/ApnEditorTest.java | 4 +++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/src/com/android/settings/network/ApnEditor.java b/src/com/android/settings/network/ApnEditor.java index cceb31d29e7..5133d451bc8 100644 --- a/src/com/android/settings/network/ApnEditor.java +++ b/src/com/android/settings/network/ApnEditor.java @@ -313,12 +313,22 @@ public class ApnEditor extends SettingsPreferenceFragment 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. diff --git a/tests/robotests/src/com/android/settings/network/ApnEditorTest.java b/tests/robotests/src/com/android/settings/network/ApnEditorTest.java index 35f68a06698..2fa9de12a01 100644 --- a/tests/robotests/src/com/android/settings/network/ApnEditorTest.java +++ b/tests/robotests/src/com/android/settings/network/ApnEditorTest.java @@ -440,6 +440,8 @@ public class ApnEditorTest { @Test public void formatInteger_shouldParseString() { assertThat(ApnEditor.formatInteger("42")).isEqualTo("42"); + assertThat(ApnEditor.formatInteger("01")).isEqualTo("01"); + assertThat(ApnEditor.formatInteger("001")).isEqualTo("001"); } @Test @@ -489,4 +491,4 @@ public class ApnEditorTest { mUri = uri; } } -} \ No newline at end of file +}