diff options
author | cyBerta <cyberta@riseup.net> | 2017-11-01 14:26:45 +0100 |
---|---|---|
committer | cyBerta <cyberta@riseup.net> | 2017-11-01 14:26:45 +0100 |
commit | 957fd3d9928ed86cee22dd97f0ac56ef98eecd2b (patch) | |
tree | c4b1b3116a1be6f56ba2e3a3f347ca4a758bbad8 | |
parent | dac004b0e2fcebe06f39b8d855d6cdae1c5764fa (diff) |
fix instantiation of custom providers to avoid NPEs
-rw-r--r-- | app/src/main/java/se/leap/bitmaskclient/ProviderManager.java | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/app/src/main/java/se/leap/bitmaskclient/ProviderManager.java b/app/src/main/java/se/leap/bitmaskclient/ProviderManager.java index 13ef9b80..abbdeb66 100644 --- a/app/src/main/java/se/leap/bitmaskclient/ProviderManager.java +++ b/app/src/main/java/se/leap/bitmaskclient/ProviderManager.java @@ -26,16 +26,15 @@ public class ProviderManager implements AdapteeCollection<Provider> { public static ProviderManager getInstance(AssetManager assets_manager, File external_files_dir) { if (instance == null) - instance = new ProviderManager(assets_manager); + instance = new ProviderManager(assets_manager, external_files_dir); - if(external_files_dir != null) - instance.addCustomProviders(external_files_dir); return instance; } - public ProviderManager(AssetManager assets_manager) { + public ProviderManager(AssetManager assets_manager, File external_files_dir) { this.assets_manager = assets_manager; addDefaultProviders(assets_manager); + addCustomProviders(external_files_dir); } private void addDefaultProviders(AssetManager assets_manager) { @@ -67,7 +66,7 @@ public class ProviderManager implements AdapteeCollection<Provider> { private void addCustomProviders(File external_files_dir) { this.external_files_dir = external_files_dir; - custom_providers = external_files_dir.isDirectory() ? + custom_providers = external_files_dir != null && external_files_dir.isDirectory() ? providersFromFiles(external_files_dir.list()) : new HashSet<Provider>(); } |