DatabaseResultLoaderTest.java revision 012028e3a320dd3eeca3c39f0e47c1c40697bdf6
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; 28a8b089db8a6d495a18dc3ad91d3bd84b042fb004Fan Zhangimport com.android.settings.testutils.DatabaseTestUtils; 29a96b11f65d9f29dd4037da85e12f5cf9dcfa0176Fan Zhangimport com.android.settings.testutils.FakeFeatureFactory; 30a8b089db8a6d495a18dc3ad91d3bd84b042fb004Fan Zhang 317fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritzeimport org.junit.After; 327fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritzeimport org.junit.Before; 337fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritzeimport org.junit.Test; 347fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritzeimport org.junit.runner.RunWith; 35a96b11f65d9f29dd4037da85e12f5cf9dcfa0176Fan Zhangimport org.mockito.Answers; 36a96b11f65d9f29dd4037da85e12f5cf9dcfa0176Fan Zhangimport org.mockito.Mock; 37a96b11f65d9f29dd4037da85e12f5cf9dcfa0176Fan Zhangimport org.mockito.MockitoAnnotations; 387fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritzeimport org.robolectric.RuntimeEnvironment; 397fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritzeimport org.robolectric.annotation.Config; 407fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze 41b7b286cb893268bec38584acdf5696f68675ecedMatthew Fritzeimport java.util.List; 42b7b286cb893268bec38584acdf5696f68675ecedMatthew Fritze 437fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritzeimport static com.google.common.truth.Truth.assertThat; 44a96b11f65d9f29dd4037da85e12f5cf9dcfa0176Fan Zhangimport static org.mockito.Matchers.anyString; 45a96b11f65d9f29dd4037da85e12f5cf9dcfa0176Fan Zhangimport static org.mockito.Matchers.eq; 46a96b11f65d9f29dd4037da85e12f5cf9dcfa0176Fan Zhangimport static org.mockito.Mockito.times; 47a96b11f65d9f29dd4037da85e12f5cf9dcfa0176Fan Zhangimport static org.mockito.Mockito.verify; 48a96b11f65d9f29dd4037da85e12f5cf9dcfa0176Fan Zhangimport static org.mockito.Mockito.when; 497fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze 507fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze@RunWith(SettingsRobolectricTestRunner.class) 517fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION) 527fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritzepublic class DatabaseResultLoaderTest { 537fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze 54a96b11f65d9f29dd4037da85e12f5cf9dcfa0176Fan Zhang @Mock(answer = Answers.RETURNS_DEEP_STUBS) 55a96b11f65d9f29dd4037da85e12f5cf9dcfa0176Fan Zhang private Context mMockContext; 56a96b11f65d9f29dd4037da85e12f5cf9dcfa0176Fan Zhang @Mock 57a96b11f65d9f29dd4037da85e12f5cf9dcfa0176Fan Zhang private SiteMapManager mSiteMapManager; 58a96b11f65d9f29dd4037da85e12f5cf9dcfa0176Fan Zhang private Context mContext; 5952b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze 607fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze SQLiteDatabase mDb; 617fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze 627fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze @Before 637fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze public void setUp() { 64a96b11f65d9f29dd4037da85e12f5cf9dcfa0176Fan Zhang MockitoAnnotations.initMocks(this); 657fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze mContext = RuntimeEnvironment.application; 66a96b11f65d9f29dd4037da85e12f5cf9dcfa0176Fan Zhang FakeFeatureFactory.setupForTest(mMockContext); 67a96b11f65d9f29dd4037da85e12f5cf9dcfa0176Fan Zhang FakeFeatureFactory factory = 68a96b11f65d9f29dd4037da85e12f5cf9dcfa0176Fan Zhang (FakeFeatureFactory) FakeFeatureFactory.getFactory(mMockContext); 69a96b11f65d9f29dd4037da85e12f5cf9dcfa0176Fan Zhang when(factory.searchFeatureProvider.getSiteMapManager()) 70a96b11f65d9f29dd4037da85e12f5cf9dcfa0176Fan Zhang .thenReturn(mSiteMapManager); 717fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze mDb = IndexDatabaseHelper.getInstance(mContext).getWritableDatabase(); 727fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze setUpDb(); 737fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze } 747fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze 757fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze @After 767fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze public void cleanUp() { 77012028e3a320dd3eeca3c39f0e47c1c40697bdf6Fan Zhang DatabaseTestUtils.clearDb(mContext); 787fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze } 797fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze 807fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze @Test 817fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze public void testMatchTitle() { 826efea1e624bb4b48290000cfdb82df224a31b81dMatthew Fritze DatabaseResultLoader loader = new DatabaseResultLoader(mContext, "title", mSiteMapManager); 833f3b547e4a2eeeb362d9b7c98b05f9a244cd754eMatthew Fritze assertThat(loader.loadInBackground().size()).isEqualTo(2); 843f3b547e4a2eeeb362d9b7c98b05f9a244cd754eMatthew Fritze verify(mSiteMapManager, times(2)).buildBreadCrumb(eq(mContext), anyString(), anyString()); 857fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze } 867fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze 877fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze @Test 887fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze public void testMatchSummary() { 896efea1e624bb4b48290000cfdb82df224a31b81dMatthew Fritze DatabaseResultLoader loader = new DatabaseResultLoader(mContext, "summary", 906efea1e624bb4b48290000cfdb82df224a31b81dMatthew Fritze mSiteMapManager); 913f3b547e4a2eeeb362d9b7c98b05f9a244cd754eMatthew Fritze assertThat(loader.loadInBackground().size()).isEqualTo(2); 927fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze } 937fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze 947fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze @Test 957fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze public void testMatchKeywords() { 966efea1e624bb4b48290000cfdb82df224a31b81dMatthew Fritze DatabaseResultLoader loader = new DatabaseResultLoader(mContext, "keywords", 976efea1e624bb4b48290000cfdb82df224a31b81dMatthew Fritze mSiteMapManager); 983f3b547e4a2eeeb362d9b7c98b05f9a244cd754eMatthew Fritze assertThat(loader.loadInBackground().size()).isEqualTo(2); 997fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze } 1007fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze 1017fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze @Test 1027fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze public void testMatchEntries() { 1036efea1e624bb4b48290000cfdb82df224a31b81dMatthew Fritze DatabaseResultLoader loader = new DatabaseResultLoader(mContext, "entries", 1046efea1e624bb4b48290000cfdb82df224a31b81dMatthew Fritze mSiteMapManager); 1053f3b547e4a2eeeb362d9b7c98b05f9a244cd754eMatthew Fritze assertThat(loader.loadInBackground().size()).isEqualTo(2); 1067fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze } 1077fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze 1087fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze @Test 10952b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze public void testSpecialCaseWord_matchesNonPrefix() { 1107fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze insertSpecialCase("Data usage"); 1116efea1e624bb4b48290000cfdb82df224a31b81dMatthew Fritze DatabaseResultLoader loader = new DatabaseResultLoader(mContext, "usage", mSiteMapManager); 1127fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze assertThat(loader.loadInBackground().size()).isEqualTo(1); 1137fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze } 1147fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze 1157fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze @Test 11652b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze public void testSpecialCaseSpace_matches() { 1177fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze insertSpecialCase("space"); 1186efea1e624bb4b48290000cfdb82df224a31b81dMatthew Fritze DatabaseResultLoader loader = new DatabaseResultLoader(mContext, " space ", 1196efea1e624bb4b48290000cfdb82df224a31b81dMatthew Fritze mSiteMapManager); 1207fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze assertThat(loader.loadInBackground().size()).isEqualTo(1); 1217fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze } 1227fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze 1237fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze @Test 12452b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze public void testSpecialCaseDash_matchesWordNoDash() { 1257fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze insertSpecialCase("wi-fi calling"); 1266efea1e624bb4b48290000cfdb82df224a31b81dMatthew Fritze DatabaseResultLoader loader = new DatabaseResultLoader(mContext, "wifi", mSiteMapManager); 1277fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze assertThat(loader.loadInBackground().size()).isEqualTo(1); 1287fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze } 1297fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze 1307fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze @Test 13152b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze public void testSpecialCaseDash_matchesWordWithDash() { 1327fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze insertSpecialCase("priorités seulment"); 1336efea1e624bb4b48290000cfdb82df224a31b81dMatthew Fritze DatabaseResultLoader loader = new DatabaseResultLoader(mContext, "priorités", 1346efea1e624bb4b48290000cfdb82df224a31b81dMatthew Fritze mSiteMapManager); 1357fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze assertThat(loader.loadInBackground().size()).isEqualTo(1); 1367fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze } 1377fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze 1387fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze @Test 13952b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze public void testSpecialCaseDash_matchesWordWithoutDash() { 1407fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze insertSpecialCase("priorités seulment"); 1416efea1e624bb4b48290000cfdb82df224a31b81dMatthew Fritze DatabaseResultLoader loader = new DatabaseResultLoader(mContext, "priorites", 1426efea1e624bb4b48290000cfdb82df224a31b81dMatthew Fritze mSiteMapManager); 1437fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze assertThat(loader.loadInBackground().size()).isEqualTo(1); 1447fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze } 1457fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze 1467fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze @Test 14752b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze public void testSpecialCaseDash_matchesEntireQueryWithoutDash() { 1487fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze insertSpecialCase("wi-fi calling"); 1496efea1e624bb4b48290000cfdb82df224a31b81dMatthew Fritze DatabaseResultLoader loader = new DatabaseResultLoader(mContext, "wifi calling", 1506efea1e624bb4b48290000cfdb82df224a31b81dMatthew Fritze mSiteMapManager); 1517fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze assertThat(loader.loadInBackground().size()).isEqualTo(1); 1527fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze } 1537fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze 154314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze @Test 15552b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze public void testSpecialCasePrefix_matchesPrefixOfEntry() { 156314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze insertSpecialCase("Photos"); 1576efea1e624bb4b48290000cfdb82df224a31b81dMatthew Fritze DatabaseResultLoader loader = new DatabaseResultLoader(mContext, "pho", mSiteMapManager); 158314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze assertThat(loader.loadInBackground().size()).isEqualTo(1); 159314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze } 160314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze 161314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze @Test 162314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze public void testSpecialCasePrefix_DoesNotMatchNonPrefixSubstring() { 163314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze insertSpecialCase("Photos"); 1646efea1e624bb4b48290000cfdb82df224a31b81dMatthew Fritze DatabaseResultLoader loader = new DatabaseResultLoader(mContext, "hot", mSiteMapManager); 165314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze assertThat(loader.loadInBackground().size()).isEqualTo(0); 166314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze } 167314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze 168314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze @Test 16952b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze public void testSpecialCaseMultiWordPrefix_matchesPrefixOfEntry() { 170314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze insertSpecialCase("Apps Notifications"); 1716efea1e624bb4b48290000cfdb82df224a31b81dMatthew Fritze DatabaseResultLoader loader = new DatabaseResultLoader(mContext, "Apps", mSiteMapManager); 172314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze assertThat(loader.loadInBackground().size()).isEqualTo(1); 173314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze } 174314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze 175314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze @Test 17652b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze public void testSpecialCaseMultiWordPrefix_matchesSecondWordPrefixOfEntry() { 177314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze insertSpecialCase("Apps Notifications"); 1786efea1e624bb4b48290000cfdb82df224a31b81dMatthew Fritze DatabaseResultLoader loader = new DatabaseResultLoader(mContext, "Not", mSiteMapManager); 179314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze assertThat(loader.loadInBackground().size()).isEqualTo(1); 180314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze } 181314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze 182314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze @Test 183314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze public void testSpecialCaseMultiWordPrefix_DoesNotMatchMatchesPrefixOfFirstEntry() { 184314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze insertSpecialCase("Apps Notifications"); 1856efea1e624bb4b48290000cfdb82df224a31b81dMatthew Fritze DatabaseResultLoader loader = new DatabaseResultLoader(mContext, "pp", mSiteMapManager); 186314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze assertThat(loader.loadInBackground().size()).isEqualTo(0); 187314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze } 188314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze 189314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze @Test 190314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze public void testSpecialCaseMultiWordPrefix_DoesNotMatchMatchesPrefixOfSecondEntry() { 191314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze insertSpecialCase("Apps Notifications"); 1926efea1e624bb4b48290000cfdb82df224a31b81dMatthew Fritze DatabaseResultLoader loader = new DatabaseResultLoader(mContext, "tion", mSiteMapManager); 193314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze assertThat(loader.loadInBackground().size()).isEqualTo(0); 194314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze } 195314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze 196314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze @Test 19752b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze public void testSpecialCaseMultiWordPrefixWithSpecial_matchesPrefixOfEntry() { 198314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze insertSpecialCase("Apps & Notifications"); 1996efea1e624bb4b48290000cfdb82df224a31b81dMatthew Fritze DatabaseResultLoader loader = new DatabaseResultLoader(mContext, "App", mSiteMapManager); 200314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze assertThat(loader.loadInBackground().size()).isEqualTo(1); 201314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze } 202314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze 203314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze @Test 20452b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze public void testSpecialCaseMultiWordPrefixWithSpecial_matchesPrefixOfSecondEntry() { 205314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze insertSpecialCase("Apps & Notifications"); 2066efea1e624bb4b48290000cfdb82df224a31b81dMatthew Fritze DatabaseResultLoader loader = new DatabaseResultLoader(mContext, "No", mSiteMapManager); 207314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze assertThat(loader.loadInBackground().size()).isEqualTo(1); 208314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze } 209314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze 210b7b286cb893268bec38584acdf5696f68675ecedMatthew Fritze @Test 2116efea1e624bb4b48290000cfdb82df224a31b81dMatthew Fritze public void testResultMatchedByMultipleQueries_duplicatesRemoved() { 2126efea1e624bb4b48290000cfdb82df224a31b81dMatthew Fritze String key = "durr"; 2136efea1e624bb4b48290000cfdb82df224a31b81dMatthew Fritze insertSameValueAllFieldsCase(key); 2146efea1e624bb4b48290000cfdb82df224a31b81dMatthew Fritze DatabaseResultLoader loader = new DatabaseResultLoader(mContext, key, null); 21552b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze 2166efea1e624bb4b48290000cfdb82df224a31b81dMatthew Fritze assertThat(loader.loadInBackground().size()).isEqualTo(1); 21752b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze } 21852b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze 21952b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze @Test 22052b6f8887bb67b43066739c244e89e54caf2718bMatthew Fritze public void testSpecialCaseTwoWords_firstWordMatches_ranksHigher() { 221b7b286cb893268bec38584acdf5696f68675ecedMatthew Fritze final String caseOne = "Apple pear"; 222b7b286cb893268bec38584acdf5696f68675ecedMatthew Fritze final String caseTwo = "Banana apple"; 223b7b286cb893268bec38584acdf5696f68675ecedMatthew Fritze insertSpecialCase(caseOne); 224b7b286cb893268bec38584acdf5696f68675ecedMatthew Fritze insertSpecialCase(caseTwo); 2256efea1e624bb4b48290000cfdb82df224a31b81dMatthew Fritze DatabaseResultLoader loader = new DatabaseResultLoader(mContext, "App", null); 226b7b286cb893268bec38584acdf5696f68675ecedMatthew Fritze List<? extends SearchResult> results = loader.loadInBackground(); 227b7b286cb893268bec38584acdf5696f68675ecedMatthew Fritze 228b7b286cb893268bec38584acdf5696f68675ecedMatthew Fritze assertThat(results.get(0).title).isEqualTo(caseOne); 229b7b286cb893268bec38584acdf5696f68675ecedMatthew Fritze assertThat(results.get(1).title).isEqualTo(caseTwo); 230b7b286cb893268bec38584acdf5696f68675ecedMatthew Fritze assertThat(results.get(0).rank).isLessThan(results.get(1).rank); 231b7b286cb893268bec38584acdf5696f68675ecedMatthew Fritze } 232b7b286cb893268bec38584acdf5696f68675ecedMatthew Fritze 2337fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze private void insertSpecialCase(String specialCase) { 2347fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze String normalized = DatabaseIndexingUtils.normalizeHyphen(specialCase); 2357fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze normalized = DatabaseIndexingUtils.normalizeString(normalized); 2363746d9e25f2805b16b69eb7420a629fc66f6a788Matthew Fritze final ResultPayload payload = new ResultPayload(new Intent()); 2377fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze 2387fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze ContentValues values = new ContentValues(); 239b7b286cb893268bec38584acdf5696f68675ecedMatthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DOCID, normalized.hashCode()); 2407fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.LOCALE, "en-us"); 2417fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DATA_RANK, 1); 2427fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DATA_TITLE, specialCase); 2437fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DATA_TITLE_NORMALIZED, normalized); 2447fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DATA_SUMMARY_ON, ""); 2457fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DATA_SUMMARY_ON_NORMALIZED, ""); 2467fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DATA_SUMMARY_OFF, ""); 2477fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DATA_SUMMARY_OFF_NORMALIZED, ""); 2487fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DATA_ENTRIES, ""); 2497fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DATA_KEYWORDS, ""); 2507fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.CLASS_NAME, 2517fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze "com.android.settings.gestures.GestureSettings"); 2527fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.SCREEN_TITLE, "Moves"); 2537fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.INTENT_ACTION, ""); 2547fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.INTENT_TARGET_PACKAGE, ""); 2557fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.INTENT_TARGET_CLASS, ""); 2567fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.ICON, ""); 2573f3b547e4a2eeeb362d9b7c98b05f9a244cd754eMatthew Fritze values.put(IndexDatabaseHelper.IndexColumns.ENABLED, true); 2586efea1e624bb4b48290000cfdb82df224a31b81dMatthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DATA_KEY_REF, normalized.hashCode()); 2597fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.USER_ID, 0); 2607fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.PAYLOAD_TYPE, 0); 2613746d9e25f2805b16b69eb7420a629fc66f6a788Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.PAYLOAD, ResultPayloadUtils.marshall(payload)); 2627fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze 2637fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze mDb.replaceOrThrow(IndexDatabaseHelper.Tables.TABLE_PREFS_INDEX, null, values); 2647fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze } 2657fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze 2667fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze private void setUpDb() { 2673746d9e25f2805b16b69eb7420a629fc66f6a788Matthew Fritze final byte[] payload = ResultPayloadUtils.marshall(new ResultPayload(new Intent())); 2683746d9e25f2805b16b69eb7420a629fc66f6a788Matthew Fritze 2697fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze ContentValues values = new ContentValues(); 2706efea1e624bb4b48290000cfdb82df224a31b81dMatthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DOCID, 1); 2717fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.LOCALE, "en-us"); 2727fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DATA_RANK, 1); 2737fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DATA_TITLE, "alpha_title"); 2747fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DATA_TITLE_NORMALIZED, "alpha title"); 2757fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DATA_SUMMARY_ON, "alpha_summary"); 276314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DATA_SUMMARY_ON_NORMALIZED, "alpha summary"); 2777fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DATA_SUMMARY_OFF, "alpha_summary"); 278314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DATA_SUMMARY_OFF_NORMALIZED, "alpha summary"); 279314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DATA_ENTRIES, "alpha entries"); 280314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DATA_KEYWORDS, "alpha keywords"); 2817fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.CLASS_NAME, 2827fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze "com.android.settings.gestures.GestureSettings"); 2837fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.SCREEN_TITLE, "Moves"); 2847fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.INTENT_ACTION, ""); 2857fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.INTENT_TARGET_PACKAGE, ""); 2867fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.INTENT_TARGET_CLASS, ""); 2877fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.ICON, ""); 2883f3b547e4a2eeeb362d9b7c98b05f9a244cd754eMatthew Fritze values.put(IndexDatabaseHelper.IndexColumns.ENABLED, true); 2896efea1e624bb4b48290000cfdb82df224a31b81dMatthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DATA_KEY_REF, "gesture_double_tap_power_0"); 2907fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.USER_ID, 0); 2917fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.PAYLOAD_TYPE, 0); 2923746d9e25f2805b16b69eb7420a629fc66f6a788Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.PAYLOAD, payload); 2937fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze 2947fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze mDb.replaceOrThrow(IndexDatabaseHelper.Tables.TABLE_PREFS_INDEX, null, values); 2957fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze 2967fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values = new ContentValues(); 2976efea1e624bb4b48290000cfdb82df224a31b81dMatthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DOCID, 2); 2987fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.LOCALE, "en-us"); 2997fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DATA_RANK, 1); 3007fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DATA_TITLE, "bravo_title"); 3017fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DATA_TITLE_NORMALIZED, "bravo title"); 3027fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DATA_SUMMARY_ON, "bravo_summary"); 303314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DATA_SUMMARY_ON_NORMALIZED, "bravo summary"); 3047fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DATA_SUMMARY_OFF, "bravo_summary"); 305314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DATA_SUMMARY_OFF_NORMALIZED, "bravo summary"); 306314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DATA_ENTRIES, "bravo entries"); 307314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DATA_KEYWORDS, "bravo keywords"); 3087fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.CLASS_NAME, 3097fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze "com.android.settings.gestures.GestureSettings"); 3107fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.SCREEN_TITLE, "Moves"); 3117fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.INTENT_ACTION, ""); 3127fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.INTENT_TARGET_PACKAGE, ""); 3137fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.INTENT_TARGET_CLASS, ""); 3147fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.ICON, ""); 3153f3b547e4a2eeeb362d9b7c98b05f9a244cd754eMatthew Fritze values.put(IndexDatabaseHelper.IndexColumns.ENABLED, true); 3166efea1e624bb4b48290000cfdb82df224a31b81dMatthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DATA_KEY_REF, "gesture_double_tap_power_1"); 3177fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.USER_ID, 0); 3187fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.PAYLOAD_TYPE, 0); 3193746d9e25f2805b16b69eb7420a629fc66f6a788Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.PAYLOAD, payload); 3207fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze mDb.replaceOrThrow(IndexDatabaseHelper.Tables.TABLE_PREFS_INDEX, null, values); 3217fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze 3227fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values = new ContentValues(); 3236efea1e624bb4b48290000cfdb82df224a31b81dMatthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DOCID, 3); 3247fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.LOCALE, "en-us"); 3257fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DATA_RANK, 1); 3267fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DATA_TITLE, "charlie_title"); 3277fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DATA_TITLE_NORMALIZED, "charlie title"); 3287fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DATA_SUMMARY_ON, "charlie_summary"); 329314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DATA_SUMMARY_ON_NORMALIZED, "charlie summary"); 3307fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DATA_SUMMARY_OFF, "charlie_summary"); 331314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DATA_SUMMARY_OFF_NORMALIZED, "charlie summary"); 332314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DATA_ENTRIES, "charlie entries"); 333314b09eb4b6bff2626604155e4273956aeaa24b5Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DATA_KEYWORDS, "charlie keywords"); 3347fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.CLASS_NAME, 3357fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze "com.android.settings.gestures.GestureSettings"); 3367fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.SCREEN_TITLE, "Moves"); 3377fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.INTENT_ACTION, ""); 3387fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.INTENT_TARGET_PACKAGE, ""); 3397fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.INTENT_TARGET_CLASS, ""); 3407fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.ICON, ""); 3413f3b547e4a2eeeb362d9b7c98b05f9a244cd754eMatthew Fritze values.put(IndexDatabaseHelper.IndexColumns.ENABLED, false); 3426efea1e624bb4b48290000cfdb82df224a31b81dMatthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DATA_KEY_REF, "gesture_double_tap_power_2"); 3437fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.USER_ID, 0); 3447fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.PAYLOAD_TYPE, 0); 3453746d9e25f2805b16b69eb7420a629fc66f6a788Matthew Fritze values.put(IndexDatabaseHelper.IndexColumns.PAYLOAD, payload); 3467fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze 3477fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze mDb.replaceOrThrow(IndexDatabaseHelper.Tables.TABLE_PREFS_INDEX, null, values); 3487fda314980107337d2eb9237ed00e997ae4ee345Matthew Fritze } 3496efea1e624bb4b48290000cfdb82df224a31b81dMatthew Fritze 3506efea1e624bb4b48290000cfdb82df224a31b81dMatthew Fritze private void insertSameValueAllFieldsCase(String key) { 3516efea1e624bb4b48290000cfdb82df224a31b81dMatthew Fritze final ResultPayload payload = new ResultPayload(new Intent()); 3526efea1e624bb4b48290000cfdb82df224a31b81dMatthew Fritze 3536efea1e624bb4b48290000cfdb82df224a31b81dMatthew Fritze ContentValues values = new ContentValues(); 3546efea1e624bb4b48290000cfdb82df224a31b81dMatthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DOCID, key.hashCode()); 3556efea1e624bb4b48290000cfdb82df224a31b81dMatthew Fritze values.put(IndexDatabaseHelper.IndexColumns.LOCALE, "en-us"); 3566efea1e624bb4b48290000cfdb82df224a31b81dMatthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DATA_RANK, 1); 3576efea1e624bb4b48290000cfdb82df224a31b81dMatthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DATA_TITLE, key); 3586efea1e624bb4b48290000cfdb82df224a31b81dMatthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DATA_TITLE_NORMALIZED, key); 3596efea1e624bb4b48290000cfdb82df224a31b81dMatthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DATA_SUMMARY_ON, key); 3606efea1e624bb4b48290000cfdb82df224a31b81dMatthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DATA_SUMMARY_ON_NORMALIZED, key); 3616efea1e624bb4b48290000cfdb82df224a31b81dMatthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DATA_SUMMARY_OFF, key); 3626efea1e624bb4b48290000cfdb82df224a31b81dMatthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DATA_SUMMARY_OFF_NORMALIZED, key); 3636efea1e624bb4b48290000cfdb82df224a31b81dMatthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DATA_ENTRIES, key); 3646efea1e624bb4b48290000cfdb82df224a31b81dMatthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DATA_KEYWORDS, key); 3656efea1e624bb4b48290000cfdb82df224a31b81dMatthew Fritze values.put(IndexDatabaseHelper.IndexColumns.CLASS_NAME, key); 3666efea1e624bb4b48290000cfdb82df224a31b81dMatthew Fritze values.put(IndexDatabaseHelper.IndexColumns.SCREEN_TITLE, "Moves"); 3676efea1e624bb4b48290000cfdb82df224a31b81dMatthew Fritze values.put(IndexDatabaseHelper.IndexColumns.INTENT_ACTION, key); 3686efea1e624bb4b48290000cfdb82df224a31b81dMatthew Fritze values.put(IndexDatabaseHelper.IndexColumns.INTENT_TARGET_PACKAGE, ""); 3696efea1e624bb4b48290000cfdb82df224a31b81dMatthew Fritze values.put(IndexDatabaseHelper.IndexColumns.INTENT_TARGET_CLASS, key); 3706efea1e624bb4b48290000cfdb82df224a31b81dMatthew Fritze values.put(IndexDatabaseHelper.IndexColumns.ICON, ""); 3716efea1e624bb4b48290000cfdb82df224a31b81dMatthew Fritze values.put(IndexDatabaseHelper.IndexColumns.ENABLED, true); 3726efea1e624bb4b48290000cfdb82df224a31b81dMatthew Fritze values.put(IndexDatabaseHelper.IndexColumns.DATA_KEY_REF, key.hashCode()); 3736efea1e624bb4b48290000cfdb82df224a31b81dMatthew Fritze values.put(IndexDatabaseHelper.IndexColumns.USER_ID, 0); 3746efea1e624bb4b48290000cfdb82df224a31b81dMatthew Fritze values.put(IndexDatabaseHelper.IndexColumns.PAYLOAD_TYPE, 0); 3756efea1e624bb4b48290000cfdb82df224a31b81dMatthew Fritze values.put(IndexDatabaseHelper.IndexColumns.PAYLOAD, ResultPayloadUtils.marshall(payload)); 3766efea1e624bb4b48290000cfdb82df224a31b81dMatthew Fritze 3776efea1e624bb4b48290000cfdb82df224a31b81dMatthew Fritze mDb.replaceOrThrow(IndexDatabaseHelper.Tables.TABLE_PREFS_INDEX, null, values); 3786efea1e624bb4b48290000cfdb82df224a31b81dMatthew Fritze } 379b7b286cb893268bec38584acdf5696f68675ecedMatthew Fritze}