From 4a8ff39b0fab0627ef8f7459587d514cc01c3676 Mon Sep 17 00:00:00 2001
From: rk <94314517@qq.com>
Date: 星期一, 20 十月 2025 10:52:02 +0800
Subject: [PATCH] Merge branch 'wuhuyancao' of http://139.186.142.91:10010/r/productDev/dmvisit into wuhuyancao
---
keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/ui/face/AddFaceActivity.java | 604 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 604 insertions(+), 0 deletions(-)
diff --git a/keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/ui/face/AddFaceActivity.java b/keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/ui/face/AddFaceActivity.java
new file mode 100644
index 0000000..0c5ee94
--- /dev/null
+++ b/keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/ui/face/AddFaceActivity.java
@@ -0,0 +1,604 @@
+package com.doumee.keyCabinet.ui.face;
+
+import androidx.annotation.CallSuper;
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.lifecycle.Observer;
+import androidx.recyclerview.widget.GridLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
+
+import android.content.Context;
+import android.graphics.Bitmap;
+import android.graphics.Color;
+import android.os.Bundle;
+import android.os.Handler;
+import android.os.Message;
+import android.text.Editable;
+import android.text.TextWatcher;
+import android.view.MotionEvent;
+import android.view.View;
+import android.widget.Button;
+import android.widget.CheckBox;
+import android.widget.CompoundButton;
+import android.widget.EditText;
+import android.widget.ImageView;
+import android.widget.LinearLayout;
+import android.widget.ProgressBar;
+import android.widget.RelativeLayout;
+import android.widget.TextView;
+import android.widget.Toast;
+
+import com.alibaba.fastjson.JSON;
+import com.bumptech.glide.Glide;
+import com.bumptech.glide.load.DataSource;
+import com.bumptech.glide.load.engine.GlideException;
+import com.bumptech.glide.request.RequestListener;
+import com.bumptech.glide.request.target.SimpleTarget;
+import com.bumptech.glide.request.target.Target;
+import com.bumptech.glide.request.transition.Transition;
+import com.doumee.keyCabinet.R;
+import com.doumee.keyCabinet.base.MyBaseActivity;
+import com.doumee.keyCabinet.bean.FaceUserBean;
+import com.doumee.keyCabinet.databinding.AddFaceActivityBinding;
+import com.doumee.keyCabinet.ui.face.adapter.FaceRcvAdapter;
+import com.doumee.keyCabinet.ui.view.TipDialog;
+import com.doumee.keyCabinet.utils.face.FaceUtils;
+import com.example.datalibrary.api.FaceApi;
+import com.example.datalibrary.listener.DBLoadListener;
+import com.example.datalibrary.manager.FaceSDKManager;
+import com.example.datalibrary.model.KeyboardsUtils;
+import com.example.datalibrary.model.User;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import dagger.hilt.android.AndroidEntryPoint;
+import timber.log.Timber;
+
+@AndroidEntryPoint
+public class AddFaceActivity extends MyBaseActivity<AddFaceVM, AddFaceActivityBinding> implements View.OnClickListener,
+ CompoundButton.OnCheckedChangeListener, TipDialog.OnTipDialogClickListener {
+ // view
+ private RecyclerView mRecyclerUserManager;
+ private ImageView mImageIconSearch; // title涓殑鎼滅储鎸夐挳
+ private RelativeLayout mRelativeStandard; // title涓殑甯歌甯冨眬
+ private LinearLayout mLinearSearch; // title涓殑鎼滅储甯冨眬
+ private boolean isCheck = false; // title鑿滃崟鐐瑰嚮鐘舵��
+ private TextView mTextCancel; // title涓殑鍙栨秷鎸夐挳
+ private RelativeLayout mRelativeEmpty; // 鏆傛棤鍐呭
+ private TextView mTextEmpty;
+ private EditText mEditTitleSearch;
+
+ private RelativeLayout mRelativeDelete; // 瀵煎叆浜鸿劯甯冨眬
+ private CheckBox mCheckAll; // 鍏ㄩ��
+ private TextView mTextDelete; // 瀵煎叆浜鸿劯
+ private TextView textAll;
+ private TipDialog mTipDialog;
+
+ private Context mContext;
+ private FaceRcvAdapter mFaceUserAdapter;
+ private List<FaceUserBean> mUserInfoList;
+ private int mSelectCount; // 閫変腑鐨勪釜鏁�
+ private boolean mIsLongClick; // 鏄惁鏄暱鎸�
+
+ private ProgressBar progressBar;
+ private TextView progressText;
+ private View progressGroup;
+
+ @Override
+ public int getLayoutId() {
+ return R.layout.add_face_activity;
+ }
+
+ @Override
+ public void initView(@Nullable Bundle savedInstanceState) {
+ isAddCountTimer = false;
+ normalConfig();
+ getDB().setModel(getVM());
+ mContext = this;
+ initView();
+ }
+
+ @Override
+ public void initData(@Nullable Bundle savedInstanceState) {
+ getVM().getDatasLD().observe(this, new Observer<List<FaceUserBean>>() {
+ @Override
+ public void onChanged(List<FaceUserBean> beans) {
+ mUserInfoList = beans;
+ if (beans == null || beans.size() == 0) {
+ mFaceUserAdapter.refreshData(new ArrayList<>());
+ mFaceUserAdapter.notifyDataSetChanged();
+ mRelativeEmpty.setVisibility(View.VISIBLE);
+ mRecyclerUserManager.setVisibility(View.GONE);
+ // 鏄剧ず鏃犲唴瀹瑰垽鏂�
+ if (mEditTitleSearch.getText().length()>0) {
+ mTextEmpty.setText(getString(R.string.addface_zwnr));
+ updateDeleteUI(false);
+ } else {
+ mTextEmpty.setText(getString(R.string.addface_tip1));
+ mRelativeDelete.setVisibility(View.GONE);
+ }
+ return;
+ }
+
+ // 鎭㈠榛樿鐘舵��
+ resetDeleteData();
+ mRelativeEmpty.setVisibility(View.GONE);
+ mRecyclerUserManager.setVisibility(View.VISIBLE);
+ mFaceUserAdapter.refreshData(mUserInfoList);
+ mFaceUserAdapter.notifyDataSetChanged();
+ }
+ });
+ getVM().getDatas();
+ }
+
+ @Override
+ protected void onDestroy() {
+ super.onDestroy();
+ handler.removeCallbacksAndMessages(null);
+ handler = null;
+ }
+
+ private Handler handler = new Handler(){
+ @Override
+ public void handleMessage(@NonNull Message msg) {
+ if(!isFinishing()){
+ switch (msg.what){
+ case 0:
+ if(finishCount<selectBeans.size()){
+ datasToBitmap(selectBeans.get(finishCount));
+ }else {
+ //缁撴潫
+ loadListener.onComplete(new ArrayList<>(),finishCount);
+ if(failCount>0){
+ Toast.makeText(mContext, String.format(getString(R.string.addface_tip2),failCount,failStr.toString()), Toast.LENGTH_LONG).show();
+ }
+ }
+ break;
+ }
+ }
+ }
+ };
+ private List<FaceUserBean> selectBeans = new ArrayList<>();
+ private int finishCount = 0;
+ private int failCount = 0;
+ private StringBuilder failStr = new StringBuilder();
+ private void datasToBitmap(FaceUserBean bean){
+ // 浣跨敤 Glide 鍔犺浇鍥剧墖骞惰浆鎹负 Bitmap
+ Glide.with(this)
+ .asBitmap()
+ .load(bean.getFaceImg())
+ .addListener(new RequestListener<Bitmap>() {
+ @Override
+ public boolean onLoadFailed(@Nullable GlideException e, Object model, Target<Bitmap> target, boolean isFirstResource) {
+ //鍔犺浇澶辫触
+ Timber.d("====>鍥剧墖涓嬭浇澶辫触%s",bean.getMemberName());
+ failCount++;
+ if(failStr.length()>0){
+ failStr.append(",");
+ }
+ failStr.append(bean.getMemberName());
+ finishCount++;
+ loadListener.onLoad(finishCount, mSelectCount, finishCount * 1.0f / mSelectCount);
+ if (finishCount == mSelectCount) {
+ loadListener.onComplete(new ArrayList<>(), finishCount);
+ if(failCount>0){
+ Toast.makeText(mContext, String.format(getString(R.string.addface_tip2),failCount,failStr.toString()), Toast.LENGTH_LONG).show();
+ }
+ }
+ handler.sendEmptyMessage(0);
+ return false;
+ }
+
+ @Override
+ public boolean onResourceReady(Bitmap bitmap, Object model, Target<Bitmap> target, DataSource dataSource, boolean isFirstResource) {
+ boolean fail = true;
+ if (bitmap != null) {
+ byte[] secondFeature = new byte[512];
+ // 鎻愬彇鐗瑰緛鍊�
+ float ret = FaceSDKManager.getInstance().personDetect(bitmap, secondFeature,
+ FaceUtils.getInstance().getBDFaceCheckConfig(), AddFaceActivity.this);
+ // 鎻愬彇鐗瑰緛鍊�
+ if (ret != -1) {
+ //鏈変汉鑴�
+ // 鍒ゆ柇璐ㄩ噺妫�娴嬶紝閽堝妯$硦搴︺�侀伄鎸°�佽搴�
+ if (ret == 128) {
+ Timber.d("====>鍥剧墖鐗瑰緛鎶藉彇鎴愬姛: %s", bean.getMemberName());
+ //鎻掑叆鏁版嵁搴�
+ User user = FaceApi.getInstance().getByUserId(bean.getGroupId(), bean.getMemberId());
+ boolean isSave = false;
+ if (user == null) {
+ //鏂板
+ isSave = FaceApi.getInstance().registerUserIntoDBmanager(bean.getGroupId(),
+ bean.getMemberId(), bean.getMemberName(), bean.getFaceImg(), JSON.toJSONString(bean), secondFeature);
+ } else {
+ //鏇存柊
+ user.setUserName(bean.getMemberName());
+ user.setImageName(bean.getFaceImg());
+ user.setFeature(secondFeature);
+ isSave = FaceApi.getInstance().userUpdateOnly(user);
+ }
+
+ if (isSave) {
+ //淇濆瓨鎴愬姛
+ Timber.d("====>褰曞叆鎴愬姛%s",bean.getMemberName());
+ fail = false;
+ } else {
+ Timber.d("====>褰曞叆澶辫触%s",bean.getMemberName());
+ }
+ } else {
+ Timber.d("====>鍥剧墖鐗瑰緛鎶藉彇澶辫触%s",bean.getMemberName());
+ }
+ } else {
+ // 涓婁紶鍥剧墖鏃犱汉鑴搁殣钘�
+ Timber.d("====>鍥剧墖鐗瑰緛鎶藉彇澶辫触%s",bean.getMemberName());
+ }
+
+ }
+ if(fail){
+ failCount++;
+ if(failStr.length()>0){
+ failStr.append(",");
+ }
+ failStr.append(bean.getMemberName());
+ }else {
+ bean.setChecked(false);
+ }
+ finishCount++;
+ loadListener.onLoad(finishCount, mSelectCount, finishCount * 1.0f / mSelectCount);
+ if (finishCount == mSelectCount) {
+ loadListener.onComplete(new ArrayList<>(), finishCount);
+ if(failCount>0){
+ Toast.makeText(mContext, String.format(getString(R.string.addface_tip2),failCount,failStr.toString()), Toast.LENGTH_LONG).show();
+ }
+ }
+ handler.sendEmptyMessage(0);
+ return false;
+ }
+ })
+ .into(new SimpleTarget<Bitmap>() {
+
+ @Override
+ public void onResourceReady(@NonNull Bitmap bitmap, @Nullable Transition<? super Bitmap> transition) {
+
+ }
+ });
+ /*FrescoUtils.loadImage(this, bean.getFaceUrl(), 0, 0, new IResult<Bitmap>() {
+ @Override
+ public void onResult(Bitmap bitmap) {
+ if(handler.hasMessages(0)){
+ handler.removeMessages(0);
+ }
+ boolean fail = true;
+ if (bitmap != null) {
+ byte[] secondFeature = new byte[512];
+ // 鎻愬彇鐗瑰緛鍊�
+ float ret = FaceSDKManager.getInstance().personDetect(bitmap, secondFeature,
+ FaceUtils.getInstance().getBDFaceCheckConfig(), AddFaceActivity.this);
+ if (bitmap != null && !bitmap.isRecycled()) {
+ //閿�姣佸浘鐗�
+ bitmap.recycle();
+ }
+ // 鎻愬彇鐗瑰緛鍊�
+ if (ret != -1) {
+ //鏈変汉鑴�
+ // 鍒ゆ柇璐ㄩ噺妫�娴嬶紝閽堝妯$硦搴︺�侀伄鎸°�佽搴�
+ if (ret == 128) {
+ Timber.d("====>鍥剧墖鐗瑰緛鎶藉彇鎴愬姛: %s", bean.getMemberName());
+ //鎻掑叆鏁版嵁搴�
+ User user = FaceApi.getInstance().getByUserId(bean.getType(), bean.getId());
+ boolean isSave = false;
+ if (user == null) {
+ //鏂板
+ isSave = FaceApi.getInstance().registerUserIntoDBmanager(bean.getType(),
+ bean.getId(), bean.getMemberName(), bean.getFaceUrl(), JSON.toJSONString(bean), secondFeature);
+ } else {
+ //鏇存柊
+ user.setUserName(bean.getMemberName());
+ user.setImageName(bean.getFaceUrl());
+ user.setFeature(secondFeature);
+ isSave = FaceApi.getInstance().userUpdateOnly(user);
+ }
+
+ if (isSave) {
+ //淇濆瓨鎴愬姛
+ Timber.d("====>褰曞叆鎴愬姛%s",bean.getMemberName());
+ fail = false;
+ } else {
+ Timber.d("====>褰曞叆澶辫触%s",bean.getMemberName());
+ }
+ } else {
+ Timber.d("====>鍥剧墖鐗瑰緛鎶藉彇澶辫触%s",bean.getMemberName());
+ }
+ } else {
+ // 涓婁紶鍥剧墖鏃犱汉鑴搁殣钘�
+ Timber.d("====>鍥剧墖鐗瑰緛鎶藉彇澶辫触%s",bean.getMemberName());
+ }
+ } else {
+ Timber.d("====>鍥剧墖涓嬭浇澶辫触%s",bean.getMemberName());
+ }
+ bean.setChecked(false);
+ if(fail){
+ failCount++;
+ if(failStr.length()>0){
+ failStr.append(",");
+ }
+ failStr.append(bean.getMemberName());
+ }
+ finishCount++;
+ loadListener.onLoad(finishCount, mSelectCount, finishCount * 1.0f / mSelectCount);
+ if (finishCount == mSelectCount) {
+ loadListener.onComplete(new ArrayList<>(), finishCount);
+ if(failCount>0){
+ Toast.makeText(mContext, "鍏�"+failCount+"鏉″鍏ュけ璐ャ��"+failStr.toString()+"銆�", Toast.LENGTH_LONG).show();
+ }
+ }
+ }
+ });*/
+ }
+
+ private void initView() {
+ mRecyclerUserManager = findViewById(R.id.recycler_user_manager);
+ mRecyclerUserManager.setOnClickListener(this);
+ RecyclerView.LayoutManager layoutManager = new GridLayoutManager(mContext,2);
+ mRecyclerUserManager.setLayoutManager(layoutManager);
+ // title鐩稿叧鐨勬帶浠�
+ mRelativeStandard = findViewById(R.id.relative_standard);
+ mLinearSearch = findViewById(R.id.linear_title_search);
+ mImageIconSearch = findViewById(R.id.image_icon_research);
+ mImageIconSearch.setOnClickListener(this);
+ mTextCancel = findViewById(R.id.text_cancel);
+ mTextCancel.setOnClickListener(this);
+
+ mRelativeEmpty = findViewById(R.id.relative_empty);
+ mTextEmpty = findViewById(R.id.text_empty);
+ // 鍒犻櫎鐩稿叧鐨勬帶浠�
+ mRelativeDelete = findViewById(R.id.relative_botton_delete);
+ mRelativeDelete.setOnClickListener(this);
+ mCheckAll = findViewById(R.id.check_all);
+ mCheckAll.setOnCheckedChangeListener(this);
+ textAll = findViewById(R.id.text_all);
+ textAll.setOnClickListener(this);
+ mTextDelete = findViewById(R.id.text_delete);
+ mTextDelete.setOnClickListener(this);
+ // title涓殑鎼滅储妗嗗彇娑堟寜閽�
+ Button btnTitleCancel = findViewById(R.id.btn_title_cancel);
+ btnTitleCancel.setOnClickListener(this);
+ ImageView imageBack = findViewById(R.id.image_back);
+ imageBack.setOnClickListener(this);
+ ImageView imageInputDelete = findViewById(R.id.image_input_delete);
+ imageInputDelete.setOnClickListener(this);
+ mTipDialog = new TipDialog(mContext);
+ mTipDialog.setOnTipDialogClickListener(this);
+
+ mFaceUserAdapter = new FaceRcvAdapter(this, R.layout.face_rcv_item, new FaceRcvAdapter.OnItemClick() {
+ @Override
+ public void onItemClick(FaceUserBean item) {
+ // 濡傛灉褰撳墠item鏈�変腑锛屽垯閫変腑
+ if (item.isChecked()) {
+ mSelectCount++;
+ mTextDelete.setText(getString(R.string.addface_drrl)+"(" + mSelectCount + ")");
+ mTextDelete.setTextColor(Color.parseColor("#F34B56"));
+ } else {
+ // 濡傛灉褰撳墠item宸茬粡閫変腑锛屽垯鍙栨秷閫変腑
+ mSelectCount--;
+ mTextDelete.setText(getString(R.string.addface_drrl)+"(" + mSelectCount + ")");
+ if (mSelectCount == 0) {
+ mTextDelete.setTextColor(Color.parseColor("#666666"));
+ }
+ }
+ }
+ });
+ mRecyclerUserManager.setAdapter(mFaceUserAdapter);
+
+ progressBar = findViewById(R.id.progress_bar);
+ progressText = findViewById(R.id.progress_text);
+ progressGroup = findViewById(R.id.progress_group);
+
+ // title涓殑鎼滅储妗�
+ mEditTitleSearch = findViewById(R.id.edit_title_search);
+ // 鎼滅储妗嗚緭鍏ョ洃鍚簨浠�
+ mEditTitleSearch.addTextChangedListener(new TextWatcher() {
+ @Override
+ public void beforeTextChanged(CharSequence s, int start, int count, int after) {
+
+ }
+
+ @Override
+ public void onTextChanged(CharSequence s, int start, int before, int count) {
+ if (mUserInfoList!=null&&s != null) {
+ // 璇诲彇鏁版嵁搴擄紝鑾峰彇鐢ㄦ埛淇℃伅
+ if(s.toString().trim().length()==0){
+ mFaceUserAdapter.refreshData(mUserInfoList);
+ }else {
+ List<FaceUserBean> beans = new ArrayList<>();
+ for(FaceUserBean d:mUserInfoList){
+ if(s.toString().trim().contains(d.getMemberName())){
+ beans.add(d);
+ }
+ }
+ mFaceUserAdapter.refreshData(beans);
+ }
+ }
+ }
+
+ @Override
+ public void afterTextChanged(Editable s) {
+
+ }
+ });
+ }
+
+ @Override
+ public void onClick(View v) {
+ int id = v.getId();
+ if (id == R.id.btn_title_cancel) { // 鍙栨秷鎸夐挳
+ mEditTitleSearch.setText("");
+ mLinearSearch.setVisibility(View.GONE);
+ mRelativeStandard.setVisibility(View.VISIBLE);
+
+ } else if (id == R.id.image_icon_research) { // 鎼滅储鎸夐挳
+ mLinearSearch.setVisibility(View.VISIBLE);
+ mRelativeStandard.setVisibility(View.GONE);
+ } else if (id == R.id.image_back) {
+ finish();
+ } else if (id == R.id.text_all) {
+ mCheckAll.setChecked(!mCheckAll.isChecked());
+ }else if (id == R.id.relative_delete) { // 鏄剧ず瀵煎叆浜鸿劯UI
+ updateDeleteUI(true);
+ } else if (id == R.id.text_cancel) { // 鎵归噺瀵煎叆浜鸿劯鍙栨秷
+ updateDeleteUI(false);
+ } else if (id == R.id.text_delete) { // 鎵归噺瀵煎叆浜鸿劯
+ if (mSelectCount == 0) {
+ Toast.makeText(mContext, getString(R.string.addface_tip3), Toast.LENGTH_SHORT).show();
+ return;
+ }
+ if(FaceSDKManager.initStatus != FaceSDKManager.SDK_MODEL_LOAD_SUCCESS){
+ Toast.makeText(mContext, getString(R.string.addface_tip4), Toast.LENGTH_SHORT).show();
+ return;
+ }
+ mTipDialog.show();
+ mTipDialog.setTextTitle(getString(R.string.addface_qrdr));
+ mTipDialog.setTextMessage(getString(R.string.addface_tip5));
+ mTipDialog.setTextConfirm(getString(R.string.addface_drrl)+"(" + mSelectCount + ")");
+ mTipDialog.setCancelable(false);
+ } else if (id == R.id.image_input_delete) {
+ mEditTitleSearch.setText("");
+ } else if (id == R.id.recycler_user_manager) {
+ KeyboardsUtils.hintKeyBoards(v);
+ } else if (id == R.id.relative_botton_delete) {
+ Timber.d( "relative_botton_delete");
+ }
+ }
+
+ /**
+ * 鍏ㄩ�夊閫夋鐨勭洃鍚簨浠�
+ */
+ @Override
+ public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
+ if (isChecked) { // 鍏ㄩ��
+ mSelectCount = mUserInfoList.size();
+ for (int i = 0; i < mUserInfoList.size(); i++) {
+ mUserInfoList.get(i).setChecked(true);
+ }
+ mTextDelete.setTextColor(Color.parseColor("#F34B56"));
+ } else { // 鍙栨秷鍏ㄩ��
+ mSelectCount = 0;
+ for (int i = 0; i < mUserInfoList.size(); i++) {
+ mUserInfoList.get(i).setChecked(false);
+ }
+ mTextDelete.setTextColor(Color.parseColor("#666666"));
+ }
+ mTextDelete.setText(getString(R.string.addface_drrl)+"(" + mSelectCount + ")");
+ mFaceUserAdapter.notifyDataSetChanged();
+ }
+
+ // 瀵硅瘽妗嗏�滃彇娑堚�濇寜閽�
+ @Override
+ public void onCancel() {
+ if (mIsLongClick) {
+ resetDeleteData();
+ mIsLongClick = false;
+ }
+ mFaceUserAdapter.notifyDataSetChanged();
+ if (mTipDialog != null) {
+ mTipDialog.dismiss();
+ }
+ }
+ private DBLoadListener loadListener = new DBLoadListener() {
+ @Override
+ public void onStart(final int successCount) {
+
+ runOnUiThread(new Runnable() {
+ @Override
+ public void run() {
+ progressGroup.setVisibility(View.VISIBLE);
+ progressBar.setProgress(0);
+ progressText.setText(0 + "/" + successCount);
+ }
+ });
+ }
+
+ @Override
+ public void onLoad(final int finishCount, final int successCount, final float progress) {
+// if (successCount > 50 || successCount == 0) {
+ runOnUiThread(new Runnable() {
+ @Override
+ public void run() {
+ Timber.d("====>浜鸿劯瀵煎叆杩涘害%s",finishCount+"=="+successCount+"=="+progress);
+ progressBar.setProgress((int) (progress * 100));
+ progressText.setText(finishCount + "/" + successCount);
+ }
+ });
+// }
+ }
+
+ @Override
+ public void onComplete(List<User> features, final int successCount) {
+ progressGroup.setVisibility(View.GONE);
+ mFaceUserAdapter.notifyDataSetChanged();
+ mCheckAll.setChecked(false);
+ }
+
+ @Override
+ public void onFail(int finishCount, int successCount, List<User> features) {
+
+ }
+ };
+
+ // 瀵硅瘽妗嗏�滃鍏ヤ汉鑴糕�濇寜閽�
+ @Override
+ public void onConfirm(String tipType) {
+ if (mTipDialog != null) {
+ mTipDialog.dismiss();
+ }
+ if (mSelectCount != 0) {
+ //瀵煎叆浜鸿劯
+ selectBeans.clear();
+ for(FaceUserBean bean:mUserInfoList){
+ if(bean.isChecked()) {
+ selectBeans.add(bean);
+ }
+ }
+ loadListener.onStart(mSelectCount);
+ finishCount = 0;
+ failCount = 0;
+ failStr = new StringBuilder();
+ handler.sendEmptyMessage(0);
+ } else {
+ updateDeleteUI(false);
+ }
+ }
+
+ // 鏇存柊瀵煎叆浜鸿劯鐩稿叧鐨刄I
+ private void updateDeleteUI(boolean isShowDeleteUI) {
+ mRelativeDelete.setVisibility(View.VISIBLE);
+ mImageIconSearch.setVisibility(View.GONE);
+ mTextCancel.setVisibility(View.VISIBLE);
+ mFaceUserAdapter.notifyDataSetChanged();
+ }
+
+ private void resetDeleteData() {
+ mSelectCount = 0;
+ for (int i = 0; i < mUserInfoList.size(); i++) {
+ mUserInfoList.get(i).setChecked(false);
+ }
+ mTextDelete.setText(getString(R.string.addface_drrl));
+ }
+
+ /**
+ * 鐐瑰嚮闈炵紪杈戝尯鍩熸敹璧烽敭鐩�
+ * 鑾峰彇鐐瑰嚮浜嬩欢
+ */
+ @CallSuper
+ @Override
+ public boolean dispatchTouchEvent(MotionEvent ev) {
+ if (ev.getAction() == MotionEvent.ACTION_DOWN) {
+ View view = getCurrentFocus();
+ if (KeyboardsUtils.isShouldHideKeyBord(view, ev)) {
+ KeyboardsUtils.hintKeyBoards(view);
+ }
+ }
+ return super.dispatchTouchEvent(ev);
+ }
+}
\ No newline at end of file
--
Gitblit v1.9.3