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
import android.view.View
import android.view.ViewGroup
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.FunctionUIBean.Companion.KEY_CONTACT
import com.base.scanqr.bean.FunctionUIBean.Companion.KEY_EMAIL
......@@ -20,12 +22,14 @@ import com.base.scanqr.bean.ScanBean
import com.base.scanqr.bean.TextUIBean
import com.base.scanqr.bean.WebsiteUIBean
import com.base.scanqr.bean.WifiUIBean
import com.base.scanqr.databinding.ItemAdBinding
import com.base.scanqr.databinding.ItemHistoryBinding
import com.base.scanqr.ui.adapter.CommonViewHolder
import com.base.scanqr.utils.DateUtils.formatTimeAgo
import com.base.scanqr.utils.LogEx
import com.base.scanqr.utils.XmlEx.inflate
import com.chad.library.adapter4.BaseQuickAdapter
import com.google.android.gms.ads.nativead.NativeAd
class HistoryAdapter : BaseQuickAdapter<ScanBean, CommonViewHolder>() {
......@@ -35,6 +39,21 @@ class HistoryAdapter : BaseQuickAdapter<ScanBean, CommonViewHolder>() {
override fun onBindViewHolder(holder: CommonViewHolder, position: Int, item: ScanBean?) {
item ?: return
if (item.scanType == "AD") {
val binding = ItemAdBinding.bind(holder.itemView)
if (item is AdScanBean) {
if (item.ad == null) {
AdsMgr.showNative(binding.flAd, R.layout.layout_admob_item, nativeCallBack = { ad ->
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) {
......@@ -96,8 +115,15 @@ class HistoryAdapter : BaseQuickAdapter<ScanBean, CommonViewHolder>() {
itemClick?.invoke(item)
}
}
}
override fun getItemViewType(position: Int, list: List<ScanBean>): Int {
val item = list[position]
return if (item.scanType == "AD") 0 else 1
}
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
import androidx.lifecycle.ViewModelProvider
import com.base.scanqr.R
import com.base.scanqr.base.BaseFragment
import com.base.scanqr.bean.AdScanBean
import com.base.scanqr.bean.FunctionUIBean
import com.base.scanqr.bean.ScanBean
import com.base.scanqr.databinding.FragmentHistoryBinding
......@@ -166,7 +167,11 @@ class HistoryFragment : BaseFragment<FragmentHistoryBinding>(FragmentHistoryBind
val qrState = if (isCreateOrScan) 0 else 1
val createList = viewModel.historyList.filter { it.createType == qrState }
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()) {
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"?>
<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"
android:layout_width="match_parent"
android:layout_height="62dp"
android:layout_marginHorizontal="16dp"
android:layout_marginVertical="8dp">
android:layout_marginVertical="8dp"
app:cardBackgroundColor="@color/white"
app:cardCornerRadius="10dp">
<LinearLayout
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