Commit 44b02ca7 authored by wanglei's avatar wanglei

...

parent abcf35a2
...@@ -27,7 +27,9 @@ ...@@ -27,7 +27,9 @@
<activity <activity
android:name=".ui.splash.SplashActivity" android:name=".ui.splash.SplashActivity"
android:exported="true" android:exported="true"
android:launchMode="singleTask"> android:launchMode="singleTask"
android:screenOrientation="portrait"
tools:ignore="DiscouragedApi,LockedOrientationActivity">
<intent-filter> <intent-filter>
<action android:name="android.intent.action.MAIN" /> <action android:name="android.intent.action.MAIN" />
......
...@@ -6,6 +6,7 @@ import android.view.View ...@@ -6,6 +6,7 @@ import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import androidx.recyclerview.widget.RecyclerView.ViewHolder import androidx.recyclerview.widget.RecyclerView.ViewHolder
import com.base.pdfreader2.R import com.base.pdfreader2.R
import com.base.pdfreader2.ads.admob.AdmobNativeUtils
import com.base.pdfreader2.bean.DocumentBean import com.base.pdfreader2.bean.DocumentBean
import com.base.pdfreader2.bean.DocumentBean.Companion.TYPE_EXCEL import com.base.pdfreader2.bean.DocumentBean.Companion.TYPE_EXCEL
import com.base.pdfreader2.bean.DocumentBean.Companion.TYPE_PDF import com.base.pdfreader2.bean.DocumentBean.Companion.TYPE_PDF
...@@ -35,7 +36,7 @@ class DocumentAdapter() : BaseQuickAdapter<DocumentBean, DocumentAdapter.Documen ...@@ -35,7 +36,7 @@ class DocumentAdapter() : BaseQuickAdapter<DocumentBean, DocumentAdapter.Documen
if (item == null) return if (item == null) return
if (item.isAd) { if (item.isAd) {
val binding = ItemAdBinding.bind(holder.itemView) val binding = ItemAdBinding.bind(holder.itemView)
// AdmobNativeUtils.showNativeAd(activity, binding.flAd, R.layout.layout_admob_document) AdmobNativeUtils.showNativeAd(null, binding.flAd, R.layout.layout_admob_document)
} else { } else {
val binding = ItemDocumentBinding.bind(holder.itemView) val binding = ItemDocumentBinding.bind(holder.itemView)
changeIcon(item, binding) changeIcon(item, binding)
......
...@@ -3,11 +3,14 @@ package com.base.pdfreader2.ui.main ...@@ -3,11 +3,14 @@ package com.base.pdfreader2.ui.main
import android.annotation.SuppressLint import android.annotation.SuppressLint
import android.app.Activity import android.app.Activity
import android.content.Intent import android.content.Intent
import android.view.View
import androidx.core.view.isVisible import androidx.core.view.isVisible
import androidx.lifecycle.lifecycleScope import androidx.lifecycle.lifecycleScope
import com.base.pdfreader2.R
import com.base.pdfreader2.ads.AdmobHelper import com.base.pdfreader2.ads.AdmobHelper
import com.base.pdfreader2.ads.AdmobHelper.lastOpenDocumentShowAd import com.base.pdfreader2.ads.AdmobHelper.lastOpenDocumentShowAd
import com.base.pdfreader2.ads.admob.AdmobInterstitialUtils import com.base.pdfreader2.ads.admob.AdmobInterstitialUtils
import com.base.pdfreader2.ads.admob.AdmobNativeUtils
import com.base.pdfreader2.bean.ConstObject import com.base.pdfreader2.bean.ConstObject
import com.base.pdfreader2.bean.DocumentBean import com.base.pdfreader2.bean.DocumentBean
import com.base.pdfreader2.bean.DocumentBean.Companion.TYPE_EXCEL import com.base.pdfreader2.bean.DocumentBean.Companion.TYPE_EXCEL
...@@ -35,7 +38,7 @@ import java.util.Locale ...@@ -35,7 +38,7 @@ import java.util.Locale
class DocumentFragment() : BaseFragment<FragmentDocumentBinding>() { class DocumentFragment() : BaseFragment<FragmentDocumentBinding>() {
private val TAG = "DocumentFragment" private val TAG = "DocumentFragment"
var type = TYPE_PDF var type = TYPE_PDF
private lateinit var adapter: DocumentAdapter private lateinit var adapter: DocumentAdapter
private lateinit var documentPresenter: DocumentPresenter private lateinit var documentPresenter: DocumentPresenter
...@@ -103,6 +106,18 @@ class DocumentFragment() : BaseFragment<FragmentDocumentBinding>() { ...@@ -103,6 +106,18 @@ class DocumentFragment() : BaseFragment<FragmentDocumentBinding>() {
refreshData() refreshData()
} }
private fun getRvAdList(list: List<DocumentBean>): List<DocumentBean> {
val flag = AdmobHelper.isShowRvNativeAd()
if (flag) {
val arrayList = arrayListOf<DocumentBean>()
arrayList.addAll(list)
arrayList.add(1, DocumentBean().apply { isAd = true })
return arrayList
}
return list
}
fun refreshData() { fun refreshData() {
if (isInitialized && !isHidden && isVisible) { if (isInitialized && !isHidden && isVisible) {
val mainActivity = (requireActivity() as MainActivity?) val mainActivity = (requireActivity() as MainActivity?)
...@@ -118,27 +133,39 @@ class DocumentFragment() : BaseFragment<FragmentDocumentBinding>() { ...@@ -118,27 +133,39 @@ class DocumentFragment() : BaseFragment<FragmentDocumentBinding>() {
private fun refreshRecentData() = lifecycleScope.launch(Dispatchers.IO) { private fun refreshRecentData() = lifecycleScope.launch(Dispatchers.IO) {
val list = documentPresenter.getRecentDocument(type) val list = documentPresenter.getRecentDocument(type)
launch(Dispatchers.Main) { launch(Dispatchers.Main) {
binding.llEmpty.isVisible = list.isEmpty() changeRvUI(list)
adapter.submitList(list)
binding.swipeRefreshLayout.isRefreshing = false
} }
} }
private fun refreshBookmarkData() = lifecycleScope.launch(Dispatchers.IO) { private fun refreshBookmarkData() = lifecycleScope.launch(Dispatchers.IO) {
val list = documentPresenter.getBookmarkDocument(type) val list = documentPresenter.getBookmarkDocument(type)
lifecycleScope.launch(Dispatchers.Main) { lifecycleScope.launch(Dispatchers.Main) {
binding.llEmpty.isVisible = list.isEmpty() changeRvUI(list)
binding.swipeRefreshLayout.isRefreshing = false }
adapter.submitList(documentPresenter.sortByMode(list)) }
fun changeRvUI(list: List<DocumentBean>) {
if (list.isEmpty()) {
binding.llEmpty.visibility = View.VISIBLE
binding.swipeRefreshLayout.visibility = View.GONE
val flag = AdmobHelper.isShowRvNativeAd()
if (flag) {
binding.flAd.visibility = View.VISIBLE
AdmobNativeUtils.showNativeAd(requireActivity(), binding.flAd, R.layout.layout_admob_document)
}
} else {
binding.llEmpty.visibility = View.GONE
binding.flAd.visibility = View.GONE
binding.swipeRefreshLayout.visibility = View.VISIBLE
adapter.submitList(getRvAdList(list))
} }
binding.swipeRefreshLayout.isRefreshing = false
} }
private fun refreshAllData() = lifecycleScope.launch(Dispatchers.IO) { private fun refreshAllData() = lifecycleScope.launch(Dispatchers.IO) {
val list = documentPresenter.getAllDocument(type) val list = documentPresenter.getAllDocument(type)
launch(Dispatchers.Main) { launch(Dispatchers.Main) {
binding.llEmpty.isVisible = list.isEmpty() changeRvUI(list)
binding.swipeRefreshLayout.isRefreshing = false
adapter.submitList(documentPresenter.sortByMode(list))
} }
} }
......
...@@ -36,14 +36,14 @@ class DocumentPresenter( ...@@ -36,14 +36,14 @@ class DocumentPresenter(
/** /**
* 获取所有的 * 获取所有的
*/ */
fun getAllDocument(type: String): MutableList<DocumentBean> { fun getAllDocument(type: String, needSort: Boolean = true): List<DocumentBean> {
context.upDateDemoStore() context.upDateDemoStore()
if (!ConstObject.haveSaveDemo) { if (!ConstObject.haveSaveDemo) {
context.saveAssetsFile() context.saveAssetsFile()
ConstObject.haveSaveDemo = true ConstObject.haveSaveDemo = true
} }
when (type) { val list = when (type) {
TYPE_PDF -> { TYPE_PDF -> {
return getPdfData() return getPdfData()
} }
...@@ -60,8 +60,12 @@ class DocumentPresenter( ...@@ -60,8 +60,12 @@ class DocumentPresenter(
return getPptData() return getPptData()
} }
else -> listOf<DocumentBean>()
} }
return mutableListOf() if (needSort) {
return sortByMode(list)
}
return list
} }
/** /**
...@@ -69,7 +73,7 @@ class DocumentPresenter( ...@@ -69,7 +73,7 @@ class DocumentPresenter(
*/ */
fun getRecentDocument(type: String): List<DocumentBean> { fun getRecentDocument(type: String): List<DocumentBean> {
val recentList = SpStringUtils.getSpStringList(LAST_VIEW_KEY) val recentList = SpStringUtils.getSpStringList(LAST_VIEW_KEY)
val list = getAllDocument(type) val list = getAllDocument(type,false)
list.forEach { recentFilter(recentList, it) } list.forEach { recentFilter(recentList, it) }
return list.filter { it.lastViewTime != 0L }.sortedByDescending { it.lastViewTime } return list.filter { it.lastViewTime != 0L }.sortedByDescending { it.lastViewTime }
} }
...@@ -136,7 +140,7 @@ class DocumentPresenter( ...@@ -136,7 +140,7 @@ class DocumentPresenter(
} }
private fun getPdfData(): MutableList<DocumentBean> { private fun getPdfData(): List<DocumentBean> {
val demoDocumentBean = DocumentBean() val demoDocumentBean = DocumentBean()
demoDocumentBean.type = TYPE_PDF demoDocumentBean.type = TYPE_PDF
val demoFile = File(context.filesDir, "demo") val demoFile = File(context.filesDir, "demo")
...@@ -161,7 +165,7 @@ class DocumentPresenter( ...@@ -161,7 +165,7 @@ class DocumentPresenter(
return new return new
} }
private fun getWordData(): MutableList<DocumentBean> { private fun getWordData(): List<DocumentBean> {
val demoDocumentBean = DocumentBean() val demoDocumentBean = DocumentBean()
demoDocumentBean.type = TYPE_WORD demoDocumentBean.type = TYPE_WORD
val demoFile = File(context.filesDir, "demo") val demoFile = File(context.filesDir, "demo")
...@@ -185,7 +189,7 @@ class DocumentPresenter( ...@@ -185,7 +189,7 @@ class DocumentPresenter(
return new return new
} }
private fun getExcelData(): MutableList<DocumentBean> { private fun getExcelData(): List<DocumentBean> {
val demoDocumentBean = DocumentBean() val demoDocumentBean = DocumentBean()
demoDocumentBean.type = TYPE_EXCEL demoDocumentBean.type = TYPE_EXCEL
val demoFile = File(context.filesDir, "demo") val demoFile = File(context.filesDir, "demo")
...@@ -208,7 +212,7 @@ class DocumentPresenter( ...@@ -208,7 +212,7 @@ class DocumentPresenter(
return new return new
} }
private fun getPptData(): MutableList<DocumentBean> { private fun getPptData(): List<DocumentBean> {
val demoDocumentBean = DocumentBean() val demoDocumentBean = DocumentBean()
demoDocumentBean.type = TYPE_PPT demoDocumentBean.type = TYPE_PPT
val demoFile = File(context.filesDir, "demo") val demoFile = File(context.filesDir, "demo")
......
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<stroke
android:width="0.5dp"
android:color="#E5E5E5" />
<solid android:color="@color/white" />
<corners android:radius="10dp" />
</shape>
\ No newline at end of file
...@@ -6,55 +6,68 @@ ...@@ -6,55 +6,68 @@
android:layout_height="match_parent" android:layout_height="match_parent"
tools:context=".ui.main.DocumentFragment"> tools:context=".ui.main.DocumentFragment">
<LinearLayout
<androidx.swiperefreshlayout.widget.SwipeRefreshLayout
android:id="@+id/swipeRefreshLayout"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="wrap_content"
android:background="@color/white"> android:orientation="vertical">
<FrameLayout <FrameLayout
android:id="@+id/fl_ad"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<androidx.swiperefreshlayout.widget.SwipeRefreshLayout
android:id="@+id/swipeRefreshLayout"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content"> android:layout_height="match_parent"
android:background="@color/white">
<androidx.recyclerview.widget.RecyclerView <FrameLayout
android:id="@+id/rv"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="wrap_content">
android:background="@color/white"
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" /> <androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv"
<LinearLayout android:layout_width="match_parent"
android:id="@+id/ll_empty" android:layout_height="match_parent"
android:layout_width="wrap_content" android:background="@color/white"
android:layout_height="wrap_content" app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" />
android:layout_gravity="center"
android:layout_marginBottom="60dp"
android:orientation="vertical" </FrameLayout>
android:visibility="gone"
tools:ignore="UseCompoundDrawables,UselessParent">
</androidx.swiperefreshlayout.widget.SwipeRefreshLayout>
<ImageView
android:layout_width="wrap_content" </LinearLayout>
android:layout_height="wrap_content"
android:src="@mipmap/empty"
tools:ignore="ContentDescription" /> <LinearLayout
android:id="@+id/ll_empty"
<TextView android:layout_width="wrap_content"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:layout_height="wrap_content" android:layout_gravity="center"
android:layout_gravity="center_horizontal" android:layout_marginBottom="60dp"
android:layout_marginTop="20dp" android:orientation="vertical"
android:text="@string/empty" android:visibility="gone"
android:textColor="#B1B4B9" tools:ignore="UseCompoundDrawables,UselessParent">
android:textSize="16sp"
tools:ignore="HardcodedText" /> <ImageView
android:layout_width="wrap_content"
</LinearLayout> android:layout_height="wrap_content"
android:src="@mipmap/empty"
</FrameLayout> tools:ignore="ContentDescription" />
<TextView
</androidx.swiperefreshlayout.widget.SwipeRefreshLayout> android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="20dp"
android:text="@string/empty"
android:textColor="#B1B4B9"
android:textSize="16sp"
tools:ignore="HardcodedText" />
</LinearLayout>
</FrameLayout> </FrameLayout>
\ No newline at end of file
...@@ -12,6 +12,7 @@ ...@@ -12,6 +12,7 @@
android:id="@+id/cl_top" android:id="@+id/cl_top"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="60dp" android:layout_height="60dp"
android:layout_marginTop="36dp"
app:layout_constraintTop_toTopOf="parent"> app:layout_constraintTop_toTopOf="parent">
<TextView <TextView
...@@ -309,7 +310,7 @@ ...@@ -309,7 +310,7 @@
<LinearLayout <LinearLayout
android:id="@+id/ll_manager" android:id="@+id/ll_manager"
android:layout_width="110dp" android:layout_width="110dp"
android:layout_height="86dp" android:layout_height="96dp"
android:orientation="vertical" android:orientation="vertical"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
...@@ -341,7 +342,7 @@ ...@@ -341,7 +342,7 @@
<LinearLayout <LinearLayout
android:id="@+id/ll_scan" android:id="@+id/ll_scan"
android:layout_width="110dp" android:layout_width="110dp"
android:layout_height="86dp" android:layout_height="96dp"
android:layout_marginTop="8dp" android:layout_marginTop="8dp"
android:orientation="vertical" android:orientation="vertical"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
...@@ -374,7 +375,7 @@ ...@@ -374,7 +375,7 @@
<LinearLayout <LinearLayout
android:id="@+id/ll_image_pdf" android:id="@+id/ll_image_pdf"
android:layout_width="110dp" android:layout_width="110dp"
android:layout_height="86dp" android:layout_height="96dp"
android:layout_marginTop="8dp" android:layout_marginTop="8dp"
android:orientation="vertical" android:orientation="vertical"
app:layout_constraintEnd_toEndOf="@id/ll_manager" app:layout_constraintEnd_toEndOf="@id/ll_manager"
...@@ -408,7 +409,7 @@ ...@@ -408,7 +409,7 @@
<LinearLayout <LinearLayout
android:id="@+id/ll_process" android:id="@+id/ll_process"
android:layout_width="110dp" android:layout_width="110dp"
android:layout_height="86dp" android:layout_height="96dp"
android:layout_marginEnd="16dp" android:layout_marginEnd="16dp"
android:orientation="vertical" android:orientation="vertical"
app:layout_constraintEnd_toStartOf="@+id/ll_manager" app:layout_constraintEnd_toStartOf="@+id/ll_manager"
...@@ -440,7 +441,7 @@ ...@@ -440,7 +441,7 @@
<LinearLayout <LinearLayout
android:id="@+id/ll_split" android:id="@+id/ll_split"
android:layout_width="110dp" android:layout_width="110dp"
android:layout_height="86dp" android:layout_height="96dp"
android:layout_marginEnd="16dp" android:layout_marginEnd="16dp"
android:orientation="vertical" android:orientation="vertical"
app:layout_constraintEnd_toStartOf="@id/ll_scan" app:layout_constraintEnd_toStartOf="@id/ll_scan"
...@@ -472,7 +473,7 @@ ...@@ -472,7 +473,7 @@
<LinearLayout <LinearLayout
android:id="@+id/ll_lock" android:id="@+id/ll_lock"
android:layout_width="110dp" android:layout_width="110dp"
android:layout_height="86dp" android:layout_height="96dp"
android:layout_marginStart="16dp" android:layout_marginStart="16dp"
android:orientation="vertical" android:orientation="vertical"
app:layout_constraintStart_toEndOf="@id/ll_scan" app:layout_constraintStart_toEndOf="@id/ll_scan"
...@@ -504,7 +505,7 @@ ...@@ -504,7 +505,7 @@
<LinearLayout <LinearLayout
android:id="@+id/ll_merge" android:id="@+id/ll_merge"
android:layout_width="110dp" android:layout_width="110dp"
android:layout_height="86dp" android:layout_height="96dp"
android:layout_marginStart="16dp" android:layout_marginStart="16dp"
android:orientation="vertical" android:orientation="vertical"
app:layout_constraintStart_toEndOf="@id/ll_manager" app:layout_constraintStart_toEndOf="@id/ll_manager"
...@@ -536,7 +537,7 @@ ...@@ -536,7 +537,7 @@
<LinearLayout <LinearLayout
android:id="@+id/ll_unlock" android:id="@+id/ll_unlock"
android:layout_width="110dp" android:layout_width="110dp"
android:layout_height="86dp" android:layout_height="96dp"
android:layout_marginEnd="16dp" android:layout_marginEnd="16dp"
android:orientation="vertical" android:orientation="vertical"
app:layout_constraintEnd_toStartOf="@id/ll_image_pdf" app:layout_constraintEnd_toStartOf="@id/ll_image_pdf"
......
<com.google.android.gms.ads.nativead.NativeAdView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<FrameLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#F4F5FA">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="99dp"
android:layout_gravity="center"
android:layout_marginHorizontal="10dp"
android:layout_marginVertical="10dp"
android:background="@drawable/bg_stroke_ffffff_10"
android:baselineAligned="false"
tools:ignore="UselessParent">
<com.google.android.gms.ads.nativead.MediaView
android:id="@+id/ad_media"
android:layout_width="86dp"
android:layout_height="64dp"
android:layout_gravity="center_vertical"
android:layout_marginStart="8dp" />
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginHorizontal="8dp"
android:layout_weight="1"
android:orientation="vertical">
<TextView
android:id="@+id/ad_headline"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ellipsize="end"
android:maxLines="2"
android:singleLine="true"
android:textColor="@color/black"
android:textSize="13sp"
android:textStyle="bold"
tools:text="Your Dlgital Bible Guide Hold The Complete Bible In Your Hand a" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:paddingVertical="5dp">
<ImageView
android:id="@+id/ad_app_icon"
android:layout_width="20dp"
android:layout_height="20dp"
android:layout_gravity="center_vertical"
tools:ignore="ContentDescription" />
<TextView
android:id="@+id/ad_body"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_weight="1"
android:ellipsize="end"
android:maxLines="2"
android:singleLine="true"
android:textColor="#999999"
android:textSize="13sp"
tools:text="wuyunbooster" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="| AD"
android:textColor="#999999"
android:textSize="13sp"
tools:ignore="HardcodedText" />
<androidx.appcompat.widget.AppCompatButton
android:id="@+id/ad_call_to_action"
android:layout_width="82dp"
android:layout_height="30dp"
android:layout_gravity="center_vertical"
android:layout_marginHorizontal="12dp"
android:background="@drawable/bg_00b8de_10"
android:gravity="center"
android:maxHeight="28dp"
android:textColor="@color/white"
android:textSize="15sp" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
</FrameLayout>
</com.google.android.gms.ads.nativead.NativeAdView>
\ No newline at end of file
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