summaryrefslogtreecommitdiff
path: root/java/com/android/incallui/sessiondata/MultimediaFragment.java
diff options
context:
space:
mode:
Diffstat (limited to 'java/com/android/incallui/sessiondata/MultimediaFragment.java')
-rw-r--r--java/com/android/incallui/sessiondata/MultimediaFragment.java40
1 files changed, 35 insertions, 5 deletions
diff --git a/java/com/android/incallui/sessiondata/MultimediaFragment.java b/java/com/android/incallui/sessiondata/MultimediaFragment.java
index 14aa0a3aa..85a60b6e3 100644
--- a/java/com/android/incallui/sessiondata/MultimediaFragment.java
+++ b/java/com/android/incallui/sessiondata/MultimediaFragment.java
@@ -46,7 +46,7 @@ import com.bumptech.glide.request.target.Target;
* Displays info from {@link MultimediaData MultimediaData}.
*
* <p>Currently displays image, location (as a map), and message that come bundled with
- * MultimediaData when calling {@link #newInstance(MultimediaData, boolean, boolean)}.
+ * MultimediaData when calling {@link #newInstance(MultimediaData, boolean, boolean, boolean)}.
*/
public class MultimediaFragment extends Fragment implements AvatarPresenter {
@@ -55,18 +55,24 @@ public class MultimediaFragment extends Fragment implements AvatarPresenter {
private static final String ARG_LOCATION = "location";
private static final String ARG_INTERACTIVE = "interactive";
private static final String ARG_SHOW_AVATAR = "show_avatar";
+ private static final String ARG_IS_SPAM = "is_spam";
private ImageView avatarImageView;
private boolean showAvatar;
+ private boolean isSpam;
public static MultimediaFragment newInstance(
- @NonNull MultimediaData multimediaData, boolean isInteractive, boolean showAvatar) {
+ @NonNull MultimediaData multimediaData,
+ boolean isInteractive,
+ boolean showAvatar,
+ boolean isSpam) {
return newInstance(
multimediaData.getText(),
multimediaData.getImageUri(),
multimediaData.getLocation(),
isInteractive,
- showAvatar);
+ showAvatar,
+ isSpam);
}
@VisibleForTesting(otherwise = VisibleForTesting.PRIVATE)
@@ -75,13 +81,15 @@ public class MultimediaFragment extends Fragment implements AvatarPresenter {
@Nullable Uri imageUri,
@Nullable Location location,
boolean isInteractive,
- boolean showAvatar) {
+ boolean showAvatar,
+ boolean isSpam) {
Bundle args = new Bundle();
args.putString(ARG_SUBJECT, subject);
args.putParcelable(ARG_IMAGE, imageUri);
args.putParcelable(ARG_LOCATION, location);
args.putBoolean(ARG_INTERACTIVE, isInteractive);
args.putBoolean(ARG_SHOW_AVATAR, showAvatar);
+ args.putBoolean(ARG_IS_SPAM, isSpam);
MultimediaFragment fragment = new MultimediaFragment();
fragment.setArguments(args);
return fragment;
@@ -91,12 +99,17 @@ public class MultimediaFragment extends Fragment implements AvatarPresenter {
public void onCreate(@Nullable Bundle bundle) {
super.onCreate(bundle);
showAvatar = getArguments().getBoolean(ARG_SHOW_AVATAR);
+ isSpam = getArguments().getBoolean(ARG_IS_SPAM);
}
@Nullable
@Override
public View onCreateView(
LayoutInflater layoutInflater, @Nullable ViewGroup viewGroup, @Nullable Bundle bundle) {
+ if (isSpam) {
+ return layoutInflater.inflate(R.layout.fragment_spam, viewGroup, false);
+ }
+
boolean hasImage = getImageUri() != null;
boolean hasSubject = !TextUtils.isEmpty(getSubject());
boolean hasMap = getLocation() != null;
@@ -127,6 +140,21 @@ public class MultimediaFragment extends Fragment implements AvatarPresenter {
@Override
public void onViewCreated(View view, @Nullable Bundle bundle) {
super.onViewCreated(view, bundle);
+ View container = view.findViewById(R.id.answer_message_container);
+ if (container != null) {
+ container.setClipToOutline(true);
+ }
+
+ // If the call is spam and only has a subject, update the view to reflect that.
+ if (isSpam
+ && getLocation() == null
+ && getImageUri() == null
+ && !TextUtils.isEmpty(getSubject())) {
+ ((ImageView) view.findViewById(R.id.spam_image))
+ .setImageResource(R.drawable.quantum_ic_message_white_24);
+ ((TextView) view.findViewById(R.id.spam_text)).setText(R.string.spam_message_text);
+ }
+
TextView messageText = (TextView) view.findViewById(R.id.answer_message_text);
if (messageText != null) {
messageText.setText(getSubject());
@@ -175,7 +203,9 @@ public class MultimediaFragment extends Fragment implements AvatarPresenter {
.commitNow();
}
avatarImageView = ((ImageView) view.findViewById(R.id.answer_message_avatar));
- avatarImageView.setVisibility(showAvatar ? View.VISIBLE : View.GONE);
+ if (avatarImageView != null) {
+ avatarImageView.setVisibility(showAvatar ? View.VISIBLE : View.GONE);
+ }
Holder parent = FragmentUtils.getParent(this, Holder.class);
if (parent != null) {