Fixing a launcher crash on boot

Change-Id: I2f026eebde300ce8b8966caa826fa81792af496d
diff --git a/src/com/android/launcher2/Launcher.java b/src/com/android/launcher2/Launcher.java
index 4f6f7d8..81e1847 100644
--- a/src/com/android/launcher2/Launcher.java
+++ b/src/com/android/launcher2/Launcher.java
@@ -228,6 +228,9 @@
 
     private LauncherModel mModel;
     private IconCache mIconCache;
+    private boolean mUserPresent = true;
+    private boolean mVisible = false;
+    private boolean mAttached = false;
 
     private static LocaleConfiguration sLocaleConfiguration = null;
 
@@ -1151,9 +1154,6 @@
         }
     }
 
-    private boolean mUserPresent = true;
-    private boolean mVisible = false;
-
     private final BroadcastReceiver mReceiver = new BroadcastReceiver() {
         @Override
         public void onReceive(Context context, Intent intent) {
@@ -1178,6 +1178,7 @@
         filter.addAction(Intent.ACTION_USER_PRESENT);
         registerReceiver(mReceiver, filter);
 
+        mAttached = true;
         mVisible = true;
     }
 
@@ -1186,7 +1187,10 @@
         super.onDetachedFromWindow();
         mVisible = false;
 
-        unregisterReceiver(mReceiver);
+        if (mAttached) {
+            unregisterReceiver(mReceiver);
+            mAttached = false;
+        }
         updateRunning();
     }