Fixing nullpointer when creating new DB

LauncherProvider is not ready until the DBHelper is created
Change-Id: Iabd61005892f15fd4a31d882100d87df2b2a7b85
diff --git a/src/com/android/launcher3/LauncherProvider.java b/src/com/android/launcher3/LauncherProvider.java
index 71ddb1a..4df92af 100644
--- a/src/com/android/launcher3/LauncherProvider.java
+++ b/src/com/android/launcher3/LauncherProvider.java
@@ -99,6 +99,7 @@
 
     public void setLauncherProviderChangeListener(LauncherProviderChangeListener listener) {
         mListener = listener;
+        mOpenHelper.mListener = mListener;
     }
 
     @Override
@@ -270,18 +271,6 @@
         }
     }
 
-    @Thunk void notifyAppWidgetHostReset() {
-        new MainThreadExecutor().execute(new Runnable() {
-
-            @Override
-            public void run() {
-                if (mListener != null) {
-                    mListener.onAppWidgetHostReset();
-                }
-            }
-        });
-    }
-
     @Thunk static void addModifiedTime(ContentValues values) {
         values.put(LauncherSettings.ChangeLogColumns.MODIFIED, System.currentTimeMillis());
     }
@@ -429,6 +418,7 @@
             SQLiteDatabase.deleteDatabase(dbFile);
         }
         mOpenHelper = new DatabaseHelper(getContext());
+        mOpenHelper.mListener = mListener;
     }
 
     private static class DatabaseHelper extends SQLiteOpenHelper implements LayoutParserCallback {
@@ -439,6 +429,8 @@
 
         private boolean mNewDbCreated = false;
 
+        @Thunk LauncherProviderChangeListener mListener;
+
         DatabaseHelper(Context context) {
             super(context, LauncherFiles.LAUNCHER_DB, null, DATABASE_VERSION);
             mContext = context;
@@ -508,7 +500,15 @@
                  * want to re-call {@link AppWidgetHost#startListening()} to ensure
                  * callbacks are correctly set.
                  */
-                LauncherAppState.getLauncherProvider().notifyAppWidgetHostReset();
+                new MainThreadExecutor().execute(new Runnable() {
+
+                    @Override
+                    public void run() {
+                        if (mListener != null) {
+                            mListener.onAppWidgetHostReset();
+                        }
+                    }
+                });
             }
 
             // Fresh and clean launcher DB.