diff options
Diffstat (limited to 'PermissionController/src/com/android/permissioncontroller/safetycenter/ui/IssueCardPreference.java')
-rw-r--r-- | PermissionController/src/com/android/permissioncontroller/safetycenter/ui/IssueCardPreference.java | 48 |
1 files changed, 15 insertions, 33 deletions
diff --git a/PermissionController/src/com/android/permissioncontroller/safetycenter/ui/IssueCardPreference.java b/PermissionController/src/com/android/permissioncontroller/safetycenter/ui/IssueCardPreference.java index 170012c2e..fcce08d50 100644 --- a/PermissionController/src/com/android/permissioncontroller/safetycenter/ui/IssueCardPreference.java +++ b/PermissionController/src/com/android/permissioncontroller/safetycenter/ui/IssueCardPreference.java @@ -25,20 +25,16 @@ import static java.util.Objects.requireNonNull; import android.app.AlertDialog; import android.app.Dialog; import android.content.Context; -import android.content.res.Resources; -import android.graphics.Rect; import android.os.Bundle; import android.safetycenter.SafetyCenterIssue; import android.text.TextUtils; import android.util.Log; -import android.view.TouchDelegate; import android.view.View; import android.view.ViewGroup; import android.widget.Button; import android.widget.LinearLayout; import android.widget.TextView; -import androidx.annotation.DimenRes; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.annotation.RequiresApi; @@ -66,6 +62,7 @@ public class IssueCardPreference extends Preference implements ComparablePrefere private final SafetyCenterViewModel mSafetyCenterViewModel; private final SafetyCenterIssue mIssue; private final FragmentManager mDialogFragmentManager; + private final SafetyCenterIssueId mDecodedIssueId; public IssueCardPreference( Context context, @@ -78,12 +75,23 @@ public class IssueCardPreference extends Preference implements ComparablePrefere mSafetyCenterViewModel = requireNonNull(safetyCenterViewModel); mIssue = requireNonNull(issue); mDialogFragmentManager = dialogFragmentManager; + mDecodedIssueId = SafetyCenterIds.issueIdFromString(mIssue.getId()); } @Override public void onBindViewHolder(PreferenceViewHolder holder) { super.onBindViewHolder(holder); + mSafetyCenterViewModel + .getInteractionLogger() + .record( + Action.SAFETY_ISSUE_VIEWED, + LogSeverityLevel.fromIssueSeverityLevel(mIssue.getSeverityLevel()), + mDecodedIssueId.getSafetyCenterIssueKey().getSafetySourceId(), + SafetySourceProfileType.fromUserId( + mDecodedIssueId.getSafetyCenterIssueKey().getUserId()), + mDecodedIssueId.getIssueTypeId()); + configureDismissButton(holder.findViewById(R.id.issue_card_dismiss_btn)); ((TextView) holder.findViewById(R.id.issue_card_title)).setText(mIssue.getTitle()); @@ -115,12 +123,7 @@ public class IssueCardPreference extends Preference implements ComparablePrefere /** Returns the {@link SafetyCenterIssueKey} associated with this {@link IssueCardPreference} */ public SafetyCenterIssueKey getIssueKey() { - SafetyCenterIssueId safetyCenterIssueId = SafetyCenterIds.issueIdFromString(mIssue.getId()); - if (!safetyCenterIssueId.hasSafetyCenterIssueKey()) { - Log.d(TAG, "preference has no issue key"); - return null; - } - return safetyCenterIssueId.getSafetyCenterIssueKey(); + return mDecodedIssueId.getSafetyCenterIssueKey(); } private void configureDismissButton(View dismissButton) { @@ -131,35 +134,14 @@ public class IssueCardPreference extends Preference implements ComparablePrefere : new DismissOnClickListener()); dismissButton.setVisibility(View.VISIBLE); - configureTouchTarget( + SafetyCenterTouchTarget.configureSize( dismissButton, - R.dimen.safety_center_issue_card_dismiss_button_touch_target_size); + R.dimen.safety_center_icon_button_touch_target_size); } else { dismissButton.setVisibility(View.GONE); } } - private void configureTouchTarget(View view, @DimenRes int minTouchTargetSizeResource) { - View parent = (View) view.getParent(); - Resources res = view.getContext().getResources(); - int minTouchTargetSize = res.getDimensionPixelSize(minTouchTargetSizeResource); - - // Defer getHitRect so that it's called after the parent's children are laid out. - parent.post( - () -> { - Rect hitRect = new Rect(); - view.getHitRect(hitRect); - int currentTouchTargetWidth = hitRect.width(); - if (currentTouchTargetWidth < minTouchTargetSize) { - // inset adjustment is applied to top, bottom, left, right, divide width - // difference by two to get adjustment - int adjustInsetBy = (minTouchTargetSize - currentTouchTargetWidth) / 2; - hitRect.inset(-adjustInsetBy, -adjustInsetBy); - parent.setTouchDelegate(new TouchDelegate(hitRect, view)); - } - }); - } - @Override public boolean isSameItem(@NonNull Preference preference) { return (preference instanceof IssueCardPreference) |