Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Sign in / Register
Toggle navigation
B
Browser White
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Packages
Packages
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wanglei
Browser White
Commits
77f632a6
Commit
77f632a6
authored
Sep 04, 2024
by
wanglei
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
...
parent
0f1ded04
Show whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
250 additions
and
44 deletions
+250
-44
AdmobMaxHelper.kt
...src/main/java/com/base/browserwhite/ads/AdmobMaxHelper.kt
+2
-1
AdmobNativeUtils.kt
.../java/com/base/browserwhite/ads/admob/AdmobNativeUtils.kt
+45
-0
NewsBean.kt
app/src/main/java/com/base/browserwhite/bean/NewsBean.kt
+3
-0
MainActivity.kt
...in/java/com/base/browserwhite/ui/activity/MainActivity.kt
+0
-1
NewsAdapter.kt
...ava/com/base/browserwhite/ui/activity/news/NewsAdapter.kt
+53
-37
FileFragment.kt
...in/java/com/base/browserwhite/ui/fragment/FileFragment.kt
+2
-0
HomeFragment.kt
...in/java/com/base/browserwhite/ui/fragment/HomeFragment.kt
+37
-4
bg_storke_9d9d9d_7_5.xml
app/src/main/res/drawable/bg_storke_9d9d9d_7_5.xml
+6
-0
item_news_ad.xml
app/src/main/res/layout/item_news_ad.xml
+2
-1
layout_admob_native_news.xml
app/src/main/res/layout/layout_admob_native_news.xml
+100
-0
No files found.
app/src/main/java/com/base/browserwhite/ads/AdmobMaxHelper.kt
View file @
77f632a6
...
...
@@ -25,7 +25,7 @@ object AdmobMaxHelper {
var
isBlack
:
Boolean
=
false
var
isInterOpenShowing
:
Boolean
=
false
// if (System.currentTimeMillis() - lastShowInter > 10 * 1000 * 1000 || lastShowInter == 0L) {
// if (System.currentTimeMillis() - lastShowInter > 10 * 1000 * 1000 || lastShowInter == 0L) {
// AdmobMaxHelper.admobMaxShowInterstitialAd(this@WebBrowserActivity, false) {
// if (it) {
// lastShowInter = System.currentTimeMillis()
...
...
@@ -163,6 +163,7 @@ object AdmobMaxHelper {
if
(
getSpAdmobTrueMaxFalse
())
{
// com.base.browserwhite.ads.admob.AdmobOpenUtils.loadAppOpenAd()
AdmobInterstitialUtils
.
loadInterstitialAd
(
activity
)
AdmobNativeUtils
.
loadNativeList
(
3
)
}
else
{
if
(
isAdInit
.
get
())
{
// com.base.browserwhite.ads.max.AdMaxOpenUtils.loadAppOpenAd(activity)
...
...
app/src/main/java/com/base/browserwhite/ads/admob/AdmobNativeUtils.kt
View file @
77f632a6
...
...
@@ -116,5 +116,50 @@ object AdmobNativeUtils {
}
else
{
loadingListener
?.
invoke
()
}
}
fun
showReadyNativeAd
(
activity
:
Activity
?,
readyNativeAd
:
NativeAd
?,
parent
:
ViewGroup
,
layout
:
Int
=
R
.
layout
.
layout_admob_native_news
)
{
readyNativeAd
?.
let
{
NativeView
(
parent
.
context
,
layout
).
run
{
parent
.
removeAllViews
()
setNativeAd
(
it
)
parent
.
addView
(
this
)
parent
.
isVisible
=
true
showAd
(
nativeAd
?.
responseInfo
,
"nativeAd"
,
activity
)
}
}
}
var
readyNative
=
arrayListOf
<
NativeAd
>()
fun
loadNativeList
(
count
:
Int
)
{
readyNative
.
clear
()
repeat
(
count
)
{
val
adLoader
=
AdLoader
.
Builder
(
MyApplication
.
context
,
if
(
BuildConfig
.
DEBUG
)
ConfigHelper
.
nativeAdmobIdTest
else
ConfigHelper
.
nativeAdmobId
).
forNativeAd
{
readyNative
.
add
(
it
)
}.
withAdListener
(
object
:
AdListener
()
{
override
fun
onAdLoaded
()
{
super
.
onAdLoaded
()
LogEx
.
logDebug
(
TAG
,
"loadNativeList onAdLoaded"
)
}
override
fun
onAdClicked
()
{
}
override
fun
onAdFailedToLoad
(
p0
:
LoadAdError
)
{
LogEx
.
logDebug
(
TAG
,
"loadNativeList onAdFailedToLoad"
)
}
}).
build
()
adLoader
.
loadAd
(
mRequest
)
}
}
}
\ No newline at end of file
app/src/main/java/com/base/browserwhite/bean/NewsBean.kt
View file @
77f632a6
package
com.base.browserwhite.bean
import
com.google.android.gms.ads.nativead.NativeAd
class
NewsBean
(
val
newsId
:
Long
=
0
,
val
publishTime
:
Long
=
0
,
...
...
@@ -12,6 +14,7 @@ class NewsBean(
val
linkPath
:
String
=
""
,
//网站链接
)
{
var
uiType
:
Int
=
0
//0新闻 1广告
var
nativeAd
:
NativeAd
?
=
null
}
...
...
app/src/main/java/com/base/browserwhite/ui/activity/MainActivity.kt
View file @
77f632a6
...
...
@@ -92,7 +92,6 @@ class MainActivity : BaseActivity<ActivityMainBinding>() {
}
addDeskShortCut
()
}
...
...
app/src/main/java/com/base/browserwhite/ui/activity/news/NewsAdapter.kt
View file @
77f632a6
...
...
@@ -6,7 +6,10 @@ import android.view.View
import
android.view.ViewGroup
import
androidx.recyclerview.widget.RecyclerView.ViewHolder
import
com.base.browserwhite.R
import
com.base.browserwhite.ads.AdmobMaxHelper
import
com.base.browserwhite.ads.admob.AdmobNativeUtils
import
com.base.browserwhite.bean.NewsBean
import
com.base.browserwhite.databinding.ItemNewsAdBinding
import
com.base.browserwhite.databinding.ItemNewsBinding
import
com.base.browserwhite.utils.KotlinExt.toFormatTime
import
com.base.browserwhite.utils.XmlEx.inflate
...
...
@@ -33,7 +36,7 @@ class NewsAdapter(
override
fun
onCreateViewHolder
(
context
:
Context
,
parent
:
ViewGroup
,
viewType
:
Int
):
NewsViewHolder
{
var
layout
=
R
.
layout
.
item_news
if
(
viewType
==
1
)
layout
=
R
.
layout
.
item_news_ad
if
(
viewType
==
1
)
layout
=
R
.
layout
.
item_news_ad
return
NewsViewHolder
(
layout
.
inflate
(
parent
))
}
...
...
@@ -42,9 +45,11 @@ class NewsAdapter(
if
(
item
==
null
)
{
return
}
val
binding
=
ItemNewsBinding
.
bind
(
holder
.
itemView
)
when
(
item
.
uiType
)
{
0
->
{
val
binding
=
ItemNewsBinding
.
bind
(
holder
.
itemView
)
if
(
items
.
first
()
==
item
&&
showMore
)
{
binding
.
ll
.
visibility
=
View
.
VISIBLE
}
else
{
...
...
@@ -88,6 +93,17 @@ class NewsAdapter(
}
}
1
->
{
val
binding
=
ItemNewsAdBinding
.
bind
(
holder
.
itemView
)
if
(
item
.
nativeAd
!=
null
)
{
AdmobNativeUtils
.
showReadyNativeAd
(
null
,
item
.
nativeAd
,
binding
.
flAd
,
R
.
layout
.
layout_admob_native_news
)
}
}
}
}
fun
getLastPageNumber
():
Long
?
{
return
if
(
items
.
isEmpty
())
{
null
...
...
app/src/main/java/com/base/browserwhite/ui/fragment/FileFragment.kt
View file @
77f632a6
...
...
@@ -6,6 +6,7 @@ import android.content.Intent
import
android.view.View
import
androidx.lifecycle.lifecycleScope
import
com.base.browserwhite.BuildConfig
import
com.base.browserwhite.ads.admob.AdmobNativeUtils
import
com.base.browserwhite.bean.MediaBean
import
com.base.browserwhite.databinding.FragmentFileBinding
import
com.base.browserwhite.ui.activity.MainActivity
...
...
@@ -59,6 +60,7 @@ class FileFragment : BaseFragment<FragmentFileBinding>() {
moreAction
(
requireContext
(),
view
,
bean
,
adapter
)
})
binding
.
rvRecent
.
adapter
=
adapter
}
companion
object
{
...
...
app/src/main/java/com/base/browserwhite/ui/fragment/HomeFragment.kt
View file @
77f632a6
...
...
@@ -12,6 +12,7 @@ import android.widget.Toast
import
androidx.core.view.isVisible
import
androidx.recyclerview.widget.LinearLayoutManager
import
com.base.browserwhite.R
import
com.base.browserwhite.ads.admob.AdmobNativeUtils
import
com.base.browserwhite.bean.BookmarkBean
import
com.base.browserwhite.bean.ConstObject.APP_PROCESS
import
com.base.browserwhite.bean.ConstObject.BAIDU
...
...
@@ -219,12 +220,13 @@ class HomeFragment : BaseFragment<FragmentHomeBinding>() {
LogEx
.
logDebug
(
TAG
,
"errorCallBack"
)
},
beanCallBack
=
{
isLoading
=
false
val
newsAdList
=
addNativeAdNewsBean
(
it
)
binding
.
root
.
post
{
LogEx
.
logDebug
(
TAG
,
"beanCallBack"
)
if
(
lastNewsId
==
null
)
{
newsAdapter
.
submitList
(
i
t
)
newsAdapter
.
submitList
(
newsAdLis
t
)
}
else
{
newsAdapter
.
addAll
(
i
t
)
newsAdapter
.
addAll
(
newsAdLis
t
)
}
helper
.
trailingLoadState
=
LoadState
.
NotLoading
(
false
)
}
...
...
@@ -232,9 +234,40 @@ class HomeFragment : BaseFragment<FragmentHomeBinding>() {
})
}
fun
addNativeAdNewsBean
(
it
:
List
<
NewsBean
>)
{
private
fun
addNativeAdNewsBean
(
it
:
List
<
NewsBean
>):
ArrayList
<
NewsBean
>
{
val
list
=
arrayListOf
<
NewsBean
>()
it
.
forEachIndexed
{
index
,
newsBean
->
list
.
add
(
newsBean
)
if
(
index
==
1
)
{
runCatching
{
val
ad
=
AdmobNativeUtils
.
readyNative
[
0
]
list
.
add
(
NewsBean
().
apply
{
uiType
=
1
nativeAd
=
ad
})
}
}
if
(
index
==
6
)
{
runCatching
{
val
ad
=
AdmobNativeUtils
.
readyNative
[
1
]
list
.
add
(
NewsBean
().
apply
{
uiType
=
1
nativeAd
=
ad
})
}
}
if
(
index
==
1
)
{
runCatching
{
val
ad
=
AdmobNativeUtils
.
readyNative
[
3
]
list
.
add
(
NewsBean
().
apply
{
uiType
=
1
nativeAd
=
ad
})
}
}
}
AdmobNativeUtils
.
loadNativeList
(
3
)
return
list
}
override
fun
onActivityResult
(
requestCode
:
Int
,
resultCode
:
Int
,
data
:
Intent
?)
{
...
...
app/src/main/res/drawable/bg_storke_9d9d9d_7_5.xml
0 → 100644
View file @
77f632a6
<?xml version="1.0" encoding="utf-8"?>
<shape
xmlns:android=
"http://schemas.android.com/apk/res/android"
>
<stroke
android:width=
"1.5dp"
android:color=
"#9d9d9d"
/>
<corners
android:radius=
"7.5dp"
/>
</shape>
\ No newline at end of file
app/src/main/res/layout/item_news_ad.xml
View file @
77f632a6
...
...
@@ -4,11 +4,12 @@
xmlns:tools=
"http://schemas.android.com/tools"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:id=
"@+id/fl_ad"
android:layout_marginHorizontal=
"16dp"
android:layout_marginVertical=
"8dp"
android:orientation=
"vertical"
>
<include
layout=
"@layout/layout_admob_native_
download
"
/>
<include
layout=
"@layout/layout_admob_native_
news
"
/>
</FrameLayout>
\ No newline at end of file
app/src/main/res/layout/layout_admob_native_news.xml
0 → 100644
View file @
77f632a6
<com.google.android.gms.ads.nativead.NativeAdView
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=
"wrap_content"
>
<LinearLayout
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_gravity=
"center"
android:baselineAligned=
"false"
android:orientation=
"vertical"
android:padding=
"10dp"
>
<androidx.cardview.widget.CardView
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
app:cardCornerRadius=
"10dp"
app:cardElevation=
"0dp"
>
<com.google.android.gms.ads.nativead.MediaView
android:id=
"@+id/ad_media"
android:layout_width=
"match_parent"
android:layout_height=
"191dp"
android:layout_gravity=
"center_vertical"
/>
</androidx.cardview.widget.CardView>
<TextView
android:id=
"@+id/ad_headline"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"6dp"
android:ellipsize=
"end"
android:maxLines=
"2"
android:textColor=
"@color/black"
android:textSize=
"19sp"
android:textStyle=
"bold"
tools:text=
"All You Can Wish For"
/>
<LinearLayout
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:orientation=
"horizontal"
>
<de.hdodenhof.circleimageview.CircleImageView
android:id=
"@+id/ad_app_icon"
android:layout_width=
"17dp"
android:layout_height=
"17dp"
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_marginHorizontal=
"2dp"
android:layout_weight=
"1"
android:ellipsize=
"end"
android:includeFontPadding=
"false"
android:textColor=
"@color/black"
android:textSize=
"12sp"
/>
<TextView
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_gravity=
"center_vertical"
android:padding=
"2dp"
android:text=
"Ad"
android:textColor=
"#868686"
android:textSize=
"12sp"
tools:ignore=
"HardcodedText"
/>
<androidx.appcompat.widget.AppCompatButton
android:id=
"@+id/ad_call_to_action"
android:layout_width=
"150dp"
android:layout_height=
"29dp"
android:layout_gravity=
"center_vertical"
android:background=
"@drawable/bg_storke_9d9d9d_7_5"
android:gravity=
"center"
android:textAllCaps=
"false"
android:textColor=
"@color/black"
android:textSize=
"14sp"
tools:text=
"Install"
/>
</LinearLayout>
<View
android:layout_width=
"match_parent"
android:layout_height=
"1px"
android:layout_marginTop=
"11dp"
android:background=
"#E5E6EB"
/>
</LinearLayout>
</com.google.android.gms.ads.nativead.NativeAdView>
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment