Merge "[permissions-ui] use new API for the unused apps footer link" into sc-dev am: 7cb1442c4b am: 2307b4f6d8
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/modules/Permission/+/14926445
Change-Id: If2d66df6440b9128da220d54ab2681fc921ee47b
diff --git a/PermissionController/src/com/android/permissioncontroller/permission/ui/handheld/ManageStandardPermissionsFragment.java b/PermissionController/src/com/android/permissioncontroller/permission/ui/handheld/ManageStandardPermissionsFragment.java
index 2333d12..f7959cd 100644
--- a/PermissionController/src/com/android/permissioncontroller/permission/ui/handheld/ManageStandardPermissionsFragment.java
+++ b/PermissionController/src/com/android/permissioncontroller/permission/ui/handheld/ManageStandardPermissionsFragment.java
@@ -25,14 +25,10 @@
import android.app.Application;
import android.content.Intent;
import android.os.Bundle;
-import android.text.SpannableStringBuilder;
-import android.text.Spanned;
-import android.text.style.ClickableSpan;
import android.util.Log;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
-import android.view.View;
import androidx.lifecycle.ViewModelProvider;
import androidx.preference.Preference;
@@ -170,7 +166,12 @@
Preference autoRevokePreference = screen.findPreference(AUTO_REVOKE_KEY);
if (numAutoRevoked != null && numAutoRevoked != 0) {
if (autoRevokePreference == null) {
- autoRevokePreference = createAutoRevokeFooterPreference();
+ if (SdkLevel.isAtLeastS()) {
+ autoRevokePreference = createAutoRevokeFooterPreferenceForSPlus();
+ } else {
+ autoRevokePreference = createAutoRevokeFooterPreferenceForR();
+ }
+ autoRevokePreference.setKey(AUTO_REVOKE_KEY);
screen.addPreference(autoRevokePreference);
}
} else if (numAutoRevoked != null && autoRevokePreference != null) {
@@ -180,51 +181,29 @@
return screen;
}
- private Preference createAutoRevokeFooterPreference() {
- Preference autoRevokePreference;
- if (SdkLevel.isAtLeastS()) {
- FooterPreference.Builder autoRevokePreferenceBuilder =
- new FooterPreference.Builder(getContext());
- autoRevokePreferenceBuilder.setKey(AUTO_REVOKE_KEY);
- // Description contains a "Learn more" link
- CharSequence descriptionText = getContext().getText(
- R.string.auto_revoked_apps_page_summary);
- SpannableStringBuilder sb = new SpannableStringBuilder();
- sb.append(descriptionText);
- sb.append("\n\n");
- CharSequence learnMoreText = getContext().getText(
- R.string.permission_usage_access_dialog_learn_more);
- ClickableSpan link = new ClickableSpan() {
- @Override
- public void onClick(View view) {
- mViewModel.showAutoRevoke(ManageStandardPermissionsFragment.this,
- UnusedAppsFragment.createArgs(
- getArguments().getLong(EXTRA_SESSION_ID,
- INVALID_SESSION_ID)));
-
- }
- };
- sb.append(learnMoreText, link, Spanned.SPAN_INCLUSIVE_INCLUSIVE);
- autoRevokePreferenceBuilder.setTitle(sb);
- autoRevokePreference = autoRevokePreferenceBuilder.build();
- autoRevokePreference.setIcon(R.drawable.ic_info_outline_accent);
- } else {
- autoRevokePreference = new FixedSizeIconPreference(
- getPreferenceManager().getContext(), true, true);
- autoRevokePreference.setOrder(-1);
- autoRevokePreference.setKey(AUTO_REVOKE_KEY);
- autoRevokePreference.setSingleLineTitle(false);
- autoRevokePreference.setIcon(R.drawable.ic_info_outline_accent);
- autoRevokePreference.setTitle(
- R.string.auto_revoke_permission_notification_title);
- autoRevokePreference.setSummary(
- R.string.auto_revoke_setting_subtitle);
- autoRevokePreference.setOnPreferenceClickListener(preference -> {
- mViewModel.showAutoRevoke(this, UnusedAppsFragment.createArgs(
- getArguments().getLong(EXTRA_SESSION_ID, INVALID_SESSION_ID)));
- return true;
+ private FooterPreference createAutoRevokeFooterPreferenceForSPlus() {
+ FooterPreference autoRevokePreference = new FooterPreference(getContext());
+ autoRevokePreference.setSummary(R.string.auto_revoked_apps_page_summary);
+ autoRevokePreference.setLearnMoreAction(view -> {
+ mViewModel.showAutoRevoke(this, UnusedAppsFragment.createArgs(
+ getArguments().getLong(EXTRA_SESSION_ID, INVALID_SESSION_ID)));
});
- }
+ return autoRevokePreference;
+ }
+
+ private Preference createAutoRevokeFooterPreferenceForR() {
+ Preference autoRevokePreference = new FixedSizeIconPreference(
+ getPreferenceManager().getContext(), true, true);
+ autoRevokePreference.setOrder(-1);
+ autoRevokePreference.setSingleLineTitle(false);
+ autoRevokePreference.setIcon(R.drawable.ic_info_outline_accent);
+ autoRevokePreference.setTitle(R.string.auto_revoke_permission_notification_title);
+ autoRevokePreference.setSummary(R.string.auto_revoke_setting_subtitle);
+ autoRevokePreference.setOnPreferenceClickListener(preference -> {
+ mViewModel.showAutoRevoke(this, UnusedAppsFragment.createArgs(
+ getArguments().getLong(EXTRA_SESSION_ID, INVALID_SESSION_ID)));
+ return true;
+ });
return autoRevokePreference;
}