Initial commit
This commit is contained in:
@@ -0,0 +1,357 @@
|
||||
package com.twitter.sdk.android.tweetui.internal;
|
||||
|
||||
import android.R;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.graphics.Canvas;
|
||||
import android.graphics.Path;
|
||||
import android.graphics.RectF;
|
||||
import android.os.Build;
|
||||
import android.text.TextUtils;
|
||||
import android.util.AttributeSet;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.ImageView;
|
||||
import com.squareup.picasso.Callback;
|
||||
import com.squareup.picasso.Picasso;
|
||||
import com.squareup.picasso.RequestCreator;
|
||||
import com.twitter.sdk.android.core.IntentUtils;
|
||||
import com.twitter.sdk.android.core.internal.VineCardUtils;
|
||||
import com.twitter.sdk.android.core.internal.scribe.ScribeItem;
|
||||
import com.twitter.sdk.android.core.models.Card;
|
||||
import com.twitter.sdk.android.core.models.ImageValue;
|
||||
import com.twitter.sdk.android.core.models.MediaEntity;
|
||||
import com.twitter.sdk.android.core.models.Tweet;
|
||||
import com.twitter.sdk.android.tweetui.GalleryActivity;
|
||||
import com.twitter.sdk.android.tweetui.PlayerActivity;
|
||||
import com.twitter.sdk.android.tweetui.R$dimen;
|
||||
import com.twitter.sdk.android.tweetui.R$drawable;
|
||||
import com.twitter.sdk.android.tweetui.R$id;
|
||||
import com.twitter.sdk.android.tweetui.R$string;
|
||||
import com.twitter.sdk.android.tweetui.TweetMediaClickListener;
|
||||
import com.twitter.sdk.android.tweetui.TweetUi;
|
||||
import java.lang.ref.WeakReference;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
/* loaded from: classes.dex */
|
||||
public class TweetMediaView extends ViewGroup implements View.OnClickListener {
|
||||
private final OverlayImageView[] a;
|
||||
private List<MediaEntity> b;
|
||||
private final Path c;
|
||||
private final RectF d;
|
||||
private final int e;
|
||||
private int f;
|
||||
final float[] g;
|
||||
int h;
|
||||
int i;
|
||||
final DependencyProvider j;
|
||||
boolean k;
|
||||
TweetMediaClickListener l;
|
||||
Tweet m;
|
||||
|
||||
static class DependencyProvider {
|
||||
DependencyProvider() {
|
||||
}
|
||||
|
||||
Picasso a() {
|
||||
return TweetUi.s().p();
|
||||
}
|
||||
}
|
||||
|
||||
static class PicassoCallback implements Callback {
|
||||
final WeakReference<ImageView> a;
|
||||
|
||||
PicassoCallback(ImageView imageView) {
|
||||
this.a = new WeakReference<>(imageView);
|
||||
}
|
||||
|
||||
@Override // com.squareup.picasso.Callback
|
||||
public void onError() {
|
||||
}
|
||||
|
||||
@Override // com.squareup.picasso.Callback
|
||||
public void onSuccess() {
|
||||
ImageView imageView = this.a.get();
|
||||
if (imageView != null) {
|
||||
imageView.setBackgroundResource(R.color.transparent);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static class Size {
|
||||
static final Size c = new Size();
|
||||
final int a;
|
||||
final int b;
|
||||
|
||||
private Size() {
|
||||
this(0, 0);
|
||||
}
|
||||
|
||||
static Size a(int i, int i2) {
|
||||
int max = Math.max(i, 0);
|
||||
int max2 = Math.max(i2, 0);
|
||||
return (max == 0 && max2 == 0) ? c : new Size(max, max2);
|
||||
}
|
||||
|
||||
private Size(int i, int i2) {
|
||||
this.a = i;
|
||||
this.b = i2;
|
||||
}
|
||||
}
|
||||
|
||||
public TweetMediaView(Context context) {
|
||||
this(context, null);
|
||||
}
|
||||
|
||||
public void a(MediaEntity mediaEntity) {
|
||||
if (TweetMediaUtils.a(mediaEntity) != null) {
|
||||
Intent intent = new Intent(getContext(), (Class<?>) PlayerActivity.class);
|
||||
intent.putExtra("PLAYER_ITEM", new PlayerActivity.PlayerItem(TweetMediaUtils.a(mediaEntity).url, TweetMediaUtils.b(mediaEntity), TweetMediaUtils.e(mediaEntity), null, null));
|
||||
IntentUtils.b(getContext(), intent);
|
||||
}
|
||||
}
|
||||
|
||||
public void b(int i) {
|
||||
Intent intent = new Intent(getContext(), (Class<?>) GalleryActivity.class);
|
||||
intent.putExtra("GALLERY_ITEM", new GalleryActivity.GalleryItem(this.m.i, i, this.b));
|
||||
IntentUtils.b(getContext(), intent);
|
||||
}
|
||||
|
||||
@Override // android.view.ViewGroup, android.view.View
|
||||
protected void dispatchDraw(Canvas canvas) {
|
||||
if (!this.k || Build.VERSION.SDK_INT < 18) {
|
||||
super.dispatchDraw(canvas);
|
||||
return;
|
||||
}
|
||||
int save = canvas.save();
|
||||
canvas.clipPath(this.c);
|
||||
super.dispatchDraw(canvas);
|
||||
canvas.restoreToCount(save);
|
||||
}
|
||||
|
||||
@Override // android.view.View.OnClickListener
|
||||
public void onClick(View view) {
|
||||
Integer num = (Integer) view.getTag(R$id.tw__entity_index);
|
||||
if (this.l != null) {
|
||||
this.l.a(this.m, !this.b.isEmpty() ? this.b.get(num.intValue()) : null);
|
||||
return;
|
||||
}
|
||||
if (this.b.isEmpty()) {
|
||||
a(this.m);
|
||||
return;
|
||||
}
|
||||
MediaEntity mediaEntity = this.b.get(num.intValue());
|
||||
if (TweetMediaUtils.d(mediaEntity)) {
|
||||
a(mediaEntity);
|
||||
} else if (TweetMediaUtils.c(mediaEntity)) {
|
||||
b(num.intValue());
|
||||
}
|
||||
}
|
||||
|
||||
@Override // android.view.ViewGroup, android.view.View
|
||||
protected void onLayout(boolean z, int i, int i2, int i3, int i4) {
|
||||
if (this.f > 0) {
|
||||
b();
|
||||
}
|
||||
}
|
||||
|
||||
@Override // android.view.View
|
||||
protected void onMeasure(int i, int i2) {
|
||||
Size a = this.f > 0 ? a(i, i2) : Size.c;
|
||||
setMeasuredDimension(a.a, a.b);
|
||||
}
|
||||
|
||||
@Override // android.view.View
|
||||
protected void onSizeChanged(int i, int i2, int i3, int i4) {
|
||||
super.onSizeChanged(i, i2, i3, i4);
|
||||
this.c.reset();
|
||||
this.d.set(0.0f, 0.0f, i, i2);
|
||||
this.c.addRoundRect(this.d, this.g, Path.Direction.CW);
|
||||
this.c.close();
|
||||
}
|
||||
|
||||
public void setMediaBgColor(int i) {
|
||||
this.h = i;
|
||||
}
|
||||
|
||||
public void setPhotoErrorResId(int i) {
|
||||
this.i = i;
|
||||
}
|
||||
|
||||
public void setTweetMediaClickListener(TweetMediaClickListener tweetMediaClickListener) {
|
||||
this.l = tweetMediaClickListener;
|
||||
}
|
||||
|
||||
public void setVineCard(Tweet tweet) {
|
||||
Card card;
|
||||
if (tweet == null || (card = tweet.H) == null || !VineCardUtils.d(card)) {
|
||||
return;
|
||||
}
|
||||
this.m = tweet;
|
||||
this.b = Collections.emptyList();
|
||||
a();
|
||||
a(tweet.H);
|
||||
this.k = false;
|
||||
requestLayout();
|
||||
}
|
||||
|
||||
public TweetMediaView(Context context, AttributeSet attributeSet) {
|
||||
this(context, attributeSet, new DependencyProvider());
|
||||
}
|
||||
|
||||
TweetMediaView(Context context, AttributeSet attributeSet, DependencyProvider dependencyProvider) {
|
||||
super(context, attributeSet);
|
||||
this.a = new OverlayImageView[4];
|
||||
this.b = Collections.emptyList();
|
||||
this.c = new Path();
|
||||
this.d = new RectF();
|
||||
this.g = new float[8];
|
||||
this.h = -16777216;
|
||||
this.j = dependencyProvider;
|
||||
this.e = getResources().getDimensionPixelSize(R$dimen.tw__media_view_divider_size);
|
||||
this.i = R$drawable.tw__ic_tweet_photo_error_dark;
|
||||
}
|
||||
|
||||
void b() {
|
||||
int measuredWidth = getMeasuredWidth();
|
||||
int measuredHeight = getMeasuredHeight();
|
||||
int i = this.e;
|
||||
int i2 = (measuredWidth - i) / 2;
|
||||
int i3 = (measuredHeight - i) / 2;
|
||||
int i4 = i2 + i;
|
||||
int i5 = this.f;
|
||||
if (i5 == 1) {
|
||||
a(0, 0, 0, measuredWidth, measuredHeight);
|
||||
return;
|
||||
}
|
||||
if (i5 == 2) {
|
||||
a(0, 0, 0, i2, measuredHeight);
|
||||
a(1, i2 + this.e, 0, measuredWidth, measuredHeight);
|
||||
return;
|
||||
}
|
||||
if (i5 == 3) {
|
||||
a(0, 0, 0, i2, measuredHeight);
|
||||
a(1, i4, 0, measuredWidth, i3);
|
||||
a(2, i4, i3 + this.e, measuredWidth, measuredHeight);
|
||||
} else {
|
||||
if (i5 != 4) {
|
||||
return;
|
||||
}
|
||||
a(0, 0, 0, i2, i3);
|
||||
a(2, 0, i3 + this.e, i2, measuredHeight);
|
||||
a(1, i4, 0, measuredWidth, i3);
|
||||
a(3, i4, i3 + this.e, measuredWidth, measuredHeight);
|
||||
}
|
||||
}
|
||||
|
||||
public void a(Tweet tweet) {
|
||||
Card card = tweet.H;
|
||||
Intent intent = new Intent(getContext(), (Class<?>) PlayerActivity.class);
|
||||
intent.putExtra("PLAYER_ITEM", new PlayerActivity.PlayerItem(VineCardUtils.c(card), true, false, null, null));
|
||||
intent.putExtra("SCRIBE_ITEM", ScribeItem.fromTweetCard(tweet.i, card));
|
||||
IntentUtils.b(getContext(), intent);
|
||||
}
|
||||
|
||||
Size a(int i, int i2) {
|
||||
int size = View.MeasureSpec.getSize(i);
|
||||
int size2 = View.MeasureSpec.getSize(i2);
|
||||
int i3 = this.e;
|
||||
int i4 = (size - i3) / 2;
|
||||
int i5 = (size2 - i3) / 2;
|
||||
int i6 = this.f;
|
||||
if (i6 == 1) {
|
||||
a(0, size, size2);
|
||||
} else if (i6 == 2) {
|
||||
a(0, i4, size2);
|
||||
a(1, i4, size2);
|
||||
} else if (i6 == 3) {
|
||||
a(0, i4, size2);
|
||||
a(1, i4, i5);
|
||||
a(2, i4, i5);
|
||||
} else if (i6 == 4) {
|
||||
a(0, i4, i5);
|
||||
a(1, i4, i5);
|
||||
a(2, i4, i5);
|
||||
a(3, i4, i5);
|
||||
}
|
||||
return Size.a(size, size2);
|
||||
}
|
||||
|
||||
void b(ImageView imageView, String str) {
|
||||
Picasso a = this.j.a();
|
||||
if (a == null) {
|
||||
return;
|
||||
}
|
||||
RequestCreator a2 = a.a(str);
|
||||
a2.b();
|
||||
a2.a();
|
||||
a2.a(this.i);
|
||||
a2.a(imageView, new PicassoCallback(imageView));
|
||||
}
|
||||
|
||||
void a(int i, int i2, int i3) {
|
||||
this.a[i].measure(View.MeasureSpec.makeMeasureSpec(i2, 1073741824), View.MeasureSpec.makeMeasureSpec(i3, 1073741824));
|
||||
}
|
||||
|
||||
void a(int i, int i2, int i3, int i4, int i5) {
|
||||
OverlayImageView overlayImageView = this.a[i];
|
||||
if (overlayImageView.getLeft() == i2 && overlayImageView.getTop() == i3 && overlayImageView.getRight() == i4 && overlayImageView.getBottom() == i5) {
|
||||
return;
|
||||
}
|
||||
overlayImageView.layout(i2, i3, i4, i5);
|
||||
}
|
||||
|
||||
void a() {
|
||||
for (int i = 0; i < this.f; i++) {
|
||||
OverlayImageView overlayImageView = this.a[i];
|
||||
if (overlayImageView != null) {
|
||||
overlayImageView.setVisibility(8);
|
||||
}
|
||||
}
|
||||
this.f = 0;
|
||||
}
|
||||
|
||||
void a(Card card) {
|
||||
this.f = 1;
|
||||
OverlayImageView a = a(0);
|
||||
ImageValue a2 = VineCardUtils.a(card);
|
||||
a(a, a2.b);
|
||||
b(a, a2.a);
|
||||
a(a, true);
|
||||
}
|
||||
|
||||
OverlayImageView a(int i) {
|
||||
OverlayImageView overlayImageView = this.a[i];
|
||||
if (overlayImageView == null) {
|
||||
overlayImageView = new OverlayImageView(getContext());
|
||||
overlayImageView.setLayoutParams(generateDefaultLayoutParams());
|
||||
overlayImageView.setOnClickListener(this);
|
||||
this.a[i] = overlayImageView;
|
||||
addView(overlayImageView, i);
|
||||
} else {
|
||||
a(i, 0, 0);
|
||||
a(i, 0, 0, 0, 0);
|
||||
}
|
||||
overlayImageView.setVisibility(0);
|
||||
overlayImageView.setBackgroundColor(this.h);
|
||||
overlayImageView.setTag(R$id.tw__entity_index, Integer.valueOf(i));
|
||||
return overlayImageView;
|
||||
}
|
||||
|
||||
void a(ImageView imageView, String str) {
|
||||
if (!TextUtils.isEmpty(str)) {
|
||||
imageView.setContentDescription(str);
|
||||
} else {
|
||||
imageView.setContentDescription(getResources().getString(R$string.tw__tweet_media));
|
||||
}
|
||||
}
|
||||
|
||||
void a(OverlayImageView overlayImageView, boolean z) {
|
||||
if (z) {
|
||||
overlayImageView.setOverlayDrawable(getContext().getResources().getDrawable(R$drawable.tw__player_overlay));
|
||||
} else {
|
||||
overlayImageView.setOverlayDrawable(null);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user