summaryrefslogtreecommitdiff
path: root/PermissionController/src/com/android/permissioncontroller/safetycenter/ui/IssueCardPreference.java
diff options
context:
space:
mode:
Diffstat (limited to 'PermissionController/src/com/android/permissioncontroller/safetycenter/ui/IssueCardPreference.java')
-rw-r--r--PermissionController/src/com/android/permissioncontroller/safetycenter/ui/IssueCardPreference.java48
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)