From dbd9904c0a2624f33b7c845a461bf6eb65e1aed9 Mon Sep 17 00:00:00 2001 From: Reema Bajwa Date: Tue, 20 Dec 2022 22:09:15 +0000 Subject: [PATCH] Calling isServiceEnabled with the context in credential manager settings Test: Built and deployed locally Change-Id: I22d3fe863fa31c2601cedbde10907c79469a75f4 --- .../accounts/AccountDashboardFragment.java | 19 +++++++++++++------ .../AccountPersonalDashboardFragment.java | 6 ++---- .../AccountWorkProfileDashboardFragment.java | 6 ++---- ...CredentialManagerPreferenceController.java | 3 ++- 4 files changed, 19 insertions(+), 15 deletions(-) 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; }