diff options
author | Michael W <baddaemon87@gmail.com> | 2019-09-22 19:17:36 +0200 |
---|---|---|
committer | Luca Stefani <luca.stefani.ge1@gmail.com> | 2019-11-02 19:08:11 +0100 |
commit | ba27ffbbe03b34824243ffc520a5b6a354e64ecc (patch) | |
tree | 16b3bca3567a17b3b0e643922b0c5fec604e243e | |
parent | 1498ef9052ef73ab725b26ce592964f63cf1864e (diff) | |
download | lineage-sdk-ba27ffbbe03b34824243ffc520a5b6a354e64ecc.tar.gz lineage-sdk-ba27ffbbe03b34824243ffc520a5b6a354e64ecc.tar.bz2 lineage-sdk-ba27ffbbe03b34824243ffc520a5b6a354e64ecc.zip |
SensitivePhoneNumbers: Load numbers only at first actual call to method
* Constructor is called during boot, adding boot time where
it's not necessary
* Use the first actual call to a function to parse the list
Change-Id: I02548d004c5d78db65c872247cd36a0405d826ea
-rw-r--r-- | sdk/src/java/org/lineageos/internal/phone/SensitivePhoneNumbers.java | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/sdk/src/java/org/lineageos/internal/phone/SensitivePhoneNumbers.java b/sdk/src/java/org/lineageos/internal/phone/SensitivePhoneNumbers.java index ff2d65f5..a41801d8 100644 --- a/sdk/src/java/org/lineageos/internal/phone/SensitivePhoneNumbers.java +++ b/sdk/src/java/org/lineageos/internal/phone/SensitivePhoneNumbers.java @@ -51,12 +51,11 @@ public class SensitivePhoneNumbers { private static final String ns = null; private static SensitivePhoneNumbers sInstance = null; + private static boolean sNumbersLoaded; private HashMap<String, ArrayList<String>> mSensitiveNumbersMap = new HashMap<>(); - private SensitivePhoneNumbers() { - loadSensiblePhoneNumbers(); - } + private SensitivePhoneNumbers() { } public static SensitivePhoneNumbers getInstance() { if (sInstance == null) { @@ -66,6 +65,10 @@ public class SensitivePhoneNumbers { } private void loadSensiblePhoneNumbers() { + if (sNumbersLoaded) { + return; + } + FileReader sensiblePNReader; File sensiblePNFile = new File(Environment.getRootDirectory(), @@ -89,6 +92,8 @@ public class SensitivePhoneNumbers { } catch (IOException | XmlPullParserException e) { Log.w(LOG_TAG, "Exception in spn-conf parser", e); } + + sNumbersLoaded = true; } private void readSensitivePNS(XmlPullParser parser) @@ -113,6 +118,7 @@ public class SensitivePhoneNumbers { } public boolean isSensitiveNumber(Context context, String numberToCheck, int subId) { + loadSensiblePhoneNumbers(); String nationalNumber = formatNumberToNational(context, numberToCheck); SubscriptionManager subManager = context.getSystemService(SubscriptionManager.class); |