正在查看: Hopscotch v9.7.2 应用的 UCropActivity.java JAVA 源代码文件
本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。
正在查看: Hopscotch v9.7.2 应用的 UCropActivity.java JAVA 源代码文件
本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。
package com.yalantis.ucrop;
import android.animation.ObjectAnimator;
import android.annotation.TargetApi;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.PorterDuff;
import android.graphics.Typeface;
import android.graphics.drawable.Drawable;
import android.net.Uri;
import android.os.Bundle;
import android.os.Handler;
import android.text.TextUtils;
import android.util.Property;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.view.Window;
import android.view.animation.AccelerateInterpolator;
import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.RelativeLayout;
import android.widget.TextView;
import androidx.activity.d;
import androidx.annotation.NonNull;
import androidx.appcompat.app.i;
import androidx.appcompat.widget.Toolbar;
import androidx.core.content.a;
import androidx.media3.ui.g;
import androidx.media3.ui.l;
import com.google.android.material.datepicker.m;
import com.payu.upisdk.util.UpiConstant;
import com.yalantis.ucrop.UCrop;
import com.yalantis.ucrop.callback.BitmapCropCallback;
import com.yalantis.ucrop.view.CropImageView;
import com.yalantis.ucrop.view.GestureCropImageView;
import com.yalantis.ucrop.view.OverlayView;
import com.yalantis.ucrop.view.TransformImageView;
import com.yalantis.ucrop.view.UCropView;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
public class UCropActivity extends i {
public static final int ALL = 3;
public static final Bitmap.CompressFormat DEFAULT_COMPRESS_FORMAT = Bitmap.CompressFormat.JPEG;
public static final int DEFAULT_COMPRESS_QUALITY = 90;
public static final int NONE = 0;
public static final int ROTATE = 2;
public static final int SCALE = 1;
private static final int TABS_COUNT = 3;
private static final String TAG = "UCropActivity";
private View mBlockingView;
private GestureCropImageView mGestureCropImageView;
private OverlayView mOverlayView;
private int mRootViewBackgroundColor;
private boolean mShowBottomControls;
private int mStatusBarColor;
private int mToolbarCancelDrawable;
private int mToolbarColor;
private String mToolbarTitle;
private int mToolbarWidgetColor;
private UCropView mUCropView;
private ViewGroup mWrapperStateAspectRatio;
private ViewGroup mWrapperStateRotate;
private ViewGroup mWrapperStateScale;
private int OPEN_GALLERY = UpiConstant.MERCHANT_URL_LOADING_TIMEOUT;
private int CROP_COMPLETED = 10001;
private Bitmap.CompressFormat mCompressFormat = DEFAULT_COMPRESS_FORMAT;
private int mCompressQuality = 90;
private int[] mAllowedGestures = {1, 2, 3};
private final View.OnClickListener mStateClickListener = new m(this, 2);
private boolean isMoment = true;
private TransformImageView.TransformImageListener mImageListener = new TransformImageView.TransformImageListener() {
@Override
public void onLoadComplete() {
UCropActivity.this.mUCropView.animate().alpha(1.0f).setDuration(300L).setInterpolator(new AccelerateInterpolator());
UCropActivity.this.mBlockingView.setClickable(false);
}
@Override
public void onLoadFailure(@NonNull Exception exc) {
UCropActivity.this.setResultError(exc);
UCropActivity.this.finish();
}
@Override
public void onRotate(float f) {
}
@Override
public void onScale(float f) {
}
};
@Retention(RetentionPolicy.SOURCE)
public @interface GestureTypes {
}
private void addBlockingView() {
if (this.mBlockingView == null) {
this.mBlockingView = new View(this);
RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(-1, -1);
layoutParams.addRule(3, R.id.toolbar);
this.mBlockingView.setLayoutParams(layoutParams);
this.mBlockingView.setClickable(true);
}
((RelativeLayout) findViewById(R.id.ucrop_photobox)).addView(this.mBlockingView);
}
private void initiateRootViews() {
UCropView uCropView = (UCropView) findViewById(R.id.ucrop);
this.mUCropView = uCropView;
this.mGestureCropImageView = uCropView.getCropImageView();
this.mOverlayView = this.mUCropView.getOverlayView();
this.mGestureCropImageView.setTransformImageListener(this.mImageListener);
findViewById(R.id.ucrop_frame).setBackgroundColor(this.mRootViewBackgroundColor);
}
public void lambda$new$0(View view) {
if (view.isSelected()) {
return;
}
setWidgetState(view.getId());
}
public void lambda$setUpInfoText$1() {
ObjectAnimator.ofFloat(findViewById(R.id.ucrop_info_text), (Property<View, Float>) View.ALPHA, CropImageView.DEFAULT_ASPECT_RATIO).start();
}
public void lambda$setupStatesWrapper$2(View view) {
setResult(this.OPEN_GALLERY);
finish();
}
public void lambda$setupStatesWrapper$3(View view) {
rotateByAngle(90);
}
public void lambda$setupStatesWrapper$4(View view) {
cropAndSaveImage();
}
private void processOptions(@NonNull Intent intent) {
String stringExtra = intent.getStringExtra(UCrop.Options.EXTRA_COMPRESSION_FORMAT_NAME);
Bitmap.CompressFormat valueOf = !TextUtils.isEmpty(stringExtra) ? Bitmap.CompressFormat.valueOf(stringExtra) : null;
if (valueOf == null) {
valueOf = DEFAULT_COMPRESS_FORMAT;
}
this.mCompressFormat = valueOf;
this.mCompressQuality = intent.getIntExtra(UCrop.Options.EXTRA_COMPRESSION_QUALITY, 90);
int[] intArrayExtra = intent.getIntArrayExtra(UCrop.Options.EXTRA_ALLOWED_GESTURES);
if (intArrayExtra != null && intArrayExtra.length == 3) {
this.mAllowedGestures = intArrayExtra;
}
this.mGestureCropImageView.setMaxBitmapSize(intent.getIntExtra(UCrop.Options.EXTRA_MAX_BITMAP_SIZE, 0));
this.mGestureCropImageView.setMaxScaleMultiplier(intent.getFloatExtra(UCrop.Options.EXTRA_MAX_SCALE_MULTIPLIER, 10.0f));
this.mGestureCropImageView.setImageToWrapCropBoundsAnimDuration(intent.getIntExtra(UCrop.Options.EXTRA_IMAGE_TO_CROP_BOUNDS_ANIM_DURATION, CropImageView.DEFAULT_IMAGE_TO_CROP_BOUNDS_ANIM_DURATION));
this.mGestureCropImageView.setTargetAspectRatio(1.0f);
this.mOverlayView.setFreestyleCropEnabled(intent.getBooleanExtra(UCrop.Options.EXTRA_FREE_STYLE_CROP, false));
this.mOverlayView.setDimmedColor(intent.getIntExtra(UCrop.Options.EXTRA_DIMMED_LAYER_COLOR, getResources().getColor(R.color.ucrop_color_default_dimmed)));
if (this.isMoment) {
this.mOverlayView.setCircleDimmedLayer(intent.getBooleanExtra(UCrop.Options.EXTRA_CIRCLE_DIMMED_LAYER, false));
this.mOverlayView.setShowCropFrame(intent.getBooleanExtra(UCrop.Options.EXTRA_SHOW_CROP_FRAME, true));
} else {
this.mOverlayView.setCircleDimmedLayer(true);
this.mOverlayView.setShowCropFrame(false);
}
this.mOverlayView.setCropFrameColor(intent.getIntExtra(UCrop.Options.EXTRA_CROP_FRAME_COLOR, getResources().getColor(R.color.ucrop_color_default_crop_frame)));
this.mOverlayView.setCropFrameStrokeWidth(intent.getIntExtra(UCrop.Options.EXTRA_CROP_FRAME_STROKE_WIDTH, getResources().getDimensionPixelSize(R.dimen.ucrop_default_crop_frame_stoke_width)));
this.mOverlayView.setShowCropGrid(false);
this.mOverlayView.setCropGridRowCount(intent.getIntExtra(UCrop.Options.EXTRA_CROP_GRID_ROW_COUNT, 2));
this.mOverlayView.setCropGridColumnCount(intent.getIntExtra(UCrop.Options.EXTRA_CROP_GRID_COLUMN_COUNT, 2));
this.mOverlayView.setCropGridColor(intent.getIntExtra(UCrop.Options.EXTRA_CROP_GRID_COLOR, getResources().getColor(R.color.ucrop_color_default_crop_grid)));
this.mOverlayView.setCropGridStrokeWidth(intent.getIntExtra(UCrop.Options.EXTRA_CROP_GRID_STROKE_WIDTH, getResources().getDimensionPixelSize(R.dimen.ucrop_default_crop_grid_stoke_width)));
}
private void rotateByAngle(int i) {
this.mGestureCropImageView.postRotate(i);
this.mGestureCropImageView.setImageToWrapCropBounds();
}
private void setAllowedGestures(int i) {
GestureCropImageView gestureCropImageView = this.mGestureCropImageView;
int i2 = this.mAllowedGestures[i];
gestureCropImageView.setScaleEnabled(i2 == 3 || i2 == 1);
GestureCropImageView gestureCropImageView2 = this.mGestureCropImageView;
int i3 = this.mAllowedGestures[i];
gestureCropImageView2.setRotateEnabled(i3 == 3 || i3 == 2);
}
private void setImageData(@NonNull Intent intent) {
Uri uri = (Uri) intent.getParcelableExtra(UCrop.EXTRA_INPUT_URI);
Uri uri2 = (Uri) intent.getParcelableExtra(UCrop.EXTRA_OUTPUT_URI);
processOptions(intent);
if (uri == null || uri2 == null) {
setResultError(new NullPointerException(getString(R.string.ucrop_error_input_data_is_absent)));
finish();
return;
}
try {
this.mGestureCropImageView.setImageUri(uri, uri2);
} catch (Exception e) {
setResultError(e);
finish();
}
}
@TargetApi(21)
private void setStatusBarColor(int i) {
Window window = getWindow();
if (window != null) {
window.addFlags(Integer.MIN_VALUE);
window.setStatusBarColor(i);
}
}
private void setUpInfoText() {
new Handler().postDelayed(new d(this, 24), 2000L);
}
private void setWidgetState(int i) {
if (this.mShowBottomControls) {
this.mWrapperStateAspectRatio.setSelected(i == R.id.state_done_click);
ViewGroup viewGroup = this.mWrapperStateRotate;
int i2 = R.id.state_rotate;
viewGroup.setSelected(i == i2);
ViewGroup viewGroup2 = this.mWrapperStateScale;
int i3 = R.id.state_open_gallery;
viewGroup2.setSelected(i == i3);
if (i == i3) {
setAllowedGestures(0);
} else if (i == i2) {
setAllowedGestures(1);
} else {
setAllowedGestures(2);
}
}
}
private void setupAppBar() {
setStatusBarColor(this.mStatusBarColor);
Toolbar findViewById = findViewById(R.id.toolbar);
findViewById.setBackgroundColor(this.mToolbarColor);
findViewById.setTitleTextColor(this.mToolbarWidgetColor);
TextView textView = (TextView) findViewById.findViewById(R.id.toolbar_title);
Typeface createFromAsset = Typeface.createFromAsset(getAssets(), getString(R.string.ucrop_averta_semibold));
textView.setTextColor(this.mToolbarWidgetColor);
textView.setText(this.mToolbarTitle);
textView.setTypeface(createFromAsset);
textView.setTextSize(20.0f);
Drawable mutate = a.a.b(this, this.mToolbarCancelDrawable).mutate();
mutate.setColorFilter(this.mToolbarWidgetColor, PorterDuff.Mode.SRC_ATOP);
findViewById.setNavigationIcon(mutate);
setSupportActionBar(findViewById);
androidx.appcompat.app.a supportActionBar = getSupportActionBar();
if (supportActionBar != null) {
supportActionBar.x(false);
}
}
private void setupStatesWrapper() {
Typeface createFromAsset = Typeface.createFromAsset(getAssets(), getString(R.string.ucrop_averta_semibold));
ImageView imageView = (ImageView) findViewById(R.id.image_view_open_gallery);
imageView.setImageDrawable(imageView.getDrawable());
((TextView) findViewById(R.id.open_gallery_textview)).setTypeface(createFromAsset);
ImageView imageView2 = (ImageView) findViewById(R.id.image_view_state_rotate);
imageView2.setImageDrawable(imageView2.getDrawable());
((TextView) findViewById(R.id.rotate_textview)).setTypeface(createFromAsset);
ImageView imageView3 = (ImageView) findViewById(R.id.image_view_done);
imageView3.setImageDrawable(imageView3.getDrawable());
((TextView) findViewById(R.id.done_text)).setTypeface(createFromAsset);
((FrameLayout) findViewById(R.id.state_open_gallery)).setOnClickListener(new l(this, 6));
((FrameLayout) findViewById(R.id.state_rotate)).setOnClickListener(new androidx.media3.ui.m(this, 2));
((FrameLayout) findViewById(R.id.state_done_click)).setOnClickListener(new g(this, 4));
}
private void setupViews(@NonNull Intent intent) {
this.mStatusBarColor = intent.getIntExtra(UCrop.Options.EXTRA_STATUS_BAR_COLOR, a.b(this, R.color.ucrop_color_new_statusbar));
this.mToolbarColor = intent.getIntExtra(UCrop.Options.EXTRA_TOOL_BAR_COLOR, a.b(this, R.color.ucrop_color_new_toolbar));
this.mToolbarWidgetColor = intent.getIntExtra(UCrop.Options.EXTRA_UCROP_WIDGET_COLOR_TOOLBAR, a.b(this, R.color.ucrop_color_toolbar_widget));
this.mToolbarCancelDrawable = intent.getIntExtra(UCrop.Options.EXTRA_UCROP_WIDGET_CANCEL_DRAWABLE, R.drawable.ucrop_ic_cross);
String stringExtra = intent.getStringExtra(UCrop.Options.EXTRA_UCROP_TITLE_TEXT_TOOLBAR);
this.mToolbarTitle = stringExtra;
if (stringExtra == null) {
stringExtra = getResources().getString(R.string.ucrop_label_edit_photo);
}
this.mToolbarTitle = stringExtra;
if (!this.isMoment) {
this.mToolbarTitle = getResources().getString(R.string.ucrop_label_edit_photo_for_profile);
}
this.mShowBottomControls = !intent.getBooleanExtra(UCrop.Options.EXTRA_HIDE_BOTTOM_CONTROLS, false);
this.mRootViewBackgroundColor = intent.getIntExtra(UCrop.Options.EXTRA_UCROP_ROOT_VIEW_BACKGROUND_COLOR, a.b(this, R.color.ucrop_color_crop_new_background));
setupAppBar();
initiateRootViews();
if (this.mShowBottomControls) {
View.inflate(this, R.layout.ucrop_controls, (ViewGroup) findViewById(R.id.ucrop_photobox));
ViewGroup viewGroup = (ViewGroup) findViewById(R.id.state_done_click);
this.mWrapperStateAspectRatio = viewGroup;
viewGroup.setOnClickListener(this.mStateClickListener);
ViewGroup viewGroup2 = (ViewGroup) findViewById(R.id.state_rotate);
this.mWrapperStateRotate = viewGroup2;
viewGroup2.setOnClickListener(this.mStateClickListener);
ViewGroup viewGroup3 = (ViewGroup) findViewById(R.id.state_open_gallery);
this.mWrapperStateScale = viewGroup3;
viewGroup3.setOnClickListener(this.mStateClickListener);
setupStatesWrapper();
setUpInfoText();
}
}
public void cropAndSaveImage() {
this.mBlockingView.setClickable(true);
this.mGestureCropImageView.cropAndSaveImage(this.mCompressFormat, this.mCompressQuality, new BitmapCropCallback() {
@Override
public void onBitmapCropped(@NonNull Uri uri, @NonNull Uri uri2, int i, int i2, int i3, int i4) {
UCropActivity uCropActivity = UCropActivity.this;
uCropActivity.setResultUri(uri, uri2, uCropActivity.mGestureCropImageView.getTargetAspectRatio(), i, i2, i3, i4);
UCropActivity.this.finish();
}
@Override
public void onCropFailure(@NonNull Throwable th) {
UCropActivity.this.setResultError(th);
UCropActivity.this.finish();
}
});
}
public void onCreate(Bundle bundle) {
super/*androidx.fragment.app.n*/.onCreate(bundle);
setContentView(R.layout.ucrop_activity_photobox);
Intent intent = getIntent();
if (getIntent() != null) {
this.OPEN_GALLERY = getIntent().getIntExtra("OPEN_GALLERY", UpiConstant.MERCHANT_URL_LOADING_TIMEOUT);
this.CROP_COMPLETED = getIntent().getIntExtra("CROP_COMPLETED", 10001);
this.isMoment = getIntent().getBooleanExtra("IS_MOMENT", false);
}
setupViews(intent);
setImageData(intent);
addBlockingView();
}
public boolean onOptionsItemSelected(MenuItem menuItem) {
if (menuItem.getItemId() == 16908332) {
onBackPressed();
}
return super/*android.app.Activity*/.onOptionsItemSelected(menuItem);
}
public void onStop() {
super.onStop();
GestureCropImageView gestureCropImageView = this.mGestureCropImageView;
if (gestureCropImageView != null) {
gestureCropImageView.cancelAllAnimations();
}
}
public void setResultError(Throwable th) {
setResult(96, new Intent().putExtra(UCrop.EXTRA_ERROR, th));
}
public void setResultUri(Uri uri, Uri uri2, float f, int i, int i2, int i3, int i4) {
setResult(this.CROP_COMPLETED, new Intent().putExtra(UCrop.EXTRA_INPUT_URI, uri).putExtra(UCrop.EXTRA_OUTPUT_URI, uri2).putExtra(UCrop.EXTRA_OUTPUT_CROP_ASPECT_RATIO, f).putExtra(UCrop.EXTRA_OUTPUT_IMAGE_WIDTH, i3).putExtra(UCrop.EXTRA_OUTPUT_IMAGE_HEIGHT, i4).putExtra(UCrop.EXTRA_OUTPUT_OFFSET_X, i).putExtra(UCrop.EXTRA_OUTPUT_OFFSET_Y, i2));
}
}