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
e6cde5d5
Commit
e6cde5d5
authored
Feb 27, 2025
by
wanglei
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
...
parent
d62a59ba
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
110 additions
and
1 deletion
+110
-1
QrResultsActivity.kt
...rc/main/java/com/base/scanqrclear/qr/QrResultsActivity.kt
+102
-0
activity_qr_results.xml
app/src/main/res/layout/activity_qr_results.xml
+8
-1
No files found.
app/src/main/java/com/base/scanqrclear/qr/QrResultsActivity.kt
View file @
e6cde5d5
package
com.base.scanqrclear.qr
package
com.base.scanqrclear.qr
import
android.annotation.SuppressLint
import
android.annotation.SuppressLint
import
android.content.ActivityNotFoundException
import
android.content.Intent
import
android.graphics.Bitmap
import
android.graphics.Bitmap
import
android.graphics.Color
import
android.graphics.Color
import
android.net.Uri
import
android.text.SpannableStringBuilder
import
android.text.SpannableStringBuilder
import
android.text.Spanned
import
android.text.Spanned
import
android.text.style.ForegroundColorSpan
import
android.text.style.ForegroundColorSpan
import
android.view.View
import
android.view.View
import
android.widget.Toast
import
androidx.activity.addCallback
import
androidx.activity.addCallback
import
androidx.core.view.isVisible
import
androidx.core.view.isVisible
import
androidx.core.view.updatePadding
import
androidx.core.view.updatePadding
import
androidx.lifecycle.ViewModelProvider
import
com.base.scanqrclear.R
import
com.base.scanqrclear.R
import
com.base.scanqrclear.ads.AdsMgr
import
com.base.scanqrclear.ads.AdsMgr
import
com.base.scanqrclear.ads.AdsShowCallBack
import
com.base.scanqrclear.base.BaseActivity
import
com.base.scanqrclear.base.BaseActivity
import
com.base.scanqrclear.bean.AddressUIBean
import
com.base.scanqrclear.bean.AddressUIBean
import
com.base.scanqrclear.bean.AddressUIBean.Companion.createAddressUIBeanQrString
import
com.base.scanqrclear.bean.AddressUIBean.Companion.createAddressUIBeanQrString
...
@@ -40,15 +46,24 @@ import com.base.scanqrclear.bean.XUIBean
...
@@ -40,15 +46,24 @@ import com.base.scanqrclear.bean.XUIBean
import
com.base.scanqrclear.bean.XUIBean.Companion.createXUIBeanQrString
import
com.base.scanqrclear.bean.XUIBean.Companion.createXUIBeanQrString
import
com.base.scanqrclear.bean.YoutubeUIBean
import
com.base.scanqrclear.bean.YoutubeUIBean
import
com.base.scanqrclear.bean.YoutubeUIBean.Companion.createYoutubeQrString
import
com.base.scanqrclear.bean.YoutubeUIBean.Companion.createYoutubeQrString
import
com.base.scanqrclear.bean.config.AdConfigBean
import
com.base.scanqrclear.databinding.ActivityQrResultsBinding
import
com.base.scanqrclear.databinding.ActivityQrResultsBinding
import
com.base.scanqrclear.ui.vm.QrViewModel
import
com.base.scanqrclear.ui.widget.HintDialog.showHintDialog
import
com.base.scanqrclear.ui.widget.InputNameDialog.showInputNameDialog
import
com.base.scanqrclear.utils.BarUtils
import
com.base.scanqrclear.utils.BarUtils
import
com.base.scanqrclear.utils.BitmapUtils.saveBitmapToFile
import
com.base.scanqrclear.utils.BitmapUtils.saveBitmapToFile
import
com.base.scanqrclear.utils.KotlinExt.toFormatTime6
import
com.base.scanqrclear.utils.KotlinExt.toFormatTime6
import
com.base.scanqrclear.utils.LogEx
import
com.base.scanqrclear.utils.LogEx
import
com.base.scanqrclear.ui.widget.OpenFoodDialog.showOpenFoodDialog
import
com.base.scanqrclear.ui.widget.OpenFoodDialog.showOpenFoodDialog
import
com.base.scanqrclear.utils.ClipboardUtils.copyText
import
com.base.scanqrclear.utils.IntentUtils.intentSendEmail
import
com.base.scanqrclear.utils.IntentUtils.intentShareText
import
com.base.scanqrclear.utils.IntentUtils.intentViewHttp
import
com.base.scanqrclear.utils.QRCodeUtils.generateEAN13Barcode
import
com.base.scanqrclear.utils.QRCodeUtils.generateEAN13Barcode
import
com.base.scanqrclear.utils.QRCodeUtils.generateEAN8Barcode
import
com.base.scanqrclear.utils.QRCodeUtils.generateEAN8Barcode
import
com.base.scanqrclear.utils.QRCodeUtils.generateQRCode
import
com.base.scanqrclear.utils.QRCodeUtils.generateQRCode
import
com.base.scanqrclear.utils.ToastUtils.toast
import
com.bumptech.glide.Glide
import
com.bumptech.glide.Glide
import
com.google.gson.Gson
import
com.google.gson.Gson
import
com.gyf.immersionbar.ktx.immersionBar
import
com.gyf.immersionbar.ktx.immersionBar
...
@@ -62,6 +77,10 @@ class QrResultsActivity : BaseActivity<ActivityQrResultsBinding>(ActivityQrResul
...
@@ -62,6 +77,10 @@ class QrResultsActivity : BaseActivity<ActivityQrResultsBinding>(ActivityQrResul
private
var
tempImagePath
:
String
=
""
private
var
tempImagePath
:
String
=
""
private
var
qrTitle
:
String
=
""
private
var
qrTitle
:
String
=
""
private
val
viewModel
by
lazy
(
LazyThreadSafetyMode
.
NONE
)
{
ViewModelProvider
(
this
)[
QrViewModel
::
class
.
java
]
}
@SuppressLint
(
"SetTextI18n"
)
@SuppressLint
(
"SetTextI18n"
)
override
fun
initView
()
{
override
fun
initView
()
{
super
.
initView
()
super
.
initView
()
...
@@ -328,6 +347,89 @@ class QrResultsActivity : BaseActivity<ActivityQrResultsBinding>(ActivityQrResul
...
@@ -328,6 +347,89 @@ class QrResultsActivity : BaseActivity<ActivityQrResultsBinding>(ActivityQrResul
binding
.
tvSeeMore
.
setOnClickListener
{
binding
.
tvSeeMore
.
setOnClickListener
{
showOpenFoodDialog
(
bean
as
OpenFoodBean
)
showOpenFoodDialog
(
bean
as
OpenFoodBean
)
}
}
arrayOf
(
binding
.
llSaveImage1
,
binding
.
llSaveImage2
).
forEach
{
it
.
setOnClickListener
{
if
(
AdConfigBean
.
adsConfigBean
.
functionUseShowAd
)
{
AdsMgr
.
showInsert
(
this
,
true
,
object
:
AdsShowCallBack
()
{
override
fun
close
(
where
:
Int
)
{
useDownload
()
}
override
fun
failed
(
where
:
Int
)
{
useDownload
()
}
override
fun
googleFailed
(
where
:
Int
)
{
useDownload
()
}
})
}
else
{
useDownload
()
}
}
}
arrayOf
(
binding
.
llCopy1
,
binding
.
llCopy2
).
forEach
{
it
.
setOnClickListener
{
copyText
(
TAG
,
qrString
)
toast
(
"Copied to clipboard"
,
true
)
}
}
arrayOf
(
binding
.
llWebSearch1
,
binding
.
llWebSearch2
).
forEach
{
it
.
setOnClickListener
{
if
(
AdConfigBean
.
adsConfigBean
.
functionUseShowAd
)
{
AdsMgr
.
showInsert
(
this
,
true
,
object
:
AdsShowCallBack
()
{
override
fun
close
(
where
:
Int
)
{
useSearch
()
}
override
fun
failed
(
where
:
Int
)
{
useSearch
()
}
override
fun
googleFailed
(
where
:
Int
)
{
useSearch
()
}
})
}
else
{
useSearch
()
}
}
}
binding
.
ivShare
.
setOnClickListener
{
val
intent
=
intentShareText
(
qrString
)
runCatching
{
startActivity
(
intent
)
}
}
binding
.
ivDelete
.
setOnClickListener
{
showHintDialog
{
viewModel
.
deleteScanBean
(
scanType
,
bean
)
finishToMainTop
()
}
}
}
fun
useDownload
()
{
kotlin
.
runCatching
{
val
newName
=
File
(
tempImagePath
).
name
showInputNameDialog
(
newName
)
{
name
->
viewModel
.
copyFileToDownloads
(
this
,
name
,
tempImagePath
)
}
}
}
fun
useSearch
()
{
val
intent
=
Intent
(
Intent
.
ACTION_VIEW
)
intent
.
setData
(
Uri
.
parse
(
"https://www.google.com/search?q=${qrString}"
))
try
{
startActivity
(
intent
)
}
catch
(
e
:
ActivityNotFoundException
)
{
toast
(
""
)
Toast
.
makeText
(
this
,
"No application was found to handle the search request"
,
Toast
.
LENGTH_SHORT
).
show
()
}
}
}
override
fun
configSystemBar
()
{
override
fun
configSystemBar
()
{
...
...
app/src/main/res/layout/activity_qr_results.xml
View file @
e6cde5d5
...
@@ -87,7 +87,8 @@
...
@@ -87,7 +87,8 @@
android:layout_marginTop=
"10dp"
android:layout_marginTop=
"10dp"
android:visibility=
"gone"
android:visibility=
"gone"
app:cardCornerRadius=
"5dp"
app:cardCornerRadius=
"5dp"
app:cardElevation=
"0dp"
>
app:cardElevation=
"0dp"
tools:visibility=
"visible"
>
<androidx.constraintlayout.widget.ConstraintLayout
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
...
@@ -167,6 +168,7 @@
...
@@ -167,6 +168,7 @@
tools:ignore=
"DisableBaselineAlignment"
>
tools:ignore=
"DisableBaselineAlignment"
>
<LinearLayout
<LinearLayout
android:id=
"@+id/llSaveImage1"
android:layout_width=
"0dp"
android:layout_width=
"0dp"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_weight=
"1"
android:layout_weight=
"1"
...
@@ -192,6 +194,7 @@
...
@@ -192,6 +194,7 @@
</LinearLayout>
</LinearLayout>
<LinearLayout
<LinearLayout
android:id=
"@+id/llCopy1"
android:layout_width=
"0dp"
android:layout_width=
"0dp"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_weight=
"1"
android:layout_weight=
"1"
...
@@ -217,6 +220,7 @@
...
@@ -217,6 +220,7 @@
</LinearLayout>
</LinearLayout>
<LinearLayout
<LinearLayout
android:id=
"@+id/llWebSearch1"
android:layout_width=
"0dp"
android:layout_width=
"0dp"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_weight=
"1"
android:layout_weight=
"1"
...
@@ -385,6 +389,7 @@
...
@@ -385,6 +389,7 @@
tools:ignore=
"DisableBaselineAlignment"
>
tools:ignore=
"DisableBaselineAlignment"
>
<LinearLayout
<LinearLayout
android:id=
"@+id/llSaveImage2"
android:layout_width=
"0dp"
android:layout_width=
"0dp"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_weight=
"1"
android:layout_weight=
"1"
...
@@ -410,6 +415,7 @@
...
@@ -410,6 +415,7 @@
</LinearLayout>
</LinearLayout>
<LinearLayout
<LinearLayout
android:id=
"@+id/llCopy2"
android:layout_width=
"0dp"
android:layout_width=
"0dp"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_weight=
"1"
android:layout_weight=
"1"
...
@@ -435,6 +441,7 @@
...
@@ -435,6 +441,7 @@
</LinearLayout>
</LinearLayout>
<LinearLayout
<LinearLayout
android:id=
"@+id/llWebSearch2"
android:layout_width=
"0dp"
android:layout_width=
"0dp"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_weight=
"1"
android:layout_weight=
"1"
...
...
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