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:layout="@layout/settings_entity_header"
|
||||||
android:selectable="false"
|
android:selectable="false"
|
||||||
android:order="-10000"
|
android:order="-10000"
|
||||||
settings:allowDividerBelow="true"
|
|
||||||
settings:controller="com.android.settings.security.CredentialManagementAppHeaderController"/>
|
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 -->
|
<!-- Buttons -->
|
||||||
<com.android.settingslib.widget.ActionButtonsPreference
|
<com.android.settingslib.widget.ActionButtonsPreference
|
||||||
android:key="buttons"
|
android:key="buttons"
|
||||||
android:selectable="true"
|
android:selectable="true"
|
||||||
android:order="-9999"
|
android:order="-9998"
|
||||||
settings:allowDividerAbove="true"
|
settings:allowDividerAbove="true"
|
||||||
settings:allowDividerBelow="true"
|
settings:allowDividerBelow="true"
|
||||||
settings:controller="com.android.settings.security.CredentialManagementAppButtonsController"/>
|
settings:controller="com.android.settings.security.CredentialManagementAppButtonsController"/>
|
||||||
@@ -42,6 +46,7 @@
|
|||||||
android:key="authentication_policy"
|
android:key="authentication_policy"
|
||||||
android:layout="@layout/preference_category_no_label"
|
android:layout="@layout/preference_category_no_label"
|
||||||
android:title="@string/summary_placeholder"
|
android:title="@string/summary_placeholder"
|
||||||
|
settings:allowDividerAbove="true"
|
||||||
settings:controller="com.android.settings.security.CredentialManagementAppPolicyController"/>
|
settings:controller="com.android.settings.security.CredentialManagementAppPolicyController"/>
|
||||||
|
|
||||||
</PreferenceScreen>
|
</PreferenceScreen>
|
||||||
|
@@ -25,6 +25,7 @@ import android.os.RemoteException;
|
|||||||
import android.security.IKeyChainService;
|
import android.security.IKeyChainService;
|
||||||
import android.security.KeyChain;
|
import android.security.KeyChain;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
import android.view.View;
|
||||||
import android.widget.ImageView;
|
import android.widget.ImageView;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
|
||||||
@@ -54,7 +55,6 @@ public class CredentialManagementAppHeaderController extends BasePreferenceContr
|
|||||||
}
|
}
|
||||||
|
|
||||||
private final PackageManager mPackageManager;
|
private final PackageManager mPackageManager;
|
||||||
private boolean mHasCredentialManagerPackage;
|
|
||||||
private String mCredentialManagerPackageName;
|
private String mCredentialManagerPackageName;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -69,7 +69,6 @@ public class CredentialManagementAppHeaderController extends BasePreferenceContr
|
|||||||
mExecutor.execute(() -> {
|
mExecutor.execute(() -> {
|
||||||
try {
|
try {
|
||||||
IKeyChainService service = KeyChain.bind(mContext).getService();
|
IKeyChainService service = KeyChain.bind(mContext).getService();
|
||||||
mHasCredentialManagerPackage = service.hasCredentialManagementApp();
|
|
||||||
mCredentialManagerPackageName = service.getCredentialManagementAppPackageName();
|
mCredentialManagerPackageName = service.getCredentialManagementAppPackageName();
|
||||||
} catch (InterruptedException | RemoteException e) {
|
} catch (InterruptedException | RemoteException e) {
|
||||||
Log.e(TAG, "Unable to display credential management app header");
|
Log.e(TAG, "Unable to display credential management app header");
|
||||||
@@ -80,23 +79,21 @@ public class CredentialManagementAppHeaderController extends BasePreferenceContr
|
|||||||
|
|
||||||
private void displayHeader(PreferenceScreen screen) {
|
private void displayHeader(PreferenceScreen screen) {
|
||||||
LayoutPreference headerPref = screen.findPreference(getPreferenceKey());
|
LayoutPreference headerPref = screen.findPreference(getPreferenceKey());
|
||||||
ImageView mAppIconView = headerPref.findViewById(R.id.entity_header_icon);
|
ImageView appIconView = headerPref.findViewById(R.id.entity_header_icon);
|
||||||
TextView mTitleView = headerPref.findViewById(R.id.entity_header_title);
|
TextView titleView = headerPref.findViewById(R.id.entity_header_title);
|
||||||
TextView mDescriptionView = headerPref.findViewById(R.id.entity_header_summary);
|
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 {
|
try {
|
||||||
ApplicationInfo applicationInfo =
|
ApplicationInfo applicationInfo =
|
||||||
mPackageManager.getApplicationInfo(mCredentialManagerPackageName, 0);
|
mPackageManager.getApplicationInfo(mCredentialManagerPackageName, 0);
|
||||||
mAppIconView.setImageDrawable(mPackageManager.getApplicationIcon(applicationInfo));
|
appIconView.setImageDrawable(mPackageManager.getApplicationIcon(applicationInfo));
|
||||||
mTitleView.setText(applicationInfo.loadLabel(mPackageManager));
|
titleView.setText(applicationInfo.loadLabel(mPackageManager));
|
||||||
} catch (PackageManager.NameNotFoundException e) {
|
} catch (PackageManager.NameNotFoundException e) {
|
||||||
mAppIconView.setImageDrawable(null);
|
appIconView.setImageDrawable(null);
|
||||||
mTitleView.setText(mCredentialManagerPackageName);
|
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