Commit e6cde5d5 authored by wanglei's avatar wanglei

...

parent d62a59ba
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() {
......
...@@ -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"
......
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