Fixing broken instrumentation tests when run from command line
Change-Id: I923cdbaaaf18c9b765d1e70122b92cd2c1621e06
diff --git a/src/com/android/launcher3/LauncherProvider.java b/src/com/android/launcher3/LauncherProvider.java
index 47ceb8c..207121b 100644
--- a/src/com/android/launcher3/LauncherProvider.java
+++ b/src/com/android/launcher3/LauncherProvider.java
@@ -527,13 +527,8 @@
private long mMaxScreenId = -1;
DatabaseHelper(Context context, LauncherProvider provider) {
- super(new NoLocaleSqliteContext(context), LauncherFiles.LAUNCHER_DB,
- null, DATABASE_VERSION);
- mContext = context;
- mProvider = provider;
-
- mAppWidgetHost = new AppWidgetHost(context, Launcher.APPWIDGET_HOST_ID);
-
+ this(context, provider, LauncherFiles.LAUNCHER_DB,
+ new AppWidgetHost(context, Launcher.APPWIDGET_HOST_ID));
// Table creation sometimes fails silently, which leads to a crash loop.
// This way, we will try to create a table every time after crash, so the device
// would eventually be able to recover.
@@ -544,6 +539,21 @@
addWorkspacesTable(getWritableDatabase(), true);
}
+ initIds();
+ }
+
+ /**
+ * Constructor used only in tests.
+ */
+ public DatabaseHelper(
+ Context context, LauncherProvider provider, String tableName, AppWidgetHost host) {
+ super(new NoLocaleSqliteContext(context), tableName, null, DATABASE_VERSION);
+ mContext = context;
+ mProvider = provider;
+ mAppWidgetHost = host;
+ }
+
+ protected void initIds() {
// In the case where neither onCreate nor onUpgrade gets called, we read the maxId from
// the DB here
if (mMaxItemId == -1) {
@@ -554,19 +564,6 @@
}
}
- /**
- * Constructor used only in tests.
- */
- public DatabaseHelper(Context context, LauncherProvider provider, String tableName) {
- super(new NoLocaleSqliteContext(context), tableName, null, DATABASE_VERSION);
- mContext = context;
- mProvider = provider;
-
- mAppWidgetHost = null;
- mMaxItemId = initializeMaxItemId(getWritableDatabase());
- mMaxScreenId = initializeMaxScreenId(getWritableDatabase());
- }
-
private boolean tableExists(String tableName) {
Cursor c = getReadableDatabase().query(
true, "sqlite_master", new String[] {"tbl_name"},