diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index ceff09b5..671a6dd3 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -97,7 +97,6 @@ - diff --git a/app/src/main/java/com/beemdevelopment/aegis/AegisApplicationBase.java b/app/src/main/java/com/beemdevelopment/aegis/AegisApplicationBase.java index 0f22257b..d6531541 100644 --- a/app/src/main/java/com/beemdevelopment/aegis/AegisApplicationBase.java +++ b/app/src/main/java/com/beemdevelopment/aegis/AegisApplicationBase.java @@ -4,6 +4,7 @@ import android.app.Application; import android.app.NotificationChannel; import android.app.NotificationManager; import android.content.Intent; +import android.content.IntentFilter; import android.content.pm.ShortcutInfo; import android.content.pm.ShortcutManager; import android.graphics.drawable.Icon; @@ -11,11 +12,13 @@ import android.os.Build; import androidx.annotation.NonNull; import androidx.annotation.RequiresApi; +import androidx.core.content.ContextCompat; import androidx.lifecycle.Lifecycle; import androidx.lifecycle.LifecycleEventObserver; import androidx.lifecycle.LifecycleOwner; import androidx.lifecycle.ProcessLifecycleOwner; +import com.beemdevelopment.aegis.receivers.VaultLockReceiver; import com.beemdevelopment.aegis.ui.MainActivity; import com.beemdevelopment.aegis.util.IOUtils; import com.beemdevelopment.aegis.vault.VaultManager; @@ -48,6 +51,10 @@ public abstract class AegisApplicationBase extends Application { Iconics.init(this); Iconics.registerFont(new MaterialDesignIconic()); + VaultLockReceiver lockReceiver = new VaultLockReceiver(); + IntentFilter intentFilter = new IntentFilter(Intent.ACTION_SCREEN_OFF); + ContextCompat.registerReceiver(this, lockReceiver, intentFilter, ContextCompat.RECEIVER_NOT_EXPORTED); + // lock the app if the user moves the application to the background ProcessLifecycleOwner.get().getLifecycle().addObserver(new AppLifecycleObserver()); diff --git a/app/src/main/java/com/beemdevelopment/aegis/receivers/VaultLockReceiver.java b/app/src/main/java/com/beemdevelopment/aegis/receivers/VaultLockReceiver.java index 75079d1a..aada5b2b 100644 --- a/app/src/main/java/com/beemdevelopment/aegis/receivers/VaultLockReceiver.java +++ b/app/src/main/java/com/beemdevelopment/aegis/receivers/VaultLockReceiver.java @@ -22,8 +22,9 @@ public class VaultLockReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { - if (!intent.getAction().equals(ACTION_LOCK_VAULT) - && !intent.getAction().equals(Intent.ACTION_SCREEN_OFF)) { + if (intent.getAction() == null + || (!intent.getAction().equals(ACTION_LOCK_VAULT) + && !intent.getAction().equals(Intent.ACTION_SCREEN_OFF))) { return; } diff --git a/app/src/main/java/com/beemdevelopment/aegis/services/NotificationService.java b/app/src/main/java/com/beemdevelopment/aegis/services/NotificationService.java index 65b7a0ca..ed274a94 100644 --- a/app/src/main/java/com/beemdevelopment/aegis/services/NotificationService.java +++ b/app/src/main/java/com/beemdevelopment/aegis/services/NotificationService.java @@ -29,14 +29,14 @@ public class NotificationService extends Service { @SuppressLint("LaunchActivityFromNotification") public void serviceMethod() { - Intent intent = new Intent(this, VaultLockReceiver.class); - intent.setAction(VaultLockReceiver.ACTION_LOCK_VAULT); - intent.setPackage(BuildConfig.APPLICATION_ID); - int flags = PendingIntent.FLAG_ONE_SHOT; if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { flags |= PendingIntent.FLAG_IMMUTABLE; } + + Intent intent = new Intent(this, VaultLockReceiver.class); + intent.setAction(VaultLockReceiver.ACTION_LOCK_VAULT); + intent.setPackage(BuildConfig.APPLICATION_ID); PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 1, intent, flags); NotificationCompat.Builder builder = new NotificationCompat.Builder(this, CHANNEL_ID)