aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael W <baddaemon87@gmail.com>2019-09-22 19:17:36 +0200
committerLuca Stefani <luca.stefani.ge1@gmail.com>2019-11-02 19:08:11 +0100
commitba27ffbbe03b34824243ffc520a5b6a354e64ecc (patch)
tree16b3bca3567a17b3b0e643922b0c5fec604e243e
parent1498ef9052ef73ab725b26ce592964f63cf1864e (diff)
downloadlineage-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.java12
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);