From 1330e783aa3d187360324cd7d7ed6eb48642cfff Mon Sep 17 00:00:00 2001 From: zuoxiao <470321431@qq.com> Date: 星期二, 03 六月 2025 14:03:03 +0800 Subject: [PATCH] feat(generallibrary): 优化开卡流程和界面 --- pickerviewlibrary/src/main/java/com/wang/avi/indicators/BallPulseSyncIndicator.java | 2 pickerviewlibrary/src/main/java/com/wang/avi/indicators/BallClipRotateMultipleIndicator.java | 2 generallibrary/src/main/java/com/dayu/general/bean/net/SearchUserResult.kt | 5 generallibrary/src/main/java/com/dayu/general/bean/net/SearchCardResult.kt | 3 pickerviewlibrary/src/main/java/com/wang/avi/indicators/BallZigZagDeflectIndicator.java | 3 generallibrary/src/main/java/com/dayu/general/activity/NewCard2Activity.kt | 178 +++++- pickerviewlibrary/src/main/java/com/wang/avi/indicators/BallScaleRippleIndicator.java | 3 generallibrary/src/main/java/com/dayu/general/activity/SearchUserListActivity.kt | 5 generallibrary/build.gradle | 1 pickerviewlibrary/src/main/java/com/wang/avi/indicators/BallSpinFadeLoaderIndicator.java | 2 pickerviewlibrary/src/main/java/com/wang/avi/indicators/BallGridPulseIndicator.java | 2 pickerviewlibrary/src/main/java/com/wang/avi/indicators/LineScaleIndicator.java | 2 pickerviewlibrary/src/main/java/com/wang/avi/indicators/PacmanIndicator.java | 2 generallibrary/src/main/java/com/dayu/general/tool/NfcReadHelper.kt | 221 ++++++++ pickerviewlibrary/src/main/java/com/wang/avi/indicators/LineScalePartyIndicator.java | 2 generallibrary/src/main/res/layout/activity_new_card_ge.xml | 461 +++++++++++------ generallibrary/src/main/java/com/dayu/general/tool/NfcWreatHelper.kt | 149 +++++ pickerviewlibrary/src/main/java/com/wang/avi/indicators/BallPulseIndicator.java | 2 pickerviewlibrary/src/main/java/com/wang/avi/indicators/BallScaleIndicator.java | 2 pickerviewlibrary/src/main/java/com/wang/avi/indicators/BallTrianglePathIndicator.java | 2 pickerviewlibrary/src/main/java/com/wang/avi/indicators/BallBeatIndicator.java | 2 /dev/null | 414 --------------- pickerviewlibrary/src/main/java/com/wang/avi/indicators/BallGridBeatIndicator.java | 2 pickerviewlibrary/src/main/java/com/wang/avi/indicators/CubeTransitionIndicator.java | 2 pickerviewlibrary/src/main/java/com/wang/avi/indicators/BallClipRotatePulseIndicator.java | 2 pickerviewlibrary/src/main/java/com/wang/avi/indicators/BallZigZagIndicator.java | 2 generallibrary/src/main/cpp/general-native-lib.cpp | 38 pickerviewlibrary/src/main/java/com/wang/avi/indicators/BallScaleRippleMultipleIndicator.java | 3 pickerviewlibrary/src/main/java/com/wang/avi/indicators/BallScaleMultipleIndicator.java | 2 pickerviewlibrary/src/main/java/com/wang/avi/indicators/BallClipRotateIndicator.java | 2 30 files changed, 845 insertions(+), 673 deletions(-) diff --git a/generallibrary/build.gradle b/generallibrary/build.gradle index 23302f1..b6e1600 100644 --- a/generallibrary/build.gradle +++ b/generallibrary/build.gradle @@ -77,6 +77,7 @@ exclude group: 'com.google.code.gson'; } implementation 'com.squareup.retrofit2:adapter-rxjava3:2.9.0' + implementation 'io.reactivex.rxjava3:rxjava:3.1.5' implementation 'io.reactivex.rxjava3:rxandroid:3.0.0' implementation 'com.squareup.okhttp3:logging-interceptor:4.11.0' compileOnly 'com.google.code.gson:gson:2.10.1' diff --git a/generallibrary/src/main/cpp/general-native-lib.cpp b/generallibrary/src/main/cpp/general-native-lib.cpp index e961a69..b5254cc 100644 --- a/generallibrary/src/main/cpp/general-native-lib.cpp +++ b/generallibrary/src/main/cpp/general-native-lib.cpp @@ -96,19 +96,19 @@ return nullptr; } - __android_log_print(ANDROID_LOG_INFO, "GeBaseHelper", "Decrypting sector %d", sector); - __android_log_print(ANDROID_LOG_INFO, "GeBaseHelper", "Encrypted data: %02X %02X %02X %02X %02X %02X", - encrypted_data[0], encrypted_data[1], encrypted_data[2], - encrypted_data[3], encrypted_data[4], encrypted_data[5]); - __android_log_print(ANDROID_LOG_INFO, "GeBaseHelper", "Using XOR key: %02X %02X %02X %02X %02X %02X", - XOR_KEYS[sector][0], XOR_KEYS[sector][1], XOR_KEYS[sector][2], - XOR_KEYS[sector][3], XOR_KEYS[sector][4], XOR_KEYS[sector][5]); +// __android_log_print(ANDROID_LOG_INFO, "GeBaseHelper", "Decrypting sector %d", sector); +// __android_log_print(ANDROID_LOG_INFO, "GeBaseHelper", "Encrypted data: %02X %02X %02X %02X %02X %02X", +// encrypted_data[0], encrypted_data[1], encrypted_data[2], +// encrypted_data[3], encrypted_data[4], encrypted_data[5]); +// __android_log_print(ANDROID_LOG_INFO, "GeBaseHelper", "Using XOR key: %02X %02X %02X %02X %02X %02X", +// XOR_KEYS[sector][0], XOR_KEYS[sector][1], XOR_KEYS[sector][2], +// XOR_KEYS[sector][3], XOR_KEYS[sector][4], XOR_KEYS[sector][5]); unsigned char decrypted[6]; for (int i = 0; i < 6; i++) { decrypted[i] = encrypted_data[i] ^ XOR_KEYS[sector][i]; - __android_log_print(ANDROID_LOG_INFO, "GeBaseHelper", "Byte %d: %02X ^ %02X = %02X", - i, encrypted_data[i], XOR_KEYS[sector][i], decrypted[i]); +// __android_log_print(ANDROID_LOG_INFO, "GeBaseHelper", "Byte %d: %02X ^ %02X = %02X", +// i, encrypted_data[i], XOR_KEYS[sector][i], decrypted[i]); } std::string result; @@ -119,7 +119,7 @@ result += hex; } - __android_log_print(ANDROID_LOG_INFO, "GeBaseHelper", "Decrypted result: %s", result.c_str()); +// __android_log_print(ANDROID_LOG_INFO, "GeBaseHelper", "Decrypted result: %s", result.c_str()); return env->NewStringUTF(result.c_str()); } @@ -187,7 +187,7 @@ jobject packageInfoObject = env->CallObjectMethod(packageManagerObject, getPackageInfoId, packNameString, 64); if (!packageInfoObject) { - __android_log_print(ANDROID_LOG_ERROR, "M1Card", "Failed to get PackageInfo"); +// __android_log_print(ANDROID_LOG_ERROR, "M1Card", "Failed to get PackageInfo"); return env->NewStringUTF(""); } @@ -195,7 +195,7 @@ jfieldID signaturefieldID = env->GetFieldID(packageInfoClass, "signatures", "[Landroid/content/pm/Signature;"); if (!signaturefieldID) { - __android_log_print(ANDROID_LOG_ERROR, "M1Card", "Failed to get signature field ID"); +// __android_log_print(ANDROID_LOG_ERROR, "M1Card", "Failed to get signature field ID"); return env->NewStringUTF(""); } @@ -203,28 +203,28 @@ jobjectArray signatureArray = (jobjectArray) env->GetObjectField(packageInfoObject, signaturefieldID); if (!signatureArray || env->GetArrayLength(signatureArray) == 0) { - __android_log_print(ANDROID_LOG_ERROR, "M1Card", "No signatures found"); +// __android_log_print(ANDROID_LOG_ERROR, "M1Card", "No signatures found"); return env->NewStringUTF(""); } // 鑾峰彇绗竴涓鍚嶅璞� jobject signatureObject = env->GetObjectArrayElement(signatureArray, 0); if (!signatureObject) { - __android_log_print(ANDROID_LOG_ERROR, "M1Card", "Failed to get signature object"); +// __android_log_print(ANDROID_LOG_ERROR, "M1Card", "Failed to get signature object"); return env->NewStringUTF(""); } // 鑾峰彇绛惧悕瀛楃涓� jstring signatureString = (jstring) env->CallObjectMethod(signatureObject, signToStringId); if (!signatureString) { - __android_log_print(ANDROID_LOG_ERROR, "M1Card", "Failed to get signature string"); +// __android_log_print(ANDROID_LOG_ERROR, "M1Card", "Failed to get signature string"); return env->NewStringUTF(""); } // 鑾峰彇绛惧悕瀛楃涓茬殑UTF-8瀛楃 const char *signStrng = env->GetStringUTFChars(signatureString, 0); if (!signStrng) { - __android_log_print(ANDROID_LOG_ERROR, "M1Card", "Failed to get signature UTF chars"); +// __android_log_print(ANDROID_LOG_ERROR, "M1Card", "Failed to get signature UTF chars"); return env->NewStringUTF(""); } @@ -240,11 +240,11 @@ // 瑙e瘑骞惰浆鎹㈡瘡涓墖鍖哄瘑閽� for (size_t i = 0; i < numKeys; i++) { - __android_log_print(ANDROID_LOG_DEBUG, "M1Card", "澶勭悊鎵囧尯 %zu 鐨勫瘑閽�", i); +// __android_log_print(ANDROID_LOG_DEBUG, "M1Card", "澶勭悊鎵囧尯 %zu 鐨勫瘑閽�", i); // 纭繚涓嶄細瓒婄晫璁块棶 if (i * 12 + 6 > sizeof(ENCRYPTED_SECTOR_KEYS)) { - __android_log_print(ANDROID_LOG_ERROR, "M1Card", "Index out of bounds"); +// __android_log_print(ANDROID_LOG_ERROR, "M1Card", "Index out of bounds"); break; } @@ -252,7 +252,7 @@ jstring decrypted_str = decrypt_key(env, ENCRYPTED_SECTOR_KEYS + (i * 12), 6); if (!decrypted_str) { - __android_log_print(ANDROID_LOG_ERROR, "M1Card", "Failed to decrypt key for sector %zu", i); +// __android_log_print(ANDROID_LOG_ERROR, "M1Card", "Failed to decrypt key for sector %zu", i); continue; } diff --git a/generallibrary/src/main/java/com/dayu/general/activity/NewCard2Activity.kt b/generallibrary/src/main/java/com/dayu/general/activity/NewCard2Activity.kt index 2ebe743..46c5a42 100644 --- a/generallibrary/src/main/java/com/dayu/general/activity/NewCard2Activity.kt +++ b/generallibrary/src/main/java/com/dayu/general/activity/NewCard2Activity.kt @@ -4,25 +4,24 @@ import android.os.Bundle import android.text.Editable import android.text.TextWatcher +import android.util.TypedValue import android.view.View import android.widget.RadioButton import android.widget.Toast import androidx.lifecycle.lifecycleScope import com.dayu.baselibrary.net.subscribers.SubscriberListener -import com.dayu.baselibrary.tools.nfc.NFCCallBack import com.dayu.baselibrary.view.TitleBar.ClickType_LEFT_IMAGE import com.dayu.general.BaseApplication import com.dayu.general.R import com.dayu.general.bean.db.CardRegistrationBean import com.dayu.general.dao.BaseDaoSingleton -import com.dayu.general.databinding.ActivityNewCard1GeBinding +import com.dayu.general.databinding.ActivityNewCardGeBinding import com.dayu.general.net.ApiManager import com.dayu.general.net.BaseResponse import com.dayu.general.tool.NfcReadHelper import com.dayu.general.tool.NfcWreatHelper import com.tencent.bugly.crashreport.CrashReport import kotlinx.coroutines.launch -import android.util.TypedValue /** * Description: 鐢ㄦ埛寮�鍗$晫闈�(鍚屾淇敼鐧藉崱瀵嗙爜) @@ -31,7 +30,7 @@ */ class NewCard2Activity : BaseNfcActivity() { - private lateinit var binding: ActivityNewCard1GeBinding + private lateinit var binding: ActivityNewCardGeBinding // 鏀粯鏂瑰紡 private var paymentMethod: String = "鐜伴噾" @@ -47,6 +46,9 @@ // 鐢ㄦ埛ID private var userId: String = "" + + // 瀹㈡埛ID + private var clientId: String = "" companion object { private const val TAG = "NewCard2Activity" @@ -68,18 +70,40 @@ val pageSize: Any?, val pageTotal: Any? ) + + // 鐢ㄦ埛淇℃伅鏁版嵁绫� + data class ClientInfo( + val clientId: String, + val clientNum: String, + val name: String, + val districtNum: String, + val phone: String, + val idCard: String, + val villageName: String, + val address: String, + val cardCount: Int, + val operateDt: String + ) override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - binding = ActivityNewCard1GeBinding.inflate(layoutInflater) + binding = ActivityNewCardGeBinding.inflate(layoutInflater) setContentView(binding.root) + // 鑾峰彇浼犻�掔殑clientId鍙傛暟 + clientId = intent.getStringExtra("clientId") ?: "" + initView() + + // 濡傛灉鏈塩lientId锛岃幏鍙栧鎴蜂俊鎭� + if (clientId.isNotEmpty()) { + getClientInfo(clientId) + } + // 鑾峰彇鏀粯鏂瑰紡 getPaymentMethods() initListener() } - private fun initView() { // 鍒濆鍖栨爣棰樻爮杩斿洖鎸夐挳 @@ -90,21 +114,66 @@ // 鍒濆鍖朜FC璇诲崱瀹瑰櫒锛屽垵濮嬮殣钘� binding.nfcContainer.visibility = View.VISIBLE - // 浠嶪ntent涓幏鍙栫敤鎴蜂俊鎭紙濡傛灉鏈夛級 - val userName = intent.getStringExtra("userName") ?: "" - val rawIdCard = intent.getStringExtra("idCard") - val idCard = if (rawIdCard.isNullOrBlank()) "鏃�" else rawIdCard - val farmerCode = intent.getStringExtra("farmerCode") ?: "" - userId = intent.getStringExtra("userId") ?: "" - - // 璁剧疆鐢ㄦ埛淇℃伅 - binding.newCardUserName.text = userName - binding.newCardIdCard.text = idCard - binding.newCardFarmerCode.text = farmerCode - // 璁剧疆閲戦杈撳叆闄愬埗涓轰袱浣嶅皬鏁� binding.newCardRechargeAmount.addTextChangedListener(createDecimalTextWatcher()) binding.newCardCardFee.addTextChangedListener(createDecimalTextWatcher()) + } + + /** + * 鑾峰彇瀹㈡埛璇︾粏淇℃伅 + */ + private fun getClientInfo(clientId: String) { + ApiManager.getInstance().requestGetLoading( + this, + "terminal/client/getTermOne/$clientId", + ClientInfo::class.java, + null, + object : SubscriberListener<BaseResponse<ClientInfo>>() { + override fun onNext(response: BaseResponse<ClientInfo>) { + if (response.success) { + val clientInfo = response.content + if (clientInfo != null) { + // 鏄剧ず瀹㈡埛淇℃伅鍒扮晫闈� + displayClientInfo(clientInfo) + } else { + Toast.makeText( + this@NewCard2Activity, + "鑾峰彇瀹㈡埛淇℃伅澶辫触: 杩斿洖鏁版嵁涓虹┖", + Toast.LENGTH_SHORT + ).show() + } + } else { + Toast.makeText( + this@NewCard2Activity, + "鑾峰彇瀹㈡埛淇℃伅澶辫触: ${response.msg}", + Toast.LENGTH_SHORT + ).show() + } + } + + override fun onError(e: Throwable?) { + super.onError(e) + Toast.makeText( + this@NewCard2Activity, + "鑾峰彇瀹㈡埛淇℃伅澶辫触: ${e?.message ?: "缃戠粶寮傚父"}", + Toast.LENGTH_SHORT + ).show() + } + } + ) + } + + /** + * 鏄剧ず瀹㈡埛淇℃伅鍒扮晫闈� + */ + private fun displayClientInfo(clientInfo: ClientInfo) { + // 淇濆瓨鐢ㄦ埛ID渚涘悗缁娇鐢� + userId = clientInfo.clientId + + // 鏄剧ず鐢ㄦ埛鍩烘湰淇℃伅 + binding.newCardUserName.text = clientInfo.name + binding.newCardIdCard.text = if (clientInfo.idCard.isBlank()) "鏃�" else clientInfo.idCard + binding.newCardFarmerCode.text = clientInfo.clientNum } /** @@ -244,6 +313,9 @@ } } + /** + * 娉ㄥ唽鏂板崱 + */ private fun registerNewCard() { // 鑾峰彇鍏呭�奸噾棰� val rechargeAmountStr = binding.newCardRechargeAmount.text.toString() @@ -348,45 +420,61 @@ } override fun onNfcBack(intent: Intent) { - var cardNumber = NfcReadHelper.getInstance(intent, this).getCardNumberNoClose() - if (!cardNumber.isEmpty()) { + val cardNumber = NfcReadHelper.getInstance(intent, this).getCardNumberNoClose() + if (cardNumber.isNotEmpty()) { try { // 鍒涘缓瀵嗛挜鍒楄〃鐨勫壇鏈紝閬垮厤ConcurrentModificationException val keyList = ArrayList(NfcReadHelper.getInstance(intent, this).getKeyList()) - NfcWreatHelper.getInstance(intent, this).changePS(keyList, false, true, object : - NFCCallBack { - - override fun isSusses(flag: Boolean, msg: String?) { - if (flag) { - // 淇濆瓨鍗$墿鐞咺D - cardPhysicalId = cardNumber - // 鏇存柊UI - binding.newCardArerNumber.text = cardNumber - // 闅愯棌NFC璇诲崱鐣岄潰 - binding.nfcContainer.visibility = View.GONE - binding.centerScroll.visibility = View.VISIBLE - binding.newCardRegistBtn.visibility = View.VISIBLE - } else { - // 瀵嗙爜淇敼澶辫触锛屽鐞嗛敊璇儏鍐� - Toast.makeText( - this@NewCard2Activity, - "鍗$墖鍒濆鍖栧け璐ワ細" + msg, - Toast.LENGTH_LONG - ) - .show() - } + // 浣跨敤缇庡寲鐨勫姞杞藉姩鐢绘潵鏄剧ずNFC鎿嶄綔鐨勫姞杞界姸鎬� + val nfcHelper = NfcWreatHelper.getInstance(intent, this) + nfcHelper.setLoadingView(binding.loadingContainer, binding.nfcProgressWheel) + + // 寮傛淇敼瀵嗙爜 + nfcHelper.changePSAsync(keyList, false, true) { success: Boolean, msg: String? -> + if (success) { + // 淇濆瓨鍗$墿鐞咺D + cardPhysicalId = cardNumber + // 鏇存柊UI + binding.newCardArerNumber.text = cardNumber + // 闅愯棌NFC璇诲崱鐣岄潰 + binding.nfcContainer.visibility = View.GONE + binding.centerScroll.visibility = View.VISIBLE + binding.newCardRegistBtn.visibility = View.VISIBLE + } else { + // 瀵嗙爜淇敼澶辫触锛屽鐞嗛敊璇儏鍐� + Toast.makeText( + this@NewCard2Activity, + "鍗$墖鍒濆鍖栧け璐ワ細$msg", + Toast.LENGTH_LONG + ).show() } - }) - - + } } catch (e: Exception) { // 澶勭悊寮傚父鎯呭喌 CrashReport.postCatchedException(e) e.printStackTrace() } + } else { + Toast.makeText( + this@NewCard2Activity, + "鑾峰彇鍗″彿澶辫触", + Toast.LENGTH_SHORT + ).show() } } + override fun onDestroy() { + super.onDestroy() + // 娓呯悊NFC宸ュ叿绫讳腑鐨凴xJava璁㈤槄锛岄槻姝㈠唴瀛樻硠婕� + try { + NfcReadHelper.getInstance(intent, this).clearDisposables() + NfcWreatHelper.getInstance(intent, this).clearDisposables() + // 纭繚鍋滄鍔ㄧ敾锛岄伩鍏嶅唴瀛樻硠婕� + binding.nfcProgressWheel.stopSpinning() + } catch (e: Exception) { + e.printStackTrace() + } + } } \ No newline at end of file diff --git a/generallibrary/src/main/java/com/dayu/general/activity/SearchUserListActivity.kt b/generallibrary/src/main/java/com/dayu/general/activity/SearchUserListActivity.kt index b66c4df..2b39bc4 100644 --- a/generallibrary/src/main/java/com/dayu/general/activity/SearchUserListActivity.kt +++ b/generallibrary/src/main/java/com/dayu/general/activity/SearchUserListActivity.kt @@ -86,10 +86,7 @@ // 澶勭悊鐢ㄦ埛鐐瑰嚮浜嬩欢 // 浼犻�掔敤鎴蜂俊鎭埌寮�鍗$晫闈� val intent = Intent(this, NewCard2Activity::class.java) - intent.putExtra("userName", user.name) - intent.putExtra("idCard", user.idCard) - intent.putExtra("farmerCode", user.clientNum) - intent.putExtra("userId", user.id) + intent.putExtra("clientId", user.clientId) startActivity(intent) } diff --git a/generallibrary/src/main/java/com/dayu/general/bean/net/SearchCardResult.kt b/generallibrary/src/main/java/com/dayu/general/bean/net/SearchCardResult.kt index 8c3bdde..314b237 100644 --- a/generallibrary/src/main/java/com/dayu/general/bean/net/SearchCardResult.kt +++ b/generallibrary/src/main/java/com/dayu/general/bean/net/SearchCardResult.kt @@ -24,6 +24,7 @@ val idCard: String? = null, // 韬唤璇佸彿 val money: String? = null, // 鍗′綑棰� val phone: String? = null, // 鐢佃瘽鍙风爜 - val stateName: String? = null // 鐘舵�佸悕绉� + val stateName: String? = null, // 鐘舵�佸悕绉� + val clientId: String? = null // 瀹㈡埛ID ) } \ No newline at end of file diff --git a/generallibrary/src/main/java/com/dayu/general/bean/net/SearchUserResult.kt b/generallibrary/src/main/java/com/dayu/general/bean/net/SearchUserResult.kt index a3ba94c..21f6186 100644 --- a/generallibrary/src/main/java/com/dayu/general/bean/net/SearchUserResult.kt +++ b/generallibrary/src/main/java/com/dayu/general/bean/net/SearchUserResult.kt @@ -17,7 +17,7 @@ /** * 鐢ㄦ埛淇℃伅 */ - data class UserInfo ( + data class UserInfo( val address: String? = null, // 鍦板潃 val cardCount: Int? = null, // 鍗℃暟閲� val clientNum: String? = null, // 瀹㈡埛缂栧彿 @@ -25,6 +25,7 @@ val idCard: String? = null, // 韬唤璇� val name: String? = null, // 濮撳悕 val operateDt: String? = null, // 鎿嶄綔鏃ユ湡 - val phone: String? = null // 鐢佃瘽 + val phone: String? = null, // 鐢佃瘽 + val clientId: String? = null // 瀹㈡埛ID ) } \ No newline at end of file diff --git a/generallibrary/src/main/java/com/dayu/general/tool/NfcReadHelper.kt b/generallibrary/src/main/java/com/dayu/general/tool/NfcReadHelper.kt index a8f81f1..84d7111 100644 --- a/generallibrary/src/main/java/com/dayu/general/tool/NfcReadHelper.kt +++ b/generallibrary/src/main/java/com/dayu/general/tool/NfcReadHelper.kt @@ -2,8 +2,16 @@ import android.app.Activity import android.content.Intent +import android.view.View +import android.widget.RelativeLayout import com.dayu.baselibrary.tools.nfc.BaseNfcReadHelper import com.dayu.baselibrary.tools.nfc.NfcReadAdapter +import com.pnikosis.materialishprogress.ProgressWheel +import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers +import io.reactivex.rxjava3.core.Observable +import io.reactivex.rxjava3.disposables.CompositeDisposable +import io.reactivex.rxjava3.disposables.Disposable +import io.reactivex.rxjava3.schedulers.Schedulers /** * NFC璇诲彇宸ュ叿绫荤殑Kotlin瀹炵幇 @@ -11,6 +19,9 @@ class NfcReadHelper private constructor(intent: Intent, activity: Activity) : GeBaseHelper(activity) { private val adapter: NfcReadAdapter = NfcReadAdapter(intent, activity) + private val compositeDisposable = CompositeDisposable() + private var loadingContainer: RelativeLayout? = null + private var progressWheel: ProgressWheel? = null companion object { private var helper: NfcReadHelper? = null @@ -27,7 +38,83 @@ } } + /** + * 璁剧疆鍔犺浇鍔ㄧ敾瑙嗗浘 + */ + fun setLoadingView(loadingContainer: RelativeLayout, progressWheel: ProgressWheel) { + this.loadingContainer = loadingContainer + this.progressWheel = progressWheel + } + /** + * 鏄剧ず鍔犺浇鍔ㄧ敾 + */ + private fun showLoading() { + loadingContainer?.let { + it.visibility = View.VISIBLE + } + progressWheel?.let { + it.spin() + } + } + + /** + * 闅愯棌鍔犺浇鍔ㄧ敾 + */ + private fun hideLoading() { + loadingContainer?.let { + it.visibility = View.GONE + } + progressWheel?.let { + it.stopSpinning() + } + } + + /** + * 鑾峰彇鍗″彿(寮傛) + */ + fun getCardNumberAsync(callback: (String) -> Unit): Disposable { + showLoading() + val disposable = Observable.fromCallable { + getCardNumber() + } + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe({ result -> + hideLoading() + callback(result) + }, { error -> + hideLoading() + error.printStackTrace() + callback("") + }) + + compositeDisposable.add(disposable) + return disposable + } + + /** + * 鑾峰彇鍗″彿(涓嶅叧闂繛鎺ワ紝寮傛) + */ + fun getCardNumberNoCloseAsync(callback: (String) -> Unit): Disposable { + showLoading() + val disposable = Observable.fromCallable { + getCardNumberNoClose() + } + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe({ result -> + hideLoading() + callback(result) + }, { error -> + hideLoading() + error.printStackTrace() + callback("") + }) + + compositeDisposable.add(disposable) + return disposable + } /** * 鑾峰彇鍗″彿 @@ -50,8 +137,28 @@ } } - - + /** + * 鑾峰彇鍗$墖绫诲瀷鍜屽崱鍙�(寮傛) + */ + fun getCardTypeAndCardNumberAsync(callback: (String) -> Unit): Disposable { + showLoading() + val disposable = Observable.fromCallable { + getCardTypeAndCardNumber() + } + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe({ result -> + hideLoading() + callback(result) + }, { error -> + hideLoading() + error.printStackTrace() + callback("") + }) + + compositeDisposable.add(disposable) + return disposable + } /** * 鑾峰彇鍗$墖绫诲瀷鍜屽崱鍙� @@ -66,6 +173,46 @@ } /** + * 璇诲彇NFC鍗$殑鍏ㄩ儴淇℃伅(寮傛) + */ + fun getAllDataAsync(callback: BaseNfcReadHelper.NFCCallMapback) { + showLoading() + val disposable = Observable.fromCallable { + try { + adapter.getAllData(object : BaseNfcReadHelper.NFCCallMapback { + override fun callBack(data: Map<String, List<ByteArray>>) { + hideLoading() + callback.callBack(data) + } + + override fun error(code: Int) { + hideLoading() + callback.error(code) + } + }) + true + } catch (e: Exception) { + e.printStackTrace() + false + } + } + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe({ success -> + if (!success) { + hideLoading() + callback.error(-1) + } + }, { error -> + hideLoading() + error.printStackTrace() + callback.error(-1) + }) + + compositeDisposable.add(disposable) + } + + /** * 璇诲彇NFC鍗$殑鍏ㄩ儴淇℃伅 */ fun getAllData(callback: BaseNfcReadHelper.NFCCallMapback) { @@ -74,6 +221,29 @@ } catch (e: Exception) { e.printStackTrace() } + } + + /** + * 鑾峰彇涓�涓墖鍖虹殑鏁版嵁(寮傛) + */ + fun getOneSectorDataAsync(callback: (List<ByteArray>?) -> Unit): Disposable { + showLoading() + val disposable = Observable.fromCallable<Any> { + getOneSectorData() as Any + } + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe({ result -> + hideLoading() + callback(result as? List<ByteArray>) + }, { error -> + hideLoading() + error.printStackTrace() + callback(null) + }) + + compositeDisposable.add(disposable) + return disposable } /** @@ -89,6 +259,46 @@ } /** + * 璇诲彇NFC鍗$殑鐗瑰畾鎵囧尯淇℃伅(寮傛) + */ + fun getDataAsync(a: Int, b: Int, callback: BaseNfcReadHelper.NFCCallByteback) { + showLoading() + val disposable = Observable.fromCallable { + try { + adapter.getData(a, b, object : BaseNfcReadHelper.NFCCallByteback { + override fun callBack(data: ByteArray) { + hideLoading() + callback.callBack(data) + } + + override fun error(code: Int) { + hideLoading() + callback.error(code) + } + }) + true + } catch (e: Exception) { + e.printStackTrace() + false + } + } + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe({ success -> + if (!success) { + hideLoading() + callback.error(-1) + } + }, { error -> + hideLoading() + error.printStackTrace() + callback.error(-1) + }) + + compositeDisposable.add(disposable) + } + + /** * 璇诲彇NFC鍗$殑鐗瑰畾鎵囧尯淇℃伅 */ fun getData(a: Int, b: Int, callback: BaseNfcReadHelper.NFCCallByteback) { @@ -99,5 +309,10 @@ } } - + /** + * 娓呴櫎鎵�鏈夎闃咃紝闃叉鍐呭瓨娉勬紡 + */ + fun clearDisposables() { + compositeDisposable.clear() + } } \ No newline at end of file diff --git a/generallibrary/src/main/java/com/dayu/general/tool/NfcWreatHelper.kt b/generallibrary/src/main/java/com/dayu/general/tool/NfcWreatHelper.kt index 0a6e18c..65fd920 100644 --- a/generallibrary/src/main/java/com/dayu/general/tool/NfcWreatHelper.kt +++ b/generallibrary/src/main/java/com/dayu/general/tool/NfcWreatHelper.kt @@ -2,14 +2,25 @@ import android.app.Activity import android.content.Intent +import android.view.View +import android.widget.RelativeLayout import com.dayu.baselibrary.tools.nfc.NFCCallBack import com.dayu.baselibrary.tools.nfc.NfcWriteAdapter import com.dayu.general.bean.card.UserCard +import com.pnikosis.materialishprogress.ProgressWheel +import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers +import io.reactivex.rxjava3.core.Observable +import io.reactivex.rxjava3.disposables.CompositeDisposable +import io.reactivex.rxjava3.disposables.Disposable +import io.reactivex.rxjava3.schedulers.Schedulers class NfcWreatHelper private constructor(intent: Intent, activity: Activity) : GeBaseHelper(activity) { private val adapter: NfcWriteAdapter = NfcWriteAdapter(intent, activity) + private val compositeDisposable = CompositeDisposable() + private var loadingContainer: RelativeLayout? = null + private var progressWheel: ProgressWheel? = null companion object { private var helper: NfcWreatHelper? = null @@ -27,6 +38,69 @@ } } + /** + * 璁剧疆鍔犺浇鍔ㄧ敾瑙嗗浘 + */ + fun setLoadingView(loadingContainer: RelativeLayout, progressWheel: ProgressWheel) { + this.loadingContainer = loadingContainer + this.progressWheel = progressWheel + } + + /** + * 鏄剧ず鍔犺浇鍔ㄧ敾 + */ + private fun showLoading() { + loadingContainer?.let { + it.visibility = View.VISIBLE + } + progressWheel?.let { + it.spin() + } + } + + /** + * 闅愯棌鍔犺浇鍔ㄧ敾 + */ + private fun hideLoading() { + loadingContainer?.let { + it.visibility = View.GONE + } + progressWheel?.let { + it.stopSpinning() + } + } + + /** + * 鍐欏崱(寮傛) + * + * @param str 涔﹀啓鍐呭锛�16涓瓧鑺� + * @param a 涔﹀啓鐨勬墖鍖� (浠�0寮�濮嬫暟) + * @param b 涔﹀啓鐨勫潡(浠�0寮�濮嬫暟) + * @param callback 鎿嶄綔缁撴灉鍥炶皟 + */ + fun writeDataAsync(str: ByteArray?, a: Int, b: Int, callback: (Boolean) -> Unit): Disposable { + showLoading() + val disposable = Observable.fromCallable { + writeData(str, a, b, object : NFCCallBack { + override fun isSusses(flag: Boolean, msg: String?) { + // 杩欎釜鍥炶皟鍦↖O绾跨▼涓紝涓嶅鐞哢I鐩稿叧鎿嶄綔 + } + }) + } + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe({ result -> + hideLoading() + callback(result) + }, { error -> + hideLoading() + error.printStackTrace() + callback(false) + }) + + compositeDisposable.add(disposable) + return disposable + } /** * 鍐欏崱 @@ -46,6 +120,32 @@ } /** + * 鍐欏崱(寮傛) + * + * @param userCard 鐢ㄦ埛鍗″唴瀹� + * @param callback 鎿嶄綔缁撴灉鍥炶皟 + */ + fun writeUserDataAsync(userCard: UserCard, callback: (Boolean) -> Unit): Disposable { + showLoading() + val disposable = Observable.fromCallable { + writeUserData(userCard) + } + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe({ result -> + hideLoading() + callback(result) + }, { error -> + hideLoading() + error.printStackTrace() + callback(false) + }) + + compositeDisposable.add(disposable) + return disposable + } + + /** * 鍐欏崱 * * @param userCard 鐢ㄦ埛鍗″唴瀹� @@ -60,14 +160,57 @@ return false } - fun changePS( ps: List<ByteArray>, isConnect: Boolean, isClose: Boolean,nfcCallBack: NFCCallBack): Boolean { + /** + * 淇敼瀵嗙爜(寮傛) + * + * @param ps 瀵嗙爜鍒楄〃 + * @param isConnect 鏄惁淇濇寔杩炴帴 + * @param isClose 鏄惁鍏抽棴 + * @param callback 缁撴灉鍥炶皟 + */ + fun changePSAsync(ps: List<ByteArray>, isConnect: Boolean, isClose: Boolean, callback: (Boolean, String?) -> Unit): Disposable { + showLoading() + val disposable = Observable.fromCallable { + var resultSuccess = false + var resultMessage: String? = null + + changePS(ps, isConnect, isClose, object : NFCCallBack { + override fun isSusses(flag: Boolean, msg: String?) { + resultSuccess = flag + resultMessage = msg + } + }) + + Pair(resultSuccess, resultMessage) + } + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe({ result -> + hideLoading() + callback(result.first, result.second) + }, { error -> + hideLoading() + error.printStackTrace() + callback(false, error.message) + }) + + compositeDisposable.add(disposable) + return disposable + } + + fun changePS(ps: List<ByteArray>, isConnect: Boolean, isClose: Boolean, nfcCallBack: NFCCallBack): Boolean { try { - return adapter.changePasword( ps, isConnect, isClose,nfcCallBack) + return adapter.changePasword(ps, isConnect, isClose, nfcCallBack) } catch (e: java.lang.Exception) { e.printStackTrace() } return false } - + /** + * 娓呴櫎鎵�鏈夎闃咃紝闃叉鍐呭瓨娉勬紡 + */ + fun clearDisposables() { + compositeDisposable.clear() + } } \ No newline at end of file diff --git a/generallibrary/src/main/res/layout/activity_new_card_1_ge.xml b/generallibrary/src/main/res/layout/activity_new_card_1_ge.xml deleted file mode 100644 index 4567eec..0000000 --- a/generallibrary/src/main/res/layout/activity_new_card_1_ge.xml +++ /dev/null @@ -1,414 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:app="http://schemas.android.com/apk/res-auto" - xmlns:tools="http://schemas.android.com/tools" - android:layout_width="match_parent" - android:layout_height="match_parent" - android:background="@color/base_list_bg"> - - <com.dayu.baselibrary.view.TitleBar - android:id="@+id/titleBar" - android:layout_width="match_parent" - android:layout_height="@dimen/dimen_title_height" - android:background="@color/title_bar_bg" - android:elevation="4dp" - app:centerText="鐢ㄦ埛寮�鍗�" - app:leftImage="@mipmap/icon_back" - tools:ignore="MissingConstraints" /> - - <androidx.cardview.widget.CardView - android:id="@+id/nfcContainer" - android:layout_width="match_parent" - android:layout_height="0dp" - android:layout_marginStart="16dp" - android:layout_marginTop="24dp" - android:layout_marginEnd="16dp" - android:layout_marginBottom="24dp" - android:visibility="visible" - app:cardBackgroundColor="@android:color/white" - app:cardCornerRadius="12dp" - app:cardElevation="4dp" - app:layout_constraintBottom_toBottomOf="parent" - app:layout_constraintEnd_toEndOf="parent" - app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toBottomOf="@id/titleBar"> - - <LinearLayout - android:layout_width="match_parent" - android:layout_height="match_parent" - android:gravity="center" - android:orientation="vertical" - android:padding="16dp"> - - <TextView - android:id="@+id/textView" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:gravity="center" - android:text="璇峰皢鏂板崱璐村湪璁惧涓婅繘琛岃鍗�" - android:textColor="#333333" - android:textSize="18sp" - android:textStyle="bold" /> - - <TextView - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:gravity="center" - android:text="灏嗚繘琛屽垵濮嬪寲鍗$墖\n鑰楁椂杈冮暱璇蜂笉瑕佺Щ鍔ㄥ崱鐗�" - android:textColor="@color/base_blue_bg" - android:textSize="18sp" - android:layout_marginTop="20dp" - android:textStyle="bold" /> - - <ImageView - android:id="@+id/nfcImageView" - android:layout_width="200dp" - android:layout_height="200dp" - android:layout_marginTop="24dp" - android:scaleType="fitCenter" - android:src="@mipmap/nfc_write" /> - - <TextView - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:layout_marginTop="16dp" - android:gravity="center" - android:text="璇蜂繚鎸佹墜鎸佹満鍜屽崱鐗囦笉瑕佺Щ鍔�" - android:textColor="#666666" - android:textSize="14sp" /> - </LinearLayout> - </androidx.cardview.widget.CardView> - - <ScrollView - android:id="@+id/center_scroll" - android:layout_width="match_parent" - android:layout_height="0dp" - android:fillViewport="true" - android:scrollbars="none" - android:visibility="gone" - app:layout_constraintBottom_toBottomOf="parent" - app:layout_constraintTop_toBottomOf="@+id/titleBar"> - - <LinearLayout - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:orientation="vertical" - android:paddingBottom="16dp" - android:paddingLeft="16dp" - android:paddingRight="16dp" - android:paddingTop="10dp"> - - <androidx.cardview.widget.CardView - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:layout_marginBottom="10dp" - app:cardCornerRadius="8dp" - app:cardElevation="2dp"> - - <LinearLayout - android:id="@+id/center_data" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:orientation="vertical" - android:padding="16dp"> - - <TextView - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_marginBottom="10dp" - android:text="鍩烘湰淇℃伅" - android:textColor="#333333" - android:textSize="18sp" - android:textStyle="bold" /> - - <LinearLayout - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:layout_marginBottom="6dp" - android:gravity="center_vertical" - android:orientation="horizontal"> - - <TextView - android:layout_width="105dp" - android:layout_height="wrap_content" - android:text="鍗″彿锛�" - android:textColor="#666666" - android:textSize="@dimen/new_card_size" /> - - <TextView - android:id="@+id/newCard_arerNumber" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:layout_marginStart="8dp" - android:textColor="#333333" - android:textSize="@dimen/new_card_size" /> - </LinearLayout> - - <LinearLayout - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:layout_marginBottom="6dp" - android:gravity="center_vertical" - android:orientation="horizontal"> - - <TextView - android:layout_width="105dp" - android:layout_height="wrap_content" - android:text="濮撳悕锛�" - android:textColor="#666666" - android:textSize="@dimen/new_card_size" /> - - <TextView - android:id="@+id/newCard_userName" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:layout_marginStart="8dp" - android:textColor="#333333" - android:textSize="@dimen/new_card_size" /> - </LinearLayout> - - <LinearLayout - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:layout_marginBottom="6dp" - android:gravity="center_vertical" - android:orientation="horizontal"> - - <TextView - android:layout_width="105dp" - android:layout_height="wrap_content" - android:text="韬唤璇佸彿锛�" - android:textColor="#666666" - android:textSize="@dimen/new_card_size" /> - - <TextView - android:id="@+id/newCard_idCard" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:layout_marginStart="8dp" - android:textColor="#333333" - android:textSize="@dimen/new_card_size" /> - </LinearLayout> - - <LinearLayout - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:layout_marginBottom="5dp" - android:gravity="center_vertical" - android:orientation="horizontal"> - - <TextView - android:layout_width="105dp" - android:layout_height="wrap_content" - android:text="鍐滄埛缂栧彿锛�" - android:textColor="#666666" - android:textSize="@dimen/new_card_size" /> - - <TextView - android:id="@+id/newCard_farmerCode" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:layout_marginStart="8dp" - android:textColor="#333333" - android:textSize="@dimen/new_card_size" /> - </LinearLayout> - </LinearLayout> - </androidx.cardview.widget.CardView> - - <androidx.cardview.widget.CardView - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:layout_marginBottom="10dp" - app:cardCornerRadius="8dp" - app:cardElevation="2dp"> - - <LinearLayout - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:orientation="vertical" - android:padding="16dp"> - - <TextView - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_marginBottom="10dp" - android:text="璐圭敤淇℃伅" - android:textColor="#333333" - android:textSize="18sp" - android:textStyle="bold" /> - - <LinearLayout - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:layout_marginBottom="12dp" - android:gravity="center_vertical" - android:orientation="horizontal"> - - <TextView - android:layout_width="105dp" - android:layout_height="wrap_content" - android:text="鍏呭�奸噾棰濓細" - android:textColor="#666666" - android:textSize="@dimen/new_card_size" /> - - <LinearLayout - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:background="@drawable/edit_text_bg_selector" - android:orientation="horizontal" - android:gravity="center_vertical" - android:paddingStart="10dp" - android:paddingEnd="10dp" - android:paddingTop="8dp" - android:paddingBottom="8dp"> - - <EditText - android:id="@+id/newCard_rechargeAmount" - android:layout_width="0dp" - android:layout_weight="1" - android:layout_height="wrap_content" - android:background="@null" - android:hint="璇疯緭鍏ュ厖鍊奸噾棰�(閫夊~)" - android:inputType="numberDecimal" - android:textColor="#333333" - android:textColorHint="#BBBBBB" - android:textSize="@dimen/new_card_size" /> - - <TextView - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:text="鍏�" - android:textColor="#666666" - android:textSize="@dimen/new_card_size" /> - </LinearLayout> - </LinearLayout> - - <LinearLayout - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:layout_marginBottom="12dp" - android:gravity="center_vertical" - android:orientation="horizontal"> - - <TextView - android:layout_width="105dp" - android:layout_height="wrap_content" - android:text="宸ユ湰璐癸細" - android:textColor="#666666" - android:textSize="@dimen/new_card_size" /> - - <LinearLayout - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:background="@drawable/edit_text_bg_selector" - android:orientation="horizontal" - android:gravity="center_vertical" - android:paddingStart="10dp" - android:paddingEnd="10dp" - android:paddingTop="8dp" - android:paddingBottom="8dp"> - - <EditText - android:id="@+id/newCard_cardFee" - android:layout_width="0dp" - android:layout_weight="1" - android:layout_height="wrap_content" - android:background="@null" - android:hint="璇疯緭鍏ュ伐鏈垂(閫夊~)" - android:inputType="numberDecimal" - android:textColor="#333333" - android:textColorHint="#BBBBBB" - android:textSize="@dimen/new_card_size" /> - - <TextView - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:text="鍏�" - android:textColor="#666666" - android:textSize="@dimen/new_card_size" /> - </LinearLayout> - </LinearLayout> - - <LinearLayout - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:layout_marginBottom="5dp" - android:gravity="center_vertical" - android:orientation="horizontal"> - - <TextView - android:layout_width="105dp" - android:layout_height="wrap_content" - android:text="澶囨敞锛�" - android:textColor="#666666" - android:textSize="@dimen/new_card_size" /> - - <LinearLayout - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:background="@drawable/edit_text_bg_selector" - android:orientation="vertical" - android:paddingStart="10dp" - android:paddingEnd="10dp" - android:paddingTop="8dp" - android:paddingBottom="8dp"> - - <EditText - android:id="@+id/newCard_remark" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:background="@null" - android:hint="璇疯緭鍏ュ娉�(閫夊~)" - android:textColor="#333333" - android:textColorHint="#BBBBBB" - android:textSize="@dimen/new_card_size" /> - </LinearLayout> - </LinearLayout> - </LinearLayout> - </androidx.cardview.widget.CardView> - - <androidx.cardview.widget.CardView - android:layout_width="match_parent" - android:layout_height="wrap_content" - app:cardCornerRadius="8dp" - app:cardElevation="2dp"> - - <LinearLayout - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:orientation="vertical" - android:padding="16dp"> - - <TextView - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_marginBottom="10dp" - android:text="鏀粯鏂瑰紡" - android:textColor="#333333" - android:textSize="18sp" - android:textStyle="bold" /> - - <RadioGroup - android:id="@+id/newCard_paymentMethod" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:orientation="horizontal"> - <!-- 鍔ㄦ�佹坊鍔燫adioButton锛岀Щ闄ゅ浐瀹氱殑RadioButton --> - </RadioGroup> - </LinearLayout> - </androidx.cardview.widget.CardView> - <TextView - android:id="@+id/newCard_registBtn" - android:layout_width="match_parent" - android:layout_height="56dp" - android:layout_marginTop="15dp" - android:background="@color/bottom_color" - android:visibility="visible" - android:gravity="center" - android:text="纭寮�鍗�" - android:textColor="#FFFFFF" - android:textSize="16sp" /> - </LinearLayout> - </ScrollView> - -</androidx.constraintlayout.widget.ConstraintLayout> \ No newline at end of file diff --git a/generallibrary/src/main/res/layout/activity_new_card_ge.xml b/generallibrary/src/main/res/layout/activity_new_card_ge.xml index 43fe50f..c1c2477 100644 --- a/generallibrary/src/main/res/layout/activity_new_card_ge.xml +++ b/generallibrary/src/main/res/layout/activity_new_card_ge.xml @@ -1,9 +1,10 @@ <?xml version="1.0" encoding="utf-8"?> -<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" +<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" + xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" - android:background="#F5F7FA"> + android:background="@color/base_list_bg"> <com.dayu.baselibrary.view.TitleBar android:id="@+id/titleBar" @@ -11,31 +12,136 @@ android:layout_height="@dimen/dimen_title_height" android:background="@color/title_bar_bg" android:elevation="4dp" - app:centerText="鏂板崱寮�鎴�" - app:leftImage="@mipmap/icon_back" /> + app:centerText="鐢ㄦ埛寮�鍗�" + app:leftImage="@mipmap/icon_back" + tools:ignore="MissingConstraints" /> + + <androidx.cardview.widget.CardView + android:id="@+id/nfcContainer" + android:layout_width="match_parent" + android:layout_height="0dp" + android:layout_marginStart="16dp" + android:layout_marginTop="24dp" + android:layout_marginEnd="16dp" + android:layout_marginBottom="24dp" + android:visibility="visible" + app:cardBackgroundColor="@android:color/white" + app:cardCornerRadius="12dp" + app:cardElevation="4dp" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@id/titleBar"> + + <FrameLayout + android:layout_width="match_parent" + android:layout_height="match_parent"> + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="match_parent" + android:gravity="center" + android:orientation="vertical" + android:padding="16dp"> + + <TextView + android:id="@+id/textView" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:gravity="center" + android:text="璇峰皢鏂板崱璐村湪璁惧涓婅繘琛岃鍗�" + android:textColor="#333333" + android:textSize="18sp" + android:textStyle="bold" /> + + <TextView + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:gravity="center" + android:text="灏嗚繘琛屽垵濮嬪寲鍗$墖\n鑰楁椂杈冮暱璇蜂笉瑕佺Щ鍔ㄥ崱鐗�" + android:textColor="@color/base_blue_bg" + android:textSize="18sp" + android:layout_marginTop="20dp" + android:textStyle="bold" /> + + <ImageView + android:id="@+id/nfcImageView" + android:layout_width="200dp" + android:layout_height="200dp" + android:layout_marginTop="24dp" + android:scaleType="fitCenter" + android:src="@mipmap/nfc_write" /> + + <TextView + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginTop="16dp" + android:gravity="center" + android:text="璇蜂繚鎸佹墜鎸佹満鍜屽崱鐗囦笉瑕佺Щ鍔�" + android:textColor="#666666" + android:textSize="14sp" /> + </LinearLayout> + + <RelativeLayout + android:id="@+id/loadingContainer" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:background="#80000000" + android:visibility="gone"> + + <com.pnikosis.materialishprogress.ProgressWheel + android:id="@+id/nfcProgressWheel" + android:layout_width="100dp" + android:layout_height="100dp" + android:layout_centerInParent="true" + app:matProg_barColor="@color/base_blue_bg" + app:matProg_progressIndeterminate="true" + app:matProg_barWidth="8dp" + app:matProg_rimColor="#33000000" + app:matProg_rimWidth="8dp" + app:matProg_spinSpeed="0.5"/> + + <TextView + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_below="@id/nfcProgressWheel" + android:layout_centerHorizontal="true" + android:layout_marginTop="12dp" + android:text="姝e湪澶勭悊NFC鍗$墖..." + android:textColor="#FFFFFF" + android:textSize="16sp"/> + </RelativeLayout> + </FrameLayout> + </androidx.cardview.widget.CardView> <ScrollView + android:id="@+id/center_scroll" android:layout_width="match_parent" - android:layout_height="match_parent" - android:layout_above="@+id/newCard_registBtn" - android:layout_below="@+id/titleBar" + android:layout_height="0dp" android:fillViewport="true" - android:scrollbars="none"> + android:scrollbars="none" + android:visibility="gone" + app:layout_constraintBottom_toTopOf="@+id/newCard_registBtn" + app:layout_constraintTop_toBottomOf="@+id/titleBar"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" - android:padding="16dp"> + android:paddingBottom="16dp" + android:paddingLeft="16dp" + android:paddingRight="16dp" + android:paddingTop="10dp"> <androidx.cardview.widget.CardView android:layout_width="match_parent" android:layout_height="wrap_content" - android:layout_marginBottom="16dp" + android:layout_marginBottom="10dp" app:cardCornerRadius="8dp" app:cardElevation="2dp"> <LinearLayout + android:id="@+id/center_data" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" @@ -44,7 +150,7 @@ <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_marginBottom="16dp" + android:layout_marginBottom="10dp" android:text="鍩烘湰淇℃伅" android:textColor="#333333" android:textSize="18sp" @@ -53,14 +159,14 @@ <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" - android:layout_marginBottom="16dp" + android:layout_marginBottom="6dp" android:gravity="center_vertical" android:orientation="horizontal"> <TextView - android:layout_width="wrap_content" + android:layout_width="105dp" android:layout_height="wrap_content" - android:text="@string/eq_no" + android:text="鍗″彿锛�" android:textColor="#666666" android:textSize="@dimen/new_card_size" /> @@ -69,7 +175,6 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginStart="8dp" - android:inputType="number" android:textColor="#333333" android:textSize="@dimen/new_card_size" /> </LinearLayout> @@ -77,94 +182,78 @@ <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" - android:layout_marginBottom="16dp" + android:layout_marginBottom="6dp" android:gravity="center_vertical" android:orientation="horizontal"> <TextView - android:layout_width="80dp" + android:layout_width="105dp" android:layout_height="wrap_content" - android:text="濮撳悕" + android:text="濮撳悕锛�" android:textColor="#666666" android:textSize="@dimen/new_card_size" /> - <LinearLayout - android:layout_width="0dp" + <TextView + android:id="@+id/newCard_userName" + android:layout_width="match_parent" android:layout_height="wrap_content" - android:layout_weight="1" - android:background="#FFFFFF" - android:orientation="vertical"> - - <EditText - android:id="@+id/newCard_name" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:background="@null" - android:hint="璇疯緭鍏ュ鍚�" - android:inputType="textPersonName" - android:padding="12dp" - android:textSize="@dimen/new_card_size" /> - </LinearLayout> - - <ImageView - android:id="@+id/newCard_scanBtn" - android:layout_width="45dp" - android:layout_height="45dp" - android:background="?attr/selectableItemBackgroundBorderless" - android:padding="10dp" - android:src="@mipmap/icon_scan" - /> + android:layout_marginStart="8dp" + android:textColor="#333333" + android:textSize="@dimen/new_card_size" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" - android:layout_marginBottom="16dp" + android:layout_marginBottom="6dp" android:gravity="center_vertical" android:orientation="horizontal"> <TextView - android:layout_width="80dp" + android:layout_width="105dp" android:layout_height="wrap_content" - android:text="韬唤璇佸彿" + android:text="韬唤璇佸彿锛�" android:textColor="#666666" android:textSize="@dimen/new_card_size" /> - <LinearLayout + <TextView + android:id="@+id/newCard_idCard" android:layout_width="match_parent" android:layout_height="wrap_content" - android:background="#FFFFFF" - android:orientation="vertical"> - - <EditText - android:id="@+id/newCard_id" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:background="@null" - android:digits="0123456789Xx" - android:hint="璇疯緭鍏ヨ韩浠借瘉鍙�" - android:inputType="text" - android:maxLength="18" - android:padding="12dp" - android:textSize="@dimen/new_card_size" /> - </LinearLayout> + android:layout_marginStart="8dp" + android:textColor="#333333" + android:textSize="@dimen/new_card_size" /> </LinearLayout> - <TextView - android:id="@+id/newCard_idTip" - android:layout_width="wrap_content" + <LinearLayout + android:layout_width="match_parent" android:layout_height="wrap_content" - android:layout_marginBottom="16dp" - android:text="鎵弿鍚庤鏍稿韬唤淇℃伅鏃犺" - android:textColor="#FF4500" - android:visibility="gone" /> + android:layout_marginBottom="5dp" + android:gravity="center_vertical" + android:orientation="horizontal"> + + <TextView + android:layout_width="105dp" + android:layout_height="wrap_content" + android:text="鍐滄埛缂栧彿锛�" + android:textColor="#666666" + android:textSize="@dimen/new_card_size" /> + + <TextView + android:id="@+id/newCard_farmerCode" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginStart="8dp" + android:textColor="#333333" + android:textSize="@dimen/new_card_size" /> + </LinearLayout> </LinearLayout> </androidx.cardview.widget.CardView> <androidx.cardview.widget.CardView android:layout_width="match_parent" android:layout_height="wrap_content" - android:layout_marginBottom="16dp" + android:layout_marginBottom="10dp" app:cardCornerRadius="8dp" app:cardElevation="2dp"> @@ -177,135 +266,187 @@ <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_marginBottom="16dp" - android:text="鑱旂郴鏂瑰紡" - android:textColor="#333333" - android:textSize="18sp" - android:textStyle="bold" /> - - <LinearLayout - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:layout_marginBottom="16dp" - android:gravity="center_vertical" - android:orientation="horizontal"> - - <TextView - android:layout_width="80dp" - android:layout_height="wrap_content" - android:text="鐢佃瘽" - android:textColor="#666666" - android:textSize="@dimen/new_card_size" /> - - <LinearLayout - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:background="#FFFFFF" - android:orientation="vertical"> - - <EditText - android:id="@+id/newCard_phone" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:background="@null" - android:hint="璇疯緭鍏ユ墜鏈哄彿鐮�" - android:inputType="phone" - android:maxLength="11" - android:padding="12dp" - android:textSize="@dimen/new_card_size" /> - </LinearLayout> - </LinearLayout> - </LinearLayout> - </androidx.cardview.widget.CardView> - - <androidx.cardview.widget.CardView - android:layout_width="match_parent" - android:layout_height="wrap_content" - app:cardCornerRadius="8dp" - app:cardElevation="2dp"> - - <LinearLayout - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:orientation="vertical" - android:padding="16dp"> - - <TextView - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_marginBottom="16dp" + android:layout_marginBottom="10dp" android:text="璐圭敤淇℃伅" android:textColor="#333333" android:textSize="18sp" android:textStyle="bold" /> - <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" + android:layout_marginBottom="12dp" android:gravity="center_vertical" android:orientation="horizontal"> <TextView - android:layout_width="80dp" + android:layout_width="105dp" android:layout_height="wrap_content" - android:text="宸ユ湰璐�(鍏�)" + android:text="宸ユ湰璐癸細" android:textColor="#666666" android:textSize="@dimen/new_card_size" /> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" - android:background="#FFFFFF" - android:orientation="vertical"> + android:background="@drawable/edit_text_bg_selector" + android:orientation="horizontal" + android:gravity="center_vertical" + android:paddingStart="10dp" + android:paddingEnd="10dp" + android:paddingTop="8dp" + android:paddingBottom="8dp"> <EditText - android:id="@+id/newCard_morny" + android:id="@+id/newCard_cardFee" + android:layout_width="0dp" + android:layout_weight="1" + android:layout_height="wrap_content" + android:background="@null" + android:hint="璇疯緭鍏ュ伐鏈垂(閫夊~)" + android:inputType="numberDecimal" + android:textColor="#333333" + android:textColorHint="#BBBBBB" + android:textSize="@dimen/new_card_size" /> + + <TextView + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="鍏�" + android:textColor="#666666" + android:textSize="@dimen/new_card_size" /> + </LinearLayout> + </LinearLayout> + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginBottom="12dp" + android:gravity="center_vertical" + android:orientation="horizontal"> + + <TextView + android:layout_width="105dp" + android:layout_height="wrap_content" + android:text="鍏呭�奸噾棰濓細" + android:textColor="#666666" + android:textSize="@dimen/new_card_size" /> + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:background="@drawable/edit_text_bg_selector" + android:orientation="horizontal" + android:gravity="center_vertical" + android:paddingStart="10dp" + android:paddingEnd="10dp" + android:paddingTop="8dp" + android:paddingBottom="8dp"> + + <EditText + android:id="@+id/newCard_rechargeAmount" + android:layout_width="0dp" + android:layout_weight="1" + android:layout_height="wrap_content" + android:background="@null" + android:hint="璇疯緭鍏ュ厖鍊奸噾棰�(閫夊~)" + android:inputType="numberDecimal" + android:textColor="#333333" + android:textColorHint="#BBBBBB" + android:textSize="@dimen/new_card_size" /> + + <TextView + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="鍏�" + android:textColor="#666666" + android:textSize="@dimen/new_card_size" /> + </LinearLayout> + </LinearLayout> + + + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginBottom="5dp" + android:gravity="center_vertical" + android:orientation="horizontal"> + + <TextView + android:layout_width="105dp" + android:layout_height="wrap_content" + android:text="澶囨敞锛�" + android:textColor="#666666" + android:textSize="@dimen/new_card_size" /> + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:background="@drawable/edit_text_bg_selector" + android:orientation="vertical" + android:paddingStart="10dp" + android:paddingEnd="10dp" + android:paddingTop="8dp" + android:paddingBottom="8dp"> + + <EditText + android:id="@+id/newCard_remark" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@null" - android:hint="璇疯緭鍏ュ伐鏈垂" - android:inputType="numberDecimal" - android:padding="12dp" + android:hint="璇疯緭鍏ュ娉�(閫夊~)" + android:textColor="#333333" + android:textColorHint="#BBBBBB" android:textSize="@dimen/new_card_size" /> </LinearLayout> </LinearLayout> </LinearLayout> </androidx.cardview.widget.CardView> - <!-- 闅愯棌鐨勬按鏉冨唴姘撮噺閮ㄥ垎 --> - <LinearLayout + <androidx.cardview.widget.CardView android:layout_width="match_parent" android:layout_height="wrap_content" - android:visibility="gone"> + app:cardCornerRadius="8dp" + app:cardElevation="2dp"> - <TextView - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:text="姘存潈鍐呮按閲忥細" - android:textSize="@dimen/new_card_size" /> - - <EditText - android:id="@+id/newCard_water" + <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" - android:inputType="number" - android:maxLength="5" - android:textSize="@dimen/new_card_size" /> - </LinearLayout> + android:orientation="vertical" + android:padding="16dp"> + + <TextView + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_marginBottom="10dp" + android:text="鏀粯鏂瑰紡" + android:textColor="#333333" + android:textSize="18sp" + android:textStyle="bold" /> + + <RadioGroup + android:id="@+id/newCard_paymentMethod" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:orientation="horizontal"> + <!-- 鍔ㄦ�佹坊鍔燫adioButton锛岀Щ闄ゅ浐瀹氱殑RadioButton --> + </RadioGroup> + </LinearLayout> + </androidx.cardview.widget.CardView> </LinearLayout> </ScrollView> - + <TextView android:id="@+id/newCard_registBtn" android:layout_width="match_parent" android:layout_height="56dp" - android:layout_alignParentBottom="true" - android:layout_marginStart="16dp" - android:layout_marginEnd="16dp" - android:layout_marginBottom="16dp" - android:background="#4285F4" + android:background="@color/bottom_color" android:gravity="center" - android:text="纭寮�鎴�" + android:text="纭寮�鍗�" android:textColor="#FFFFFF" - android:textSize="16sp" /> -</RelativeLayout> \ No newline at end of file + android:textSize="16sp" + android:visibility="gone" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" /> + +</androidx.constraintlayout.widget.ConstraintLayout> \ No newline at end of file diff --git a/pickerviewlibrary/src/main/java/com/wang/avi/indicators/BallBeatIndicator.java b/pickerviewlibrary/src/main/java/com/wang/avi/indicators/BallBeatIndicator.java index a8a6e15..ea67842 100644 --- a/pickerviewlibrary/src/main/java/com/wang/avi/indicators/BallBeatIndicator.java +++ b/pickerviewlibrary/src/main/java/com/wang/avi/indicators/BallBeatIndicator.java @@ -1,9 +1,9 @@ package com.wang.avi.indicators; +import android.animation.ValueAnimator; import android.graphics.Canvas; import android.graphics.Paint; -import android.animation.ValueAnimator; import com.wang.avi.Indicator; import java.util.ArrayList; diff --git a/pickerviewlibrary/src/main/java/com/wang/avi/indicators/BallClipRotateIndicator.java b/pickerviewlibrary/src/main/java/com/wang/avi/indicators/BallClipRotateIndicator.java index 5d65321..be07563 100644 --- a/pickerviewlibrary/src/main/java/com/wang/avi/indicators/BallClipRotateIndicator.java +++ b/pickerviewlibrary/src/main/java/com/wang/avi/indicators/BallClipRotateIndicator.java @@ -1,10 +1,10 @@ package com.wang.avi.indicators; +import android.animation.ValueAnimator; import android.graphics.Canvas; import android.graphics.Paint; import android.graphics.RectF; -import android.animation.ValueAnimator; import com.wang.avi.Indicator; import java.util.ArrayList; diff --git a/pickerviewlibrary/src/main/java/com/wang/avi/indicators/BallClipRotateMultipleIndicator.java b/pickerviewlibrary/src/main/java/com/wang/avi/indicators/BallClipRotateMultipleIndicator.java index 2c59506..a1512cd 100644 --- a/pickerviewlibrary/src/main/java/com/wang/avi/indicators/BallClipRotateMultipleIndicator.java +++ b/pickerviewlibrary/src/main/java/com/wang/avi/indicators/BallClipRotateMultipleIndicator.java @@ -1,10 +1,10 @@ package com.wang.avi.indicators; +import android.animation.ValueAnimator; import android.graphics.Canvas; import android.graphics.Paint; import android.graphics.RectF; -import android.animation.ValueAnimator; import com.wang.avi.Indicator; import java.util.ArrayList; diff --git a/pickerviewlibrary/src/main/java/com/wang/avi/indicators/BallClipRotatePulseIndicator.java b/pickerviewlibrary/src/main/java/com/wang/avi/indicators/BallClipRotatePulseIndicator.java index 3687ed3..94a1c40 100644 --- a/pickerviewlibrary/src/main/java/com/wang/avi/indicators/BallClipRotatePulseIndicator.java +++ b/pickerviewlibrary/src/main/java/com/wang/avi/indicators/BallClipRotatePulseIndicator.java @@ -1,10 +1,10 @@ package com.wang.avi.indicators; +import android.animation.ValueAnimator; import android.graphics.Canvas; import android.graphics.Paint; import android.graphics.RectF; -import android.animation.ValueAnimator; import com.wang.avi.Indicator; import java.util.ArrayList; diff --git a/pickerviewlibrary/src/main/java/com/wang/avi/indicators/BallGridBeatIndicator.java b/pickerviewlibrary/src/main/java/com/wang/avi/indicators/BallGridBeatIndicator.java index c115c6a..2bd3222 100644 --- a/pickerviewlibrary/src/main/java/com/wang/avi/indicators/BallGridBeatIndicator.java +++ b/pickerviewlibrary/src/main/java/com/wang/avi/indicators/BallGridBeatIndicator.java @@ -1,9 +1,9 @@ package com.wang.avi.indicators; +import android.animation.ValueAnimator; import android.graphics.Canvas; import android.graphics.Paint; -import android.animation.ValueAnimator; import com.wang.avi.Indicator; import java.util.ArrayList; diff --git a/pickerviewlibrary/src/main/java/com/wang/avi/indicators/BallGridPulseIndicator.java b/pickerviewlibrary/src/main/java/com/wang/avi/indicators/BallGridPulseIndicator.java index e0f043f..e966173 100644 --- a/pickerviewlibrary/src/main/java/com/wang/avi/indicators/BallGridPulseIndicator.java +++ b/pickerviewlibrary/src/main/java/com/wang/avi/indicators/BallGridPulseIndicator.java @@ -1,9 +1,9 @@ package com.wang.avi.indicators; +import android.animation.ValueAnimator; import android.graphics.Canvas; import android.graphics.Paint; -import android.animation.ValueAnimator; import com.wang.avi.Indicator; import java.util.ArrayList; diff --git a/pickerviewlibrary/src/main/java/com/wang/avi/indicators/BallPulseIndicator.java b/pickerviewlibrary/src/main/java/com/wang/avi/indicators/BallPulseIndicator.java index eef80b0..f827a79 100644 --- a/pickerviewlibrary/src/main/java/com/wang/avi/indicators/BallPulseIndicator.java +++ b/pickerviewlibrary/src/main/java/com/wang/avi/indicators/BallPulseIndicator.java @@ -1,9 +1,9 @@ package com.wang.avi.indicators; +import android.animation.ValueAnimator; import android.graphics.Canvas; import android.graphics.Paint; -import android.animation.ValueAnimator; import com.wang.avi.Indicator; import java.util.ArrayList; diff --git a/pickerviewlibrary/src/main/java/com/wang/avi/indicators/BallPulseSyncIndicator.java b/pickerviewlibrary/src/main/java/com/wang/avi/indicators/BallPulseSyncIndicator.java index 862f92d..78a69a7 100644 --- a/pickerviewlibrary/src/main/java/com/wang/avi/indicators/BallPulseSyncIndicator.java +++ b/pickerviewlibrary/src/main/java/com/wang/avi/indicators/BallPulseSyncIndicator.java @@ -1,9 +1,9 @@ package com.wang.avi.indicators; +import android.animation.ValueAnimator; import android.graphics.Canvas; import android.graphics.Paint; -import android.animation.ValueAnimator; import com.wang.avi.Indicator; import java.util.ArrayList; diff --git a/pickerviewlibrary/src/main/java/com/wang/avi/indicators/BallScaleIndicator.java b/pickerviewlibrary/src/main/java/com/wang/avi/indicators/BallScaleIndicator.java index 3e52f7c..1e055ce 100644 --- a/pickerviewlibrary/src/main/java/com/wang/avi/indicators/BallScaleIndicator.java +++ b/pickerviewlibrary/src/main/java/com/wang/avi/indicators/BallScaleIndicator.java @@ -1,10 +1,10 @@ package com.wang.avi.indicators; +import android.animation.ValueAnimator; import android.graphics.Canvas; import android.graphics.Paint; import android.view.animation.LinearInterpolator; -import android.animation.ValueAnimator; import com.wang.avi.Indicator; import java.util.ArrayList; diff --git a/pickerviewlibrary/src/main/java/com/wang/avi/indicators/BallScaleMultipleIndicator.java b/pickerviewlibrary/src/main/java/com/wang/avi/indicators/BallScaleMultipleIndicator.java index 43d4aaa..8507a67 100644 --- a/pickerviewlibrary/src/main/java/com/wang/avi/indicators/BallScaleMultipleIndicator.java +++ b/pickerviewlibrary/src/main/java/com/wang/avi/indicators/BallScaleMultipleIndicator.java @@ -1,10 +1,10 @@ package com.wang.avi.indicators; +import android.animation.ValueAnimator; import android.graphics.Canvas; import android.graphics.Paint; import android.view.animation.LinearInterpolator; -import android.animation.ValueAnimator; import com.wang.avi.Indicator; import java.util.ArrayList; diff --git a/pickerviewlibrary/src/main/java/com/wang/avi/indicators/BallScaleRippleIndicator.java b/pickerviewlibrary/src/main/java/com/wang/avi/indicators/BallScaleRippleIndicator.java index d791f71..c3d8172 100644 --- a/pickerviewlibrary/src/main/java/com/wang/avi/indicators/BallScaleRippleIndicator.java +++ b/pickerviewlibrary/src/main/java/com/wang/avi/indicators/BallScaleRippleIndicator.java @@ -1,10 +1,9 @@ package com.wang.avi.indicators; +import android.animation.ValueAnimator; import android.graphics.Canvas; import android.graphics.Paint; import android.view.animation.LinearInterpolator; - -import android.animation.ValueAnimator; import java.util.ArrayList; diff --git a/pickerviewlibrary/src/main/java/com/wang/avi/indicators/BallScaleRippleMultipleIndicator.java b/pickerviewlibrary/src/main/java/com/wang/avi/indicators/BallScaleRippleMultipleIndicator.java index 5dc132b..1aa0a81 100644 --- a/pickerviewlibrary/src/main/java/com/wang/avi/indicators/BallScaleRippleMultipleIndicator.java +++ b/pickerviewlibrary/src/main/java/com/wang/avi/indicators/BallScaleRippleMultipleIndicator.java @@ -1,10 +1,9 @@ package com.wang.avi.indicators; +import android.animation.ValueAnimator; import android.graphics.Canvas; import android.graphics.Paint; import android.view.animation.LinearInterpolator; - -import android.animation.ValueAnimator; import java.util.ArrayList; diff --git a/pickerviewlibrary/src/main/java/com/wang/avi/indicators/BallSpinFadeLoaderIndicator.java b/pickerviewlibrary/src/main/java/com/wang/avi/indicators/BallSpinFadeLoaderIndicator.java index d93fbb3..3ccfef0 100644 --- a/pickerviewlibrary/src/main/java/com/wang/avi/indicators/BallSpinFadeLoaderIndicator.java +++ b/pickerviewlibrary/src/main/java/com/wang/avi/indicators/BallSpinFadeLoaderIndicator.java @@ -1,9 +1,9 @@ package com.wang.avi.indicators; +import android.animation.ValueAnimator; import android.graphics.Canvas; import android.graphics.Paint; -import android.animation.ValueAnimator; import com.wang.avi.Indicator; import java.util.ArrayList; diff --git a/pickerviewlibrary/src/main/java/com/wang/avi/indicators/BallTrianglePathIndicator.java b/pickerviewlibrary/src/main/java/com/wang/avi/indicators/BallTrianglePathIndicator.java index 1a3a9ba..28a60e2 100644 --- a/pickerviewlibrary/src/main/java/com/wang/avi/indicators/BallTrianglePathIndicator.java +++ b/pickerviewlibrary/src/main/java/com/wang/avi/indicators/BallTrianglePathIndicator.java @@ -1,10 +1,10 @@ package com.wang.avi.indicators; +import android.animation.ValueAnimator; import android.graphics.Canvas; import android.graphics.Paint; import android.view.animation.LinearInterpolator; -import android.animation.ValueAnimator; import com.wang.avi.Indicator; import java.util.ArrayList; diff --git a/pickerviewlibrary/src/main/java/com/wang/avi/indicators/BallZigZagDeflectIndicator.java b/pickerviewlibrary/src/main/java/com/wang/avi/indicators/BallZigZagDeflectIndicator.java index 93aec2e..7550a82 100644 --- a/pickerviewlibrary/src/main/java/com/wang/avi/indicators/BallZigZagDeflectIndicator.java +++ b/pickerviewlibrary/src/main/java/com/wang/avi/indicators/BallZigZagDeflectIndicator.java @@ -1,8 +1,9 @@ package com.wang.avi.indicators; -import android.view.animation.LinearInterpolator; import android.animation.ValueAnimator; +import android.view.animation.LinearInterpolator; + import java.util.ArrayList; /** diff --git a/pickerviewlibrary/src/main/java/com/wang/avi/indicators/BallZigZagIndicator.java b/pickerviewlibrary/src/main/java/com/wang/avi/indicators/BallZigZagIndicator.java index d01c8ff..ff4427c 100644 --- a/pickerviewlibrary/src/main/java/com/wang/avi/indicators/BallZigZagIndicator.java +++ b/pickerviewlibrary/src/main/java/com/wang/avi/indicators/BallZigZagIndicator.java @@ -1,10 +1,10 @@ package com.wang.avi.indicators; +import android.animation.ValueAnimator; import android.graphics.Canvas; import android.graphics.Paint; import android.view.animation.LinearInterpolator; -import android.animation.ValueAnimator; import com.wang.avi.Indicator; import java.util.ArrayList; diff --git a/pickerviewlibrary/src/main/java/com/wang/avi/indicators/CubeTransitionIndicator.java b/pickerviewlibrary/src/main/java/com/wang/avi/indicators/CubeTransitionIndicator.java index 181024f..9fa4204 100644 --- a/pickerviewlibrary/src/main/java/com/wang/avi/indicators/CubeTransitionIndicator.java +++ b/pickerviewlibrary/src/main/java/com/wang/avi/indicators/CubeTransitionIndicator.java @@ -1,11 +1,11 @@ package com.wang.avi.indicators; +import android.animation.ValueAnimator; import android.graphics.Canvas; import android.graphics.Paint; import android.graphics.RectF; import android.view.animation.LinearInterpolator; -import android.animation.ValueAnimator; import com.wang.avi.Indicator; import java.util.ArrayList; diff --git a/pickerviewlibrary/src/main/java/com/wang/avi/indicators/LineScaleIndicator.java b/pickerviewlibrary/src/main/java/com/wang/avi/indicators/LineScaleIndicator.java index 83bfe86..c51afef 100644 --- a/pickerviewlibrary/src/main/java/com/wang/avi/indicators/LineScaleIndicator.java +++ b/pickerviewlibrary/src/main/java/com/wang/avi/indicators/LineScaleIndicator.java @@ -1,10 +1,10 @@ package com.wang.avi.indicators; +import android.animation.ValueAnimator; import android.graphics.Canvas; import android.graphics.Paint; import android.graphics.RectF; -import android.animation.ValueAnimator; import com.wang.avi.Indicator; import java.util.ArrayList; diff --git a/pickerviewlibrary/src/main/java/com/wang/avi/indicators/LineScalePartyIndicator.java b/pickerviewlibrary/src/main/java/com/wang/avi/indicators/LineScalePartyIndicator.java index b316e23..31ee441 100644 --- a/pickerviewlibrary/src/main/java/com/wang/avi/indicators/LineScalePartyIndicator.java +++ b/pickerviewlibrary/src/main/java/com/wang/avi/indicators/LineScalePartyIndicator.java @@ -1,10 +1,10 @@ package com.wang.avi.indicators; +import android.animation.ValueAnimator; import android.graphics.Canvas; import android.graphics.Paint; import android.graphics.RectF; -import android.animation.ValueAnimator; import com.wang.avi.Indicator; import java.util.ArrayList; diff --git a/pickerviewlibrary/src/main/java/com/wang/avi/indicators/PacmanIndicator.java b/pickerviewlibrary/src/main/java/com/wang/avi/indicators/PacmanIndicator.java index 9a3a2e6..1090abb 100644 --- a/pickerviewlibrary/src/main/java/com/wang/avi/indicators/PacmanIndicator.java +++ b/pickerviewlibrary/src/main/java/com/wang/avi/indicators/PacmanIndicator.java @@ -1,11 +1,11 @@ package com.wang.avi.indicators; +import android.animation.ValueAnimator; import android.graphics.Canvas; import android.graphics.Paint; import android.graphics.RectF; import android.view.animation.LinearInterpolator; -import android.animation.ValueAnimator; import com.wang.avi.Indicator; import java.util.ArrayList; -- Gitblit v1.8.0