From b47373014f82ec9ed11c940093f3e1a312aeaae1 Mon Sep 17 00:00:00 2001 From: Fan Zhang Date: Wed, 31 May 2017 12:43:48 -0700 Subject: [PATCH] Add search index for support dashboard activity. Change-Id: Ie9cf20316f94454a3d41f76d05b662e398c2c2ea Fix: 36005923 Test: make RunSettingsRoboTests --- AndroidManifest.xml | 2 +- .../backup/BackupSettingsActivity.java | 10 +-- .../core/gateway/SettingsGateway.java | 4 +- .../dashboard/SupportDashboardActivity.java | 44 --------- .../search/SearchIndexableResources.java | 4 +- .../support/SupportDashboardActivity.java | 89 +++++++++++++++++++ .../support/SupportDashboardActivityTest.java | 65 ++++++++++++++ 7 files changed, 164 insertions(+), 54 deletions(-) delete mode 100644 src/com/android/settings/dashboard/SupportDashboardActivity.java create mode 100644 src/com/android/settings/support/SupportDashboardActivity.java create mode 100644 tests/robotests/src/com/android/settings/support/SupportDashboardActivityTest.java diff --git a/AndroidManifest.xml b/AndroidManifest.xml index 7dd42df3c75..4efabab4ce7 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -3013,7 +3013,7 @@ android:resource="@string/system_dashboard_summary"/> - getRawDataToIndex(Context context, + boolean enabled) { + + final List result = new ArrayList<>(); + + // Add the activity title + SearchIndexableRaw data = new SearchIndexableRaw(context); + data.title = context.getString(R.string.page_tab_title_support); + data.screenTitle = context.getString(R.string.settings_label); + data.intentTargetPackage = context.getPackageName(); + data.intentTargetClass = SupportDashboardActivity.class.getName(); + data.intentAction = Intent.ACTION_MAIN; + data.key = SUPPORT_SEARCH_INDEX_KEY; + result.add(data); + + return result; + } + + @Override + public List getNonIndexableKeys(Context context) { + final List keys = super.getNonIndexableKeys(context); + if (!context.getResources().getBoolean(R.bool.config_support_enabled)) { + keys.add(SUPPORT_SEARCH_INDEX_KEY); + } + return keys; + } + }; +} diff --git a/tests/robotests/src/com/android/settings/support/SupportDashboardActivityTest.java b/tests/robotests/src/com/android/settings/support/SupportDashboardActivityTest.java new file mode 100644 index 00000000000..d90d8d6e938 --- /dev/null +++ b/tests/robotests/src/com/android/settings/support/SupportDashboardActivityTest.java @@ -0,0 +1,65 @@ +/* + * Copyright (C) 2017 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.settings.support; + + +import android.content.Context; +import android.content.Intent; + +import com.android.settings.R; +import com.android.settings.SettingsRobolectricTestRunner; +import com.android.settings.TestConfig; +import com.android.settings.search.SearchIndexableRaw; + +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.robolectric.RuntimeEnvironment; +import org.robolectric.annotation.Config; + +import java.util.List; + +import static com.google.common.truth.Truth.assertThat; + +@RunWith(SettingsRobolectricTestRunner.class) +@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION) +public class SupportDashboardActivityTest { + + private Context mContext; + + @Before + public void setUp() { + mContext = RuntimeEnvironment.application; + } + + @Test + public void shouldIndexSearchActivityForSearch() { + final List indexables = + SupportDashboardActivity.SEARCH_INDEX_DATA_PROVIDER + .getRawDataToIndex(mContext, true /* enabled */); + + assertThat(indexables).hasSize(1); + + final SearchIndexableRaw value = indexables.get(0); + + assertThat(value.title).isEqualTo(mContext.getString(R.string.page_tab_title_support)); + assertThat(value.screenTitle).isEqualTo(mContext.getString(R.string.settings_label)); + assertThat(value.intentTargetPackage).isEqualTo(mContext.getPackageName()); + assertThat(value.intentTargetClass).isEqualTo(SupportDashboardActivity.class.getName()); + assertThat(value.intentAction).isEqualTo(Intent.ACTION_MAIN); + } +}