Commit 446fc55e authored by wanglei's avatar wanglei

...

parent de79c5a2
...@@ -10,6 +10,22 @@ data class SpotifyUIBean( ...@@ -10,6 +10,22 @@ data class SpotifyUIBean(
companion object { 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;唱山歌 // spotify:search:wanglei;唱山歌
fun SpotifyUIBean.createSpotifyQrString(): String { fun SpotifyUIBean.createSpotifyQrString(): String {
return "spotify:search:$singerName;$song" return "spotify:search:$singerName;$song"
......
...@@ -14,11 +14,14 @@ import com.base.scanqrclear.bean.FacebookUIBean ...@@ -14,11 +14,14 @@ import com.base.scanqrclear.bean.FacebookUIBean
import com.base.scanqrclear.bean.FacebookUIBean.Companion.createFacebookQrString 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_FACEBOOK
import com.base.scanqrclear.bean.FunctionUIBean.Companion.KEY_INSTAGRAM 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_WHATSAPP
import com.base.scanqrclear.bean.FunctionUIBean.Companion.KEY_X import com.base.scanqrclear.bean.FunctionUIBean.Companion.KEY_X
import com.base.scanqrclear.bean.InstagramUIBean import com.base.scanqrclear.bean.InstagramUIBean
import com.base.scanqrclear.bean.InstagramUIBean.Companion.createInstagramQrString import com.base.scanqrclear.bean.InstagramUIBean.Companion.createInstagramQrString
import com.base.scanqrclear.bean.ScanBean 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
import com.base.scanqrclear.bean.WhatsappUIBean.Companion.createWhatsappQrString import com.base.scanqrclear.bean.WhatsappUIBean.Companion.createWhatsappQrString
import com.base.scanqrclear.bean.XUIBean import com.base.scanqrclear.bean.XUIBean
...@@ -39,6 +42,7 @@ class QrResultsActivity : BaseActivity<ActivityQrResultsBinding>(ActivityQrResul ...@@ -39,6 +42,7 @@ class QrResultsActivity : BaseActivity<ActivityQrResultsBinding>(ActivityQrResul
private var scanType: String = "" private var scanType: String = ""
private var qrString = "" private var qrString = ""
private var tempImagePath: String = "" private var tempImagePath: String = ""
private var qrTitle: String = ""
@SuppressLint("SetTextI18n") @SuppressLint("SetTextI18n")
override fun initView() { override fun initView() {
...@@ -50,8 +54,6 @@ class QrResultsActivity : BaseActivity<ActivityQrResultsBinding>(ActivityQrResul ...@@ -50,8 +54,6 @@ class QrResultsActivity : BaseActivity<ActivityQrResultsBinding>(ActivityQrResul
val data = intent.extras?.getString("data") ?: "" val data = intent.extras?.getString("data") ?: ""
title = ""
when (scanType) { when (scanType) {
KEY_WHATSAPP -> { KEY_WHATSAPP -> {
bean = Gson().fromJson(data, WhatsappUIBean::class.java) bean = Gson().fromJson(data, WhatsappUIBean::class.java)
...@@ -59,6 +61,7 @@ class QrResultsActivity : BaseActivity<ActivityQrResultsBinding>(ActivityQrResul ...@@ -59,6 +61,7 @@ class QrResultsActivity : BaseActivity<ActivityQrResultsBinding>(ActivityQrResul
binding.ivQrIcon.setImageResource(R.mipmap.h_whatsapp) binding.ivQrIcon.setImageResource(R.mipmap.h_whatsapp)
binding.tvQrTypeTitle.text = "Whatsapp" binding.tvQrTypeTitle.text = "Whatsapp"
title = "Phone number:" title = "Phone number:"
createNormalContent()
} }
KEY_FACEBOOK -> { KEY_FACEBOOK -> {
...@@ -67,6 +70,7 @@ class QrResultsActivity : BaseActivity<ActivityQrResultsBinding>(ActivityQrResul ...@@ -67,6 +70,7 @@ class QrResultsActivity : BaseActivity<ActivityQrResultsBinding>(ActivityQrResul
binding.ivQrIcon.setImageResource(R.mipmap.h_facebook) binding.ivQrIcon.setImageResource(R.mipmap.h_facebook)
binding.tvQrTypeTitle.text = "Facebook" binding.tvQrTypeTitle.text = "Facebook"
title = "Content:" title = "Content:"
createNormalContent()
} }
KEY_INSTAGRAM -> { KEY_INSTAGRAM -> {
...@@ -75,6 +79,7 @@ class QrResultsActivity : BaseActivity<ActivityQrResultsBinding>(ActivityQrResul ...@@ -75,6 +79,7 @@ class QrResultsActivity : BaseActivity<ActivityQrResultsBinding>(ActivityQrResul
binding.ivQrIcon.setImageResource(R.mipmap.h_instagram) binding.ivQrIcon.setImageResource(R.mipmap.h_instagram)
binding.tvQrTypeTitle.text = "Instagram" binding.tvQrTypeTitle.text = "Instagram"
title = "Content:" title = "Content:"
createNormalContent()
} }
KEY_X -> { KEY_X -> {
...@@ -82,28 +87,58 @@ class QrResultsActivity : BaseActivity<ActivityQrResultsBinding>(ActivityQrResul ...@@ -82,28 +87,58 @@ class QrResultsActivity : BaseActivity<ActivityQrResultsBinding>(ActivityQrResul
qrString = (bean as XUIBean).createXUIBeanQrString() qrString = (bean as XUIBean).createXUIBeanQrString()
binding.ivQrIcon.setImageResource(R.mipmap.h_x) binding.ivQrIcon.setImageResource(R.mipmap.h_x)
binding.tvQrTypeTitle.text = "X" binding.tvQrTypeTitle.text = "X"
title = "Content:" qrTitle = "Content:"
createNormalContent()
}
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")),
0, // 开始位置
"Singer Name:".length, // 结束位置
Spanned.SPAN_INCLUSIVE_INCLUSIVE
)
ss.setSpan(
ForegroundColorSpan(Color.BLACK), // 设置颜色为黑色
"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() binding.tvTime.text = System.currentTimeMillis().toFormatTime6()
val ss = SpannableStringBuilder("$title$qrString")
ss.setSpan(
ForegroundColorSpan(Color.parseColor("#666666")), // 设置颜色为红色
0, // 开始位置
title.length, // 结束位置
Spanned.SPAN_INCLUSIVE_INCLUSIVE
)
ss.setSpan(
ForegroundColorSpan(Color.BLACK), // 设置颜色为黑色
title.length, // 开始位置
ss.length, // 结束位置
Spanned.SPAN_INCLUSIVE_INCLUSIVE
)
binding.tvQrContent.text = ss
Thread { Thread {
LogEx.logDebug(TAG, "messageQrString=$qrString") LogEx.logDebug(TAG, "messageQrString=$qrString")
...@@ -129,6 +164,26 @@ class QrResultsActivity : BaseActivity<ActivityQrResultsBinding>(ActivityQrResul ...@@ -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") @SuppressLint("SetTextI18n")
override fun initListener() { override fun initListener() {
super.initListener() super.initListener()
......
...@@ -24,6 +24,7 @@ import com.base.scanqrclear.bean.FacebookUIBean.Companion.createFaceBookUIBean ...@@ -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.FacebookUIBean.Companion.isFacebookQR
import com.base.scanqrclear.bean.FunctionUIBean.Companion.KEY_FACEBOOK 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_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_WHATSAPP
import com.base.scanqrclear.bean.FunctionUIBean.Companion.KEY_X import com.base.scanqrclear.bean.FunctionUIBean.Companion.KEY_X
import com.base.scanqrclear.bean.InstagramUIBean.Companion.createInstagramUIBean import com.base.scanqrclear.bean.InstagramUIBean.Companion.createInstagramUIBean
...@@ -33,6 +34,8 @@ import com.base.scanqrclear.bean.MessageUIBean.Companion.isMessageQR ...@@ -33,6 +34,8 @@ import com.base.scanqrclear.bean.MessageUIBean.Companion.isMessageQR
import com.base.scanqrclear.bean.ProductUIBean import com.base.scanqrclear.bean.ProductUIBean
import com.base.scanqrclear.bean.ScanBean import com.base.scanqrclear.bean.ScanBean
import com.base.scanqrclear.bean.ScanBean.Companion.CREATE_TYPE_SCAN 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.createTelephoneBean
import com.base.scanqrclear.bean.TelephoneUIBean.Companion.isTelephoneQR import com.base.scanqrclear.bean.TelephoneUIBean.Companion.isTelephoneQR
import com.base.scanqrclear.bean.TextUIBean import com.base.scanqrclear.bean.TextUIBean
...@@ -360,7 +363,6 @@ class ScanFragment : BaseFragment<FragmentScanBinding>(FragmentScanBinding::infl ...@@ -360,7 +363,6 @@ class ScanFragment : BaseFragment<FragmentScanBinding>(FragmentScanBinding::infl
if (isXUIBeanQR(qrCodeValue)) { if (isXUIBeanQR(qrCodeValue)) {
if (scanJump.get()) return if (scanJump.get()) return
scanJump.set(true) scanJump.set(true)
AdsMgr.showInsert(activity, true, object : AdsShowCallBack() { AdsMgr.showInsert(activity, true, object : AdsShowCallBack() {
override fun close(where: Int) { override fun close(where: Int) {
jumpQrResultsActivity(activity, qrCodeValue, KEY_X) jumpQrResultsActivity(activity, qrCodeValue, KEY_X)
...@@ -374,7 +376,24 @@ class ScanFragment : BaseFragment<FragmentScanBinding>(FragmentScanBinding::infl ...@@ -374,7 +376,24 @@ class ScanFragment : BaseFragment<FragmentScanBinding>(FragmentScanBinding::infl
jumpQrResultsActivity(activity, qrCodeValue, KEY_X) 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 return
} }
...@@ -408,6 +427,7 @@ class ScanFragment : BaseFragment<FragmentScanBinding>(FragmentScanBinding::infl ...@@ -408,6 +427,7 @@ class ScanFragment : BaseFragment<FragmentScanBinding>(FragmentScanBinding::infl
KEY_FACEBOOK -> createFaceBookUIBean(qrCodeValue) KEY_FACEBOOK -> createFaceBookUIBean(qrCodeValue)
KEY_INSTAGRAM -> createInstagramUIBean(qrCodeValue) KEY_INSTAGRAM -> createInstagramUIBean(qrCodeValue)
KEY_X -> createXUIBean(qrCodeValue) KEY_X -> createXUIBean(qrCodeValue)
KEY_SPOTIFY -> createSpotifyUIBean(qrCodeValue)
else -> ScanBean() else -> ScanBean()
} }
bean.needCreate = true 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