Tweak the ui based on the Android S design
- Use TopIntro preference to show introduction text Change-Id: Ic2304dab188848dfa6ef8a0429fd5b7ad40cf0af Test: See the screenshot- https://screenshot.googleplex.com/AMS64EGe5Fcdfn8 Fix: 177997785
This commit is contained in:
@@ -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"/>
|
||||
@@ -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>
|
||||
|
@@ -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;
|
||||
|
||||
@@ -54,7 +55,6 @@ public class CredentialManagementAppHeaderController extends BasePreferenceContr
|
||||
}
|
||||
|
||||
private final PackageManager mPackageManager;
|
||||
private boolean mHasCredentialManagerPackage;
|
||||
private String mCredentialManagerPackageName;
|
||||
|
||||
@Override
|
||||
@@ -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");
|
||||
@@ -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));
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user