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

99 lines
3.3 KiB
Java
Raw Normal View History

2015-06-29 19:12:11 +02:00
/*
2019-01-23 18:03:33 +01:00
* This is the source code of Telegram for Android v. 5.x.x.
2015-06-29 19:12:11 +02:00
* It is licensed under GNU GPL v. 2 or later.
* You should have received a copy of the license in this archive (see LICENSE).
*
2019-01-23 18:03:33 +01:00
* Copyright Nikolai Kudashov, 2013-2018.
2015-06-29 19:12:11 +02:00
*/
package org.telegram.ui.Cells;
2016-05-25 23:49:47 +02:00
import android.annotation.SuppressLint;
2015-06-29 19:12:11 +02:00
import android.content.Context;
2019-08-22 01:53:26 +02:00
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
2018-07-30 04:07:02 +02:00
import android.graphics.PorterDuff;
import android.graphics.PorterDuffColorFilter;
2015-06-29 19:12:11 +02:00
import android.widget.FrameLayout;
import android.widget.ImageView;
2015-09-24 22:52:02 +02:00
import org.telegram.messenger.AndroidUtilities;
2019-08-22 01:53:26 +02:00
import org.telegram.messenger.ApplicationLoader;
2016-05-25 23:49:47 +02:00
import org.telegram.messenger.R;
2018-07-30 04:07:02 +02:00
import org.telegram.ui.ActionBar.Theme;
2015-06-29 19:12:11 +02:00
import org.telegram.ui.Components.LayoutHelper;
2019-08-22 01:53:26 +02:00
import java.io.File;
2016-05-25 23:49:47 +02:00
@SuppressLint("NewApi")
2015-06-29 19:12:11 +02:00
public class PhotoAttachCameraCell extends FrameLayout {
2021-09-20 00:10:42 +02:00
private final Theme.ResourcesProvider resourcesProvider;
2018-07-30 04:07:02 +02:00
private ImageView imageView;
2019-08-22 01:53:26 +02:00
private ImageView backgroundView;
private int itemSize;
2018-07-30 04:07:02 +02:00
2021-09-20 00:10:42 +02:00
public PhotoAttachCameraCell(Context context, Theme.ResourcesProvider resourcesProvider) {
2015-06-29 19:12:11 +02:00
super(context);
2021-09-20 00:10:42 +02:00
this.resourcesProvider = resourcesProvider;
2015-06-29 19:12:11 +02:00
2019-08-22 01:53:26 +02:00
backgroundView = new ImageView(context);
backgroundView.setScaleType(ImageView.ScaleType.CENTER_CROP);
//backgroundView.setAdjustViewBounds(false);
addView(backgroundView, LayoutHelper.createFrame(80, 80));
2018-07-30 04:07:02 +02:00
imageView = new ImageView(context);
2015-06-29 19:12:11 +02:00
imageView.setScaleType(ImageView.ScaleType.CENTER);
2016-05-25 23:49:47 +02:00
imageView.setImageResource(R.drawable.instant_camera);
2015-06-29 19:12:11 +02:00
addView(imageView, LayoutHelper.createFrame(80, 80));
2019-05-14 14:08:05 +02:00
setFocusable(true);
2019-08-22 01:53:26 +02:00
itemSize = AndroidUtilities.dp(0);
2015-06-29 19:12:11 +02:00
}
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
2019-08-22 01:53:26 +02:00
super.onMeasure(MeasureSpec.makeMeasureSpec(itemSize + AndroidUtilities.dp(5), MeasureSpec.EXACTLY), MeasureSpec.makeMeasureSpec(itemSize + AndroidUtilities.dp(5), MeasureSpec.EXACTLY));
}
public void setItemSize(int size) {
itemSize = size;
LayoutParams layoutParams = (LayoutParams) imageView.getLayoutParams();
layoutParams.width = layoutParams.height = itemSize;
layoutParams = (LayoutParams) backgroundView.getLayoutParams();
layoutParams.width = layoutParams.height = itemSize;
2015-06-29 19:12:11 +02:00
}
2018-07-30 04:07:02 +02:00
public ImageView getImageView() {
return imageView;
}
@Override
protected void onAttachedToWindow() {
super.onAttachedToWindow();
2021-09-20 11:14:20 +02:00
imageView.setColorFilter(new PorterDuffColorFilter(getThemedColor(Theme.key_dialogCameraIcon), PorterDuff.Mode.SRC_IN));
2018-07-30 04:07:02 +02:00
}
2019-08-22 01:53:26 +02:00
public void updateBitmap() {
Bitmap bitmap = null;
try {
File file = new File(ApplicationLoader.getFilesDirFixed(), "cthumb.jpg");
bitmap = BitmapFactory.decodeFile(file.getAbsolutePath());
} catch (Throwable ignore) {
}
if (bitmap != null) {
backgroundView.setImageBitmap(bitmap);
} else {
backgroundView.setImageResource(R.drawable.icplaceholder);
}
}
2021-09-20 00:10:42 +02:00
protected int getThemedColor(String key) {
Integer color = resourcesProvider != null ? resourcesProvider.getColor(key) : null;
return color != null ? color : Theme.getColor(key);
}
2015-06-29 19:12:11 +02:00
}