diff options
author | binsky08 <timo@binsky.org> | 2022-06-24 21:13:42 +0300 |
---|---|---|
committer | binsky08 <timo@binsky.org> | 2022-06-24 21:13:42 +0300 |
commit | 6ddb48ebfadbbe0b2e79141643d64a4bc0d6e1a9 (patch) | |
tree | ba6d14db63964110d2393fc2dff99c13b31c0661 | |
parent | 350517085d11f17f384528a219dc3bae8ac589b8 (diff) |
try to avoid NullPointerException after getting vaults HashMap from ton
Signed-off-by: binsky08 <timo@binsky.org>
-rw-r--r-- | app/src/main/java/es/wolfi/app/passman/activities/PasswordListActivity.java | 5 | ||||
-rw-r--r-- | app/src/main/java/es/wolfi/app/passman/fragments/SettingsFragment.java | 37 |
2 files changed, 24 insertions, 18 deletions
diff --git a/app/src/main/java/es/wolfi/app/passman/activities/PasswordListActivity.java b/app/src/main/java/es/wolfi/app/passman/activities/PasswordListActivity.java index 9afb070..21c3399 100644 --- a/app/src/main/java/es/wolfi/app/passman/activities/PasswordListActivity.java +++ b/app/src/main/java/es/wolfi/app/passman/activities/PasswordListActivity.java @@ -332,7 +332,10 @@ public class PasswordListActivity extends AppCompatActivity implements } // Update the vault record to avoid future loads - ((HashMap<String, Vault>) ton.getExtra(SettingValues.VAULTS.toString())).put(result.guid, result); + HashMap<String, Vault> vaults = (HashMap<String, Vault>) ton.getExtra(SettingValues.VAULTS.toString()); + if (vaults != null) { + vaults.put(result.guid, result); + } ton.addExtra(SettingValues.ACTIVE_VAULT.toString(), result); showActiveVault(); diff --git a/app/src/main/java/es/wolfi/app/passman/fragments/SettingsFragment.java b/app/src/main/java/es/wolfi/app/passman/fragments/SettingsFragment.java index e9e0b09..29fd1da 100644 --- a/app/src/main/java/es/wolfi/app/passman/fragments/SettingsFragment.java +++ b/app/src/main/java/es/wolfi/app/passman/fragments/SettingsFragment.java @@ -180,12 +180,13 @@ public class SettingsFragment extends Fragment { enable_credential_list_icons_switch.setChecked(settings.getBoolean(SettingValues.ENABLE_CREDENTIAL_LIST_ICONS.toString(), true)); enable_offline_cache_switch.setChecked(settings.getBoolean(SettingValues.ENABLE_OFFLINE_CACHE.toString(), true)); - if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) { + Set<Map.Entry<String, Vault>> vaults = getVaultsEntrySet(); + if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O && vaults != null) { String last_selected_guid = ""; if (settings.getString(SettingValues.AUTOFILL_VAULT_GUID.toString(), null) != null) { last_selected_guid = settings.getString(SettingValues.AUTOFILL_VAULT_GUID.toString(), null); } - Set<Map.Entry<String, Vault>> vaults = getVaultsEntrySet(); + String[] vault_names = new String[vaults.size() + 1]; vault_names[0] = getContext().getString(R.string.automatically); int i = 1; @@ -215,7 +216,7 @@ public class SettingsFragment extends Fragment { private Set<Map.Entry<String, Vault>> getVaultsEntrySet() { HashMap<String, Vault> vaults = (HashMap<String, Vault>) SingleTon.getTon().getExtra(SettingValues.VAULTS.toString()); - return vaults.entrySet(); + return vaults != null ? vaults.entrySet() : null; } @Override @@ -265,22 +266,24 @@ public class SettingsFragment extends Fragment { settings.edit().putString(SettingValues.AUTOFILL_VAULT_GUID.toString(), "").commit(); } else { Set<Map.Entry<String, Vault>> vaults = getVaultsEntrySet(); - for (Map.Entry<String, Vault> vault_entry : vaults) { - if (vault_entry.getValue().name.equals(default_autofill_vault.getSelectedItem().toString())) { - ton.addExtra(SettingValues.AUTOFILL_VAULT_GUID.toString(), vault_entry.getValue().guid); - settings.edit().putString(SettingValues.AUTOFILL_VAULT_GUID.toString(), vault_entry.getValue().guid).commit(); - - Vault.getVault(getContext(), vault_entry.getValue().guid, new FutureCallback<Vault>() { - @Override - public void onCompleted(Exception e, Vault result) { - if (e != null) { - return; + if (vaults != null) { + for (Map.Entry<String, Vault> vault_entry : vaults) { + if (vault_entry.getValue().name.equals(default_autofill_vault.getSelectedItem().toString())) { + ton.addExtra(SettingValues.AUTOFILL_VAULT_GUID.toString(), vault_entry.getValue().guid); + settings.edit().putString(SettingValues.AUTOFILL_VAULT_GUID.toString(), vault_entry.getValue().guid).commit(); + + Vault.getVault(getContext(), vault_entry.getValue().guid, new FutureCallback<Vault>() { + @Override + public void onCompleted(Exception e, Vault result) { + if (e != null) { + return; + } + Vault.updateAutofillVault(result, settings); } - Vault.updateAutofillVault(result, settings); - } - }); + }); - break; + break; + } } } } |