| ¶Ô±ÈÐÂÎļþ |
| | |
| | | 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)); |
| | | } |
| | | } |