From 2d884f0cae3a4a01ce44feaa00ff5265cb60577b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gonc=CC=A7alo?= <> Date: Sat, 3 Aug 2019 01:45:57 +0100 Subject: [PATCH 1/2] Adding a listener for encryption processing status --- .../fragments/PFLockScreenFragment.java | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/pflockscreen/src/main/java/com/beautycoder/pflockscreen/fragments/PFLockScreenFragment.java b/pflockscreen/src/main/java/com/beautycoder/pflockscreen/fragments/PFLockScreenFragment.java index db35a3f..fa8fb5e 100644 --- a/pflockscreen/src/main/java/com/beautycoder/pflockscreen/fragments/PFLockScreenFragment.java +++ b/pflockscreen/src/main/java/com/beautycoder/pflockscreen/fragments/PFLockScreenFragment.java @@ -65,6 +65,7 @@ public class PFLockScreenFragment extends Fragment { private final PFPinCodeViewModel mPFPinCodeViewModel = new PFPinCodeViewModel(); private View.OnClickListener mOnLeftButtonClickListener = null; + private OnEncryptionInProgressListener mOnEncryptionInProgressListener = null; @Override public void onSaveInstanceState(@NonNull Bundle outState) { @@ -356,6 +357,9 @@ public void onClick(View v) { new Observer>() { @Override public void onChanged(@Nullable PFResult result) { + if (mOnEncryptionInProgressListener != null) { + mOnEncryptionInProgressListener.onEncryptionInProgress(false); + } if (result == null) { return; } @@ -371,6 +375,9 @@ public void onChanged(@Nullable PFResult result) { } } ); + if (mOnEncryptionInProgressListener != null) { + mOnEncryptionInProgressListener.onEncryptionInProgress(true); + } } }; @@ -412,6 +419,10 @@ public void setOnLeftButtonClickListener(View.OnClickListener onLeftButtonClickL this.mOnLeftButtonClickListener = onLeftButtonClickListener; } + public void setOnEncryptionInProgressListener(OnEncryptionInProgressListener onEncryptionInProgressListener) { + this.mOnEncryptionInProgressListener = onEncryptionInProgressListener; + } + /*private void showFingerprintAlertDialog(Context context) { new AlertDialog.Builder(context).setTitle("Fingerprint").setMessage( "Would you like to use fingerprint for future login?") @@ -502,6 +513,20 @@ public interface OnPFLockScreenLoginListener { } + /** + * Callback interface to track when encryption is in progress. You can use this to show a + * progress bar or other loading indicators. + */ + public interface OnEncryptionInProgressListener { + + /** + * Callback method for when encryption has started, i.e. when user taps "Next" button + * @param inProgress true if encryption is in progress, false if it has finished + */ + void onEncryptionInProgress(boolean inProgress); + } + + } From fdf9d0fbdcbea6fa14672ddf6c3104b96751992b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gonc=CC=A7alo?= <> Date: Sat, 3 Aug 2019 02:16:17 +0100 Subject: [PATCH 2/2] Calling callback earlier --- .../pflockscreen/fragments/PFLockScreenFragment.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pflockscreen/src/main/java/com/beautycoder/pflockscreen/fragments/PFLockScreenFragment.java b/pflockscreen/src/main/java/com/beautycoder/pflockscreen/fragments/PFLockScreenFragment.java index fa8fb5e..0907038 100644 --- a/pflockscreen/src/main/java/com/beautycoder/pflockscreen/fragments/PFLockScreenFragment.java +++ b/pflockscreen/src/main/java/com/beautycoder/pflockscreen/fragments/PFLockScreenFragment.java @@ -352,6 +352,9 @@ public void onCodeNotCompleted(String code) { private final View.OnClickListener mOnNextButtonClickListener = new View.OnClickListener() { @Override public void onClick(View v) { + if (mOnEncryptionInProgressListener != null) { + mOnEncryptionInProgressListener.onEncryptionInProgress(true); + } mPFPinCodeViewModel.encodePin(getContext(), mCode).observe( PFLockScreenFragment.this, new Observer>() { @@ -375,9 +378,6 @@ public void onChanged(@Nullable PFResult result) { } } ); - if (mOnEncryptionInProgressListener != null) { - mOnEncryptionInProgressListener.onEncryptionInProgress(true); - } } };