DatabaseResultLoaderTest.java revision 6efea1e624bb4b48290000cfdb82df224a31b81d
17fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze/* 27fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze * Copyright (C) 2017 The Android Open Source Project 37fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze * 47fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze * Licensed under the Apache License, Version 2.0 (the "License"); 57fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze * you may not use this file except in compliance with the License. 67fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze * You may obtain a copy of the License at 77fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze * 87fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze * http://www.apache.org/licenses/LICENSE-2.0 97fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze * 107fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze * Unless required by applicable law or agreed to in writing, software 117fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze * distributed under the License is distributed on an "AS IS" BASIS, 127fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 137fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze * See the License for the specific language governing permissions and 147fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze * limitations under the License. 157fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze * 167fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze */ 177fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze 182078bc2358031ef3a191900d9036daf4251911c1Matthew Fritzepackage com.android.settings.search; 197fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze 207fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritzeimport android.content.ContentValues; 217fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritzeimport android.content.Context; 2252b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritzeimport android.content.Intent; 237fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritzeimport android.database.sqlite.SQLiteDatabase; 24a8b089db8a6d495a18dc3ad91d3bd84b042fb004Fan Zhang 257fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritzeimport com.android.settings.SettingsRobolectricTestRunner; 267fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritzeimport com.android.settings.TestConfig; 27a96b11f65d9f29dd4037da85e12f5cf9dcfa0176Fan Zhangimport com.android.settings.dashboard.SiteMapManager; 282078bc2358031ef3a191900d9036daf4251911c1Matthew Fritzeimport com.android.settings.search.DatabaseIndexingUtils; 292078bc2358031ef3a191900d9036daf4251911c1Matthew Fritzeimport com.android.settings.search.DatabaseResultLoader; 30b7b286cb893268bec38584acdf5696f68675ecedMatthew Fritzeimport com.android.settings.search.IndexDatabaseHelper; 312078bc2358031ef3a191900d9036daf4251911c1Matthew Fritzeimport com.android.settings.search.InlineSwitchPayload; 322078bc2358031ef3a191900d9036daf4251911c1Matthew Fritzeimport com.android.settings.search.ResultPayload; 332078bc2358031ef3a191900d9036daf4251911c1Matthew Fritzeimport com.android.settings.search.ResultPayloadUtils; 342078bc2358031ef3a191900d9036daf4251911c1Matthew Fritzeimport com.android.settings.search.SearchResult; 35a8b089db8a6d495a18dc3ad91d3bd84b042fb004Fan Zhangimport com.android.settings.testutils.DatabaseTestUtils; 36a96b11f65d9f29dd4037da85e12f5cf9dcfa0176Fan Zhangimport com.android.settings.testutils.FakeFeatureFactory; 37a8b089db8a6d495a18dc3ad91d3bd84b042fb004Fan Zhang 387fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritzeimport org.junit.After; 397fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritzeimport org.junit.Before; 407fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritzeimport org.junit.Test; 417fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritzeimport org.junit.runner.RunWith; 42a96b11f65d9f29dd4037da85e12f5cf9dcfa0176Fan Zhangimport org.mockito.Answers; 43a96b11f65d9f29dd4037da85e12f5cf9dcfa0176Fan Zhangimport org.mockito.Mock; 44a96b11f65d9f29dd4037da85e12f5cf9dcfa0176Fan Zhangimport org.mockito.MockitoAnnotations; 457fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritzeimport org.robolectric.RuntimeEnvironment; 467fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritzeimport org.robolectric.annotation.Config; 477fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze 48b7b286cb893268bec38584acdf5696f68675ecedMatthew Fritzeimport java.util.List; 49b7b286cb893268bec38584acdf5696f68675ecedMatthew Fritze 507fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritzeimport static com.google.common.truth.Truth.assertThat; 51a96b11f65d9f29dd4037da85e12f5cf9dcfa0176Fan Zhangimport static org.mockito.Matchers.anyString; 52a96b11f65d9f29dd4037da85e12f5cf9dcfa0176Fan Zhangimport static org.mockito.Matchers.eq; 53a96b11f65d9f29dd4037da85e12f5cf9dcfa0176Fan Zhangimport static org.mockito.Mockito.times; 54a96b11f65d9f29dd4037da85e12f5cf9dcfa0176Fan Zhangimport static org.mockito.Mockito.verify; 55a96b11f65d9f29dd4037da85e12f5cf9dcfa0176Fan Zhangimport static org.mockito.Mockito.when; 567fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze 577fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze@RunWith(SettingsRobolectricTestRunner.class) 587fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION) 597fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritzepublic class DatabaseResultLoaderTest { 607fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze 61a96b11f65d9f29dd4037da85e12f5cf9dcfa0176Fan Zhang @Mock(answer = Answers.RETURNS_DEEP_STUBS) 62a96b11f65d9f29dd4037da85e12f5cf9dcfa0176Fan Zhang private Context mMockContext; 63a96b11f65d9f29dd4037da85e12f5cf9dcfa0176Fan Zhang @Mock 64a96b11f65d9f29dd4037da85e12f5cf9dcfa0176Fan Zhang private SiteMapManager mSiteMapManager; 65a96b11f65d9f29dd4037da85e12f5cf9dcfa0176Fan Zhang private Context mContext; 6652b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze 677fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze SQLiteDatabase mDb; 687fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze 697fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze @Before 707fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze public void setUp() { 71a96b11f65d9f29dd4037da85e12f5cf9dcfa0176Fan Zhang MockitoAnnotations.initMocks(this); 727fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze mContext = RuntimeEnvironment.application; 73a96b11f65d9f29dd4037da85e12f5cf9dcfa0176Fan Zhang FakeFeatureFactory.setupForTest(mMockContext); 74a96b11f65d9f29dd4037da85e12f5cf9dcfa0176Fan Zhang FakeFeatureFactory factory = 75a96b11f65d9f29dd4037da85e12f5cf9dcfa0176Fan Zhang (FakeFeatureFactory) FakeFeatureFactory.getFactory(mMockContext); 76a96b11f65d9f29dd4037da85e12f5cf9dcfa0176Fan Zhang when(factory.searchFeatureProvider.getSiteMapManager()) 77a96b11f65d9f29dd4037da85e12f5cf9dcfa0176Fan Zhang .thenReturn(mSiteMapManager); 787fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze mDb = IndexDatabaseHelper.getInstance(mContext).getWritableDatabase(); 797fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze setUpDb(); 807fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze } 817fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze 827fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze @After 837fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze public void cleanUp() { 84a8b089db8a6d495a18dc3ad91d3bd84b042fb004Fan Zhang DatabaseTestUtils.clearDb(); 857fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze } 867fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze 877fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze @Test 887fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze public void testMatchTitle() { 896efea1e624bb4b48290000cfdb82df224a31b81dMatthew Fritze DatabaseResultLoader loader = new DatabaseResultLoader(mContext, "title", mSiteMapManager); 903f3b547e4a2eeeb362d9b7c98b05f9a244cd754eMatthew Fritze assertThat(loader.loadInBackground().size()).isEqualTo(2); 913f3b547e4a2eeeb362d9b7c98b05f9a244cd754eMatthew Fritze verify(mSiteMapManager, times(2)).buildBreadCrumb(eq(mContext), anyString(), anyString()); 927fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze } 937fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze 947fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze @Test 957fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze public void testMatchSummary() { 966efea1e624bb4b48290000cfdb82df224a31b81dMatthew Fritze DatabaseResultLoader loader = new DatabaseResultLoader(mContext, "summary", 976efea1e624bb4b48290000cfdb82df224a31b81dMatthew Fritze mSiteMapManager); 983f3b547e4a2eeeb362d9b7c98b05f9a244cd754eMatthew Fritze assertThat(loader.loadInBackground().size()).isEqualTo(2); 997fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze } 1007fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze 1017fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze @Test 1027fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze public void testMatchKeywords() { 1036efea1e624bb4b48290000cfdb82df224a31b81dMatthew Fritze DatabaseResultLoader loader = new DatabaseResultLoader(mContext, "keywords", 1046efea1e624bb4b48290000cfdb82df224a31b81dMatthew Fritze mSiteMapManager); 1053f3b547e4a2eeeb362d9b7c98b05f9a244cd754eMatthew Fritze assertThat(loader.loadInBackground().size()).isEqualTo(2); 1067fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze } 1077fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze 1087fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze @Test 1097fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze public void testMatchEntries() { 1106efea1e624bb4b48290000cfdb82df224a31b81dMatthew Fritze DatabaseResultLoader loader = new DatabaseResultLoader(mContext, "entries", 1116efea1e624bb4b48290000cfdb82df224a31b81dMatthew Fritze mSiteMapManager); 1123f3b547e4a2eeeb362d9b7c98b05f9a244cd754eMatthew Fritze assertThat(loader.loadInBackground().size()).isEqualTo(2); 1137fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze } 1147fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze 1157fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze @Test 11652b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze public void testSpecialCaseWord_matchesNonPrefix() { 1177fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze insertSpecialCase("Data usage"); 1186efea1e624bb4b48290000cfdb82df224a31b81dMatthew Fritze DatabaseResultLoader loader = new DatabaseResultLoader(mContext, "usage", mSiteMapManager); 1197fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze assertThat(loader.loadInBackground().size()).isEqualTo(1); 1207fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze } 1217fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze 1227fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze @Test 12352b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze public void testSpecialCaseSpace_matches() { 1247fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze insertSpecialCase("space"); 1256efea1e624bb4b48290000cfdb82df224a31b81dMatthew Fritze DatabaseResultLoader loader = new DatabaseResultLoader(mContext, " space ", 1266efea1e624bb4b48290000cfdb82df224a31b81dMatthew Fritze mSiteMapManager); 1277fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze assertThat(loader.loadInBackground().size()).isEqualTo(1); 1287fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze } 1297fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze 1307fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze @Test 13152b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze public void testSpecialCaseDash_matchesWordNoDash() { 1327fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze insertSpecialCase("wi-fi calling"); 1336efea1e624bb4b48290000cfdb82df224a31b81dMatthew Fritze DatabaseResultLoader loader = new DatabaseResultLoader(mContext, "wifi", mSiteMapManager); 1347fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze assertThat(loader.loadInBackground().size()).isEqualTo(1); 1357fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze } 1367fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze 1377fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze @Test 13852b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze public void testSpecialCaseDash_matchesWordWithDash() { 1397fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze insertSpecialCase("priorités seulment"); 1406efea1e624bb4b48290000cfdb82df224a31b81dMatthew Fritze DatabaseResultLoader loader = new DatabaseResultLoader(mContext, "priorités", 1416efea1e624bb4b48290000cfdb82df224a31b81dMatthew Fritze mSiteMapManager); 1427fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze assertThat(loader.loadInBackground().size()).isEqualTo(1); 1437fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze } 1447fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze 1457fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze @Test 14652b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze public void testSpecialCaseDash_matchesWordWithoutDash() { 1477fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze insertSpecialCase("priorités seulment"); 1486efea1e624bb4b48290000cfdb82df224a31b81dMatthew Fritze DatabaseResultLoader loader = new DatabaseResultLoader(mContext, "priorites", 1496efea1e624bb4b48290000cfdb82df224a31b81dMatthew Fritze mSiteMapManager); 1507fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze assertThat(loader.loadInBackground().size()).isEqualTo(1); 1517fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze } 1527fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze 1537fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze @Test 15452b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze public void testSpecialCaseDash_matchesEntireQueryWithoutDash() { 1557fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze insertSpecialCase("wi-fi calling"); 1566efea1e624bb4b48290000cfdb82df224a31b81dMatthew Fritze DatabaseResultLoader loader = new DatabaseResultLoader(mContext, "wifi calling", 1576efea1e624bb4b48290000cfdb82df224a31b81dMatthew Fritze mSiteMapManager); 1587fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze assertThat(loader.loadInBackground().size()).isEqualTo(1); 1597fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze } 1607fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze 161314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze @Test 16252b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze public void testSpecialCasePrefix_matchesPrefixOfEntry() { 163314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze insertSpecialCase("Photos"); 1646efea1e624bb4b48290000cfdb82df224a31b81dMatthew Fritze DatabaseResultLoader loader = new DatabaseResultLoader(mContext, "pho", mSiteMapManager); 165314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze assertThat(loader.loadInBackground().size()).isEqualTo(1); 166314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze } 167314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze 168314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze @Test 169314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze public void testSpecialCasePrefix_DoesNotMatchNonPrefixSubstring() { 170314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze insertSpecialCase("Photos"); 1716efea1e624bb4b48290000cfdb82df224a31b81dMatthew Fritze DatabaseResultLoader loader = new DatabaseResultLoader(mContext, "hot", mSiteMapManager); 172314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze assertThat(loader.loadInBackground().size()).isEqualTo(0); 173314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze } 174314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze 175314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze @Test 17652b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze public void testSpecialCaseMultiWordPrefix_matchesPrefixOfEntry() { 177314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze insertSpecialCase("Apps Notifications"); 1786efea1e624bb4b48290000cfdb82df224a31b81dMatthew Fritze DatabaseResultLoader loader = new DatabaseResultLoader(mContext, "Apps", mSiteMapManager); 179314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze assertThat(loader.loadInBackground().size()).isEqualTo(1); 180314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze } 181314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze 182314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze @Test 18352b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze public void testSpecialCaseMultiWordPrefix_matchesSecondWordPrefixOfEntry() { 184314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze insertSpecialCase("Apps Notifications"); 1856efea1e624bb4b48290000cfdb82df224a31b81dMatthew Fritze DatabaseResultLoader loader = new DatabaseResultLoader(mContext, "Not", mSiteMapManager); 186314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze assertThat(loader.loadInBackground().size()).isEqualTo(1); 187314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze } 188314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze 189314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze @Test 190314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze public void testSpecialCaseMultiWordPrefix_DoesNotMatchMatchesPrefixOfFirstEntry() { 191314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze insertSpecialCase("Apps Notifications"); 1926efea1e624bb4b48290000cfdb82df224a31b81dMatthew Fritze DatabaseResultLoader loader = new DatabaseResultLoader(mContext, "pp", mSiteMapManager); 193314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze assertThat(loader.loadInBackground().size()).isEqualTo(0); 194314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze } 195314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze 196314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze @Test 197314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze public void testSpecialCaseMultiWordPrefix_DoesNotMatchMatchesPrefixOfSecondEntry() { 198314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze insertSpecialCase("Apps Notifications"); 1996efea1e624bb4b48290000cfdb82df224a31b81dMatthew Fritze DatabaseResultLoader loader = new DatabaseResultLoader(mContext, "tion", mSiteMapManager); 200314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze assertThat(loader.loadInBackground().size()).isEqualTo(0); 201314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze } 202314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze 203314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze @Test 20452b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze public void testSpecialCaseMultiWordPrefixWithSpecial_matchesPrefixOfEntry() { 205314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze insertSpecialCase("Apps & Notifications"); 2066efea1e624bb4b48290000cfdb82df224a31b81dMatthew Fritze DatabaseResultLoader loader = new DatabaseResultLoader(mContext, "App", mSiteMapManager); 207314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze assertThat(loader.loadInBackground().size()).isEqualTo(1); 208314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze } 209314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze 210314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze @Test 21152b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze public void testSpecialCaseMultiWordPrefixWithSpecial_matchesPrefixOfSecondEntry() { 212314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze insertSpecialCase("Apps & Notifications"); 2136efea1e624bb4b48290000cfdb82df224a31b81dMatthew Fritze DatabaseResultLoader loader = new DatabaseResultLoader(mContext, "No", mSiteMapManager); 214314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze assertThat(loader.loadInBackground().size()).isEqualTo(1); 215314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze } 216314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze 217b7b286cb893268bec38584acdf5696f68675ecedMatthew Fritze @Test 2186efea1e624bb4b48290000cfdb82df224a31b81dMatthew Fritze public void testResultMatchedByMultipleQueries_duplicatesRemoved() { 2196efea1e624bb4b48290000cfdb82df224a31b81dMatthew Fritze String key = "durr"; 2206efea1e624bb4b48290000cfdb82df224a31b81dMatthew Fritze insertSameValueAllFieldsCase(key); 2216efea1e624bb4b48290000cfdb82df224a31b81dMatthew Fritze DatabaseResultLoader loader = new DatabaseResultLoader(mContext, key, null); 22252b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze 2236efea1e624bb4b48290000cfdb82df224a31b81dMatthew Fritze assertThat(loader.loadInBackground().size()).isEqualTo(1); 22452b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze } 22552b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze 22652b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze @Test 22752b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze public void testSpecialCaseTwoWords_firstWordMatches_ranksHigher() { 228b7b286cb893268bec38584acdf5696f68675ecedMatthew Fritze final String caseOne = "Apple pear"; 229b7b286cb893268bec38584acdf5696f68675ecedMatthew Fritze final String caseTwo = "Banana apple"; 230b7b286cb893268bec38584acdf5696f68675ecedMatthew Fritze insertSpecialCase(caseOne); 231b7b286cb893268bec38584acdf5696f68675ecedMatthew Fritze insertSpecialCase(caseTwo); 2326efea1e624bb4b48290000cfdb82df224a31b81dMatthew Fritze DatabaseResultLoader loader = new DatabaseResultLoader(mContext, "App", null); 233b7b286cb893268bec38584acdf5696f68675ecedMatthew Fritze List<? extends SearchResult> results = loader.loadInBackground(); 234b7b286cb893268bec38584acdf5696f68675ecedMatthew Fritze 235b7b286cb893268bec38584acdf5696f68675ecedMatthew Fritze assertThat(results.get(0).title).isEqualTo(caseOne); 236b7b286cb893268bec38584acdf5696f68675ecedMatthew Fritze assertThat(results.get(1).title).isEqualTo(caseTwo); 237b7b286cb893268bec38584acdf5696f68675ecedMatthew Fritze assertThat(results.get(0).rank).isLessThan(results.get(1).rank); 238b7b286cb893268bec38584acdf5696f68675ecedMatthew Fritze } 239b7b286cb893268bec38584acdf5696f68675ecedMatthew Fritze 2407fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze private void insertSpecialCase(String specialCase) { 2417fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze String normalized = DatabaseIndexingUtils.normalizeHyphen(specialCase); 2427fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze normalized = DatabaseIndexingUtils.normalizeString(normalized); 2433746d9e25f2805b16b69eb7420a629fc66f6a788Matthew Fritze final ResultPayload payload = new ResultPayload(new Intent()); 2447fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze 2457fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze ContentValues values = new ContentValues(); 246b7b286cb893268bec38584acdf5696f68675ecedMatthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DOCID, normalized.hashCode()); 2477fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.LOCALE, "en-us"); 2487fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DATA_RANK, 1); 2497fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DATA_TITLE, specialCase); 2507fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DATA_TITLE_NORMALIZED, normalized); 2517fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DATA_SUMMARY_ON, ""); 2527fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DATA_SUMMARY_ON_NORMALIZED, ""); 2537fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DATA_SUMMARY_OFF, ""); 2547fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DATA_SUMMARY_OFF_NORMALIZED, ""); 2557fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DATA_ENTRIES, ""); 2567fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DATA_KEYWORDS, ""); 2577fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.CLASS_NAME, 2587fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze "com.android.settings.gestures.GestureSettings"); 2597fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.SCREEN_TITLE, "Moves"); 2607fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.INTENT_ACTION, ""); 2617fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.INTENT_TARGET_PACKAGE, ""); 2627fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.INTENT_TARGET_CLASS, ""); 2637fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.ICON, ""); 2643f3b547e4a2eeeb362d9b7c98b05f9a244cd754eMatthew Fritze values.put(IndexDatabaseHelper.IndexColumns.ENABLED, true); 2656efea1e624bb4b48290000cfdb82df224a31b81dMatthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DATA_KEY_REF, normalized.hashCode()); 2667fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.USER_ID, 0); 2677fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.PAYLOAD_TYPE, 0); 2683746d9e25f2805b16b69eb7420a629fc66f6a788Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.PAYLOAD, ResultPayloadUtils.marshall(payload)); 2697fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze 2707fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze mDb.replaceOrThrow(IndexDatabaseHelper.Tables.TABLE_PREFS_INDEX, null, values); 2717fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze } 2727fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze 2737fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze private void setUpDb() { 2743746d9e25f2805b16b69eb7420a629fc66f6a788Matthew Fritze final byte[] payload = ResultPayloadUtils.marshall(new ResultPayload(new Intent())); 2753746d9e25f2805b16b69eb7420a629fc66f6a788Matthew Fritze 2767fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze ContentValues values = new ContentValues(); 2776efea1e624bb4b48290000cfdb82df224a31b81dMatthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DOCID, 1); 2787fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.LOCALE, "en-us"); 2797fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DATA_RANK, 1); 2807fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DATA_TITLE, "alpha_title"); 2817fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DATA_TITLE_NORMALIZED, "alpha title"); 2827fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DATA_SUMMARY_ON, "alpha_summary"); 283314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DATA_SUMMARY_ON_NORMALIZED, "alpha summary"); 2847fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DATA_SUMMARY_OFF, "alpha_summary"); 285314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DATA_SUMMARY_OFF_NORMALIZED, "alpha summary"); 286314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DATA_ENTRIES, "alpha entries"); 287314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DATA_KEYWORDS, "alpha keywords"); 2887fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.CLASS_NAME, 2897fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze "com.android.settings.gestures.GestureSettings"); 2907fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.SCREEN_TITLE, "Moves"); 2917fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.INTENT_ACTION, ""); 2927fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.INTENT_TARGET_PACKAGE, ""); 2937fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.INTENT_TARGET_CLASS, ""); 2947fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.ICON, ""); 2953f3b547e4a2eeeb362d9b7c98b05f9a244cd754eMatthew Fritze values.put(IndexDatabaseHelper.IndexColumns.ENABLED, true); 2966efea1e624bb4b48290000cfdb82df224a31b81dMatthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DATA_KEY_REF, "gesture_double_tap_power_0"); 2977fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.USER_ID, 0); 2987fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.PAYLOAD_TYPE, 0); 2993746d9e25f2805b16b69eb7420a629fc66f6a788Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.PAYLOAD, payload); 3007fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze 3017fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze mDb.replaceOrThrow(IndexDatabaseHelper.Tables.TABLE_PREFS_INDEX, null, values); 3027fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze 3037fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values = new ContentValues(); 3046efea1e624bb4b48290000cfdb82df224a31b81dMatthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DOCID, 2); 3057fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.LOCALE, "en-us"); 3067fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DATA_RANK, 1); 3077fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DATA_TITLE, "bravo_title"); 3087fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DATA_TITLE_NORMALIZED, "bravo title"); 3097fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DATA_SUMMARY_ON, "bravo_summary"); 310314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DATA_SUMMARY_ON_NORMALIZED, "bravo summary"); 3117fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DATA_SUMMARY_OFF, "bravo_summary"); 312314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DATA_SUMMARY_OFF_NORMALIZED, "bravo summary"); 313314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DATA_ENTRIES, "bravo entries"); 314314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DATA_KEYWORDS, "bravo keywords"); 3157fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.CLASS_NAME, 3167fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze "com.android.settings.gestures.GestureSettings"); 3177fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.SCREEN_TITLE, "Moves"); 3187fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.INTENT_ACTION, ""); 3197fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.INTENT_TARGET_PACKAGE, ""); 3207fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.INTENT_TARGET_CLASS, ""); 3217fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.ICON, ""); 3223f3b547e4a2eeeb362d9b7c98b05f9a244cd754eMatthew Fritze values.put(IndexDatabaseHelper.IndexColumns.ENABLED, true); 3236efea1e624bb4b48290000cfdb82df224a31b81dMatthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DATA_KEY_REF, "gesture_double_tap_power_1"); 3247fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.USER_ID, 0); 3257fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.PAYLOAD_TYPE, 0); 3263746d9e25f2805b16b69eb7420a629fc66f6a788Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.PAYLOAD, payload); 3277fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze mDb.replaceOrThrow(IndexDatabaseHelper.Tables.TABLE_PREFS_INDEX, null, values); 3287fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze 3297fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values = new ContentValues(); 3306efea1e624bb4b48290000cfdb82df224a31b81dMatthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DOCID, 3); 3317fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.LOCALE, "en-us"); 3327fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DATA_RANK, 1); 3337fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DATA_TITLE, "charlie_title"); 3347fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DATA_TITLE_NORMALIZED, "charlie title"); 3357fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DATA_SUMMARY_ON, "charlie_summary"); 336314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DATA_SUMMARY_ON_NORMALIZED, "charlie summary"); 3377fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DATA_SUMMARY_OFF, "charlie_summary"); 338314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DATA_SUMMARY_OFF_NORMALIZED, "charlie summary"); 339314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DATA_ENTRIES, "charlie entries"); 340314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DATA_KEYWORDS, "charlie keywords"); 3417fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.CLASS_NAME, 3427fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze "com.android.settings.gestures.GestureSettings"); 3437fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.SCREEN_TITLE, "Moves"); 3447fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.INTENT_ACTION, ""); 3457fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.INTENT_TARGET_PACKAGE, ""); 3467fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.INTENT_TARGET_CLASS, ""); 3477fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.ICON, ""); 3483f3b547e4a2eeeb362d9b7c98b05f9a244cd754eMatthew Fritze values.put(IndexDatabaseHelper.IndexColumns.ENABLED, false); 3496efea1e624bb4b48290000cfdb82df224a31b81dMatthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DATA_KEY_REF, "gesture_double_tap_power_2"); 3507fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.USER_ID, 0); 3517fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.PAYLOAD_TYPE, 0); 3523746d9e25f2805b16b69eb7420a629fc66f6a788Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.PAYLOAD, payload); 3537fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze 3547fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze mDb.replaceOrThrow(IndexDatabaseHelper.Tables.TABLE_PREFS_INDEX, null, values); 3557fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze } 3566efea1e624bb4b48290000cfdb82df224a31b81dMatthew Fritze 3576efea1e624bb4b48290000cfdb82df224a31b81dMatthew Fritze private void insertSameValueAllFieldsCase(String key) { 3586efea1e624bb4b48290000cfdb82df224a31b81dMatthew Fritze final ResultPayload payload = new ResultPayload(new Intent()); 3596efea1e624bb4b48290000cfdb82df224a31b81dMatthew Fritze 3606efea1e624bb4b48290000cfdb82df224a31b81dMatthew Fritze ContentValues values = new ContentValues(); 3616efea1e624bb4b48290000cfdb82df224a31b81dMatthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DOCID, key.hashCode()); 3626efea1e624bb4b48290000cfdb82df224a31b81dMatthew Fritze values.put(IndexDatabaseHelper.IndexColumns.LOCALE, "en-us"); 3636efea1e624bb4b48290000cfdb82df224a31b81dMatthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DATA_RANK, 1); 3646efea1e624bb4b48290000cfdb82df224a31b81dMatthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DATA_TITLE, key); 3656efea1e624bb4b48290000cfdb82df224a31b81dMatthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DATA_TITLE_NORMALIZED, key); 3666efea1e624bb4b48290000cfdb82df224a31b81dMatthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DATA_SUMMARY_ON, key); 3676efea1e624bb4b48290000cfdb82df224a31b81dMatthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DATA_SUMMARY_ON_NORMALIZED, key); 3686efea1e624bb4b48290000cfdb82df224a31b81dMatthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DATA_SUMMARY_OFF, key); 3696efea1e624bb4b48290000cfdb82df224a31b81dMatthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DATA_SUMMARY_OFF_NORMALIZED, key); 3706efea1e624bb4b48290000cfdb82df224a31b81dMatthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DATA_ENTRIES, key); 3716efea1e624bb4b48290000cfdb82df224a31b81dMatthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DATA_KEYWORDS, key); 3726efea1e624bb4b48290000cfdb82df224a31b81dMatthew Fritze values.put(IndexDatabaseHelper.IndexColumns.CLASS_NAME, key); 3736efea1e624bb4b48290000cfdb82df224a31b81dMatthew Fritze values.put(IndexDatabaseHelper.IndexColumns.SCREEN_TITLE, "Moves"); 3746efea1e624bb4b48290000cfdb82df224a31b81dMatthew Fritze values.put(IndexDatabaseHelper.IndexColumns.INTENT_ACTION, key); 3756efea1e624bb4b48290000cfdb82df224a31b81dMatthew Fritze values.put(IndexDatabaseHelper.IndexColumns.INTENT_TARGET_PACKAGE, ""); 3766efea1e624bb4b48290000cfdb82df224a31b81dMatthew Fritze values.put(IndexDatabaseHelper.IndexColumns.INTENT_TARGET_CLASS, key); 3776efea1e624bb4b48290000cfdb82df224a31b81dMatthew Fritze values.put(IndexDatabaseHelper.IndexColumns.ICON, ""); 3786efea1e624bb4b48290000cfdb82df224a31b81dMatthew Fritze values.put(IndexDatabaseHelper.IndexColumns.ENABLED, true); 3796efea1e624bb4b48290000cfdb82df224a31b81dMatthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DATA_KEY_REF, key.hashCode()); 3806efea1e624bb4b48290000cfdb82df224a31b81dMatthew Fritze values.put(IndexDatabaseHelper.IndexColumns.USER_ID, 0); 3816efea1e624bb4b48290000cfdb82df224a31b81dMatthew Fritze values.put(IndexDatabaseHelper.IndexColumns.PAYLOAD_TYPE, 0); 3826efea1e624bb4b48290000cfdb82df224a31b81dMatthew Fritze values.put(IndexDatabaseHelper.IndexColumns.PAYLOAD, ResultPayloadUtils.marshall(payload)); 3836efea1e624bb4b48290000cfdb82df224a31b81dMatthew Fritze 3846efea1e624bb4b48290000cfdb82df224a31b81dMatthew Fritze mDb.replaceOrThrow(IndexDatabaseHelper.Tables.TABLE_PREFS_INDEX, null, values); 3856efea1e624bb4b48290000cfdb82df224a31b81dMatthew Fritze } 386b7b286cb893268bec38584acdf5696f68675ecedMatthew Fritze}