From 548dce0bcff06ee7a1795defe8e7789b9d7aad94 Mon Sep 17 00:00:00 2001 From: zuoxiao <470321431@qq.com> Date: 星期五, 25 四月 2025 16:52:50 +0800 Subject: [PATCH] refactor(nfc): 重构 NFC 读写助手类并优化相关功能 --- generallibrary/src/main/java/com/dayu/general/activity/MainActivity.kt | 43 +++++++++++++++++++++++++++++++++++++------ 1 files changed, 37 insertions(+), 6 deletions(-) diff --git a/generallibrary/src/main/java/com/dayu/general/activity/MainActivity.kt b/generallibrary/src/main/java/com/dayu/general/activity/MainActivity.kt index e589145..87af8d5 100644 --- a/generallibrary/src/main/java/com/dayu/general/activity/MainActivity.kt +++ b/generallibrary/src/main/java/com/dayu/general/activity/MainActivity.kt @@ -1,7 +1,10 @@ package com.dayu.general.activity +import android.content.Intent import android.os.Bundle +import android.view.KeyEvent import android.view.LayoutInflater +import android.widget.Toast import androidx.core.content.ContextCompat import androidx.fragment.app.Fragment import com.dayu.baselibrary.net.subscribers.SubscriberListener @@ -9,16 +12,17 @@ import com.dayu.general.BaseApplication import com.dayu.general.R import com.dayu.general.adapter.TabAdapter -import com.dayu.general.bean.net.LoginResult import com.dayu.general.bean.net.UserInfoResult import com.dayu.general.databinding.ActivityMainBinding import com.dayu.general.net.ApiManager import com.dayu.general.net.BaseResponse -class MainActivity : BaseActivity() { +class MainActivity : BaseNfcActivity() { var binding: ActivityMainBinding? = null private val fragments: ArrayList<Fragment> = ArrayList() + var mExitTime: Long = 0 + override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) binding = ActivityMainBinding.inflate(LayoutInflater.from(this)) @@ -26,7 +30,19 @@ setupFragments() initView() initTab() - getUserInfo(); + getUserInfo() + } + + override fun onNfcBack(intent: Intent) { + intent.let { nfcIntent -> + // 鑾峰彇褰撳墠鏄剧ず鐨凢ragment + val currentFragment = fragments[binding?.viewPager?.currentItem ?: 0] + + // 濡傛灉褰撳墠鏄剧ず鐨勬槸鍏呭�糉ragment锛屽垯灏哊FC淇℃伅浼犻�掔粰瀹冨鐞� + if (currentFragment is RechargeFragment) { + currentFragment.handleNfcIntent(nfcIntent) + } + } } @@ -59,9 +75,9 @@ private fun initView() { - binding!!.BSCardLL.setOnClickListener { v -> changeBottomState(Tab.BSC) } - binding!!.rechargeLL.setOnClickListener { v -> changeBottomState(Tab.RECHARGE) } - binding!!.myLL.setOnClickListener { v -> changeBottomState(Tab.MY) } + binding!!.BSCardLL.setOnClickListener { changeBottomState(Tab.BSC) } + binding!!.myLL.setOnClickListener { changeBottomState(Tab.MY) } + binding!!.rechargeLL.setOnClickListener { changeBottomState(Tab.RECHARGE) } } @@ -149,4 +165,19 @@ } } } + + //鐐瑰嚮涓ゆ閫�鍑虹▼搴� 鏈夋椂闂撮棿闅� 闂撮殧鍐呯偣鍑诲垯閫�鍑虹▼搴� 鍚﹀垯 鍒欐彁绀� + override fun onKeyDown(keyCode: Int, event: KeyEvent?): Boolean { + if (keyCode == KeyEvent.KEYCODE_BACK) { + if ((System.currentTimeMillis() - mExitTime) > 2000) { + Toast.makeText(this@MainActivity, "鍐嶆寜涓�娆¢��鍑虹▼搴�", Toast.LENGTH_SHORT) + .show() + mExitTime = System.currentTimeMillis() + } else { + this@MainActivity.finish() + } + return true + } + return super.onKeyDown(keyCode, event) + } } \ No newline at end of file -- Gitblit v1.8.0