From 5e372c4afa580e4c865f02e17b5deb455062c28e Mon Sep 17 00:00:00 2001 From: M66B Date: Thu, 11 Jul 2019 08:10:33 +0200 Subject: [PATCH] Simplified screen off detection --- .../java/eu/faircode/email/ActivityBase.java | 29 +++++++++---------- 1 file changed, 13 insertions(+), 16 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/ActivityBase.java b/app/src/main/java/eu/faircode/email/ActivityBase.java index f9cd2f9321..6d6e934d27 100644 --- a/app/src/main/java/eu/faircode/email/ActivityBase.java +++ b/app/src/main/java/eu/faircode/email/ActivityBase.java @@ -20,13 +20,12 @@ package eu.faircode.email; */ import android.Manifest; -import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; -import android.content.IntentFilter; import android.content.SharedPreferences; import android.content.res.Configuration; import android.os.Bundle; +import android.os.PowerManager; import androidx.annotation.Nullable; import androidx.appcompat.app.AppCompatActivity; @@ -89,8 +88,6 @@ abstract class ActivityBase extends AppCompatActivity implements SharedPreferenc prefs.registerOnSharedPreferenceChangeListener(this); - registerReceiver(onScreenOff, new IntentFilter(Intent.ACTION_SCREEN_OFF)); - super.onCreate(savedInstanceState); } @@ -143,10 +140,21 @@ abstract class ActivityBase extends AppCompatActivity implements SharedPreferenc super.onConfigurationChanged(newConfig); } + @Override + protected void onStop() { + super.onStop(); + PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE); + + if (pm != null && !pm.isInteractive()) { + Log.i("Stop with screen off"); + SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(ActivityBase.this); + prefs.edit().remove("last_authentication").apply(); + } + } + @Override protected void onDestroy() { Log.i("Destroy " + this.getClass().getName()); - unregisterReceiver(onScreenOff); PreferenceManager.getDefaultSharedPreferences(this).unregisterOnSharedPreferenceChangeListener(this); super.onDestroy(); } @@ -185,17 +193,6 @@ abstract class ActivityBase extends AppCompatActivity implements SharedPreferenc finish(); } - private BroadcastReceiver onScreenOff = new BroadcastReceiver() { - @Override - public void onReceive(Context context, Intent intent) { - Log.i(intent.toString()); - Log.logExtras(intent); - - SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(ActivityBase.this); - prefs.edit().remove("last_authentication").apply(); - } - }; - public boolean hasPermission(String name) { return Helper.hasPermission(this, name); }