导航菜单

页面标题

页面副标题

CallApp v2.226 - CropImageActivity.java 源代码

正在查看: CallApp v2.226 应用的 CropImageActivity.java JAVA 源代码文件

本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。


package com.theartofdev.edmodo.cropper;

import android.content.Context;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.PorterDuff;
import android.graphics.Rect;
import android.graphics.drawable.Drawable;
import android.net.Uri;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.appcompat.app.ActionBar;
import androidx.appcompat.app.AppCompatActivity;
import com.theartofdev.edmodo.cropper.CropImage;
import com.theartofdev.edmodo.cropper.CropImageView;
import com.vungle.ads.internal.protos.Sdk$SDKMetric;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;

public class CropImageActivity extends AppCompatActivity implements sq.e, d {
    private Uri mCropImageUri;
    private CropImageView mCropImageView;
    private CropImageOptions mOptions;

    private void updateMenuItemIconColor(Menu menu, int i, int i2) {
        Drawable icon;
        MenuItem findItem = menu.findItem(i);
        if (findItem == null || (icon = findItem.getIcon()) == null) {
            return;
        }
        try {
            icon.mutate();
            icon.setColorFilter(i2, PorterDuff.Mode.SRC_ATOP);
            findItem.setIcon(icon);
        } catch (Exception e) {
            Log.w("AIC", "Failed to update menu item color", e);
        }
    }

    public void cropImage() {
        if (this.mOptions.noOutputImage) {
            setResult(null, null, 1);
            return;
        }
        Uri outputUri = getOutputUri();
        CropImageView cropImageView = this.mCropImageView;
        CropImageOptions cropImageOptions = this.mOptions;
        cropImageView.h(outputUri, cropImageOptions.outputCompressFormat, cropImageOptions.outputCompressQuality, cropImageOptions.outputRequestWidth, cropImageOptions.outputRequestHeight, cropImageOptions.outputRequestSizeOptions);
    }

    public Uri getOutputUri() {
        Uri uri = this.mOptions.outputUri;
        if (uri != null && !uri.equals(Uri.EMPTY)) {
            return uri;
        }
        try {
            Bitmap.CompressFormat compressFormat = this.mOptions.outputCompressFormat;
            return Uri.fromFile(File.createTempFile("cropped", compressFormat == Bitmap.CompressFormat.JPEG ? ".jpg" : compressFormat == Bitmap.CompressFormat.PNG ? ".png" : ".webp", getCacheDir()));
        } catch (IOException e) {
            throw new RuntimeException("Failed to create temp file for output image", e);
        }
    }

    public Intent getResultIntent(Uri uri, Exception exc, int i) {
        Rect rect;
        Uri uri2;
        int i2;
        Exception exc2;
        CropImageView cropImageView = this.mCropImageView;
        Uri uri3 = cropImageView.y;
        float[] c = cropImageView.c();
        Rect d = this.mCropImageView.d();
        CropImageView cropImageView2 = this.mCropImageView;
        int i3 = cropImageView2.k;
        int i4 = cropImageView2.z;
        Bitmap bitmap = cropImageView2.i;
        if (bitmap == null) {
            rect = null;
            exc2 = exc;
            i2 = i;
            uri2 = uri;
        } else {
            rect = new Rect(0, 0, bitmap.getWidth() * i4, bitmap.getHeight() * i4);
            uri2 = uri;
            i2 = i;
            exc2 = exc;
        }
        CropImage.ActivityResult activityResult = new CropImage.ActivityResult(uri3, uri2, exc2, c, d, i3, rect, i2);
        Intent intent = new Intent();
        intent.putExtras(getIntent());
        intent.putExtra("CROP_IMAGE_EXTRA_RESULT", activityResult);
        return intent;
    }

