Update last authentication on user interaction

This commit is contained in:
M66B 2019-07-24 07:38:34 +02:00
parent cab37caac9
commit 9d01825146
2 changed files with 17 additions and 2 deletions

View File

@ -140,11 +140,26 @@ abstract class ActivityBase extends AppCompatActivity implements SharedPreferenc
super.onConfigurationChanged(newConfig);
}
@Override
public void onUserInteraction() {
Log.i("User interaction");
if (!this.getClass().equals(ActivityMain.class) && Helper.shouldAuthenticate(this)) {
finish();
startActivity(new Intent(this, ActivityMain.class));
}
}
@Override
protected void onUserLeaveHint() {
Log.i("User leaving");
}
@Override
protected void onStop() {
super.onStop();
PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
if (pm != null && !pm.isInteractive()) {
Log.i("Stop with screen off");
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);

View File

@ -697,11 +697,11 @@ public class Helper {
static boolean shouldAuthenticate(Context context) {
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
boolean biometrics = prefs.getBoolean("biometrics", false);
long biometrics_timeout = prefs.getInt("biometrics_timeout", 2) * 60 * 1000L;
if (biometrics) {
long now = new Date().getTime();
long last_authentication = prefs.getLong("last_authentication", 0);
long biometrics_timeout = prefs.getInt("biometrics_timeout", 2) * 60 * 1000L;
Log.i("Authentication valid until=" + new Date(last_authentication + biometrics_timeout));
if (last_authentication + biometrics_timeout < now)