package com.doumee.keyCabinet.ui.face;
|
|
import androidx.annotation.Nullable;
|
|
import android.app.DownloadManager;
|
import android.content.BroadcastReceiver;
|
import android.content.ClipboardManager;
|
import android.content.Context;
|
import android.content.Intent;
|
import android.content.IntentFilter;
|
import android.net.Uri;
|
import android.os.Bundle;
|
import android.os.Environment;
|
import android.text.TextUtils;
|
import android.view.View;
|
import android.widget.Toast;
|
|
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<OfflineActivationVM, OfflineActivationActivityBinding> 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);
|
setupDownloadManager();
|
setupDownloadReceiver();
|
}
|
|
@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;
|
startDownload(MApplication.getConfigBean().getActivateFileUrl());
|
}
|
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();
|
if (downloadReceiver != null) {
|
unregisterReceiver(downloadReceiver);
|
}
|
}
|
private BroadcastReceiver downloadReceiver;
|
private DownloadManager downloadManager;
|
private long downloadId;
|
|
private void setupDownloadManager() {
|
downloadManager = (DownloadManager) getSystemService(DOWNLOAD_SERVICE);
|
}
|
|
|
private void startDownload(String url) {
|
try {
|
DownloadManager.Request request = new DownloadManager.Request(Uri.parse(url));
|
|
// 设置下载参数
|
request.setAllowedNetworkTypes(DownloadManager.Request.NETWORK_WIFI | DownloadManager.Request.NETWORK_MOBILE);
|
request.setTitle("文件下载");
|
request.setDescription("正在下载文件...");
|
request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);
|
request.setDestinationInExternalPublicDir("", "License.zip");
|
|
// 开始下载
|
downloadId = downloadManager.enqueue(request);
|
Toast.makeText(mContext, "下载已开始", Toast.LENGTH_SHORT).show();
|
|
} catch (Exception e) {
|
isDownLoad = false;
|
Toast.makeText(this, "下载失败: " + e.getMessage(), Toast.LENGTH_LONG).show();
|
}
|
}
|
|
private void setupDownloadReceiver() {
|
downloadReceiver = new BroadcastReceiver() {
|
@Override
|
public void onReceive (Context context, Intent intent){
|
long id = intent.getLongExtra(DownloadManager.EXTRA_DOWNLOAD_ID, -1);
|
if (id == downloadId) {
|
isDownLoad = false;
|
Toast.makeText(context, "文件下载完成", Toast.LENGTH_LONG).show();
|
}
|
}
|
};
|
registerReceiver(downloadReceiver,new IntentFilter(DownloadManager.ACTION_DOWNLOAD_COMPLETE));
|
}
|
}
|