diff --git a/app/src/main/java/com/beemdevelopment/aegis/ui/AegisActivity.java b/app/src/main/java/com/beemdevelopment/aegis/ui/AegisActivity.java index acc254da..d5cb4cb0 100644 --- a/app/src/main/java/com/beemdevelopment/aegis/ui/AegisActivity.java +++ b/app/src/main/java/com/beemdevelopment/aegis/ui/AegisActivity.java @@ -17,6 +17,7 @@ import androidx.annotation.CallSuper; import androidx.appcompat.app.AppCompatActivity; public abstract class AegisActivity extends AppCompatActivity implements AegisApplication.LockListener { + private boolean _resumed; private AegisApplication _app; @Override @@ -53,6 +54,18 @@ public abstract class AegisActivity extends AppCompatActivity implements AegisAp super.onDestroy(); } + @Override + protected void onResume() { + super.onResume(); + _resumed = true; + } + + @Override + protected void onPause() { + super.onPause(); + _resumed = false; + } + @CallSuper @Override public void onLocked() { @@ -84,6 +97,13 @@ public abstract class AegisActivity extends AppCompatActivity implements AegisAp } } + /** + * Reports whether this Activity has been resumed. (i.e. onResume was called) + */ + protected boolean isOpen() { + return _resumed; + } + /** * Reports whether this Activity instance has become an orphan. This can happen if * the vault was locked by an external trigger while the Activity was still open. diff --git a/app/src/main/java/com/beemdevelopment/aegis/ui/MainActivity.java b/app/src/main/java/com/beemdevelopment/aegis/ui/MainActivity.java index d0467fd5..2aa377c8 100644 --- a/app/src/main/java/com/beemdevelopment/aegis/ui/MainActivity.java +++ b/app/src/main/java/com/beemdevelopment/aegis/ui/MainActivity.java @@ -489,7 +489,6 @@ public class MainActivity extends AegisActivity implements EntryListView.Listene return true; case R.id.action_lock: _app.lock(); - startAuthActivity(); return true; default: if (item.getGroupId() == R.id.action_filter_group) { @@ -615,6 +614,11 @@ public class MainActivity extends AegisActivity implements EntryListView.Listene public void onLocked() { _entryListView.clearEntries(); _loaded = false; + + if (isOpen()) { + startAuthActivity(); + } + super.onLocked(); } }