Build a sitemap manager to keep track of breadcrumbs
- Have a new db to track parent-child page relation at index time. - Make a registry class to track (in IA) which page host what type of sub pages. - Make a manager class that queries the db as well as IA to compute breadcrumbs Fix: 32936784 Test: RunSettingsRoboTest Change-Id: I5f1583fae772c3d477d2ad186e111b79cc3e41aa
This commit is contained in:
@@ -28,12 +28,13 @@ public class IndexDatabaseHelper extends SQLiteOpenHelper {
|
||||
private static final String TAG = "IndexDatabaseHelper";
|
||||
|
||||
private static final String DATABASE_NAME = "search_index.db";
|
||||
private static final int DATABASE_VERSION = 116;
|
||||
private static final int DATABASE_VERSION = 117;
|
||||
|
||||
private static final String INDEX = "index";
|
||||
|
||||
public interface Tables {
|
||||
String TABLE_PREFS_INDEX = "prefs_index";
|
||||
String TABLE_SITE_MAP = "site_map";
|
||||
String TABLE_META_INDEX = "meta_index";
|
||||
String TABLE_SAVED_QUERIES = "saved_queries";
|
||||
}
|
||||
@@ -72,6 +73,14 @@ public class IndexDatabaseHelper extends SQLiteOpenHelper {
|
||||
String TIME_STAMP = "timestamp";
|
||||
}
|
||||
|
||||
public interface SiteMapColumns {
|
||||
String DOCID = "docid";
|
||||
String PARENT_CLASS = "parent_class";
|
||||
String CHILD_CLASS = "child_class";
|
||||
String PARENT_TITLE = "parent_title";
|
||||
String CHILD_TITLE = "child_title";
|
||||
}
|
||||
|
||||
private static final String CREATE_INDEX_TABLE =
|
||||
"CREATE VIRTUAL TABLE " + Tables.TABLE_PREFS_INDEX + " USING fts4" +
|
||||
"(" +
|
||||
@@ -132,6 +141,17 @@ public class IndexDatabaseHelper extends SQLiteOpenHelper {
|
||||
SavedQueriesColumns.TIME_STAMP + " INTEGER" +
|
||||
")";
|
||||
|
||||
private static final String CREATE_SITE_MAP_TABLE =
|
||||
"CREATE VIRTUAL TABLE " + Tables.TABLE_SITE_MAP + " USING fts4" +
|
||||
"(" +
|
||||
SiteMapColumns.PARENT_CLASS +
|
||||
", " +
|
||||
SiteMapColumns.CHILD_CLASS +
|
||||
", " +
|
||||
SiteMapColumns.PARENT_TITLE +
|
||||
", " +
|
||||
SiteMapColumns.CHILD_TITLE +
|
||||
")";
|
||||
private static final String INSERT_BUILD_VERSION =
|
||||
"INSERT INTO " + Tables.TABLE_META_INDEX +
|
||||
" VALUES ('" + Build.VERSION.INCREMENTAL + "');";
|
||||
@@ -164,6 +184,7 @@ public class IndexDatabaseHelper extends SQLiteOpenHelper {
|
||||
db.execSQL(CREATE_INDEX_TABLE);
|
||||
db.execSQL(CREATE_META_TABLE);
|
||||
db.execSQL(CREATE_SAVED_QUERIES_TABLE);
|
||||
db.execSQL(CREATE_SITE_MAP_TABLE);
|
||||
db.execSQL(INSERT_BUILD_VERSION);
|
||||
Log.i(TAG, "Bootstrapped database");
|
||||
}
|
||||
@@ -241,5 +262,6 @@ public class IndexDatabaseHelper extends SQLiteOpenHelper {
|
||||
db.execSQL("DROP TABLE IF EXISTS " + Tables.TABLE_META_INDEX);
|
||||
db.execSQL("DROP TABLE IF EXISTS " + Tables.TABLE_PREFS_INDEX);
|
||||
db.execSQL("DROP TABLE IF EXISTS " + Tables.TABLE_SAVED_QUERIES);
|
||||
db.execSQL("DROP TABLE IF EXISTS " + Tables.TABLE_SITE_MAP);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user