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;
}