Calling isServiceEnabled with the context in credential manager settings

Test: Built and deployed locally

Change-Id: I22d3fe863fa31c2601cedbde10907c79469a75f4
diff --git a/src/com/android/settings/accounts/AccountDashboardFragment.java b/src/com/android/settings/accounts/AccountDashboardFragment.java
index 107df94..e252688 100644
--- a/src/com/android/settings/accounts/AccountDashboardFragment.java
+++ b/src/com/android/settings/accounts/AccountDashboardFragment.java
@@ -25,6 +25,7 @@
 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 @@
 
 @SearchIndexable
 public class AccountDashboardFragment extends DashboardFragment {
-
     private static final String TAG = "AccountDashboardFrag";
 
     @Override
@@ -61,7 +61,7 @@
 
     @Override
     protected int getPreferenceScreenResId() {
-        return getPreferenceLayoutResId();
+        return getPreferenceLayoutResId(this.getContext());
     }
 
     @Override
@@ -72,7 +72,7 @@
     @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 @@
         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<SearchIndexableResource> getXmlResourcesToIndex(Context context,
+                        boolean enabled) {
+                    final SearchIndexableResource sir = new SearchIndexableResource(context);
+                    sir.xmlResId = getPreferenceLayoutResId(context);
+                    return List.of(sir);
+                }
 
                 @Override
                 public List<AbstractPreferenceController> createPreferenceControllers(
diff --git a/src/com/android/settings/accounts/AccountPersonalDashboardFragment.java b/src/com/android/settings/accounts/AccountPersonalDashboardFragment.java
index e061102..5f9a288 100644
--- a/src/com/android/settings/accounts/AccountPersonalDashboardFragment.java
+++ b/src/com/android/settings/accounts/AccountPersonalDashboardFragment.java
@@ -38,7 +38,6 @@
 
 /** Account Setting page for personal profile. */
 public class AccountPersonalDashboardFragment extends DashboardFragment {
-
     private static final String TAG = "AccountPersonalFrag";
 
     @Override
@@ -53,7 +52,7 @@
 
     @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 @@
     @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 027d1f7..4835b17 100644
--- a/src/com/android/settings/accounts/AccountWorkProfileDashboardFragment.java
+++ b/src/com/android/settings/accounts/AccountWorkProfileDashboardFragment.java
@@ -38,7 +38,6 @@
 
 /** Account Setting page for work profile. */
 public class AccountWorkProfileDashboardFragment extends DashboardFragment {
-
     private static final String TAG = "AccountWorkProfileFrag";
 
     @Override
@@ -53,7 +52,7 @@
 
     @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 @@
     @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 7abe904..8150604 100644
--- a/src/com/android/settings/applications/credentials/CredentialManagerPreferenceController.java
+++ b/src/com/android/settings/applications/credentials/CredentialManagerPreferenceController.java
@@ -96,7 +96,8 @@
         }
 
         Object service = context.getSystemService(Context.CREDENTIAL_SERVICE);
-        if (service != null && CredentialManager.isServiceEnabled()) {
+
+        if (service != null && CredentialManager.isServiceEnabled(context)) {
             return (CredentialManager) service;
         }