package com.doumee.keyCabinet.ui.face; import androidx.annotation.Nullable; import android.content.ClipboardManager; import android.content.Context; import android.os.Bundle; import android.os.Environment; import android.text.TextUtils; import android.view.View; import com.baidu.idl.main.facesdk.FaceAuth; import com.baidu.idl.main.facesdk.callback.Callback; import com.doumee.keyCabinet.MApplication; import com.doumee.keyCabinet.R; import com.doumee.keyCabinet.base.MyBaseActivity; import com.doumee.keyCabinet.databinding.OfflineActivationActivityBinding; import com.doumee.keyCabinet.event.TimeClockEvent; import com.doumee.keyCabinet.utils.LMobileInfo; import com.doumee.keyCabinet.utils.update.FileUtil; import com.doumee.lib_coremodel.view.ToastView; import com.example.datalibrary.utils.FileUtils; import com.example.datalibrary.utils.ToastUtils; import org.greenrobot.eventbus.Subscribe; import dagger.hilt.android.AndroidEntryPoint; @AndroidEntryPoint public class OfflineActivationActivity extends MyBaseActivity implements View.OnClickListener { private FaceAuth faceAuth; private boolean isDownLoad; String filePath = Environment.getExternalStorageDirectory().getPath()+"/License.zip"; @Override public int getLayoutId() { return R.layout.offline_activation_activity; } @Override public void initView(@Nullable Bundle savedInstanceState) { isToGuild = false; normalConfig(); getDB().setModel(getVM()); } @Override public void initData(@Nullable Bundle savedInstanceState) { getDB().tvId.setText("NO:"+ LMobileInfo.getDeviceUniqueId()); // 复制按钮 faceAuth = new FaceAuth(); String a = faceAuth.getDeviceId(this); getDB().accreditDeviceTv.setText(a); // 长按点击复制 getDB().accreditDeviceTv.setOnLongClickListener(new View.OnLongClickListener() { @Override public boolean onLongClick(View view) { ClipboardManager clipboardManager = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE); clipboardManager.setText(getDB().accreditDeviceTv.getText()); ToastUtils.toast(OfflineActivationActivity.this, "deviceID 复制成功"); return false; } }); getDB().accreditOffBtn.setOnClickListener(this); getDB().btnDown.setOnClickListener(this); } @Subscribe public void TimeClockEvent(TimeClockEvent e){ if(!isFinishing()){ runOnUiThread(new Runnable() { @Override public void run() { updateDownStatus(); } }); } } private void updateDownStatus(){ if(isDownLoad){ return; } //先校验是否有下载路径 if(!TextUtils.isEmpty(MApplication.getConfigBean().getActivateFileUrl())){ if(FileUtil.FileIsExist(filePath)) { //文件存在 getDB().btnDown.setText("重新下载激活文件"); getDB().btnDown.setClickable(true); getDB().btnDown.setBackgroundResource(R.mipmap.btn_main_normal); getDB().accreditOffBtn.setClickable(true); getDB().accreditOffBtn.setBackgroundResource(R.mipmap.btn_main_normal); }else { getDB().btnDown.setText("下载激活文件"); getDB().btnDown.setClickable(true); getDB().btnDown.setBackgroundResource(R.mipmap.btn_main_normal); getDB().accreditOffBtn.setClickable(false); getDB().accreditOffBtn.setBackgroundResource(R.mipmap.btn_less_normal); } }else { //删除激活文件 FileUtils.deleteFile(filePath); getDB().btnDown.setText("待后台上传激活文件"); getDB().btnDown.setClickable(false); getDB().btnDown.setBackgroundResource(R.mipmap.btn_less_normal); getDB().accreditOffBtn.setClickable(false); getDB().accreditOffBtn.setBackgroundResource(R.mipmap.btn_less_normal); } } @Override public void onClick(View v) { switch (v.getId()) { case R.id.btn_down: //下载按钮 if(isDownLoad){ ToastView.show(MApplication.mContext,"下载中..."); return; } if(!TextUtils.isEmpty(MApplication.getConfigBean().getActivateFileUrl())){ isDownLoad = true; FileUtil.downLoadFile(filePath, MApplication.getConfigBean().getActivateFileUrl(), new FileUtil.DownLoadCallBack() { @Override public void sucess() { ToastView.show(MApplication.mContext,"下载成功"); isDownLoad = false; } @Override public void err(String e) { ToastView.show(MApplication.mContext,e); isDownLoad = false; } }); } break; // 离线激活 case R.id.accredit_offBtn: faceAuth.initLicenseOffLine(this, new Callback() { @Override public void onResponse(final int code, final String response) { if (code == 0) { runOnUiThread(new Runnable() { @Override public void run() { // 授权成功跳转功能入口页面 getDB().accreditHintTv.setText(""); finish(); } }); } else { runOnUiThread(new Runnable() { @Override public void run() { if (code == 7) { getDB().accreditHintTv.setText("激活失败,设备硬件指纹与License.zip不符"); } else if (code == 11) { getDB().accreditHintTv.setText("激活失败,License.zip文件对应的序列号不在有效期范围内"); } else if (code == -1) { getDB().accreditHintTv.setText("未检测到License.zip文件"); } else if (code == 14) { getDB().accreditHintTv.setText("激活失败,License.zip文件对应的序列号不在有效期范围内"); } else if (code == 4) { getDB().accreditHintTv.setText("激活失败,设备硬件指纹与License.zip不符"); } else { getDB().accreditHintTv.setText(code); } } }); } } }); break; } } @Override protected void onDestroy() { super.onDestroy(); } }