Fix padding around PBA branding, with or without it.
Test: manual
Bug: 240545050
Change-Id: I6b586009dd0e7302878d6e8858f92539072e0853
diff --git a/PermissionController/res/values-v33/dimens.xml b/PermissionController/res/values-v33/dimens.xml
index 2ab9c32..5aea1d7 100644
--- a/PermissionController/res/values-v33/dimens.xml
+++ b/PermissionController/res/values-v33/dimens.xml
@@ -27,4 +27,5 @@
<dimen name="safety_center_group_header_expanded_padding_bottom">8dp</dimen>
<dimen name="safety_center_group_header_collapsed_padding_top">20dp</dimen>
<dimen name="safety_center_group_header_collapsed_padding_bottom">20dp</dimen>
+ <dimen name="safety_center_card_margin_bottom">24dp</dimen>
</resources>
\ No newline at end of file
diff --git a/PermissionController/res/values-v33/styles.xml b/PermissionController/res/values-v33/styles.xml
index d9790a4..70d9660 100644
--- a/PermissionController/res/values-v33/styles.xml
+++ b/PermissionController/res/values-v33/styles.xml
@@ -142,7 +142,7 @@
<item name="android:paddingStart">24dp</item>
<item name="android:paddingEnd">24dp</item>
<item name="android:paddingTop">24dp</item>
- <item name="android:paddingBottom">24dp</item>
+ <item name="android:paddingBottom">@dimen/safety_center_card_margin_bottom</item>
<item name="android:layout_marginStart">16dp</item>
<item name="android:layout_marginEnd">16dp</item>
<item name="android:layout_marginTop">8dp</item>
@@ -268,9 +268,9 @@
<item name="app:layout_constraintTop_toBottomOf">@id/rescan_button</item>
<item name="app:layout_constraintStart_toStartOf">parent</item>
<item name="app:layout_constraintEnd_toEndOf">parent</item>
- <item name="android:layout_marginTop">20dp</item>
- <item name="android:layout_marginBottom">0dp</item>
<item name="android:layout_gravity">center</item>
+ <item name="android:paddingTop">20dp</item>
+ <item name="android:paddingBottom">20dp</item>
</style>
<!-- END SAFETY STATUS CARD -->
@@ -329,13 +329,14 @@
</style>
<style name="SafetyCenterIssueSafetyProtectionSection">
- <item name="android:paddingTop">20dp</item>
<item name="android:gravity">center</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:layout_width">0dp</item>
<item name="app:layout_constraintTop_toBottomOf">@id/issue_card_action_button_list</item>
<item name="app:layout_constraintStart_toStartOf">parent</item>
<item name="app:layout_constraintEnd_toEndOf">parent</item>
+ <item name="android:paddingTop">20dp</item>
+ <item name="android:paddingBottom">20dp</item>
</style>
<style name="SafetyCenterIssueCardResolvedImage" parent="android:Widget.DeviceDefault">
diff --git a/PermissionController/src/com/android/permissioncontroller/safetycenter/ui/IssueCardPreference.java b/PermissionController/src/com/android/permissioncontroller/safetycenter/ui/IssueCardPreference.java
index 13902be..62fb8ca 100644
--- a/PermissionController/src/com/android/permissioncontroller/safetycenter/ui/IssueCardPreference.java
+++ b/PermissionController/src/com/android/permissioncontroller/safetycenter/ui/IssueCardPreference.java
@@ -144,11 +144,33 @@
}
}
+ configureSafetyProtectionView(holder);
+
mSafetyCenterViewModel
.getInteractionLogger()
.recordForIssue(Action.SAFETY_ISSUE_VIEWED, mIssue);
}
+ private void configureSafetyProtectionView(PreferenceViewHolder holder) {
+ View safetyProtectionSectionView =
+ holder.findViewById(R.id.issue_card_protected_by_android);
+ if (safetyProtectionSectionView.getVisibility() == View.GONE) {
+ holder.itemView.setPaddingRelative(
+ holder.itemView.getPaddingStart(),
+ holder.itemView.getPaddingTop(),
+ holder.itemView.getPaddingEnd(),
+ /* bottom = */ getContext()
+ .getResources()
+ .getDimensionPixelSize(R.dimen.safety_center_card_margin_bottom));
+ } else {
+ holder.itemView.setPaddingRelative(
+ holder.itemView.getPaddingStart(),
+ holder.itemView.getPaddingTop(),
+ holder.itemView.getPaddingEnd(),
+ /* bottom = */ 0);
+ }
+ }
+
public int getSeverityLevel() {
return mIssue.getSeverityLevel();
}
diff --git a/PermissionController/src/com/android/permissioncontroller/safetycenter/ui/SafetyStatusPreference.java b/PermissionController/src/com/android/permissioncontroller/safetycenter/ui/SafetyStatusPreference.java
index 93d2fda..f49d0a9 100644
--- a/PermissionController/src/com/android/permissioncontroller/safetycenter/ui/SafetyStatusPreference.java
+++ b/PermissionController/src/com/android/permissioncontroller/safetycenter/ui/SafetyStatusPreference.java
@@ -40,6 +40,7 @@
import androidx.preference.PreferenceViewHolder;
import com.android.permissioncontroller.R;
+import com.android.permissioncontroller.permission.utils.KotlinUtils;
import com.android.permissioncontroller.safetycenter.ui.model.SafetyCenterViewModel;
import com.google.android.material.button.MaterialButton;
@@ -105,10 +106,6 @@
mStatus.getTitle(),
mStatus.getSummary()));
- // Hide the Safety Protection branding if there are any issue cards
- View safetyProtectionSectionView = holder.findViewById(R.id.safety_protection_section_view);
- safetyProtectionSectionView.setVisibility(mHasIssues ? View.GONE : View.VISIBLE);
-
rescanButton.setOnClickListener(
unused -> {
SafetyCenterViewModel viewModel = requireViewModel();
@@ -117,6 +114,31 @@
});
updateStatusIcon(statusImage, rescanButton);
+
+ configureSafetyProtectionView(holder, context);
+ }
+
+ private void configureSafetyProtectionView(PreferenceViewHolder holder, Context context) {
+ View safetyProtectionSectionView = holder.findViewById(R.id.safety_protection_section_view);
+ if (KotlinUtils.INSTANCE.shouldShowSafetyProtectionResources(context)) {
+ // Hide the Safety Protection branding if there are any issue cards
+ safetyProtectionSectionView.setVisibility(mHasIssues ? View.GONE : View.VISIBLE);
+ }
+ if (safetyProtectionSectionView.getVisibility() == View.GONE) {
+ holder.itemView.setPaddingRelative(
+ holder.itemView.getPaddingStart(),
+ holder.itemView.getPaddingTop(),
+ holder.itemView.getPaddingEnd(),
+ /* bottom = */ getContext()
+ .getResources()
+ .getDimensionPixelSize(R.dimen.safety_center_card_margin_bottom));
+ } else {
+ holder.itemView.setPaddingRelative(
+ holder.itemView.getPaddingStart(),
+ holder.itemView.getPaddingTop(),
+ holder.itemView.getPaddingEnd(),
+ /* bottom = */ 0);
+ }
}
private void updateStatusIcon(ImageView statusImage, View rescanButton) {