mirror of
https://github.com/beemdevelopment/Aegis.git
synced 2025-04-21 14:29:13 +00:00
Use VaultLockReceiver in a Context-registered manner
Turns out we can't listen from ACTION_SCREEN_OFF from a manifest-registered broadcast receiver
This commit is contained in:
parent
8292173297
commit
3d124d225e
4 changed files with 14 additions and 7 deletions
|
@ -97,7 +97,6 @@
|
||||||
<receiver android:name=".receivers.VaultLockReceiver" android:exported="false">
|
<receiver android:name=".receivers.VaultLockReceiver" android:exported="false">
|
||||||
<intent-filter>
|
<intent-filter>
|
||||||
<action android:name="${applicationId}.LOCK_VAULT" />
|
<action android:name="${applicationId}.LOCK_VAULT" />
|
||||||
<action android:name="android.intent.action.SCREEN_OFF" />
|
|
||||||
</intent-filter>
|
</intent-filter>
|
||||||
</receiver>
|
</receiver>
|
||||||
|
|
||||||
|
|
|
@ -4,6 +4,7 @@ import android.app.Application;
|
||||||
import android.app.NotificationChannel;
|
import android.app.NotificationChannel;
|
||||||
import android.app.NotificationManager;
|
import android.app.NotificationManager;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
|
import android.content.IntentFilter;
|
||||||
import android.content.pm.ShortcutInfo;
|
import android.content.pm.ShortcutInfo;
|
||||||
import android.content.pm.ShortcutManager;
|
import android.content.pm.ShortcutManager;
|
||||||
import android.graphics.drawable.Icon;
|
import android.graphics.drawable.Icon;
|
||||||
|
@ -11,11 +12,13 @@ import android.os.Build;
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import androidx.annotation.RequiresApi;
|
import androidx.annotation.RequiresApi;
|
||||||
|
import androidx.core.content.ContextCompat;
|
||||||
import androidx.lifecycle.Lifecycle;
|
import androidx.lifecycle.Lifecycle;
|
||||||
import androidx.lifecycle.LifecycleEventObserver;
|
import androidx.lifecycle.LifecycleEventObserver;
|
||||||
import androidx.lifecycle.LifecycleOwner;
|
import androidx.lifecycle.LifecycleOwner;
|
||||||
import androidx.lifecycle.ProcessLifecycleOwner;
|
import androidx.lifecycle.ProcessLifecycleOwner;
|
||||||
|
|
||||||
|
import com.beemdevelopment.aegis.receivers.VaultLockReceiver;
|
||||||
import com.beemdevelopment.aegis.ui.MainActivity;
|
import com.beemdevelopment.aegis.ui.MainActivity;
|
||||||
import com.beemdevelopment.aegis.util.IOUtils;
|
import com.beemdevelopment.aegis.util.IOUtils;
|
||||||
import com.beemdevelopment.aegis.vault.VaultManager;
|
import com.beemdevelopment.aegis.vault.VaultManager;
|
||||||
|
@ -48,6 +51,10 @@ public abstract class AegisApplicationBase extends Application {
|
||||||
Iconics.init(this);
|
Iconics.init(this);
|
||||||
Iconics.registerFont(new MaterialDesignIconic());
|
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
|
// lock the app if the user moves the application to the background
|
||||||
ProcessLifecycleOwner.get().getLifecycle().addObserver(new AppLifecycleObserver());
|
ProcessLifecycleOwner.get().getLifecycle().addObserver(new AppLifecycleObserver());
|
||||||
|
|
||||||
|
|
|
@ -22,8 +22,9 @@ public class VaultLockReceiver extends BroadcastReceiver {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onReceive(Context context, Intent intent) {
|
public void onReceive(Context context, Intent intent) {
|
||||||
if (!intent.getAction().equals(ACTION_LOCK_VAULT)
|
if (intent.getAction() == null
|
||||||
&& !intent.getAction().equals(Intent.ACTION_SCREEN_OFF)) {
|
|| (!intent.getAction().equals(ACTION_LOCK_VAULT)
|
||||||
|
&& !intent.getAction().equals(Intent.ACTION_SCREEN_OFF))) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -29,14 +29,14 @@ public class NotificationService extends Service {
|
||||||
|
|
||||||
@SuppressLint("LaunchActivityFromNotification")
|
@SuppressLint("LaunchActivityFromNotification")
|
||||||
public void serviceMethod() {
|
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;
|
int flags = PendingIntent.FLAG_ONE_SHOT;
|
||||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
|
||||||
flags |= PendingIntent.FLAG_IMMUTABLE;
|
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);
|
PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 1, intent, flags);
|
||||||
|
|
||||||
NotificationCompat.Builder builder = new NotificationCompat.Builder(this, CHANNEL_ID)
|
NotificationCompat.Builder builder = new NotificationCompat.Builder(this, CHANNEL_ID)
|
||||||
|
|
Loading…
Add table
Reference in a new issue