正在查看: 微商客 v2.1.2 应用的 TakePhotoAddFriendActivity.java JAVA 源代码文件
本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。
正在查看: 微商客 v2.1.2 应用的 TakePhotoAddFriendActivity.java JAVA 源代码文件
本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。
package com.jianzhen.wsk.ui.addfriend;
import android.content.ContentResolver;
import android.content.Context;
import android.content.Intent;
import android.graphics.Color;
import android.net.Uri;
import android.os.Build;
import android.os.Environment;
import android.os.Handler;
import android.os.Looper;
import android.util.Log;
import android.view.View;
import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.alibaba.fastjson.JSON;
import com.baidu.ocr.sdk.OCR;
import com.baidu.ocr.sdk.OnResultListener;
import com.baidu.ocr.sdk.exception.OCRError;
import com.baidu.ocr.sdk.model.AccessToken;
import com.baidu.ocr.sdk.model.OcrRequestParams;
import com.baidu.ocr.sdk.model.OcrResponseResult;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.BaseViewHolder;
import com.hjq.permissions.OnPermissionCallback;
import com.hjq.permissions.XXPermissions;
import com.jianzhen.wsk.BaseActivity;
import com.jianzhen.wsk.R;
import com.jianzhen.wsk.bean.ContactInfo;
import com.jianzhen.wsk.dialog.AddFriendSelectNumDialog;
import com.jianzhen.wsk.dialog.AddPhoneSdImportDialog;
import com.jianzhen.wsk.dialog.BaseDialog;
import com.jianzhen.wsk.dialog.PermissionTipDialog;
import com.jianzhen.wsk.dialog.TakeSelectDialog;
import com.jianzhen.wsk.net.bean.TakePhotoNumBean;
import com.jianzhen.wsk.ui.addfriend.TakePhotoAddFriendActivity;
import com.jianzhen.wsk.utils.DataSaveUtils;
import com.jianzhen.wsk.utils.GlideEngine;
import com.jianzhen.wsk.utils.Utils;
import com.kongzue.dialogx.dialogs.PopNotification;
import com.luck.picture.lib.basic.PictureSelector;
import com.luck.picture.lib.config.SelectMimeType;
import com.luck.picture.lib.entity.LocalMedia;
import com.luck.picture.lib.interfaces.OnResultCallbackListener;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.Serializable;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Collection;
import java.util.Comparator;
import java.util.Date;
import java.util.Iterator;
import java.util.List;
import java.util.Locale;
import java.util.Objects;
import java.util.TreeSet;
import java.util.function.Function;
import java.util.function.Supplier;
import java.util.stream.Collectors;
public class TakePhotoAddFriendActivity extends BaseActivity implements View.OnClickListener {
private static final String CHINA_MOBILE_NUMBER_REGEX = "^1[3-9]\\d{9}$";
private AddFriendSelectNumDialog addFriendSelectNumDialog;
private AddPhoneSdImportDialog addPhoneSdImportDialog;
private FrameLayout addedFl;
private LinearLayout addedLay;
private LinearLayout addedLayEmpty;
private View addedLine;
private RecyclerView addedNumRv;
private TextView addedTv;
private TextView deleteTv;
private Adapter friendListAdapter;
private TextView importNumTv;
private LinearLayout llEmpty;
private PopNotification mPopNotification;
private FrameLayout notAddFl;
private LinearLayout notAddLay;
private View notAddLine;
private RecyclerView notAddNumRv;
private TextView notAddTv;
private TextView selectAll;
private TakePhotoNumBean takePhotoNumBean;
private TakeSelectDialog takeSelectDialog;
private final Handler handlerPost = new Handler(Looper.getMainLooper());
private List<ContactInfo> contactInfoList = new ArrayList();
private List<ContactInfo> selectContactInfoList = new ArrayList();
@Override
protected int getLayoutId() {
return R.layout.activity_take_photo_add_friend;
}
@Override
protected boolean isSetBaseTitle() {
return true;
}
@Override
protected void initTitle() {
setBaseTitle(this, getString(R.string.take_add_title));
}
@Override
protected void initPageView() {
DataSaveUtils.setPhoneAddingFriendData(this, "");
this.notAddNumRv = findViewById(R.id.not_add_num_rv);
this.llEmpty = (LinearLayout) findViewById(R.id.llEmpty);
this.addedNumRv = findViewById(R.id.added_rv);
this.addedLayEmpty = (LinearLayout) findViewById(R.id.added_Empty);
this.selectAll = (TextView) findViewById(R.id.select_all_tv);
this.deleteTv = (TextView) findViewById(R.id.delete_tv);
this.importNumTv = (TextView) findViewById(R.id.import_num_tv);
this.notAddFl = (FrameLayout) findViewById(R.id.not_added_fl);
this.addedFl = (FrameLayout) findViewById(R.id.added_fl);
this.notAddLay = (LinearLayout) findViewById(R.id.not_add_lay);
this.notAddTv = (TextView) findViewById(R.id.not_add_tv);
this.notAddLine = findViewById(R.id.not_add_line);
this.addedLay = (LinearLayout) findViewById(R.id.added_lay);
this.addedTv = (TextView) findViewById(R.id.added_tv);
this.addedLine = findViewById(R.id.added_line);
TextView textView = (TextView) findViewById(R.id.added_delete_tv);
this.notAddLay.setOnClickListener(this);
this.addedLay.setOnClickListener(this);
textView.setOnClickListener(this);
if (DataSaveUtils.getTakePhotoAddFriendData(this) != null && !((List) Objects.requireNonNull(DataSaveUtils.getTakePhotoAddFriendData(this))).isEmpty()) {
this.contactInfoList = DataSaveUtils.getTakePhotoAddFriendData(this);
setNotImportListRv();
} else {
this.llEmpty.setVisibility(0);
}
this.selectAll.setOnClickListener(this);
findViewById(R.id.to_add_tv).setOnClickListener(this);
findViewById(R.id.take_photo_lay).setOnClickListener(this);
this.deleteTv.setOnClickListener(this);
setSwitchMode(true);
this.takeSelectDialog = new TakeSelectDialog(this, this);
this.addFriendSelectNumDialog = new AddFriendSelectNumDialog(this, this);
initAccessToken();
setVideoTutorial("take_phone_add.mp4");
}
private void setSwitchMode(boolean z) {
this.notAddTv.setTextColor(Color.parseColor(z ? "#FF5F00" : "#77777E"));
this.notAddLine.setBackgroundColor(Color.parseColor(z ? "#FF5F00" : "#77777E"));
this.notAddLine.setVisibility(z ? 0 : 4);
this.notAddFl.setVisibility(z ? 0 : 4);
this.addedTv.setTextColor(Color.parseColor(z ? "#77777E" : "#FF5F00"));
this.addedLine.setBackgroundColor(Color.parseColor(z ? "#77777E" : "#FF5F00"));
this.addedLine.setVisibility(z ? 4 : 0);
this.addedFl.setVisibility(z ? 4 : 0);
}
@Override
public void onClick(View view) {
int id = view.getId();
switch (id) {
case R.id.add_10:
selectNumView(10);
break;
case R.id.add_20:
selectNumView(20);
break;
case R.id.add_40:
selectNumView(40);
break;
case R.id.add_5:
selectNumView(5);
break;
case R.id.add_60:
selectNumView(60);
break;
case R.id.add_all:
selectView(false);
break;
case R.id.add_cancel_all:
selectView(true);
break;
default:
switch (id) {
case R.id.added_delete_tv:
DataSaveUtils.setTakePhotoAddedFriendData(this, "");
setAddedListRv();
break;
case R.id.added_lay:
setSwitchMode(false);
break;
case R.id.delete_tv:
final BaseDialog baseDialog = new BaseDialog(this);
baseDialog.setContentText("确定删除吗?");
baseDialog.setLeftButton("取消", -1, new View.OnClickListener() {
@Override
public final void onClick(View view2) {
BaseDialog.this.dismiss();
}
});
baseDialog.setRightButton("确定", -1, new View.OnClickListener() {
@Override
public final void onClick(View view2) {
TakePhotoAddFriendActivity.this.lambda$onClick$1(baseDialog, view2);
}
});
baseDialog.setIsCancelable(false);
baseDialog.setCancelable(false);
baseDialog.setCanceledOnTouchOutside(false);
baseDialog.show();
break;
case R.id.dialog_album:
setTakePer(false, false);
break;
case R.id.dialog_take:
setTakePer(true, true);
break;
case R.id.not_add_lay:
setSwitchMode(true);
break;
case R.id.select_all_tv:
this.addFriendSelectNumDialog.show();
break;
case R.id.take_photo_lay:
this.takeSelectDialog.show();
break;
case R.id.to_add_tv:
if (this.selectContactInfoList.size() <= 0) {
showCenterToast("请先选择需要添加的好友!");
break;
} else {
Intent intent = new Intent((Context) this, (Class<?>) AddFriendSetActivity.class);
intent.putExtra("addFriendData", (Serializable) this.selectContactInfoList);
intent.putExtra("add_type", 103);
startActivity(intent);
break;
}
}
}
}
public void lambda$onClick$1(BaseDialog baseDialog, View view) {
for (ContactInfo contactInfo : this.selectContactInfoList) {
Iterator<ContactInfo> it = this.contactInfoList.iterator();
while (true) {
if (it.hasNext()) {
ContactInfo next = it.next();
if (contactInfo.phoneNumber.equals(next.phoneNumber)) {
this.contactInfoList.remove(next);
break;
}
}
}
}
this.selectContactInfoList.clear();
setNotImportListRv();
baseDialog.dismiss();
}
private void selectView(boolean z) {
if (this.contactInfoList.size() <= 0) {
return;
}
if (z) {
this.selectContactInfoList.clear();
Iterator<ContactInfo> it = this.contactInfoList.iterator();
while (it.hasNext()) {
it.next().setSelect(false);
}
} else {
this.selectContactInfoList.addAll(this.contactInfoList);
Iterator<ContactInfo> it2 = this.contactInfoList.iterator();
while (it2.hasNext()) {
it2.next().setSelect(true);
}
}
setAllSelectImg();
this.friendListAdapter.notifyDataSetChanged();
}
private void selectNumView(int i) {
if (this.contactInfoList.size() <= 0) {
return;
}
if (i > this.contactInfoList.size()) {
i = this.contactInfoList.size();
}
this.selectContactInfoList.clear();
this.selectContactInfoList.addAll(this.contactInfoList.subList(0, i));
for (int i2 = 0; i2 < this.contactInfoList.size(); i2++) {
this.contactInfoList.get(i2).setSelect(true);
if (i2 == i - 1) {
break;
}
}
setAllSelectImg();
this.friendListAdapter.notifyDataSetChanged();
}
public void setNotImportListRv() {
DataSaveUtils.setTakePhotoAddFriendData(this, JSON.toJSONString(this.contactInfoList));
this.friendListAdapter = new Adapter(R.layout.item_take_photo, this.contactInfoList);
this.notAddNumRv.setLayoutManager(new LinearLayoutManager(this));
this.notAddNumRv.setAdapter(this.friendListAdapter);
List<ContactInfo> list = this.contactInfoList;
if (list != null && !list.isEmpty()) {
for (ContactInfo contactInfo : this.selectContactInfoList) {
for (ContactInfo contactInfo2 : this.contactInfoList) {
contactInfo2.setSelect(contactInfo.getPhoneNumber().equals(contactInfo2.getPhoneNumber()));
}
}
}
List<ContactInfo> list2 = this.contactInfoList;
if (list2 != null && !list2.isEmpty() && this.selectContactInfoList.isEmpty()) {
Iterator<ContactInfo> it = this.contactInfoList.iterator();
while (it.hasNext()) {
it.next().setSelect(false);
}
}
setAllSelectImg();
this.friendListAdapter.setOnItemClickListener(new BaseQuickAdapter.OnItemClickListener() {
static final boolean $assertionsDisabled = false;
public void onItemClick(BaseQuickAdapter baseQuickAdapter, View view, int i) {
if (!((ImageView) baseQuickAdapter.getViewByPosition(TakePhotoAddFriendActivity.this.notAddNumRv, i, R.id.item_select)).isSelected()) {
((ContactInfo) TakePhotoAddFriendActivity.this.contactInfoList.get(i)).setSelect(true);
TakePhotoAddFriendActivity.this.selectContactInfoList.add((ContactInfo) TakePhotoAddFriendActivity.this.contactInfoList.get(i));
} else {
((ContactInfo) TakePhotoAddFriendActivity.this.contactInfoList.get(i)).setSelect(false);
String phoneNumber = ((ContactInfo) TakePhotoAddFriendActivity.this.contactInfoList.get(i)).getPhoneNumber();
Iterator it2 = TakePhotoAddFriendActivity.this.selectContactInfoList.iterator();
while (true) {
if (!it2.hasNext()) {
break;
}
ContactInfo contactInfo3 = (ContactInfo) it2.next();
if (contactInfo3.getPhoneNumber().equals(phoneNumber)) {
TakePhotoAddFriendActivity.this.selectContactInfoList.remove(contactInfo3);
break;
}
}
}
TakePhotoAddFriendActivity.this.friendListAdapter.notifyDataSetChanged();
TakePhotoAddFriendActivity.this.setAllSelectImg();
}
});
List<ContactInfo> list3 = this.contactInfoList;
if (list3 != null && !list3.isEmpty()) {
this.llEmpty.setVisibility(8);
this.importNumTv.setText(this.contactInfoList.size() + "");
} else {
this.llEmpty.setVisibility(0);
this.importNumTv.setText("0");
}
}
protected void onResume() {
super.onResume();
setAddedListRv();
}
private void setAddedListRv() {
List<ContactInfo> takePhotoAddedFriendData = DataSaveUtils.getTakePhotoAddedFriendData(this);
if (takePhotoAddedFriendData != null && takePhotoAddedFriendData.size() > 100) {
takePhotoAddedFriendData = takePhotoAddedFriendData.subList(0, 99);
DataSaveUtils.setTakePhotoAddedFriendData(this, JSON.toJSONString(takePhotoAddedFriendData));
}
if (takePhotoAddedFriendData == null) {
this.addedLayEmpty.setVisibility(0);
} else {
Adapter adapter = new Adapter(R.layout.item_select_img_photo, takePhotoAddedFriendData);
this.addedNumRv.setLayoutManager(new LinearLayoutManager(this));
this.addedNumRv.setAdapter(adapter);
if (takePhotoAddedFriendData.size() <= 0) {
this.addedLayEmpty.setVisibility(0);
} else {
this.addedLayEmpty.setVisibility(8);
}
}
if (DataSaveUtils.getTakePhotoAddFriendData(this) != null && !((List) Objects.requireNonNull(DataSaveUtils.getTakePhotoAddFriendData(this))).isEmpty()) {
this.contactInfoList = DataSaveUtils.getTakePhotoAddFriendData(this);
} else {
this.contactInfoList.clear();
}
DataSaveUtils.setPhoneAddingFriendData(this, "");
this.selectContactInfoList.clear();
setNotImportListRv();
}
public void setAllSelectImg() {
this.selectAll.setText("快速选择(已选" + this.selectContactInfoList.size() + "人)");
}
private void setTakePer(boolean z, boolean z2) {
if (Build.VERSION.SDK_INT >= 30) {
if (!Environment.isExternalStorageManager()) {
new PermissionTipDialog(this, "获取文件访问权限说明:\n用于拍摄、储存照片以及在相册中浏览查看照片", new PermissionTipDialog.Callback() {
@Override
public void onSure() {
Intent intent = new Intent("android.settings.MANAGE_APP_ALL_FILES_ACCESS_PERMISSION");
intent.setData(Uri.parse("package:" + TakePhotoAddFriendActivity.this.getPackageName()));
TakePhotoAddFriendActivity.this.startActivityForResult(intent, 2);
}
}).show();
return;
} else {
setTake(z, z2);
return;
}
}
setTake(z, z2);
}
private void setTake(final boolean z, boolean z2) {
if (!XXPermissions.isGranted((Context) this, Utils.cameraPermission())) {
PopNotification build = PopNotification.build();
this.mPopNotification = build;
if (z2) {
build.setTitle("相机和存储权限使用说明:").setMessage("用于拍摄、储存照片以及在相册中浏览查看照片").noAutoDismiss().show();
} else {
build.setTitle("存储权限使用说明:").setMessage("用于储存照片以及在相册中浏览查看照片").noAutoDismiss().show();
}
}
XXPermissions.with((Context) this).permission(Utils.cameraPermission()).request(new OnPermissionCallback() {
@Override
public void onGranted(List<String> list, boolean z3) {
if (z3) {
if (z) {
TakePhotoAddFriendActivity.this.takePhoto();
} else {
TakePhotoAddFriendActivity.this.imgSelect();
}
}
if (TakePhotoAddFriendActivity.this.mPopNotification != null) {
TakePhotoAddFriendActivity.this.mPopNotification.dismiss();
}
}
@Override
public void onDenied(List<String> list, boolean z3) {
if (TakePhotoAddFriendActivity.this.mPopNotification != null) {
TakePhotoAddFriendActivity.this.mPopNotification.dismiss();
}
}
});
}
public void takePhoto() {
PictureSelector.create(this).openCamera(SelectMimeType.ofImage()).forResultActivity(new OnResultCallbackListener<LocalMedia>() {
public void onCancel() {
}
public void onResult(ArrayList<LocalMedia> arrayList) {
if (arrayList.get(0).getPath() == null || arrayList.get(0).getPath().isEmpty()) {
BaseActivity.showCenterToast("未获取到图片,可能图片太小,请重新选择");
} else {
TakePhotoAddFriendActivity.this.OCR(arrayList.get(0).getPath());
}
}
});
}
public void imgSelect() {
PictureSelector.create(this).openGallery(SelectMimeType.ofImage()).setMaxSelectNum(1).setMinSelectNum(1).setImageEngine(GlideEngine.createGlideEngine()).setSelectorUIStyle(Utils.selectorStyle()).forResult(new OnResultCallbackListener<LocalMedia>() {
public void onCancel() {
}
public void onResult(ArrayList<LocalMedia> arrayList) {
if (arrayList.get(0).getPath() == null || arrayList.get(0).getPath().isEmpty()) {
BaseActivity.showCenterToast("未获取到图片,可能图片太小,请重新选择");
} else {
TakePhotoAddFriendActivity.this.OCR(arrayList.get(0).getPath());
}
}
});
}
private File getFileFromUri(Context context, Uri uri) {
File file = null;
try {
String str = "IMG_" + new SimpleDateFormat("yyyyMMdd_HHmmss", Locale.getDefault()).format(new Date());
ContentResolver contentResolver = context.getContentResolver();
file = File.createTempFile(str, ".jpg", context.getExternalCacheDir());
InputStream openInputStream = contentResolver.openInputStream(uri);
try {
FileOutputStream fileOutputStream = new FileOutputStream(file);
if (openInputStream != null) {
try {
byte[] bArr = new byte[1024];
while (true) {
int read = openInputStream.read(bArr);
if (read == -1) {
break;
}
fileOutputStream.write(bArr, 0, read);
}
} finally {
}
}
fileOutputStream.close();
if (openInputStream != null) {
openInputStream.close();
}
} finally {
}
} catch (IOException e) {
e.printStackTrace();
}
return file;
}
public void OCR(String str) {
File fileFromUri = getFileFromUri(this, Uri.parse(str));
if (!fileFromUri.exists()) {
showCenterToast("图片获取失败,请重新选择");
return;
}
OcrRequestParams ocrRequestParams = new OcrRequestParams();
ocrRequestParams.setImageFile(fileFromUri);
showProgressDialog(this, "号码识别中。。。");
OCR.getInstance(this).recognizeNumbers(ocrRequestParams, new AnonymousClass6());
}
class AnonymousClass6 implements OnResultListener<OcrResponseResult> {
public static ArrayList $r8$lambda$_Zl5aj34S5wOL1esllpKCwgARjY(Collection collection) {
return new ArrayList(collection);
}
AnonymousClass6() {
}
public void onResult(OcrResponseResult ocrResponseResult) {
Log.e("zzxxxxxxx", ocrResponseResult.getJsonRes());
TakePhotoAddFriendActivity.this.takePhotoNumBean = (TakePhotoNumBean) JSON.parseObject(ocrResponseResult.getJsonRes(), TakePhotoNumBean.class);
List<TakePhotoNumBean.WordsResultDTO> list = TakePhotoAddFriendActivity.this.takePhotoNumBean.wordsResult;
if (list.size() > 0) {
Iterator<TakePhotoNumBean.WordsResultDTO> it = list.iterator();
while (it.hasNext()) {
for (String str : TakePhotoAddFriendActivity.splitStringByLength(it.next().words, 11)) {
if (TakePhotoAddFriendActivity.isValidChinaMobileNumber(str)) {
TakePhotoAddFriendActivity.this.contactInfoList.add(new ContactInfo(TakePhotoAddFriendActivity.this.getTime(), str));
}
}
}
} else {
TakePhotoAddFriendActivity.this.notNumTip();
}
TakePhotoAddFriendActivity takePhotoAddFriendActivity = TakePhotoAddFriendActivity.this;
takePhotoAddFriendActivity.contactInfoList = (List) takePhotoAddFriendActivity.contactInfoList.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(new Supplier() {
@Override
public final Object get() {
return TakePhotoAddFriendActivity.AnonymousClass6.lambda$onResult$0();
}
}), new Function() {
@Override
public final Object apply(Object obj) {
return TakePhotoAddFriendActivity.AnonymousClass6.$r8$lambda$_Zl5aj34S5wOL1esllpKCwgARjY((TreeSet) obj);
}
}));
TakePhotoAddFriendActivity.this.setNotImportListRv();
TakePhotoAddFriendActivity.this.dismissProgressDialog();
}
static TreeSet lambda$onResult$0() {
return new TreeSet(Comparator.comparing(new Function() {
@Override
public final Object apply(Object obj) {
return ((ContactInfo) obj).getPhoneNumber();
}
}));
}
public void onError(OCRError oCRError) {
BaseActivity.showCenterToast(oCRError.getMessage());
TakePhotoAddFriendActivity.this.dismissProgressDialog();
}
}
public static List<String> splitStringByLength(String str, int i) {
ArrayList arrayList = new ArrayList();
int i2 = 0;
while (i2 < str.length()) {
int i3 = i2 + i;
if (i3 < str.length()) {
arrayList.add(str.substring(i2, i3));
} else {
arrayList.add(str.substring(i2));
}
i2 = i3;
}
return arrayList;
}
public static boolean isValidChinaMobileNumber(String str) {
if (str == null || str.isEmpty()) {
return false;
}
return str.matches(CHINA_MOBILE_NUMBER_REGEX);
}
private static class Adapter extends BaseQuickAdapter<ContactInfo, BaseViewHolder> {
public Adapter(int i, List<ContactInfo> list) {
super(i, list);
}
public void convert(BaseViewHolder baseViewHolder, ContactInfo contactInfo) {
baseViewHolder.setText(R.id.item_phone, contactInfo.phoneNumber).setText(R.id.item_time, contactInfo.contactName);
((ImageView) baseViewHolder.getView(R.id.item_select)).setSelected(contactInfo.isSelect);
}
}
private void initAccessToken() {
OCR.getInstance(getApplicationContext()).initAccessToken(new OnResultListener<AccessToken>() {
public void onError(OCRError oCRError) {
}
public void onResult(AccessToken accessToken) {
}
}, getApplicationContext());
}
public String getTime() {
return new SimpleDateFormat("yyyy-MM-dd").format(Calendar.getInstance().getTime());
}
public void notNumTip() {
final BaseDialog baseDialog = new BaseDialog(this);
baseDialog.setTitleText("提示");
baseDialog.setContentText("未识别到手机号码!请确保图片上的号码清晰明了!");
baseDialog.setLeftButton("确定", -1, new View.OnClickListener() {
@Override
public final void onClick(View view) {
BaseDialog.this.dismiss();
}
});
baseDialog.show();
}
}