Commit cbbc19f0 authored by wanglei's avatar wanglei

...

parent ec4f099c
package com.base.scanqr.bean
import com.google.android.gms.ads.nativead.NativeAd
class AdScanBean : ScanBean("AD") {
var ad: NativeAd? = null
}
\ No newline at end of file
...@@ -4,6 +4,8 @@ import android.content.Context ...@@ -4,6 +4,8 @@ import android.content.Context
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import com.base.scanqr.R import com.base.scanqr.R
import com.base.scanqr.ads.AdsMgr
import com.base.scanqr.bean.AdScanBean
import com.base.scanqr.bean.EmailUIBean import com.base.scanqr.bean.EmailUIBean
import com.base.scanqr.bean.FunctionUIBean.Companion.KEY_CONTACT import com.base.scanqr.bean.FunctionUIBean.Companion.KEY_CONTACT
import com.base.scanqr.bean.FunctionUIBean.Companion.KEY_EMAIL import com.base.scanqr.bean.FunctionUIBean.Companion.KEY_EMAIL
...@@ -20,12 +22,14 @@ import com.base.scanqr.bean.ScanBean ...@@ -20,12 +22,14 @@ import com.base.scanqr.bean.ScanBean
import com.base.scanqr.bean.TextUIBean import com.base.scanqr.bean.TextUIBean
import com.base.scanqr.bean.WebsiteUIBean import com.base.scanqr.bean.WebsiteUIBean
import com.base.scanqr.bean.WifiUIBean import com.base.scanqr.bean.WifiUIBean
import com.base.scanqr.databinding.ItemAdBinding
import com.base.scanqr.databinding.ItemHistoryBinding import com.base.scanqr.databinding.ItemHistoryBinding
import com.base.scanqr.ui.adapter.CommonViewHolder import com.base.scanqr.ui.adapter.CommonViewHolder
import com.base.scanqr.utils.DateUtils.formatTimeAgo import com.base.scanqr.utils.DateUtils.formatTimeAgo
import com.base.scanqr.utils.LogEx import com.base.scanqr.utils.LogEx
import com.base.scanqr.utils.XmlEx.inflate import com.base.scanqr.utils.XmlEx.inflate
import com.chad.library.adapter4.BaseQuickAdapter import com.chad.library.adapter4.BaseQuickAdapter
import com.google.android.gms.ads.nativead.NativeAd
class HistoryAdapter : BaseQuickAdapter<ScanBean, CommonViewHolder>() { class HistoryAdapter : BaseQuickAdapter<ScanBean, CommonViewHolder>() {
...@@ -35,69 +39,91 @@ class HistoryAdapter : BaseQuickAdapter<ScanBean, CommonViewHolder>() { ...@@ -35,69 +39,91 @@ class HistoryAdapter : BaseQuickAdapter<ScanBean, CommonViewHolder>() {
override fun onBindViewHolder(holder: CommonViewHolder, position: Int, item: ScanBean?) { override fun onBindViewHolder(holder: CommonViewHolder, position: Int, item: ScanBean?) {
item ?: return item ?: return
val binding = ItemHistoryBinding.bind(holder.itemView) if (item.scanType == "AD") {
LogEx.logDebug(TAG, "item.scanType=${item.scanType}") val binding = ItemAdBinding.bind(holder.itemView)
when (item.scanType) { if (item is AdScanBean) {
KEY_WIFI -> { if (item.ad == null) {
if (item is WifiUIBean) { AdsMgr.showNative(binding.flAd, R.layout.layout_admob_item, nativeCallBack = { ad ->
binding.ivIcon.setImageResource(R.mipmap.h_wifi) if (ad is NativeAd) {
LogEx.logDebug(TAG, "ad is NativeAd")
item.ad = ad
}
})
} else {
item.ad?.let { binding.flAd.setNativeAd(it, R.layout.layout_admob_item) }
} }
} }
} else {
val binding = ItemHistoryBinding.bind(holder.itemView)
LogEx.logDebug(TAG, "item.scanType=${item.scanType}")
when (item.scanType) {
KEY_WIFI -> {
if (item is WifiUIBean) {
binding.ivIcon.setImageResource(R.mipmap.h_wifi)
}
}
KEY_TEXT -> { KEY_TEXT -> {
if (item is TextUIBean) { if (item is TextUIBean) {
binding.ivIcon.setImageResource(R.mipmap.h_text) binding.ivIcon.setImageResource(R.mipmap.h_text)
}
} }
}
KEY_EMAIL -> { KEY_EMAIL -> {
if (item is EmailUIBean) { if (item is EmailUIBean) {
binding.ivIcon.setImageResource(R.mipmap.h_email) binding.ivIcon.setImageResource(R.mipmap.h_email)
}
} }
}
KEY_EVENT -> { KEY_EVENT -> {
} }
KEY_CONTACT -> { KEY_CONTACT -> {
} }
KEY_WEBSITE -> { KEY_WEBSITE -> {
if (item is WebsiteUIBean) { if (item is WebsiteUIBean) {
binding.ivIcon.setImageResource(R.mipmap.h_website) binding.ivIcon.setImageResource(R.mipmap.h_website)
}
} }
}
KEY_LOCATION -> { KEY_LOCATION -> {
} }
KEY_TELEPHONE -> { KEY_TELEPHONE -> {
} }
KEY_MESSAGE -> {} KEY_MESSAGE -> {}
KEY_PRODUCT -> { KEY_PRODUCT -> {
if (item is ProductUIBean) { if (item is ProductUIBean) {
binding.ivIcon.setImageResource(R.mipmap.h_product) binding.ivIcon.setImageResource(R.mipmap.h_product)
}
} }
}
}
binding.tvDesc.text = item.listContent
binding.tvTime.text = formatTimeAgo(item.createTime)
binding.flMore.setOnClickListener {
moreAction?.invoke(it, item)
}
binding.root.setOnClickListener {
itemClick?.invoke(item)
}
} }
binding.tvDesc.text = item.listContent }
binding.tvTime.text = formatTimeAgo(item.createTime)
binding.flMore.setOnClickListener { override fun getItemViewType(position: Int, list: List<ScanBean>): Int {
moreAction?.invoke(it, item) val item = list[position]
} return if (item.scanType == "AD") 0 else 1
binding.root.setOnClickListener {
itemClick?.invoke(item)
}
} }
override fun onCreateViewHolder(context: Context, parent: ViewGroup, viewType: Int): CommonViewHolder { override fun onCreateViewHolder(context: Context, parent: ViewGroup, viewType: Int): CommonViewHolder {
return CommonViewHolder(R.layout.item_history.inflate(parent)) val id = if (viewType == 0) R.layout.item_ad else R.layout.item_history
return CommonViewHolder(id.inflate(parent))
} }
} }
\ No newline at end of file
...@@ -8,6 +8,7 @@ import androidx.core.view.updatePadding ...@@ -8,6 +8,7 @@ import androidx.core.view.updatePadding
import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.ViewModelProvider
import com.base.scanqr.R import com.base.scanqr.R
import com.base.scanqr.base.BaseFragment import com.base.scanqr.base.BaseFragment
import com.base.scanqr.bean.AdScanBean
import com.base.scanqr.bean.FunctionUIBean import com.base.scanqr.bean.FunctionUIBean
import com.base.scanqr.bean.ScanBean import com.base.scanqr.bean.ScanBean
import com.base.scanqr.databinding.FragmentHistoryBinding import com.base.scanqr.databinding.FragmentHistoryBinding
...@@ -166,7 +167,11 @@ class HistoryFragment : BaseFragment<FragmentHistoryBinding>(FragmentHistoryBind ...@@ -166,7 +167,11 @@ class HistoryFragment : BaseFragment<FragmentHistoryBinding>(FragmentHistoryBind
val qrState = if (isCreateOrScan) 0 else 1 val qrState = if (isCreateOrScan) 0 else 1
val createList = viewModel.historyList.filter { it.createType == qrState } val createList = viewModel.historyList.filter { it.createType == qrState }
binding.llEmpty.isVisible = createList.isEmpty() binding.llEmpty.isVisible = createList.isEmpty()
adapter?.submitList(sortList(createList)) val sortList = sortList(createList).toMutableList()
if (sortList.size > 3) {
sortList.add(3, AdScanBean())
}
adapter?.submitList(sortList)
} }
if (viewModel.dataRefreshFinish.get()) { if (viewModel.dataRefreshFinish.get()) {
uiRefresh.invoke() uiRefresh.invoke()
......
<?xml version="1.0" encoding="utf-8"?>
<com.base.scanqr.ads.NativeParentView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/fl_ad"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="16dp"
android:layout_marginVertical="8dp"
android:background="@drawable/bg_ecf6ff_20"
android:minHeight="133dp">
<io.supercharge.shimmerlayout.ShimmerLayout
android:id="@+id/shimmerLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginHorizontal="16dp"
app:shimmer_angle="25"
app:shimmer_animation_duration="2000"
app:shimmer_auto_start="true"
app:shimmer_color="#33ffffff"
app:shimmer_mask_width="0.2">
<ImageView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@mipmap/czhanweitu"
tools:ignore="ContentDescription,ImageContrastCheck" />
</io.supercharge.shimmerlayout.ShimmerLayout>
</com.base.scanqr.ads.NativeParentView>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<androidx.cardview.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android" <androidx.cardview.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="62dp" android:layout_height="62dp"
android:layout_marginHorizontal="16dp" android:layout_marginHorizontal="16dp"
android:layout_marginVertical="8dp"> android:layout_marginVertical="8dp"
app:cardBackgroundColor="@color/white"
app:cardCornerRadius="10dp">
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
......
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