diff --git a/src/com/android/settings/accounts/AccountDashboardFragment.java b/src/com/android/settings/accounts/AccountDashboardFragment.java index 107df947935..e252688fd18 100644 --- a/src/com/android/settings/accounts/AccountDashboardFragment.java +++ b/src/com/android/settings/accounts/AccountDashboardFragment.java @@ -25,6 +25,7 @@ import android.content.pm.UserInfo; import android.credentials.CredentialManager; import android.os.UserHandle; import android.os.UserManager; +import android.provider.SearchIndexableResource; import com.android.settings.R; import com.android.settings.applications.autofill.PasswordsPreferenceController; @@ -46,7 +47,6 @@ import java.util.List; @SearchIndexable public class AccountDashboardFragment extends DashboardFragment { - private static final String TAG = "AccountDashboardFrag"; @Override @@ -61,7 +61,7 @@ public class AccountDashboardFragment extends DashboardFragment { @Override protected int getPreferenceScreenResId() { - return getPreferenceLayoutResId(); + return getPreferenceLayoutResId(this.getContext()); } @Override @@ -72,7 +72,7 @@ public class AccountDashboardFragment extends DashboardFragment { @Override public void onAttach(Context context) { super.onAttach(context); - if (CredentialManager.isServiceEnabled()) { + if (CredentialManager.isServiceEnabled(context)) { CredentialManagerPreferenceController cmpp = use(CredentialManagerPreferenceController.class); cmpp.setParentFragment(this); @@ -118,14 +118,21 @@ public class AccountDashboardFragment extends DashboardFragment { controllers.add(new AutoSyncWorkDataPreferenceController(context, parent)); } - public static int getPreferenceLayoutResId() { - return CredentialManager.isServiceEnabled() + private static int getPreferenceLayoutResId(Context context) { + return (context != null && CredentialManager.isServiceEnabled(context)) ? R.xml.accounts_dashboard_settings_credman : R.xml.accounts_dashboard_settings; } public static final BaseSearchIndexProvider SEARCH_INDEX_DATA_PROVIDER = - new BaseSearchIndexProvider(getPreferenceLayoutResId()) { + new BaseSearchIndexProvider() { + @Override + public List getXmlResourcesToIndex(Context context, + boolean enabled) { + final SearchIndexableResource sir = new SearchIndexableResource(context); + sir.xmlResId = getPreferenceLayoutResId(context); + return List.of(sir); + } @Override public List createPreferenceControllers( diff --git a/src/com/android/settings/accounts/AccountPersonalDashboardFragment.java b/src/com/android/settings/accounts/AccountPersonalDashboardFragment.java index e0611023b63..5f9a288034d 100644 --- a/src/com/android/settings/accounts/AccountPersonalDashboardFragment.java +++ b/src/com/android/settings/accounts/AccountPersonalDashboardFragment.java @@ -38,7 +38,6 @@ import java.util.List; /** Account Setting page for personal profile. */ public class AccountPersonalDashboardFragment extends DashboardFragment { - private static final String TAG = "AccountPersonalFrag"; @Override @@ -53,7 +52,7 @@ public class AccountPersonalDashboardFragment extends DashboardFragment { @Override protected int getPreferenceScreenResId() { - if (CredentialManager.isServiceEnabled()) { + if (this.getContext() != null && CredentialManager.isServiceEnabled(this.getContext())) { return R.xml.accounts_personal_dashboard_settings_credman; } return R.xml.accounts_personal_dashboard_settings; @@ -67,8 +66,7 @@ public class AccountPersonalDashboardFragment extends DashboardFragment { @Override public void onAttach(Context context) { super.onAttach(context); - - if (CredentialManager.isServiceEnabled()) { + if (CredentialManager.isServiceEnabled(context)) { CredentialManagerPreferenceController cmpp = use(CredentialManagerPreferenceController.class); cmpp.setParentFragment(this); diff --git a/src/com/android/settings/accounts/AccountWorkProfileDashboardFragment.java b/src/com/android/settings/accounts/AccountWorkProfileDashboardFragment.java index 027d1f744ca..4835b173355 100644 --- a/src/com/android/settings/accounts/AccountWorkProfileDashboardFragment.java +++ b/src/com/android/settings/accounts/AccountWorkProfileDashboardFragment.java @@ -38,7 +38,6 @@ import java.util.List; /** Account Setting page for work profile. */ public class AccountWorkProfileDashboardFragment extends DashboardFragment { - private static final String TAG = "AccountWorkProfileFrag"; @Override @@ -53,7 +52,7 @@ public class AccountWorkProfileDashboardFragment extends DashboardFragment { @Override protected int getPreferenceScreenResId() { - if (CredentialManager.isServiceEnabled()) { + if (this.getContext() != null && CredentialManager.isServiceEnabled(this.getContext())) { return R.xml.accounts_work_dashboard_settings_credman; } return R.xml.accounts_work_dashboard_settings; @@ -67,8 +66,7 @@ public class AccountWorkProfileDashboardFragment extends DashboardFragment { @Override public void onAttach(Context context) { super.onAttach(context); - - if (CredentialManager.isServiceEnabled()) { + if (CredentialManager.isServiceEnabled(context)) { CredentialManagerPreferenceController cmpp = use(CredentialManagerPreferenceController.class); cmpp.setParentFragment(this); diff --git a/src/com/android/settings/applications/credentials/CredentialManagerPreferenceController.java b/src/com/android/settings/applications/credentials/CredentialManagerPreferenceController.java index 7abe9049d9d..8150604c280 100644 --- a/src/com/android/settings/applications/credentials/CredentialManagerPreferenceController.java +++ b/src/com/android/settings/applications/credentials/CredentialManagerPreferenceController.java @@ -96,7 +96,8 @@ public class CredentialManagerPreferenceController extends BasePreferenceControl } Object service = context.getSystemService(Context.CREDENTIAL_SERVICE); - if (service != null && CredentialManager.isServiceEnabled()) { + + if (service != null && CredentialManager.isServiceEnabled(context)) { return (CredentialManager) service; }