Fix bluetooth search result no-op
Bluetooth fragment was manually setting intent information, which meant that the result didn't fire an intent properly. This type of regression or mistake will be caught in the fix for b/77921040. Change-Id: I49f87f40acbfc3f74ea2e97835f2644d443169e2 Fixes: 80317645 Test: robotests
This commit is contained in:
@@ -41,6 +41,8 @@ public class AdvancedConnectedDeviceDashboardFragment extends DashboardFragment
|
||||
|
||||
private static final String TAG = "AdvancedConnectedDeviceFrag";
|
||||
|
||||
static final String KEY_BLUETOOTH = "bluetooth_settings";
|
||||
|
||||
@Override
|
||||
public int getMetricsCategory() {
|
||||
return MetricsProto.MetricsEvent.CONNECTION_DEVICE_ADVANCED;
|
||||
@@ -115,6 +117,9 @@ public class AdvancedConnectedDeviceDashboardFragment extends DashboardFragment
|
||||
keys.add(AndroidBeamPreferenceController.KEY_ANDROID_BEAM_SETTINGS);
|
||||
}
|
||||
|
||||
// Parent duplicate
|
||||
keys.add(KEY_BLUETOOTH);
|
||||
|
||||
return keys;
|
||||
}
|
||||
|
||||
|
@@ -109,17 +109,10 @@ public class BluetoothDashboardFragment extends DashboardFragment {
|
||||
final List<SearchIndexableRaw> result = new ArrayList<>();
|
||||
|
||||
// Add the activity title
|
||||
SearchIndexableRaw data = new SearchIndexableRaw(context);
|
||||
final SearchIndexableRaw data = new SearchIndexableRaw(context);
|
||||
data.title = context.getString(R.string.bluetooth_settings_title);
|
||||
data.screenTitle = context.getString(R.string.settings_label);
|
||||
data.screenTitle = context.getString(R.string.bluetooth_settings_title);
|
||||
data.keywords = context.getString(R.string.keywords_bluetooth_settings);
|
||||
data.intentTargetPackage = context.getPackageName();
|
||||
data.intentTargetClass = BluetoothDashboardFragment.class.getName();
|
||||
data.intentAction = new SubSettingLauncher(context)
|
||||
.setDestination(ScanningSettings.class.getName())
|
||||
.setSourceMetricsCategory(MetricsProto.MetricsEvent.BLUETOOTH_FRAGMENT)
|
||||
.toIntent()
|
||||
.getAction();
|
||||
data.key = KEY_BLUETOOTH_SCREEN;
|
||||
result.add(data);
|
||||
|
||||
|
@@ -67,4 +67,13 @@ public class AdvancedConnectedDeviceDashboardFragmentTest {
|
||||
public void testGetCategoryKey_returnCategoryDevice() {
|
||||
assertThat(mFragment.getCategoryKey()).isEqualTo(CategoryKey.CATEGORY_DEVICE);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSearchIndexProvider_correctNonIndexables() {
|
||||
final List<String> niks =
|
||||
AdvancedConnectedDeviceDashboardFragment.SEARCH_INDEX_DATA_PROVIDER
|
||||
.getNonIndexableKeys(RuntimeEnvironment.application);
|
||||
|
||||
assertThat(niks).contains(AdvancedConnectedDeviceDashboardFragment.KEY_BLUETOOTH);
|
||||
}
|
||||
}
|
@@ -0,0 +1,60 @@
|
||||
/*
|
||||
* Copyright (C) 2018 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.connecteddevice;
|
||||
|
||||
import static com.google.common.truth.Truth.assertThat;
|
||||
|
||||
import android.content.Context;
|
||||
import android.text.TextUtils;
|
||||
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.search.SearchIndexableRaw;
|
||||
import com.android.settings.testutils.SettingsRobolectricTestRunner;
|
||||
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.robolectric.RuntimeEnvironment;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@RunWith(SettingsRobolectricTestRunner.class)
|
||||
public class BluetoothDashboardFragmentTest {
|
||||
|
||||
private Context mContext;
|
||||
|
||||
@Before
|
||||
public void setUp() {
|
||||
mContext = RuntimeEnvironment.application;
|
||||
}
|
||||
|
||||
@Test
|
||||
public void rawData_includesFragmentResult() {
|
||||
final List<SearchIndexableRaw> rawList =
|
||||
BluetoothDashboardFragment.SEARCH_INDEX_DATA_PROVIDER.getRawDataToIndex(mContext,
|
||||
true /* enabled */);
|
||||
|
||||
final SearchIndexableRaw fragmentResult = rawList.stream().filter(
|
||||
raw -> TextUtils.equals(raw.title,
|
||||
mContext.getString(R.string.bluetooth_settings))).findFirst().get();
|
||||
|
||||
|
||||
assertThat(fragmentResult).isNotNull();
|
||||
}
|
||||
|
||||
}
|
Reference in New Issue
Block a user