正在查看: 微商客 v2.1.2 应用的 PickImageActivity.java JAVA 源代码文件
本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。
正在查看: 微商客 v2.1.2 应用的 PickImageActivity.java JAVA 源代码文件
本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。
package com.qiyukf.uikit.session.activity;
import android.app.Activity;
import android.content.ActivityNotFoundException;
import android.content.Context;
import android.content.Intent;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.provider.MediaStore;
import android.text.TextUtils;
import androidx.fragment.app.Fragment;
import com.qiyukf.module.log.UnicornLog;
import com.qiyukf.uikit.common.activity.BaseFragmentActivity;
import com.qiyukf.uikit.common.media.picker.activity.PickerAlbumActivity;
import com.qiyukf.uikit.provider.UnicornProvider;
import com.qiyukf.unicorn.R;
import com.qiyukf.unicorn.n.r;
import java.io.File;
public class PickImageActivity extends BaseFragmentActivity {
public static final int FROM_CAMERA = 2;
public static final int FROM_LOCAL = 1;
private static final String KEY_STATE = "state";
private static final int PICK_IMAGE_COUNT = 9;
private static final int REQUEST_CODE_CAMERA = 2;
private static final int REQUEST_CODE_LOCAL = 1;
private static final String TAG = "PickImageActivity";
private boolean inited = false;
public static void start(Activity activity, int i, int i2, String str, boolean z, int i3, boolean z2, boolean z3, int i4, int i5) {
Intent intent = new Intent(activity, (Class<?>) PickImageActivity.class);
intent.putExtra("from", i2);
intent.putExtra("file_path", str);
intent.putExtra("multi_select_mode", z);
intent.putExtra("multi_select_size_limit", i3);
intent.putExtra("support_original", z2);
intent.putExtra("need-crop", z3);
intent.putExtra("outputX", i4);
intent.putExtra("outputY", i5);
activity.startActivityForResult(intent, i);
}
public static void start(Activity activity, int i, int i2, String str) {
Intent intent = new Intent(activity, (Class<?>) PickImageActivity.class);
intent.putExtra("from", i2);
intent.putExtra("file_path", str);
activity.startActivityForResult(intent, i);
}
public static void start(Fragment fragment, int i, int i2, String str) {
Intent intent = new Intent((Context) fragment.getActivity(), (Class<?>) PickImageActivity.class);
intent.putExtra("from", i2);
intent.putExtra("file_path", str);
fragment.startActivityForResult(intent, i);
}
public static void start(Fragment fragment, int i, int i2, String str, boolean z, int i3, boolean z2, boolean z3, int i4, int i5) {
Intent intent = new Intent((Context) fragment.getActivity(), (Class<?>) PickImageActivity.class);
intent.putExtra("from", i2);
intent.putExtra("file_path", str);
intent.putExtra("multi_select_mode", z);
intent.putExtra("multi_select_size_limit", i3);
intent.putExtra("support_original", z2);
intent.putExtra("need-crop", z3);
intent.putExtra("outputX", i4);
intent.putExtra("outputY", i5);
fragment.startActivityForResult(intent, i);
}
@Override
protected void onCreate(Bundle bundle) {
super.onCreate(bundle);
setContentView(R.layout.ysf_pick_image_activity);
}
protected void onResume() {
super.onResume();
if (this.inited) {
return;
}
processIntent();
this.inited = true;
}
protected void onSaveInstanceState(Bundle bundle) {
super.onSaveInstanceState(bundle);
bundle.putBoolean(KEY_STATE, this.inited);
}
protected void onRestoreInstanceState(Bundle bundle) {
super.onRestoreInstanceState(bundle);
if (bundle != null) {
this.inited = bundle.getBoolean(KEY_STATE);
}
}
private void processIntent() {
if (getIntent().getIntExtra("from", 1) == 1) {
pickFromLocal();
} else {
pickFromCamera();
}
}
private void pickFromLocal() {
try {
startActivityForResult(getPickIntent(), 1);
} catch (Exception e) {
UnicornLog.i(TAG, "pickFromLocal is error", e);
r.b(R.string.ysf_picker_image_sdcard_not_enough_error);
finish();
}
}
private void pickFromCamera() {
Uri fromFile;
try {
String stringExtra = getIntent().getStringExtra("file_path");
if (TextUtils.isEmpty(stringExtra)) {
r.b(R.string.ysf_picker_image_sdcard_not_enough_error);
finish();
return;
}
File file = new File(stringExtra);
Intent intent = new Intent("android.media.action.IMAGE_CAPTURE");
intent.addFlags(1);
if (UnicornProvider.useFileProvider(this)) {
fromFile = UnicornProvider.getUriForFile(this, file);
} else {
fromFile = Uri.fromFile(file);
}
intent.putExtra("output", fromFile);
startActivityForResult(intent, 2);
} catch (ActivityNotFoundException e) {
finish();
UnicornLog.i(TAG, "pickFromCamera is error", e);
} catch (Exception e2) {
r.b(R.string.ysf_picker_image_sdcard_not_enough_error);
UnicornLog.i(TAG, "pickFromCamera is error", e2);
}
}
private Intent getPickIntent() {
boolean booleanExtra = getIntent().getBooleanExtra("multi_select_mode", false);
int intExtra = getIntent().getIntExtra("multi_select_size_limit", 9);
boolean booleanExtra2 = getIntent().getBooleanExtra("support_original", false);
Intent intent = new Intent();
intent.setClass(this, PickerAlbumActivity.class);
intent.putExtra("multi_select_mode", booleanExtra);
intent.putExtra("multi_select_size_limit", intExtra);
intent.putExtra("support_original", booleanExtra2);
return intent;
}
private String pathFromResult(Intent intent) {
String stringExtra = getIntent().getStringExtra("file_path");
if (intent != null && intent.getData() != null) {
Uri data = intent.getData();
Cursor query = getContentResolver().query(data, null, null, null, null);
if (query == null) {
return stringExtra;
}
if (data.toString().contains("content://com.android.providers.media.documents/document/image")) {
String decode = Uri.decode(data.toString());
String substring = decode.substring(decode.lastIndexOf(":") + 1);
closeCursor(query);
query = getContentResolver().query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, null, " _id = ".concat(String.valueOf(substring)), null, null);
}
if (query == null) {
return stringExtra;
}
query.moveToFirst();
int columnIndex = query.getColumnIndex("_data");
if (columnIndex >= 0) {
stringExtra = query.getString(columnIndex);
}
closeCursor(query);
}
return stringExtra;
}
private void closeCursor(Cursor cursor) {
if (cursor == null || cursor.isClosed()) {
return;
}
cursor.close();
}
private void onPickedLocal(Intent intent) {
if (intent != null) {
try {
Intent intent2 = new Intent(intent);
intent2.putExtra("from_local", true);
setResult(-1, intent2);
finish();
} catch (Exception e) {
r.b(R.string.ysf_picker_image_error);
UnicornLog.i(TAG, "onPickedLocal is error", e);
finish();
}
}
}
private void onPickedCamera(Intent intent) {
try {
String pathFromResult = pathFromResult(intent);
if (!TextUtils.isEmpty(pathFromResult)) {
Intent intent2 = new Intent();
intent2.putExtra("from_local", false);
intent2.putExtra("file_path", pathFromResult);
setResult(-1, intent2);
}
finish();
} catch (Exception e) {
r.b(R.string.ysf_picker_image_error);
UnicornLog.i(TAG, "onPickedCamera is error", e);
finish();
}
}
protected void onActivityResult(int i, int i2, Intent intent) {
super.onActivityResult(i, i2, intent);
if (i2 != -1) {
setResult(i2);
finish();
} else if (i == 1) {
onPickedLocal(intent);
} else {
if (i != 2) {
return;
}
onPickedCamera(intent);
}
}
}