Loading res/xml/credential_management_app_fragment.xml +7 −2 Original line number Diff line number Diff line Loading @@ -25,14 +25,18 @@ android:layout="@layout/settings_entity_header" android:selectable="false" android:order="-10000" settings:allowDividerBelow="true" settings:controller="com.android.settings.security.CredentialManagementAppHeaderController"/> <com.android.settingslib.widget.TopIntroPreference android:key="top_intro_request_manage_credentials" android:order="-9999" android:title="@string/request_manage_credentials_description"/> <!-- Buttons --> <com.android.settingslib.widget.ActionButtonsPreference android:key="buttons" android:selectable="true" android:order="-9999" android:order="-9998" settings:allowDividerAbove="true" settings:allowDividerBelow="true" settings:controller="com.android.settings.security.CredentialManagementAppButtonsController"/> Loading @@ -42,6 +46,7 @@ android:key="authentication_policy" android:layout="@layout/preference_category_no_label" android:title="@string/summary_placeholder" settings:allowDividerAbove="true" settings:controller="com.android.settings.security.CredentialManagementAppPolicyController"/> </PreferenceScreen> src/com/android/settings/security/CredentialManagementAppHeaderController.java +11 −14 Original line number Diff line number Diff line Loading @@ -25,6 +25,7 @@ import android.os.RemoteException; import android.security.IKeyChainService; import android.security.KeyChain; import android.util.Log; import android.view.View; import android.widget.ImageView; import android.widget.TextView; Loading Loading @@ -54,7 +55,6 @@ public class CredentialManagementAppHeaderController extends BasePreferenceContr } private final PackageManager mPackageManager; private boolean mHasCredentialManagerPackage; private String mCredentialManagerPackageName; @Override Loading @@ -69,7 +69,6 @@ public class CredentialManagementAppHeaderController extends BasePreferenceContr mExecutor.execute(() -> { try { IKeyChainService service = KeyChain.bind(mContext).getService(); mHasCredentialManagerPackage = service.hasCredentialManagementApp(); mCredentialManagerPackageName = service.getCredentialManagementAppPackageName(); } catch (InterruptedException | RemoteException e) { Log.e(TAG, "Unable to display credential management app header"); Loading @@ -80,23 +79,21 @@ public class CredentialManagementAppHeaderController extends BasePreferenceContr private void displayHeader(PreferenceScreen screen) { LayoutPreference headerPref = screen.findPreference(getPreferenceKey()); ImageView mAppIconView = headerPref.findViewById(R.id.entity_header_icon); TextView mTitleView = headerPref.findViewById(R.id.entity_header_title); TextView mDescriptionView = headerPref.findViewById(R.id.entity_header_summary); ImageView appIconView = headerPref.findViewById(R.id.entity_header_icon); TextView titleView = headerPref.findViewById(R.id.entity_header_title); TextView summary1 = headerPref.findViewById(R.id.entity_header_summary); TextView summary2 = headerPref.findViewById(R.id.entity_header_second_summary); summary1.setVisibility(View.GONE); summary2.setVisibility(View.GONE); try { ApplicationInfo applicationInfo = mPackageManager.getApplicationInfo(mCredentialManagerPackageName, 0); mAppIconView.setImageDrawable(mPackageManager.getApplicationIcon(applicationInfo)); mTitleView.setText(applicationInfo.loadLabel(mPackageManager)); appIconView.setImageDrawable(mPackageManager.getApplicationIcon(applicationInfo)); titleView.setText(applicationInfo.loadLabel(mPackageManager)); } catch (PackageManager.NameNotFoundException e) { mAppIconView.setImageDrawable(null); mTitleView.setText(mCredentialManagerPackageName); appIconView.setImageDrawable(null); titleView.setText(mCredentialManagerPackageName); } // TODO (b/165641221): The description should be multi-lined, which is currently a // limitation of using Settings entity header. However, the Settings entity header // should be used to be consistent with the rest of Settings. mDescriptionView.setText( mContext.getString(R.string.request_manage_credentials_description)); } } Loading
res/xml/credential_management_app_fragment.xml +7 −2 Original line number Diff line number Diff line Loading @@ -25,14 +25,18 @@ android:layout="@layout/settings_entity_header" android:selectable="false" android:order="-10000" settings:allowDividerBelow="true" settings:controller="com.android.settings.security.CredentialManagementAppHeaderController"/> <com.android.settingslib.widget.TopIntroPreference android:key="top_intro_request_manage_credentials" android:order="-9999" android:title="@string/request_manage_credentials_description"/> <!-- Buttons --> <com.android.settingslib.widget.ActionButtonsPreference android:key="buttons" android:selectable="true" android:order="-9999" android:order="-9998" settings:allowDividerAbove="true" settings:allowDividerBelow="true" settings:controller="com.android.settings.security.CredentialManagementAppButtonsController"/> Loading @@ -42,6 +46,7 @@ android:key="authentication_policy" android:layout="@layout/preference_category_no_label" android:title="@string/summary_placeholder" settings:allowDividerAbove="true" settings:controller="com.android.settings.security.CredentialManagementAppPolicyController"/> </PreferenceScreen>
src/com/android/settings/security/CredentialManagementAppHeaderController.java +11 −14 Original line number Diff line number Diff line Loading @@ -25,6 +25,7 @@ import android.os.RemoteException; import android.security.IKeyChainService; import android.security.KeyChain; import android.util.Log; import android.view.View; import android.widget.ImageView; import android.widget.TextView; Loading Loading @@ -54,7 +55,6 @@ public class CredentialManagementAppHeaderController extends BasePreferenceContr } private final PackageManager mPackageManager; private boolean mHasCredentialManagerPackage; private String mCredentialManagerPackageName; @Override Loading @@ -69,7 +69,6 @@ public class CredentialManagementAppHeaderController extends BasePreferenceContr mExecutor.execute(() -> { try { IKeyChainService service = KeyChain.bind(mContext).getService(); mHasCredentialManagerPackage = service.hasCredentialManagementApp(); mCredentialManagerPackageName = service.getCredentialManagementAppPackageName(); } catch (InterruptedException | RemoteException e) { Log.e(TAG, "Unable to display credential management app header"); Loading @@ -80,23 +79,21 @@ public class CredentialManagementAppHeaderController extends BasePreferenceContr private void displayHeader(PreferenceScreen screen) { LayoutPreference headerPref = screen.findPreference(getPreferenceKey()); ImageView mAppIconView = headerPref.findViewById(R.id.entity_header_icon); TextView mTitleView = headerPref.findViewById(R.id.entity_header_title); TextView mDescriptionView = headerPref.findViewById(R.id.entity_header_summary); ImageView appIconView = headerPref.findViewById(R.id.entity_header_icon); TextView titleView = headerPref.findViewById(R.id.entity_header_title); TextView summary1 = headerPref.findViewById(R.id.entity_header_summary); TextView summary2 = headerPref.findViewById(R.id.entity_header_second_summary); summary1.setVisibility(View.GONE); summary2.setVisibility(View.GONE); try { ApplicationInfo applicationInfo = mPackageManager.getApplicationInfo(mCredentialManagerPackageName, 0); mAppIconView.setImageDrawable(mPackageManager.getApplicationIcon(applicationInfo)); mTitleView.setText(applicationInfo.loadLabel(mPackageManager)); appIconView.setImageDrawable(mPackageManager.getApplicationIcon(applicationInfo)); titleView.setText(applicationInfo.loadLabel(mPackageManager)); } catch (PackageManager.NameNotFoundException e) { mAppIconView.setImageDrawable(null); mTitleView.setText(mCredentialManagerPackageName); appIconView.setImageDrawable(null); titleView.setText(mCredentialManagerPackageName); } // TODO (b/165641221): The description should be multi-lined, which is currently a // limitation of using Settings entity header. However, the Settings entity header // should be used to be consistent with the rest of Settings. mDescriptionView.setText( mContext.getString(R.string.request_manage_credentials_description)); } }