Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/passman-android.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbinsky08 <timo@binsky.org>2022-06-24 21:13:42 +0300
committerbinsky08 <timo@binsky.org>2022-06-24 21:13:42 +0300
commit6ddb48ebfadbbe0b2e79141643d64a4bc0d6e1a9 (patch)
treeba6d14db63964110d2393fc2dff99c13b31c0661
parent350517085d11f17f384528a219dc3bae8ac589b8 (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.java5
-rw-r--r--app/src/main/java/es/wolfi/app/passman/fragments/SettingsFragment.java37
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;
+ }
}
}
}