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:
authorMarcos Zuriaga <wolfi@wolfi.es>2022-07-03 21:10:24 +0300
committerMarcos Zuriaga <wolfi@wolfi.es>2022-07-03 21:10:24 +0300
commita10d695a8a1f9896dfd6012b0f23056d9898a646 (patch)
treef82e3b8918b4735187614a1a0ef8c0da2ce9818d
parent6d45b5871e73992f321b00139e6792b7c31d8263 (diff)
parent0c9dc41ef40a565a8f846366ac9e9bcb571815c3 (diff)
Merge branch 'fix-null-pointers'
-rw-r--r--app/src/main/java/es/wolfi/app/passman/activities/LoginActivity.java4
-rw-r--r--app/src/main/java/es/wolfi/app/passman/activities/PasswordListActivity.java7
-rw-r--r--app/src/main/java/es/wolfi/app/passman/fragments/SettingsFragment.java37
-rw-r--r--app/src/main/java/es/wolfi/app/passman/fragments/VaultFragment.java5
-rw-r--r--app/src/main/java/es/wolfi/app/passman/fragments/VaultLockScreenFragment.java1
-rw-r--r--app/src/main/java/es/wolfi/passman/API/Core.java30
6 files changed, 54 insertions, 30 deletions
diff --git a/app/src/main/java/es/wolfi/app/passman/activities/LoginActivity.java b/app/src/main/java/es/wolfi/app/passman/activities/LoginActivity.java
index fa78add..c6f3ceb 100644
--- a/app/src/main/java/es/wolfi/app/passman/activities/LoginActivity.java
+++ b/app/src/main/java/es/wolfi/app/passman/activities/LoginActivity.java
@@ -42,6 +42,7 @@ import butterknife.ButterKnife;
import butterknife.OnClick;
import es.wolfi.app.passman.R;
import es.wolfi.app.passman.SettingValues;
+import es.wolfi.app.passman.SettingsCache;
import es.wolfi.app.passman.SingleTon;
import es.wolfi.passman.API.Core;
import es.wolfi.utils.KeyStoreUtils;
@@ -69,7 +70,8 @@ public class LoginActivity extends AppCompatActivity {
setContentView(R.layout.activity_login);
ButterKnife.bind(this);
- settings = PreferenceManager.getDefaultSharedPreferences(this);
+ new SettingsCache().loadSharedPreferences(getBaseContext());
+ settings = SettingsCache.getSharedPreferences();
KeyStoreUtils.initialize(settings);
ton = SingleTon.getTon();
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 861ac0d..5fee3fb 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();
@@ -354,7 +357,7 @@ public class PasswordListActivity extends AppCompatActivity implements
getSupportFragmentManager()
.beginTransaction()
.setCustomAnimations(R.anim.slide_in_right, R.anim.slide_out_left, R.anim.slide_out_left, R.anim.slide_out_left)
- .replace(R.id.content_password_list, new VaultLockScreenFragment(), "vault")
+ .replace(R.id.content_password_list, VaultLockScreenFragment.newInstance(v), "vault")
.addToBackStack(null)
.commit();
}
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;
+ }
}
}
}
diff --git a/app/src/main/java/es/wolfi/app/passman/fragments/VaultFragment.java b/app/src/main/java/es/wolfi/app/passman/fragments/VaultFragment.java
index ce4e54c..922c076 100644
--- a/app/src/main/java/es/wolfi/app/passman/fragments/VaultFragment.java
+++ b/app/src/main/java/es/wolfi/app/passman/fragments/VaultFragment.java
@@ -97,7 +97,10 @@ public class VaultFragment extends Fragment {
}
HashMap<String, Vault> vaults = (HashMap<String, Vault>) SingleTon.getTon().getExtra(SettingValues.VAULTS.toString());
- ArrayList<Vault> l = new ArrayList<Vault>(vaults.values());
+ ArrayList<Vault> l = new ArrayList<Vault>();
+ if (vaults != null) {
+ l = new ArrayList<Vault>(vaults.values());
+ }
recyclerView.setAdapter(new VaultViewAdapter(l, mListener, getParentFragmentManager()));
view.findViewById(R.id.add_vault_button).setOnClickListener(new View.OnClickListener() {
diff --git a/app/src/main/java/es/wolfi/app/passman/fragments/VaultLockScreenFragment.java b/app/src/main/java/es/wolfi/app/passman/fragments/VaultLockScreenFragment.java
index 8a4a612..bb157e9 100644
--- a/app/src/main/java/es/wolfi/app/passman/fragments/VaultLockScreenFragment.java
+++ b/app/src/main/java/es/wolfi/app/passman/fragments/VaultLockScreenFragment.java
@@ -111,7 +111,6 @@ public class VaultLockScreenFragment extends Fragment {
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
ButterKnife.bind(this, view);
- vault = (Vault) SingleTon.getTon().getExtra(SettingValues.ACTIVE_VAULT.toString());
Log.e("VaultLockScreenFragment", "Vault guid: ".concat(vault.guid));
vault_name.setText(vault.name);
}
diff --git a/app/src/main/java/es/wolfi/passman/API/Core.java b/app/src/main/java/es/wolfi/passman/API/Core.java
index 30b9321..5acf020 100644
--- a/app/src/main/java/es/wolfi/passman/API/Core.java
+++ b/app/src/main/java/es/wolfi/passman/API/Core.java
@@ -111,7 +111,12 @@ public abstract class Core {
client.setResponseTimeout(getResponseTimeout(c));
client.setMaxRetriesAndTimeout(getConnectRetries(c), getConnectTimeout(c));
client.addHeader("Content-Type", JSON_CONTENT_TYPE);
- client.get(host_internal.concat(endpoint), responseHandler);
+
+ try {
+ client.get(host_internal.concat(endpoint), responseHandler);
+ } catch (Exception e) {
+ responseHandler.onFailure(0, null, null, e);
+ }
}
public static void requestAPIGET(Context c, String endpoint, final FutureCallback<String> callback) {
@@ -122,7 +127,12 @@ public abstract class Core {
client.setResponseTimeout(getResponseTimeout(c));
client.setMaxRetriesAndTimeout(getConnectRetries(c), getConnectTimeout(c));
client.addHeader("Content-Type", JSON_CONTENT_TYPE);
- client.get(host.concat(endpoint), responseHandler);
+
+ try {
+ client.get(host.concat(endpoint), responseHandler);
+ } catch (Exception e) {
+ responseHandler.onFailure(0, null, null, e);
+ }
}
public static void requestAPI(Context c, String endpoint, JSONObject jsonPostData, String requestType, final AsyncHttpResponseHandler responseHandler)
@@ -139,12 +149,16 @@ public abstract class Core {
StringEntity entity = new StringEntity(jsonPostData.toString());
- if (requestType.equals("POST")) {
- client.post(c, url.toString(), entity, JSON_CONTENT_TYPE, responseHandler);
- } else if (requestType.equals("PATCH")) {
- client.patch(c, url.toString(), entity, JSON_CONTENT_TYPE, responseHandler);
- } else if (requestType.equals("DELETE")) {
- client.delete(c, url.toString(), entity, JSON_CONTENT_TYPE, responseHandler);
+ try {
+ if (requestType.equals("POST")) {
+ client.post(c, url.toString(), entity, JSON_CONTENT_TYPE, responseHandler);
+ } else if (requestType.equals("PATCH")) {
+ client.patch(c, url.toString(), entity, JSON_CONTENT_TYPE, responseHandler);
+ } else if (requestType.equals("DELETE")) {
+ client.delete(c, url.toString(), entity, JSON_CONTENT_TYPE, responseHandler);
+ }
+ } catch (Exception e) {
+ responseHandler.onFailure(0, null, null, e);
}
}