diff --git a/app/src/main/java/org/thoughtcrime/securesms/PassphrasePromptActivity.java b/app/src/main/java/org/thoughtcrime/securesms/PassphrasePromptActivity.java index 6f3f0fe19..ab27c327f 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/PassphrasePromptActivity.java +++ b/app/src/main/java/org/thoughtcrime/securesms/PassphrasePromptActivity.java @@ -35,7 +35,6 @@ import android.view.MenuInflater; import android.view.MenuItem; import android.view.View; import android.view.View.OnClickListener; -import android.view.WindowManager; import android.view.animation.Animation; import android.view.animation.BounceInterpolator; import android.view.animation.TranslateAnimation; @@ -51,6 +50,7 @@ import androidx.biometric.BiometricManager; import androidx.biometric.BiometricManager.Authenticators; import androidx.biometric.BiometricPrompt; +import org.signal.core.util.ThreadUtil; import org.signal.core.util.logging.Log; import org.thoughtcrime.securesms.animation.AnimationCompleteListener; import org.thoughtcrime.securesms.components.AnimatingToggle; @@ -98,13 +98,16 @@ public class PassphrasePromptActivity extends PassphraseActivity { private boolean hadFailure; private boolean alreadyShown; + private final Runnable resumeScreenLockRunnable = () -> { + resumeScreenLock(!alreadyShown); + alreadyShown = true; + }; + @Override public void onCreate(Bundle savedInstanceState) { Log.i(TAG, "onCreate()"); dynamicTheme.onCreate(this); dynamicLanguage.onCreate(this); - getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); - getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION); super.onCreate(savedInstanceState); setContentView(R.layout.prompt_passphrase_activity); @@ -129,11 +132,20 @@ public class PassphrasePromptActivity extends PassphraseActivity { setLockTypeVisibility(); if (TextSecurePreferences.isScreenLockEnabled(this) && !authenticated && !hadFailure) { - resumeScreenLock(!alreadyShown); - alreadyShown = true; + ThreadUtil.postToMain(resumeScreenLockRunnable); } hadFailure = false; + + fingerprintPrompt.setImageResource(R.drawable.ic_fingerprint_white_48dp); + fingerprintPrompt.getBackground().setColorFilter(getResources().getColor(R.color.signal_accent_primary), PorterDuff.Mode.SRC_IN); + } + + @Override + public void onPause() { + super.onPause(); + ThreadUtil.cancelRunnableOnMain(resumeScreenLockRunnable); + biometricPrompt.cancelAuthentication(); } @Override @@ -388,9 +400,6 @@ public class PassphrasePromptActivity extends PassphraseActivity { @Override public void onAnimationEnd(Animator animation) { handleAuthenticated(); - - fingerprintPrompt.setImageResource(R.drawable.ic_fingerprint_white_48dp); - fingerprintPrompt.getBackground().setColorFilter(getResources().getColor(R.color.core_ultramarine), PorterDuff.Mode.SRC_IN); } }).start(); } @@ -412,7 +421,7 @@ public class PassphrasePromptActivity extends PassphraseActivity { @Override public void onAnimationEnd(Animation animation) { fingerprintPrompt.setImageResource(R.drawable.ic_fingerprint_white_48dp); - fingerprintPrompt.getBackground().setColorFilter(getResources().getColor(R.color.core_ultramarine), PorterDuff.Mode.SRC_IN); + fingerprintPrompt.getBackground().setColorFilter(getResources().getColor(R.color.signal_accent_primary), PorterDuff.Mode.SRC_IN); } @Override diff --git a/app/src/main/res/layout/prompt_passphrase_activity.xml b/app/src/main/res/layout/prompt_passphrase_activity.xml index f92238770..8a251b423 100644 --- a/app/src/main/res/layout/prompt_passphrase_activity.xml +++ b/app/src/main/res/layout/prompt_passphrase_activity.xml @@ -6,7 +6,8 @@ android:id="@+id/prompt_layout" android:layout_width="match_parent" android:layout_height="match_parent" - android:orientation="vertical"> + android:orientation="vertical" + android:fitsSystemWindows="true"> @color/signal_text_toolbar_subtitle -