Commit e6cde5d5 authored by wanglei's avatar wanglei

...

parent d62a59ba
package com.base.scanqrclear.qr
import android.annotation.SuppressLint
import android.content.ActivityNotFoundException
import android.content.Intent
import android.graphics.Bitmap
import android.graphics.Color
import android.net.Uri
import android.text.SpannableStringBuilder
import android.text.Spanned
import android.text.style.ForegroundColorSpan
import android.view.View
import android.widget.Toast
import androidx.activity.addCallback
import androidx.core.view.isVisible
import androidx.core.view.updatePadding
import androidx.lifecycle.ViewModelProvider
import com.base.scanqrclear.R
import com.base.scanqrclear.ads.AdsMgr
import com.base.scanqrclear.ads.AdsShowCallBack
import com.base.scanqrclear.base.BaseActivity
import com.base.scanqrclear.bean.AddressUIBean
import com.base.scanqrclear.bean.AddressUIBean.Companion.createAddressUIBeanQrString
......@@ -40,15 +46,24 @@ import com.base.scanqrclear.bean.XUIBean
import com.base.scanqrclear.bean.XUIBean.Companion.createXUIBeanQrString
import com.base.scanqrclear.bean.YoutubeUIBean
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.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.BitmapUtils.saveBitmapToFile
import com.base.scanqrclear.utils.KotlinExt.toFormatTime6
import com.base.scanqrclear.utils.LogEx
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.generateEAN8Barcode
import com.base.scanqrclear.utils.QRCodeUtils.generateQRCode
import com.base.scanqrclear.utils.ToastUtils.toast
import com.bumptech.glide.Glide
import com.google.gson.Gson
import com.gyf.immersionbar.ktx.immersionBar
......@@ -62,6 +77,10 @@ class QrResultsActivity : BaseActivity<ActivityQrResultsBinding>(ActivityQrResul
private var tempImagePath: String = ""
private var qrTitle: String = ""
private val viewModel by lazy(LazyThreadSafetyMode.NONE) {
ViewModelProvider(this)[QrViewModel::class.java]
}
@SuppressLint("SetTextI18n")
override fun initView() {
super.initView()
......@@ -328,6 +347,89 @@ class QrResultsActivity : BaseActivity<ActivityQrResultsBinding>(ActivityQrResul
binding.tvSeeMore.setOnClickListener {
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() {
......
......@@ -87,7 +87,8 @@
android:layout_marginTop="10dp"
android:visibility="gone"
app:cardCornerRadius="5dp"
app:cardElevation="0dp">
app:cardElevation="0dp"
tools:visibility="visible">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
......@@ -167,6 +168,7 @@
tools:ignore="DisableBaselineAlignment">
<LinearLayout
android:id="@+id/llSaveImage1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
......@@ -192,6 +194,7 @@
</LinearLayout>
<LinearLayout
android:id="@+id/llCopy1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
......@@ -217,6 +220,7 @@
</LinearLayout>
<LinearLayout
android:id="@+id/llWebSearch1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
......@@ -385,6 +389,7 @@
tools:ignore="DisableBaselineAlignment">
<LinearLayout
android:id="@+id/llSaveImage2"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
......@@ -410,6 +415,7 @@
</LinearLayout>
<LinearLayout
android:id="@+id/llCopy2"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
......@@ -435,6 +441,7 @@
</LinearLayout>
<LinearLayout
android:id="@+id/llWebSearch2"
android:layout_width="0dp"
android:layout_height="wrap_content"
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