From 0db025ef5bb7ee6216f940e0c4ba02513ade8bb7 Mon Sep 17 00:00:00 2001 From: binsky08 Date: Thu, 25 Aug 2022 03:30:48 +0200 Subject: check if a ProgressDialog is shown before calling dismiss on in Signed-off-by: binsky08 --- .../ResponseHandlers/CredentialAddFileResponseHandler.java | 5 +++-- .../ResponseHandlers/CredentialDeleteResponseHandler.java | 7 ++++--- .../CredentialSaveForNewVaultResponseHandler.java | 7 ++++--- .../ResponseHandlers/CredentialSaveResponseHandler.java | 7 ++++--- .../CustomFieldFileDeleteResponseHandler.java | 5 +++-- .../app/ResponseHandlers/FileDeleteResponseHandler.java | 5 +++-- .../app/ResponseHandlers/VaultDeleteResponseHandler.java | 7 ++++--- .../app/ResponseHandlers/VaultSaveResponseHandler.java | 7 ++++--- .../wolfi/app/passman/activities/PasswordListActivity.java | 14 +++++++------- .../wolfi/app/passman/adapters/CustomFieldEditAdapter.java | 2 +- .../es/wolfi/app/passman/adapters/VaultViewAdapter.java | 4 ++-- app/src/main/java/es/wolfi/utils/ProgressUtils.java | 13 +++++++++++++ 12 files changed, 52 insertions(+), 31 deletions(-) diff --git a/app/src/main/java/es/wolfi/app/ResponseHandlers/CredentialAddFileResponseHandler.java b/app/src/main/java/es/wolfi/app/ResponseHandlers/CredentialAddFileResponseHandler.java index 708aafd..0df4501 100644 --- a/app/src/main/java/es/wolfi/app/ResponseHandlers/CredentialAddFileResponseHandler.java +++ b/app/src/main/java/es/wolfi/app/ResponseHandlers/CredentialAddFileResponseHandler.java @@ -38,6 +38,7 @@ import es.wolfi.app.passman.adapters.FileEditAdapter; import es.wolfi.passman.API.CustomField; import es.wolfi.passman.API.File; import es.wolfi.utils.FileUtils; +import es.wolfi.utils.ProgressUtils; public class CredentialAddFileResponseHandler extends AsyncHttpResponseHandler { @@ -97,7 +98,7 @@ public class CredentialAddFileResponseHandler extends AsyncHttpResponseHandler { } else { Toast.makeText(view.getContext(), R.string.error_occurred, Toast.LENGTH_LONG).show(); } - progress.dismiss(); + ProgressUtils.dismiss(progress); } }); } @@ -111,7 +112,7 @@ public class CredentialAddFileResponseHandler extends AsyncHttpResponseHandler { Toast.makeText(view.getContext(), R.string.error_occurred, Toast.LENGTH_LONG).show(); } }); - progress.dismiss(); + ProgressUtils.dismiss(progress); } @Override diff --git a/app/src/main/java/es/wolfi/app/ResponseHandlers/CredentialDeleteResponseHandler.java b/app/src/main/java/es/wolfi/app/ResponseHandlers/CredentialDeleteResponseHandler.java index 673c666..f4e99e3 100644 --- a/app/src/main/java/es/wolfi/app/ResponseHandlers/CredentialDeleteResponseHandler.java +++ b/app/src/main/java/es/wolfi/app/ResponseHandlers/CredentialDeleteResponseHandler.java @@ -44,6 +44,7 @@ import es.wolfi.app.passman.activities.PasswordListActivity; import es.wolfi.passman.API.Credential; import es.wolfi.passman.API.Vault; import es.wolfi.utils.JSONUtils; +import es.wolfi.utils.ProgressUtils; public class CredentialDeleteResponseHandler extends AsyncHttpResponseHandler { @@ -86,7 +87,7 @@ public class CredentialDeleteResponseHandler extends AsyncHttpResponseHandler { backStackId = fragmentManager.getBackStackEntryAt(backStackCount - 2).getId(); } alreadySaving.set(false); - progress.dismiss(); + ProgressUtils.dismiss(progress); fragmentManager.popBackStack(backStackId, FragmentManager.POP_BACK_STACK_INCLUSIVE); return; } @@ -96,7 +97,7 @@ public class CredentialDeleteResponseHandler extends AsyncHttpResponseHandler { } alreadySaving.set(false); - progress.dismiss(); + ProgressUtils.dismiss(progress); passwordListActivity.runOnUiThread(() -> { Toast.makeText(view.getContext(), R.string.error_occurred, Toast.LENGTH_LONG).show(); }); @@ -105,7 +106,7 @@ public class CredentialDeleteResponseHandler extends AsyncHttpResponseHandler { @Override public void onFailure(int statusCode, cz.msebera.android.httpclient.Header[] headers, byte[] responseBody, Throwable error) { alreadySaving.set(false); - progress.dismiss(); + ProgressUtils.dismiss(progress); String response = ""; if (responseBody != null && responseBody.length > 0) { diff --git a/app/src/main/java/es/wolfi/app/ResponseHandlers/CredentialSaveForNewVaultResponseHandler.java b/app/src/main/java/es/wolfi/app/ResponseHandlers/CredentialSaveForNewVaultResponseHandler.java index 48d24c6..8aa4e7f 100644 --- a/app/src/main/java/es/wolfi/app/ResponseHandlers/CredentialSaveForNewVaultResponseHandler.java +++ b/app/src/main/java/es/wolfi/app/ResponseHandlers/CredentialSaveForNewVaultResponseHandler.java @@ -44,6 +44,7 @@ import es.wolfi.app.passman.R; import es.wolfi.app.passman.activities.PasswordListActivity; import es.wolfi.passman.API.Vault; import es.wolfi.utils.JSONUtils; +import es.wolfi.utils.ProgressUtils; public class CredentialSaveForNewVaultResponseHandler extends AsyncHttpResponseHandler { @@ -94,7 +95,7 @@ public class CredentialSaveForNewVaultResponseHandler extends AsyncHttpResponseH } alreadySaving.set(false); - progress.dismiss(); + ProgressUtils.dismiss(progress); } }); } @@ -116,7 +117,7 @@ public class CredentialSaveForNewVaultResponseHandler extends AsyncHttpResponseH } alreadySaving.set(false); - progress.dismiss(); + ProgressUtils.dismiss(progress); Toast.makeText(view.getContext(), R.string.error_occurred, Toast.LENGTH_LONG).show(); } }); @@ -125,7 +126,7 @@ public class CredentialSaveForNewVaultResponseHandler extends AsyncHttpResponseH @Override public void onFailure(int statusCode, cz.msebera.android.httpclient.Header[] headers, byte[] responseBody, Throwable error) { alreadySaving.set(false); - progress.dismiss(); + ProgressUtils.dismiss(progress); String response = new String(responseBody); new Handler(Looper.getMainLooper()).post(new Runnable() { diff --git a/app/src/main/java/es/wolfi/app/ResponseHandlers/CredentialSaveResponseHandler.java b/app/src/main/java/es/wolfi/app/ResponseHandlers/CredentialSaveResponseHandler.java index 7559005..7c6e95b 100644 --- a/app/src/main/java/es/wolfi/app/ResponseHandlers/CredentialSaveResponseHandler.java +++ b/app/src/main/java/es/wolfi/app/ResponseHandlers/CredentialSaveResponseHandler.java @@ -44,6 +44,7 @@ import es.wolfi.app.passman.activities.PasswordListActivity; import es.wolfi.passman.API.Credential; import es.wolfi.passman.API.Vault; import es.wolfi.utils.JSONUtils; +import es.wolfi.utils.ProgressUtils; public class CredentialSaveResponseHandler extends AsyncHttpResponseHandler { @@ -86,7 +87,7 @@ public class CredentialSaveResponseHandler extends AsyncHttpResponseHandler { } alreadySaving.set(false); - progress.dismiss(); + ProgressUtils.dismiss(progress); fragmentManager.popBackStack(); return; } @@ -96,7 +97,7 @@ public class CredentialSaveResponseHandler extends AsyncHttpResponseHandler { } alreadySaving.set(false); - progress.dismiss(); + ProgressUtils.dismiss(progress); passwordListActivity.runOnUiThread(() -> { Toast.makeText(view.getContext(), R.string.error_occurred, Toast.LENGTH_LONG).show(); }); @@ -105,7 +106,7 @@ public class CredentialSaveResponseHandler extends AsyncHttpResponseHandler { @Override public void onFailure(int statusCode, cz.msebera.android.httpclient.Header[] headers, byte[] responseBody, Throwable error) { alreadySaving.set(false); - progress.dismiss(); + ProgressUtils.dismiss(progress); String response = ""; if (responseBody != null && responseBody.length > 0) { diff --git a/app/src/main/java/es/wolfi/app/ResponseHandlers/CustomFieldFileDeleteResponseHandler.java b/app/src/main/java/es/wolfi/app/ResponseHandlers/CustomFieldFileDeleteResponseHandler.java index 638912b..4c184eb 100644 --- a/app/src/main/java/es/wolfi/app/ResponseHandlers/CustomFieldFileDeleteResponseHandler.java +++ b/app/src/main/java/es/wolfi/app/ResponseHandlers/CustomFieldFileDeleteResponseHandler.java @@ -34,6 +34,7 @@ import java.util.List; import es.wolfi.app.passman.R; import es.wolfi.app.passman.adapters.CustomFieldEditAdapter; import es.wolfi.passman.API.CustomField; +import es.wolfi.utils.ProgressUtils; public class CustomFieldFileDeleteResponseHandler extends AsyncHttpResponseHandler { @@ -62,7 +63,7 @@ public class CustomFieldFileDeleteResponseHandler extends AsyncHttpResponseHandl } }); } - progress.dismiss(); + ProgressUtils.dismiss(progress); } @Override @@ -74,7 +75,7 @@ public class CustomFieldFileDeleteResponseHandler extends AsyncHttpResponseHandl Toast.makeText(progress.getContext(), R.string.error_occurred, Toast.LENGTH_LONG).show(); } }); - progress.dismiss(); + ProgressUtils.dismiss(progress); } @Override diff --git a/app/src/main/java/es/wolfi/app/ResponseHandlers/FileDeleteResponseHandler.java b/app/src/main/java/es/wolfi/app/ResponseHandlers/FileDeleteResponseHandler.java index eabea2e..10a26a9 100644 --- a/app/src/main/java/es/wolfi/app/ResponseHandlers/FileDeleteResponseHandler.java +++ b/app/src/main/java/es/wolfi/app/ResponseHandlers/FileDeleteResponseHandler.java @@ -35,6 +35,7 @@ import java.util.List; import es.wolfi.app.passman.adapters.FileEditAdapter; import es.wolfi.app.passman.R; import es.wolfi.passman.API.File; +import es.wolfi.utils.ProgressUtils; public class FileDeleteResponseHandler extends AsyncHttpResponseHandler { @@ -65,7 +66,7 @@ public class FileDeleteResponseHandler extends AsyncHttpResponseHandler { } }); } - progress.dismiss(); + ProgressUtils.dismiss(progress); } @Override @@ -77,7 +78,7 @@ public class FileDeleteResponseHandler extends AsyncHttpResponseHandler { Toast.makeText(view.getContext(), R.string.error_occurred, Toast.LENGTH_LONG).show(); } }); - progress.dismiss(); + ProgressUtils.dismiss(progress); } @Override diff --git a/app/src/main/java/es/wolfi/app/ResponseHandlers/VaultDeleteResponseHandler.java b/app/src/main/java/es/wolfi/app/ResponseHandlers/VaultDeleteResponseHandler.java index 384c849..9fe5080 100644 --- a/app/src/main/java/es/wolfi/app/ResponseHandlers/VaultDeleteResponseHandler.java +++ b/app/src/main/java/es/wolfi/app/ResponseHandlers/VaultDeleteResponseHandler.java @@ -43,6 +43,7 @@ import es.wolfi.app.passman.R; import es.wolfi.app.passman.activities.PasswordListActivity; import es.wolfi.passman.API.Vault; import es.wolfi.utils.JSONUtils; +import es.wolfi.utils.ProgressUtils; public class VaultDeleteResponseHandler extends AsyncHttpResponseHandler { @@ -85,7 +86,7 @@ public class VaultDeleteResponseHandler extends AsyncHttpResponseHandler { Objects.requireNonNull(passwordListActivity).deleteVaultInCurrentLocalVaultList(vault); alreadySaving.set(false); - progress.dismiss(); + ProgressUtils.dismiss(progress); fragmentManager.popBackStack(); } return; @@ -96,7 +97,7 @@ public class VaultDeleteResponseHandler extends AsyncHttpResponseHandler { } alreadySaving.set(false); - progress.dismiss(); + ProgressUtils.dismiss(progress); Toast.makeText(view.getContext(), R.string.error_occurred, Toast.LENGTH_LONG).show(); } }); @@ -105,7 +106,7 @@ public class VaultDeleteResponseHandler extends AsyncHttpResponseHandler { @Override public void onFailure(int statusCode, cz.msebera.android.httpclient.Header[] headers, byte[] responseBody, Throwable error) { alreadySaving.set(false); - progress.dismiss(); + ProgressUtils.dismiss(progress); String response = ""; if (responseBody != null && responseBody.length > 0) { diff --git a/app/src/main/java/es/wolfi/app/ResponseHandlers/VaultSaveResponseHandler.java b/app/src/main/java/es/wolfi/app/ResponseHandlers/VaultSaveResponseHandler.java index 7c8ee0d..5276966 100644 --- a/app/src/main/java/es/wolfi/app/ResponseHandlers/VaultSaveResponseHandler.java +++ b/app/src/main/java/es/wolfi/app/ResponseHandlers/VaultSaveResponseHandler.java @@ -43,6 +43,7 @@ import es.wolfi.app.passman.activities.PasswordListActivity; import es.wolfi.passman.API.Credential; import es.wolfi.passman.API.Vault; import es.wolfi.utils.JSONUtils; +import es.wolfi.utils.ProgressUtils; public class VaultSaveResponseHandler extends AsyncHttpResponseHandler { @@ -83,7 +84,7 @@ public class VaultSaveResponseHandler extends AsyncHttpResponseHandler { localVaultInstance.setName(vault.getName()); } alreadySaving.set(false); - progress.dismiss(); + ProgressUtils.dismiss(progress); fragmentManager.popBackStack(); return; } else { @@ -124,7 +125,7 @@ public class VaultSaveResponseHandler extends AsyncHttpResponseHandler { } alreadySaving.set(false); - progress.dismiss(); + ProgressUtils.dismiss(progress); Toast.makeText(view.getContext(), R.string.error_occurred, Toast.LENGTH_LONG).show(); } }); @@ -133,7 +134,7 @@ public class VaultSaveResponseHandler extends AsyncHttpResponseHandler { @Override public void onFailure(int statusCode, cz.msebera.android.httpclient.Header[] headers, byte[] responseBody, Throwable error) { alreadySaving.set(false); - progress.dismiss(); + ProgressUtils.dismiss(progress); String response = ""; if (responseBody != null && responseBody.length > 0) { 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 61bad4b..07e2380 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 @@ -165,7 +165,7 @@ public class PasswordListActivity extends AppCompatActivity implements @Override public void onCompleted(Exception e, Boolean loggedIn) { // To dismiss the dialog - progress.dismiss(); + ProgressUtils.dismiss(progress); attachClipboardListener(); @@ -267,7 +267,7 @@ public class PasswordListActivity extends AppCompatActivity implements progress.show(); Vault.getVaults(this, (e, result) -> { - progress.dismiss(); + ProgressUtils.dismiss(progress); if (e != null) { // Not logged in, restart activity if (Objects.equals(e.getMessage(), "401")) { @@ -310,13 +310,13 @@ public class PasswordListActivity extends AppCompatActivity implements } else { showUnlockVault(); } - progress.dismiss(); + ProgressUtils.dismiss(progress); } else { final AppCompatActivity self = this; Vault.getVault(this, vault.guid, new FutureCallback() { @Override public void onCompleted(Exception e, Vault result) { - progress.dismiss(); + ProgressUtils.dismiss(progress); if (e != null) { // Not logged in, restart activity if (e.getMessage() != null && e.getMessage().equals("401")) { @@ -489,7 +489,7 @@ public class PasswordListActivity extends AppCompatActivity implements Vault.getVault(this, vault.guid, new FutureCallback() { @Override public void onCompleted(Exception e, Vault result) { - progress.dismiss(); + ProgressUtils.dismiss(progress); if (e != null) { // Not logged in, restart activity if (e.getMessage() != null && e.getMessage().equals("401")) { @@ -565,7 +565,7 @@ public class PasswordListActivity extends AppCompatActivity implements Core.checkLogin(this, false, new FutureCallback() { @Override public void onCompleted(Exception e, Boolean loggedIn) { - progress.dismiss(); + ProgressUtils.dismiss(progress); if (loggedIn) { showVaults(); @@ -736,7 +736,7 @@ public class PasswordListActivity extends AppCompatActivity implements Toast.makeText(getApplicationContext(), getString(R.string.error_downloading_file), Toast.LENGTH_SHORT).show(); Log.e("FileSave", getString(R.string.error_downloading_file)); } - progress.dismiss(); + ProgressUtils.dismiss(progress); } }; item.download(getApplicationContext(), cb); diff --git a/app/src/main/java/es/wolfi/app/passman/adapters/CustomFieldEditAdapter.java b/app/src/main/java/es/wolfi/app/passman/adapters/CustomFieldEditAdapter.java index 0f949dc..5f21f08 100644 --- a/app/src/main/java/es/wolfi/app/passman/adapters/CustomFieldEditAdapter.java +++ b/app/src/main/java/es/wolfi/app/passman/adapters/CustomFieldEditAdapter.java @@ -194,7 +194,7 @@ public class CustomFieldEditAdapter extends RecyclerView.Adapter() { @Override public void onCompleted(Exception e, Vault result) { - progress.dismiss(); + ProgressUtils.dismiss(progress); if (e != null) { Log.e(TAG, "Unknown network error", e); @@ -150,7 +150,7 @@ public class VaultViewAdapter extends RecyclerView.Adapter() { @Override public void onCompleted(Exception e, Vault result) { - progress.dismiss(); + ProgressUtils.dismiss(progress); if (e != null) { Log.e(TAG, "Unknown network error", e); diff --git a/app/src/main/java/es/wolfi/utils/ProgressUtils.java b/app/src/main/java/es/wolfi/utils/ProgressUtils.java index 647b660..af9c3a0 100644 --- a/app/src/main/java/es/wolfi/utils/ProgressUtils.java +++ b/app/src/main/java/es/wolfi/utils/ProgressUtils.java @@ -56,4 +56,17 @@ public class ProgressUtils { return progress; } + + /** + * Checks if a dialog is shown and calls dismiss() on it if possible + * + * @param progress progress dialog to dismiss + */ + public static void dismiss(ProgressDialog progress) { + if (progress != null) { + if (progress.isShowing()) { + progress.dismiss(); + } + } + } } -- cgit v1.2.3