diff --git a/patches/frameworks/base/0019-It-is-okay-not-to-have-wifi-in-SystemUI-on-FDE-lock.patch b/patches/frameworks/base/0019-It-is-okay-not-to-have-wifi-in-SystemUI-on-FDE-lock.patch
new file mode 100644
index 0000000..6a5be4f
--- /dev/null
+++ b/patches/frameworks/base/0019-It-is-okay-not-to-have-wifi-in-SystemUI-on-FDE-lock.patch
@@ -0,0 +1,65 @@
+From 90443b5a5c607a9312f717b43dbd44b0b6bbb084 Mon Sep 17 00:00:00 2001
+From: Pierre-Hugues Husson <phh@phh.me>
+Date: Mon, 20 Aug 2018 22:27:02 +0200
+Subject: [PATCH 19/27] It is okay not to have wifi in SystemUI (on FDE lock)
+
+Conflicts:
+	packages/SettingsLib/src/com/android/settingslib/wifi/WifiTracker.java
+	packages/SystemUI/src/com/android/systemui/statusbar/policy/WifiSignalController.java
+
+Change-Id: I567a4fc81a53a8d3a55acb6ee8aa979c5a38a4f8
+---
+ .../src/com/android/settingslib/wifi/WifiTracker.java  |  2 +-
+ .../statusbar/policy/HotspotControllerImpl.java        |  1 +
+ .../statusbar/policy/WifiSignalController.java         | 10 +++++-----
+ 3 files changed, 7 insertions(+), 6 deletions(-)
+
+diff --git a/packages/SettingsLib/src/com/android/settingslib/wifi/WifiTracker.java b/packages/SettingsLib/src/com/android/settingslib/wifi/WifiTracker.java
+index 11c22eef5ad..1ca952aaee3 100644
+--- a/packages/SettingsLib/src/com/android/settingslib/wifi/WifiTracker.java
++++ b/packages/SettingsLib/src/com/android/settingslib/wifi/WifiTracker.java
+@@ -207,7 +207,7 @@ public class WifiTracker implements LifecycleObserver, OnStart, OnStop, OnDestro
+         mConnectivityManager = connectivityManager;
+ 
+         // check if verbose logging developer option has been turned on or off
+-        sVerboseLogging = (mWifiManager == null) ? false : (mWifiManager.getVerboseLoggingLevel() > 0);
++        sVerboseLogging = mWifiManager != null ? (mWifiManager.getVerboseLoggingLevel() > 0) : false;
+ 
+         mFilter = filter;
+ 
+diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/HotspotControllerImpl.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/HotspotControllerImpl.java
+index c44b385f505..e5696edb9e0 100644
+--- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/HotspotControllerImpl.java
++++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/HotspotControllerImpl.java
+@@ -109,6 +109,7 @@ public class HotspotControllerImpl implements HotspotController, WifiManager.Sof
+      * @param shouldListen whether we should start listening to various wifi statuses
+      */
+     private void updateWifiStateListeners(boolean shouldListen) {
++        if(mWifiManager == null) return;
+         if (shouldListen) {
+             mWifiManager.registerSoftApCallback(
+                     this,
+diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/WifiSignalController.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/WifiSignalController.java
+index b83c6b88f8d..78b30500da7 100644
+--- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/WifiSignalController.java
++++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/WifiSignalController.java
+@@ -59,11 +59,11 @@ public class WifiSignalController extends
+         mHasMobileData = hasMobileData;
+         Handler handler = new WifiHandler(Looper.getMainLooper());
+         mWifiChannel = new AsyncChannel();
+-        if (wifiManager != null) {
+-            Messenger wifiMessenger = wifiManager.getWifiServiceMessenger();
+-            if (wifiMessenger != null) {
+-                mWifiChannel.connect(context, handler, wifiMessenger);
+-            }
++        Messenger wifiMessenger = null;
++        if(wifiManager != null)
++            wifiMessenger = wifiManager.getWifiServiceMessenger();
++        if (wifiMessenger != null) {
++            mWifiChannel.connect(context, handler, wifiMessenger);
+         }
+         // WiFi only has one state.
+         mCurrentState.iconGroup = mLastState.iconGroup = new IconGroup(
+-- 
+2.17.1
+
