From 311e4169ca9bd7dd0daac857be583f628d474422 Mon Sep 17 00:00:00 2001 From: M66B Date: Mon, 11 Jan 2016 10:08:36 +0100 Subject: [PATCH] Prepare multi user support --- .../eu/faircode/netguard/SinkholeService.java | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/app/src/main/java/eu/faircode/netguard/SinkholeService.java b/app/src/main/java/eu/faircode/netguard/SinkholeService.java index 8f1a8c13..f166e65e 100644 --- a/app/src/main/java/eu/faircode/netguard/SinkholeService.java +++ b/app/src/main/java/eu/faircode/netguard/SinkholeService.java @@ -777,6 +777,14 @@ public class SinkholeService extends VpnService implements SharedPreferences.OnS } }; + private BroadcastReceiver userReceiver = new BroadcastReceiver() { + @Override + public void onReceive(Context context, Intent intent) { + Log.i(TAG, "Received " + intent); + Util.logExtras(intent); + } + }; + private BroadcastReceiver idleStateReceiver = new BroadcastReceiver() { @Override @TargetApi(Build.VERSION_CODES.M) @@ -882,6 +890,12 @@ public class SinkholeService extends VpnService implements SharedPreferences.OnS ifInteractive.addAction(ACTION_SCREEN_OFF_DELAYED); registerReceiver(interactiveStateReceiver, ifInteractive); + // Listen for user switches + IntentFilter ifUser = new IntentFilter(); + ifUser.addAction(Intent.ACTION_USER_BACKGROUND); + ifUser.addAction(Intent.ACTION_USER_FOREGROUND); + registerReceiver(userReceiver, ifUser); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { // Listen for idle mode state changes IntentFilter ifIdle = new IntentFilter(); @@ -975,6 +989,7 @@ public class SinkholeService extends VpnService implements SharedPreferences.OnS mServiceLooper.quit(); unregisterReceiver(interactiveStateReceiver); + unregisterReceiver(userReceiver); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) unregisterReceiver(idleStateReceiver); unregisterReceiver(connectivityChangedReceiver);