NekoX/TMessagesProj/src/main/java/org/telegram/ui/Cells/StickerCell.java

76 lines
2.7 KiB
Java

/*
* This is the source code of Telegram for Android v. 2.0.x.
* It is licensed under GNU GPL v. 2 or later.
* You should have received a copy of the license in this archive (see LICENSE).
*
* Copyright Nikolai Kudashov, 2013-2014.
*/
package org.telegram.ui.Cells;
import android.content.Context;
import android.graphics.drawable.Drawable;
import android.view.Gravity;
import org.telegram.android.AndroidUtilities;
import org.telegram.messenger.R;
import org.telegram.messenger.TLRPC;
import org.telegram.ui.Components.BackupImageView;
import org.telegram.ui.Components.FrameLayoutFixed;
public class StickerCell extends FrameLayoutFixed {
private BackupImageView imageView;
public StickerCell(Context context) {
super(context);
imageView = new BackupImageView(context);
imageView.setAspectFit(true);
addView(imageView);
LayoutParams layoutParams = (LayoutParams) imageView.getLayoutParams();
layoutParams.width = AndroidUtilities.dp(66);
layoutParams.height = AndroidUtilities.dp(66);
layoutParams.gravity = Gravity.CENTER_HORIZONTAL;
layoutParams.topMargin = AndroidUtilities.dp(5);
imageView.setLayoutParams(layoutParams);
}
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
super.onMeasure(MeasureSpec.makeMeasureSpec(AndroidUtilities.dp(76) + getPaddingLeft() + getPaddingRight(), MeasureSpec.EXACTLY), MeasureSpec.makeMeasureSpec(AndroidUtilities.dp(78), MeasureSpec.EXACTLY));
}
@Override
public void setPressed(boolean pressed) {
if (imageView.getImageReceiver().getPressed() != pressed) {
imageView.getImageReceiver().setPressed(pressed);
imageView.invalidate();
}
super.setPressed(pressed);
}
public void setSticker(TLRPC.Document document, int side) {
if (document != null) {
document.thumb.location.ext = "webp";
imageView.setImage(document.thumb.location, null, (Drawable) null);
}
if (side == -1) {
setBackgroundResource(R.drawable.stickers_back_left);
setPadding(AndroidUtilities.dp(7), 0, 0, 0);
} else if (side == 0) {
setBackgroundResource(R.drawable.stickers_back_center);
setPadding(0, 0, 0, 0);
} else if (side == 1) {
setBackgroundResource(R.drawable.stickers_back_right);
setPadding(0, 0, AndroidUtilities.dp(7), 0);
} else if (side == 2) {
setBackgroundResource(R.drawable.stickers_back_all);
setPadding(AndroidUtilities.dp(3), 0, AndroidUtilities.dp(3), 0);
}
if (getBackground() != null) {
getBackground().setAlpha(230);
}
}
}