Merge "Support "Add account" search indexing" into main
This commit is contained in:
@@ -187,6 +187,11 @@ public class AccountPreferenceController extends AbstractPreferenceController
|
|||||||
updateUi();
|
updateUi();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void updateRawDataToIndex(List<SearchIndexableRaw> rawData) {
|
||||||
|
rawData.add(newAddAccountRawData());
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void updateDynamicRawDataToIndex(List<SearchIndexableRaw> rawData) {
|
public void updateDynamicRawDataToIndex(List<SearchIndexableRaw> rawData) {
|
||||||
if (!isAvailable()) {
|
if (!isAvailable()) {
|
||||||
@@ -428,6 +433,14 @@ public class AccountPreferenceController extends AbstractPreferenceController
|
|||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private SearchIndexableRaw newAddAccountRawData() {
|
||||||
|
SearchIndexableRaw data = new SearchIndexableRaw(mContext);
|
||||||
|
data.key = PREF_KEY_ADD_ACCOUNT;
|
||||||
|
data.title = mContext.getString(R.string.add_account_label);
|
||||||
|
data.iconResId = R.drawable.ic_add_24dp;
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
|
||||||
private RestrictedPreference newAddAccountPreference() {
|
private RestrictedPreference newAddAccountPreference() {
|
||||||
RestrictedPreference preference =
|
RestrictedPreference preference =
|
||||||
new RestrictedPreference(mFragment.getPreferenceManager().getContext());
|
new RestrictedPreference(mFragment.getPreferenceManager().getContext());
|
||||||
|
@@ -73,7 +73,19 @@ public class BaseSearchIndexProvider implements Indexable.SearchIndexProvider {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<SearchIndexableRaw> getRawDataToIndex(Context context, boolean enabled) {
|
public List<SearchIndexableRaw> getRawDataToIndex(Context context, boolean enabled) {
|
||||||
return null;
|
final List<SearchIndexableRaw> raws = new ArrayList<>();
|
||||||
|
final List<AbstractPreferenceController> controllers = getPreferenceControllers(context);
|
||||||
|
if (controllers == null || controllers.isEmpty()) {
|
||||||
|
return raws;
|
||||||
|
}
|
||||||
|
for (AbstractPreferenceController controller : controllers) {
|
||||||
|
if (controller instanceof PreferenceControllerMixin) {
|
||||||
|
((PreferenceControllerMixin) controller).updateRawDataToIndex(raws);
|
||||||
|
} else if (controller instanceof BasePreferenceController) {
|
||||||
|
((BasePreferenceController) controller).updateRawDataToIndex(raws);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return raws;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@@ -254,25 +254,26 @@ public class AccountPreferenceControllerTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void updateRawDataToIndex_ManagedProfile_shouldNotUpdate() {
|
public void updateRawDataToIndex_noManagedProfile_shouldContainAddAccount() {
|
||||||
|
final List<SearchIndexableRaw> data = new ArrayList<>();
|
||||||
|
when(mUserManager.isManagedProfile()).thenReturn(false);
|
||||||
|
|
||||||
|
mController.updateRawDataToIndex(data);
|
||||||
|
|
||||||
|
assertThat(data).hasSize(1);
|
||||||
|
assertThat(data.get(0).key).isEqualTo("add_account");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void updateRawDataToIndex_ManagedProfile_shouldContainAddAccount() {
|
||||||
final List<SearchIndexableRaw> data = new ArrayList<>();
|
final List<SearchIndexableRaw> data = new ArrayList<>();
|
||||||
when(mUserManager.isManagedProfile()).thenReturn(true);
|
when(mUserManager.isManagedProfile()).thenReturn(true);
|
||||||
|
|
||||||
mController.updateRawDataToIndex(data);
|
mController.updateRawDataToIndex(data);
|
||||||
|
|
||||||
assertThat(data).isEmpty();
|
assertThat(data).hasSize(1);
|
||||||
}
|
assertThat(data.get(0).key).isEqualTo("add_account");
|
||||||
|
|
||||||
@Test
|
|
||||||
public void updateRawDataToIndex_DisabledUser_shouldNotUpdate() {
|
|
||||||
final List<SearchIndexableRaw> data = new ArrayList<>();
|
|
||||||
final List<UserInfo> infos = new ArrayList<>();
|
|
||||||
infos.add(new UserInfo(1, "user 1", UserInfo.FLAG_DISABLED));
|
|
||||||
when(mUserManager.isManagedProfile()).thenReturn(false);
|
|
||||||
when(mUserManager.getProfiles(anyInt())).thenReturn(infos);
|
|
||||||
mController.updateRawDataToIndex(data);
|
|
||||||
|
|
||||||
assertThat(data).isEmpty();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
Reference in New Issue
Block a user