feat(generallibrary): 新增写卡成功页面并优化开卡流程
- 新增 CardWriteSuccessActivity 用于展示写卡成功页面
- 在 NewCard2Activity 中移除开卡成功的 Toast 提示,改为跳转到写卡成功页面
- 修改 NfcWreatActivity 中的写卡成功逻辑,跳转到新的写卡成功页面
- 添加相关资源文件,包括 bg_button_primary.xml 和 icon_success.xml
 
	
	
	
	
	
	
	
	
	
	
	
	
	
 |  |  | 
 |  |  |         <!-- 新增补卡Activity --> | 
 |  |  |         <activity android:name=".activity.CardReplaceActivity" /> | 
 |  |  |  | 
 |  |  |         <!-- 写卡成功页面 --> | 
 |  |  |         <activity android:name=".activity.CardWriteSuccessActivity" /> | 
 |  |  |  | 
 |  |  |         <meta-data | 
 |  |  |             android:name="BUGLY_APP_VERSION" | 
 
| New file | 
 |  |  | 
 |  |  | package com.dayu.general.activity | 
 |  |  |  | 
 |  |  | import android.content.Intent | 
 |  |  | import android.os.Bundle | 
 |  |  | import com.dayu.general.databinding.ActivityCardWriteSuccessBinding | 
 |  |  |  | 
 |  |  | /** | 
 |  |  |  * @author: zuo | 
 |  |  |  * @date: 2024/12/19 | 
 |  |  |  * @description: 写卡成功页面 | 
 |  |  |  */ | 
 |  |  | class CardWriteSuccessActivity : BaseActivity() { | 
 |  |  |      | 
 |  |  |     private lateinit var binding: ActivityCardWriteSuccessBinding | 
 |  |  |      | 
 |  |  |     override fun onCreate(savedInstanceState: Bundle?) { | 
 |  |  |         super.onCreate(savedInstanceState) | 
 |  |  |         binding = ActivityCardWriteSuccessBinding.inflate(layoutInflater) | 
 |  |  |         setContentView(binding.root) | 
 |  |  |          | 
 |  |  |         initView() | 
 |  |  |     } | 
 |  |  |      | 
 |  |  |     private fun initView() { | 
 |  |  |         // 设置点击确定按钮后关闭页面 | 
 |  |  |         binding.btnConfirm.setOnClickListener { | 
 |  |  |             finish() | 
 |  |  |         } | 
 |  |  |          | 
 |  |  |         // 设置标题栏返回按钮 | 
 |  |  |         binding.titleBar.setOnClickListener { | 
 |  |  |             finish() | 
 |  |  |         } | 
 |  |  |     } | 
 |  |  |      | 
 |  |  |  | 
 |  |  | }  | 
 
 |  |  | 
 |  |  |                             try { | 
 |  |  |                                 BaseDaoSingleton.getInstance(this@NewCard2Activity) | 
 |  |  |                                     .cardRegistrationDao().insert(cardRegistration) | 
 |  |  |  | 
 |  |  |                                 Toast.makeText( | 
 |  |  |                                     this@NewCard2Activity, | 
 |  |  |                                     "开卡成功", | 
 |  |  |                                     Toast.LENGTH_SHORT | 
 |  |  |                                 ).show() | 
 |  |  |                                 setResult(RESULT_OK) | 
 |  |  |                                 Intent(this@NewCard2Activity, NfcWreatActivity::class.java).apply { | 
 |  |  |                                     putExtra("cardType", USER_CARD_TYPE_1) | 
 |  |  |                                     putExtra("orderId", orderId) | 
 |  |  |                                     putExtra("orderNumber", orderId) | 
 |  |  |                                     putExtra("cardAddr", cardPhysicalId) | 
 |  |  |                                     var userCard = UserCard() | 
 |  |  |                                     userCard.areaNumber = response.content?.cardNum?.substring(0, 12).toString() | 
 |  |  | 
 |  |  |                                     userCard.rechargeDate = DateUtils.parseStringToCalendar(response.content?.time) | 
 |  |  |                                     putExtra("userCard", userCard) | 
 |  |  |                                     putExtra("operationTypeCode", CardOperationType.OpenCard.code) | 
 |  |  |                                     putExtra("orderNumber", response.content?.orderNo) | 
 |  |  |                                     putExtra("cardFee", cardFee) | 
 |  |  |                                     startActivityForResult(this, REQUEST_CODE_NFC_WRITE) | 
 |  |  |                                 } | 
 
 |  |  | 
 |  |  | class NfcWreatActivity : BaseNfcActivity() { | 
 |  |  |     var binding: ActivityNfcWriteGeBinding? = null | 
 |  |  |     var cardType = "" | 
 |  |  |     var orderId = "" | 
 |  |  |     var cardAddr = "" | 
 |  |  |     var cardFee = 0 | 
 |  |  |  | 
 |  |  | 
 |  |  |      */ | 
 |  |  |     private fun getInitData() { | 
 |  |  |         cardType = intent?.getStringExtra("cardType") ?: "" | 
 |  |  |         orderId = intent?.getStringExtra("orderId") ?: "" | 
 |  |  |         cardAddr = intent?.getStringExtra("cardAddr") ?: "" | 
 |  |  |         operationTypeCode = intent?.getIntExtra("operationTypeCode", -1) ?: -1 | 
 |  |  |         orderNumber = intent?.getStringExtra("orderNumber") ?: "" | 
 |  |  |         operationType = CardOperationType.fromCode(operationTypeCode) | 
 |  |  |         if (intent?.hasExtra("cardFee") == true) { | 
 |  |  |             cardFee = intent?.getIntExtra("cardFee", 0) ?: 0 | 
 |  |  | 
 |  |  |                     runOnUiThread { | 
 |  |  |                         setResult(RESULT_OK) | 
 |  |  |                         finish() | 
 |  |  |                         ToastUtil.show("写卡成功") | 
 |  |  |                         Intent(this@NfcWreatActivity, CardWriteSuccessActivity::class.java).apply { | 
 |  |  |                             putExtra("cardNumber", cardNumber) | 
 |  |  |                             startActivity(this) | 
 |  |  |                         } | 
 |  |  |                     } | 
 |  |  |                 } | 
 |  |  |             } catch (e: Exception) { | 
 
| New file | 
 |  |  | 
 |  |  | <?xml version="1.0" encoding="utf-8"?> | 
 |  |  | <shape xmlns:android="http://schemas.android.com/apk/res/android" | 
 |  |  |     android:shape="rectangle"> | 
 |  |  |     <solid android:color="#2196F3" /> | 
 |  |  |     <corners android:radius="8dp" /> | 
 |  |  | </shape>  | 
 
| New file | 
 |  |  | 
 |  |  | <vector xmlns:android="http://schemas.android.com/apk/res/android" | 
 |  |  |     android:width="204.7dp" | 
 |  |  |     android:height="200dp" | 
 |  |  |     android:viewportWidth="1048" | 
 |  |  |     android:viewportHeight="1024"> | 
 |  |  |   <path | 
 |  |  |       android:pathData="M188.1,163.7m97.5,0l512,0q97.5,0 97.5,97.5l0,512q0,97.5 -97.5,97.5l-512,0q-97.5,0 -97.5,-97.5l0,-512q0,-97.5 97.5,-97.5Z" | 
 |  |  |       android:fillColor="#F8D42B"/> | 
 |  |  |   <path | 
 |  |  |       android:pathData="M541.6,17.2m69,69l362,362q69,69 0,137.9l-362,362q-69,69 -137.9,0l-362,-362q-69,-69 0,-137.9l362,-362q69,-69 137.9,0Z" | 
 |  |  |       android:fillColor="#F8D42B"/> | 
 |  |  |   <path | 
 |  |  |       android:pathData="M811.9,364.2a36.6,36.6 0,0 1,0 51.7l-301.7,301.7a24.4,24.4 0,0 1,-34.5 0L303.3,545.2a36.6,36.6 0,1 1,51.7 -51.7l129.3,129.3a12.2,12.2 0,0 0,17.2 0l258.6,-258.6a36.6,36.6 0,0 1,51.7 0z" | 
 |  |  |       android:fillColor="#FFFFFF"/> | 
 |  |  |   <path | 
 |  |  |       android:pathData="M787.3,90.4L755.8,73.1l31.5,-17.2L804.6,24.4l17.2,31.5L853.3,73.1l-31.5,17.2L804.6,121.9zM942.2,215.9L926.5,207.2l15.8,-8.6L950.9,182.9l8.6,15.8L975.2,207.2l-15.8,8.6L950.9,231.6zM48,732.2L24.4,719.2l23.6,-12.9L61,682.7l12.9,23.6L97.5,719.2l-23.6,12.9L61,755.8z" | 
 |  |  |       android:fillColor="#F8D42B"/> | 
 |  |  | </vector> |