    public void onActivityResult(int i, int i2, Intent intent) {
        Uri fromFile;
        String action;
        if (i == 200) {
            if (i2 == 0) {
                setResultCancel();
            }
            if (i2 == -1) {
                if (intent == null || intent.getData() == null || (((action = intent.getAction()) != null && action.equals("android.media.action.IMAGE_CAPTURE")) || intent.getData() == null)) {
                    File externalCacheDir = getExternalCacheDir();
                    fromFile = externalCacheDir != null ? Uri.fromFile(new File(externalCacheDir.getPath(), "pickImageResult.jpeg")) : null;
                } else {
                    fromFile = intent.getData();
                }
                this.mCropImageUri = fromFile;
                if (checkSelfPermission("android.permission.READ_EXTERNAL_STORAGE") != 0) {
                    try {
                        InputStream openInputStream = getContentResolver().openInputStream(fromFile);
                        if (openInputStream != null) {
                            openInputStream.close();
                        }
                    } catch (Exception unused) {
                        requestPermissions(new String[]{"android.permission.READ_EXTERNAL_STORAGE"}, 201);
                        return;
                    }
                }
                this.mCropImageView.setImageUriAsync(this.mCropImageUri);
            }
        }
    }

    public void onBackPressed() {
        super/*androidx.activity.ComponentActivity*/.onBackPressed();
        setResultCancel();
    }

    public void onCreate(Bundle bundle) {
        CharSequence charSequence;
        super/*androidx.fragment.app.FragmentActivity*/.onCreate(bundle);
        setContentView(R.layout.crop_image_activity);
        this.mCropImageView = (CropImageView) findViewById(R.id.cropImageView);
        Bundle bundleExtra = getIntent().getBundleExtra("CROP_IMAGE_EXTRA_BUNDLE");
        this.mCropImageUri = (Uri) bundleExtra.getParcelable("CROP_IMAGE_EXTRA_SOURCE");
        this.mOptions = (CropImageOptions) bundleExtra.getParcelable("CROP_IMAGE_EXTRA_OPTIONS");
        if (bundle == null) {
            Uri uri = this.mCropImageUri;
            if (uri != null && !uri.equals(Uri.EMPTY)) {
                Uri uri2 = this.mCropImageUri;
                if (checkSelfPermission("android.permission.READ_EXTERNAL_STORAGE") != 0) {
                    try {
                        InputStream openInputStream = getContentResolver().openInputStream(uri2);
                        if (openInputStream != null) {
                            openInputStream.close();
                        }
                    } catch (Exception unused) {
                        requestPermissions(new String[]{"android.permission.READ_EXTERNAL_STORAGE"}, 201);
                    }
                }
                this.mCropImageView.setImageUriAsync(this.mCropImageUri);
            } else if (CropImage.b(this)) {
                requestPermissions(new String[]{"android.permission.CAMERA"}, Sdk$SDKMetric.b.APP_TERM_DURING_AD_BEFORE_IMPRESSION_VALUE);
            } else {
                CropImage.c(this);
            }
        }
        ActionBar supportActionBar = getSupportActionBar();
        if (supportActionBar != null) {
            CropImageOptions cropImageOptions = this.mOptions;
            supportActionBar.w((cropImageOptions == null || (charSequence = cropImageOptions.activityTitle) == null || charSequence.length() <= 0) ? getResources().getString(R.string.crop_image_activity_title) : this.mOptions.activityTitle);
            supportActionBar.r(true);
        }
    }

    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.crop_image_menu, menu);
        CropImageOptions cropImageOptions = this.mOptions;
        if (!cropImageOptions.allowRotation) {
            menu.removeItem(R.id.crop_image_menu_rotate_left);
            menu.removeItem(R.id.crop_image_menu_rotate_right);
        } else if (cropImageOptions.allowCounterRotation) {
            menu.findItem(R.id.crop_image_menu_rotate_left).setVisible(true);
        }
        if (!this.mOptions.allowFlipping) {
            menu.removeItem(R.id.crop_image_menu_flip);
        }
        if (this.mOptions.cropMenuCropButtonTitle != null) {
            menu.findItem(R.id.crop_image_menu_crop).setTitle(this.mOptions.cropMenuCropButtonTitle);
        }
        Drawable drawable = null;
        try {
            int i = this.mOptions.cropMenuCropButtonIcon;
            if (i != 0) {
                drawable = j0.b.getDrawable(this, i);
                menu.findItem(R.id.crop_image_menu_crop).setIcon(drawable);
            }
        } catch (Exception e) {
            Log.w("AIC", "Failed to read menu crop drawable", e);
        }
        int i2 = this.mOptions.activityMenuIconColor;
        if (i2 != 0) {
            updateMenuItemIconColor(menu, R.id.crop_image_menu_rotate_left, i2);
            updateMenuItemIconColor(menu, R.id.crop_image_menu_rotate_right, this.mOptions.activityMenuIconColor);
            updateMenuItemIconColor(menu, R.id.crop_image_menu_flip, this.mOptions.activityMenuIconColor);
            if (drawable != null) {
                updateMenuItemIconColor(menu, R.id.crop_image_menu_crop, this.mOptions.activityMenuIconColor);
            }
        }
        return true;
    }

    @Override
    public void onCropImageComplete(CropImageView cropImageView, CropImageView.b bVar) {
        setResult(bVar.getUri(), bVar.getError(), bVar.getSampleSize());
    }

    public boolean onOptionsItemSelected(MenuItem menuItem) {
        if (menuItem.getItemId() == R.id.crop_image_menu_crop) {
            cropImage();
            return true;
        }
        if (menuItem.getItemId() == R.id.crop_image_menu_rotate_left) {
            rotateImage(-this.mOptions.rotationDegrees);
            return true;
        }
        if (menuItem.getItemId() == R.id.crop_image_menu_rotate_right) {
            rotateImage(this.mOptions.rotationDegrees);
            return true;
        }
        if (menuItem.getItemId() == R.id.crop_image_menu_flip_horizontally) {
            CropImageView cropImageView = this.mCropImageView;
            cropImageView.l = !cropImageView.l;
            cropImageView.a(cropImageView.getWidth(), cropImageView.getHeight(), true, false);
            return true;
        }
        if (menuItem.getItemId() == R.id.crop_image_menu_flip_vertically) {
            CropImageView cropImageView2 = this.mCropImageView;
            cropImageView2.m = !cropImageView2.m;
            cropImageView2.a(cropImageView2.getWidth(), cropImageView2.getHeight(), true, false);
            return true;
        }
        if (menuItem.getItemId() != 16908332) {
            return super/*android.app.Activity*/.onOptionsItemSelected(menuItem);
        }
        setResultCancel();
        return true;
    }

    public void onRequestPermissionsResult(int i, @NonNull String[] strArr, @NonNull int[] iArr) {
        if (i == 201) {
            Uri uri = this.mCropImageUri;
            if (uri == null || iArr.length <= 0 || iArr[0] != 0) {
                Toast.makeText((Context) this, R.string.crop_image_activity_no_permissions, 1).show();
                setResultCancel();
            } else {
                this.mCropImageView.setImageUriAsync(uri);
            }
        }
        if (i == 2011) {
            CropImage.c(this);
        }
    }

    @Override
    public void onSetImageUriComplete(CropImageView cropImageView, Uri uri, Exception exc) {
        if (exc != null) {
            setResult(null, exc, 1);
            return;
        }
        Rect rect = this.mOptions.initialCropWindowRectangle;
        if (rect != null) {
            this.mCropImageView.setCropRect(rect);
        }
        int i = this.mOptions.initialRotation;
        if (i > -1) {
            this.mCropImageView.setRotatedDegrees(i);
        }
    }

    public void onStart() {
        super.onStart();
        this.mCropImageView.setOnSetImageUriCompleteListener(this);
        this.mCropImageView.setOnCropImageCompleteListener(this);
    }

    public void onStop() {
        super.onStop();
        this.mCropImageView.setOnSetImageUriCompleteListener(null);
        this.mCropImageView.setOnCropImageCompleteListener(null);
    }

    public void rotateImage(int i) {
        this.mCropImageView.g(i);
    }

    public void setResult(Uri uri, Exception exc, int i) {
        setResult(exc == null ? -1 : 204, getResultIntent(uri, exc, i));
        finish();
    }

    public void setResultCancel() {
        setResult(0);
        finish();
    }
}