Commit 446fc55e authored by wanglei's avatar wanglei

...

parent de79c5a2
......@@ -10,6 +10,22 @@ data class SpotifyUIBean(
companion object {
fun isSpotifyQR(qrCodeValue: String): Boolean {
return qrCodeValue.startsWith("spotify:")
}
fun createSpotifyUIBean(qrCodeValue: String): SpotifyUIBean {
val sub = qrCodeValue.subSequence("spotify:search:".length, qrCodeValue.length)
val split = sub.split(";")
var singerName = ""
var song = ""
kotlin.runCatching {
singerName = split[0]
song = split[1]
}
return SpotifyUIBean(singerName, song)
}
// spotify:search:wanglei;唱山歌
fun SpotifyUIBean.createSpotifyQrString(): String {
return "spotify:search:$singerName;$song"
......
......@@ -14,11 +14,14 @@ import com.base.scanqrclear.bean.FacebookUIBean
import com.base.scanqrclear.bean.FacebookUIBean.Companion.createFacebookQrString
import com.base.scanqrclear.bean.FunctionUIBean.Companion.KEY_FACEBOOK
import com.base.scanqrclear.bean.FunctionUIBean.Companion.KEY_INSTAGRAM
import com.base.scanqrclear.bean.FunctionUIBean.Companion.KEY_SPOTIFY
import com.base.scanqrclear.bean.FunctionUIBean.Companion.KEY_WHATSAPP
import com.base.scanqrclear.bean.FunctionUIBean.Companion.KEY_X
import com.base.scanqrclear.bean.InstagramUIBean
import com.base.scanqrclear.bean.InstagramUIBean.Companion.createInstagramQrString
import com.base.scanqrclear.bean.ScanBean
import com.base.scanqrclear.bean.SpotifyUIBean
import com.base.scanqrclear.bean.SpotifyUIBean.Companion.createSpotifyQrString
import com.base.scanqrclear.bean.WhatsappUIBean
import com.base.scanqrclear.bean.WhatsappUIBean.Companion.createWhatsappQrString
import com.base.scanqrclear.bean.XUIBean
......@@ -39,6 +42,7 @@ class QrResultsActivity : BaseActivity<ActivityQrResultsBinding>(ActivityQrResul
private var scanType: String = ""
private var qrString = ""
private var tempImagePath: String = ""
private var qrTitle: String = ""
@SuppressLint("SetTextI18n")
override fun initView() {
......@@ -50,8 +54,6 @@ class QrResultsActivity : BaseActivity<ActivityQrResultsBinding>(ActivityQrResul
val data = intent.extras?.getString("data") ?: ""
title = ""
when (scanType) {
KEY_WHATSAPP -> {
bean = Gson().fromJson(data, WhatsappUIBean::class.java)
......@@ -59,6 +61,7 @@ class QrResultsActivity : BaseActivity<ActivityQrResultsBinding>(ActivityQrResul
binding.ivQrIcon.setImageResource(R.mipmap.h_whatsapp)
binding.tvQrTypeTitle.text = "Whatsapp"
title = "Phone number:"
createNormalContent()
}
KEY_FACEBOOK -> {
......@@ -67,6 +70,7 @@ class QrResultsActivity : BaseActivity<ActivityQrResultsBinding>(ActivityQrResul
binding.ivQrIcon.setImageResource(R.mipmap.h_facebook)
binding.tvQrTypeTitle.text = "Facebook"
title = "Content:"
createNormalContent()
}
KEY_INSTAGRAM -> {
......@@ -75,6 +79,7 @@ class QrResultsActivity : BaseActivity<ActivityQrResultsBinding>(ActivityQrResul
binding.ivQrIcon.setImageResource(R.mipmap.h_instagram)
binding.tvQrTypeTitle.text = "Instagram"
title = "Content:"
createNormalContent()
}
KEY_X -> {
......@@ -82,29 +87,59 @@ class QrResultsActivity : BaseActivity<ActivityQrResultsBinding>(ActivityQrResul
qrString = (bean as XUIBean).createXUIBeanQrString()
binding.ivQrIcon.setImageResource(R.mipmap.h_x)
binding.tvQrTypeTitle.text = "X"
title = "Content:"
}
qrTitle = "Content:"
createNormalContent()
}
binding.tvTime.text = System.currentTimeMillis().toFormatTime6()
val ss = SpannableStringBuilder("$title$qrString")
KEY_SPOTIFY -> {
bean = Gson().fromJson(data, SpotifyUIBean::class.java)
qrString = (bean as SpotifyUIBean).createSpotifyQrString()
binding.ivQrIcon.setImageResource(R.mipmap.h_spotify)
binding.tvQrTypeTitle.text = "Spotify"
val ss = SpannableStringBuilder("Singer Name:${(bean as SpotifyUIBean).singerName}")
ss.setSpan(
ForegroundColorSpan(Color.parseColor("#666666")), // 设置颜色为红色
ForegroundColorSpan(Color.parseColor("#666666")),
0, // 开始位置
title.length, // 结束位置
"Singer Name:".length, // 结束位置
Spanned.SPAN_INCLUSIVE_INCLUSIVE
)
ss.setSpan(
ForegroundColorSpan(Color.BLACK), // 设置颜色为黑色
title.length, // 开始位置
"Singer Name:".length, // 开始位置
ss.length, // 结束位置
Spanned.SPAN_INCLUSIVE_INCLUSIVE
)
binding.tvQrContent.text = ss
binding.tvQrContent.append("\n")
val ss2 = SpannableStringBuilder("Song:${(bean as SpotifyUIBean).song}")
ss2.setSpan(
ForegroundColorSpan(Color.parseColor("#666666")),
0, // 开始位置
"Song:".length, // 结束位置
Spanned.SPAN_INCLUSIVE_INCLUSIVE
)
ss2.setSpan(
ForegroundColorSpan(Color.BLACK), // 设置颜色为黑色
"Song:".length, // 开始位置
ss2.length, // 结束位置
Spanned.SPAN_INCLUSIVE_INCLUSIVE
)
binding.tvQrContent.append(ss2)
}
}
binding.tvTime.text = System.currentTimeMillis().toFormatTime6()
Thread {
LogEx.logDebug(TAG, "messageQrString=$qrString")
val bitmap = generateQRCode(qrString, 735, 735, 2)
......@@ -129,6 +164,26 @@ class QrResultsActivity : BaseActivity<ActivityQrResultsBinding>(ActivityQrResul
}
}
private fun createNormalContent() {
val ss = SpannableStringBuilder("$qrTitle$qrString")
ss.setSpan(
ForegroundColorSpan(Color.parseColor("#666666")), // 设置颜色为红色
0, // 开始位置
qrTitle.length, // 结束位置
Spanned.SPAN_INCLUSIVE_INCLUSIVE
)
ss.setSpan(
ForegroundColorSpan(Color.BLACK), // 设置颜色为黑色
qrTitle.length, // 开始位置
ss.length, // 结束位置
Spanned.SPAN_INCLUSIVE_INCLUSIVE
)
binding.tvQrContent.text = ss
}
@SuppressLint("SetTextI18n")
override fun initListener() {
super.initListener()
......
......@@ -24,6 +24,7 @@ import com.base.scanqrclear.bean.FacebookUIBean.Companion.createFaceBookUIBean
import com.base.scanqrclear.bean.FacebookUIBean.Companion.isFacebookQR
import com.base.scanqrclear.bean.FunctionUIBean.Companion.KEY_FACEBOOK
import com.base.scanqrclear.bean.FunctionUIBean.Companion.KEY_INSTAGRAM
import com.base.scanqrclear.bean.FunctionUIBean.Companion.KEY_SPOTIFY
import com.base.scanqrclear.bean.FunctionUIBean.Companion.KEY_WHATSAPP
import com.base.scanqrclear.bean.FunctionUIBean.Companion.KEY_X
import com.base.scanqrclear.bean.InstagramUIBean.Companion.createInstagramUIBean
......@@ -33,6 +34,8 @@ import com.base.scanqrclear.bean.MessageUIBean.Companion.isMessageQR
import com.base.scanqrclear.bean.ProductUIBean
import com.base.scanqrclear.bean.ScanBean
import com.base.scanqrclear.bean.ScanBean.Companion.CREATE_TYPE_SCAN
import com.base.scanqrclear.bean.SpotifyUIBean.Companion.createSpotifyUIBean
import com.base.scanqrclear.bean.SpotifyUIBean.Companion.isSpotifyQR
import com.base.scanqrclear.bean.TelephoneUIBean.Companion.createTelephoneBean
import com.base.scanqrclear.bean.TelephoneUIBean.Companion.isTelephoneQR
import com.base.scanqrclear.bean.TextUIBean
......@@ -360,7 +363,6 @@ class ScanFragment : BaseFragment<FragmentScanBinding>(FragmentScanBinding::infl
if (isXUIBeanQR(qrCodeValue)) {
if (scanJump.get()) return
scanJump.set(true)
AdsMgr.showInsert(activity, true, object : AdsShowCallBack() {
override fun close(where: Int) {
jumpQrResultsActivity(activity, qrCodeValue, KEY_X)
......@@ -374,7 +376,24 @@ class ScanFragment : BaseFragment<FragmentScanBinding>(FragmentScanBinding::infl
jumpQrResultsActivity(activity, qrCodeValue, KEY_X)
}
})
return
}
if (isSpotifyQR(qrCodeValue)) {
if (scanJump.get()) return
scanJump.set(true)
AdsMgr.showInsert(activity, true, object : AdsShowCallBack() {
override fun close(where: Int) {
jumpQrResultsActivity(activity, qrCodeValue, KEY_SPOTIFY)
}
override fun failed(where: Int) {
jumpQrResultsActivity(activity, qrCodeValue, KEY_SPOTIFY)
}
override fun googleFailed(where: Int) {
jumpQrResultsActivity(activity, qrCodeValue, KEY_SPOTIFY)
}
})
return
}
......@@ -408,6 +427,7 @@ class ScanFragment : BaseFragment<FragmentScanBinding>(FragmentScanBinding::infl
KEY_FACEBOOK -> createFaceBookUIBean(qrCodeValue)
KEY_INSTAGRAM -> createInstagramUIBean(qrCodeValue)
KEY_X -> createXUIBean(qrCodeValue)
KEY_SPOTIFY -> createSpotifyUIBean(qrCodeValue)
else -> ScanBean()
}
bean.needCreate = true
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment