Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Sign in / Register
Toggle navigation
S
scanqrwhite2copy1
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Packages
Packages
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wanglei
scanqrwhite2copy1
Commits
446fc55e
Commit
446fc55e
authored
Feb 19, 2025
by
wanglei
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
...
parent
de79c5a2
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
111 additions
and
20 deletions
+111
-20
SpotifyUIBean.kt
app/src/main/java/com/base/scanqrclear/bean/SpotifyUIBean.kt
+16
-0
QrResultsActivity.kt
...rc/main/java/com/base/scanqrclear/qr/QrResultsActivity.kt
+74
-19
ScanFragment.kt
...rc/main/java/com/base/scanqrclear/ui/main/ScanFragment.kt
+21
-1
No files found.
app/src/main/java/com/base/scanqrclear/bean/SpotifyUIBean.kt
View file @
446fc55e
...
@@ -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"
...
...
app/src/main/java/com/base/scanqrclear/qr/QrResultsActivity.kt
View file @
446fc55e
...
@@ -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
()
...
...
app/src/main/java/com/base/scanqrclear/ui/main/ScanFragment.kt
View file @
446fc55e
...
@@ -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
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment