Fix Settings crash after disabling Settings Suggestion

- Settings Suggestion App is responsible for searching, we can not
prevent user disable it. Hide search feature if user disable it.

Fixes: 118805907
Fixes: 117921464
Test: manual
Change-Id: I61c47c52265a6efd79ef2fa60272bf6513e678b1
This commit is contained in:
Raff Tsai
2018-11-05 16:10:19 +08:00
parent 7d704c8798
commit 2928cd4c72
8 changed files with 69 additions and 3 deletions

View File

@@ -56,9 +56,15 @@ public class SearchMenuController implements LifecycleObserver, OnCreateOptionsM
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
final Context context = mHost.getContext();
final String SettingsIntelligencePkgName = FeatureFactory.getFactory(context)
.getSearchFeatureProvider().getSettingsIntelligencePkgName();
if (!Utils.isDeviceProvisioned(mHost.getContext())) {
return;
}
if (!Utils.isPackageEnabled(mHost.getContext(), SettingsIntelligencePkgName)) {
return;
}
if (menu == null) {
return;
}
@@ -72,10 +78,8 @@ public class SearchMenuController implements LifecycleObserver, OnCreateOptionsM
searchItem.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
searchItem.setOnMenuItemClickListener(target -> {
final Context context = mHost.getContext();
final Intent intent = SearchFeatureProvider.SEARCH_UI_INTENT;
intent.setPackage(FeatureFactory.getFactory(mHost.getContext())
.getSearchFeatureProvider().getSettingsIntelligencePkgName());
intent.setPackage(SettingsIntelligencePkgName);
FeatureFactory.getFactory(context).getMetricsFeatureProvider()
.action(context, MetricsProto.MetricsEvent.ACTION_SEARCH_RESULTS);
mHost.startActivityForResult(intent, 0 /* requestCode */);