Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Sign in / Register
Toggle navigation
F
Fast File Manager Pro
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
Fast File Manager Pro
Commits
ba77eeca
Commit
ba77eeca
authored
Apr 07, 2024
by
wanglei
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
高级原生广告修改布局
parent
ac331bbc
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
271 additions
and
89 deletions
+271
-89
KokoLaunchActivity.kt
...in/java/com/zxhy/fastfilemanagerpro/KokoLaunchActivity.kt
+1
-11
MainActivity.kt
...src/main/java/com/zxhy/fastfilemanagerpro/MainActivity.kt
+0
-1
AdNativeAdvanceEx.kt
.../com/zxhy/fastfilemanagerpro/kokoads/AdNativeAdvanceEx.kt
+140
-63
KoHomekoFragment.kt
.../com/zxhy/fastfilemanagerpro/kokohome/KoHomekoFragment.kt
+4
-4
KoManagerkoFragment.kt
...xhy/fastfilemanagerpro/kokomanager/KoManagerkoFragment.kt
+8
-8
ad_native_advance_fast.xml
app/src/main/res/layout/ad_native_advance_fast.xml
+115
-0
ad_native_advance_sample.xml
app/src/main/res/layout/ad_native_advance_sample.xml
+0
-1
fragment_ko_homeko.xml
app/src/main/res/layout/fragment_ko_homeko.xml
+1
-0
fragment_ko_managerko.xml
app/src/main/res/layout/fragment_ko_managerko.xml
+2
-1
No files found.
app/src/main/java/com/zxhy/fastfilemanagerpro/KokoLaunchActivity.kt
View file @
ba77eeca
...
...
@@ -69,7 +69,7 @@ class KokoLaunchActivity : AppCompatActivity() {
finish
()
}
//
setDebugAdsConsent {}
setDebugAdsConsent
{}
}
/**
...
...
@@ -104,14 +104,4 @@ class KokoLaunchActivity : AppCompatActivity() {
(
application
as
MyApplication
).
loadAd
(
this
)
}
fun
printTaskActivity
()
{
val
activityManager
=
getSystemService
(
ACTIVITY_SERVICE
)
as
ActivityManager
val
runningTasks
=
activityManager
.
getRunningTasks
(
10
)
for
(
taskInfo
in
runningTasks
)
{
val
componentName
=
taskInfo
.
topActivity
val
activityName
=
componentName
!!
.
className
Log
.
e
(
"Activity"
,
"Task Activity Name: $activityName"
)
}
}
}
\ No newline at end of file
app/src/main/java/com/zxhy/fastfilemanagerpro/MainActivity.kt
View file @
ba77eeca
...
...
@@ -25,7 +25,6 @@ import com.google.android.gms.ads.nativead.NativeAd
import
com.google.android.gms.ads.nativead.NativeAdOptions
import
com.google.android.material.navigation.NavigationBarView
import
com.zxhy.fastfilemanagerpro.databinding.ActivityMainBinding
import
com.zxhy.fastfilemanagerpro.databinding.AdNativeAdvanceBinding
import
com.zxhy.fastfilemanagerpro.kokotools.ActivityLauncher
import
com.zxhy.fastfilemanagerpro.kokotools.permission.PermissionCheck.storePermissionCheck
import
com.zxhy.fastfilemanagerpro.kokotools.permission.StorePermissionEx.requestStoreFollow
...
...
app/src/main/java/com/zxhy/fastfilemanagerpro/kokoads/AdNativeAdvanceEx.kt
View file @
ba77eeca
...
...
@@ -12,7 +12,8 @@ import com.google.android.gms.ads.VideoOptions
import
com.google.android.gms.ads.nativead.NativeAd
import
com.google.android.gms.ads.nativead.NativeAdOptions
import
com.google.android.gms.ads.nativead.NativeAdView
import
com.zxhy.fastfilemanagerpro.databinding.AdNativeAdvanceBinding
import
com.zxhy.fastfilemanagerpro.databinding.AdNativeAdvanceFastBinding
import
com.zxhy.fastfilemanagerpro.databinding.AdNativeAdvanceSampleBinding
object
AdNativeAdvanceEx
{
...
...
@@ -34,7 +35,8 @@ object AdNativeAdvanceEx {
flAd
.
removeAllViews
()
flAd
.
addView
(
bindAdNativeAdView
(
nativeAd
,
activity
.
layoutInflater
))
// flAd.addView(bindAdNativeAdViewSample(nativeAd, activity.layoutInflater))
flAd
.
addView
(
bindFastNativeAd
(
nativeAd
,
activity
.
layoutInflater
))
}
//静音视频
...
...
@@ -48,79 +50,154 @@ object AdNativeAdvanceEx {
}
}
fun
bindAdNativeAdView
(
/**
* 官方布局
*/
private
fun
bindAdNativeAdViewSample
(
nativeAd
:
NativeAd
,
layoutInflater
:
LayoutInflater
):
NativeAdView
{
val
adNativeAdvanceBinding
=
AdNativeAdvanceBinding
.
inflate
(
layoutInflater
)
adNativeAdvanceBinding
.
apply
{
val
nativeAdView
=
root
nativeAdView
.
mediaView
=
adMedia
nativeAdView
.
headlineView
=
adHeadline
nativeAdView
.
bodyView
=
adBody
nativeAdView
.
callToActionView
=
adCallToAction
nativeAdView
.
iconView
=
adAppIcon
nativeAdView
.
priceView
=
adPrice
nativeAdView
.
starRatingView
=
adStars
nativeAdView
.
storeView
=
adStore
nativeAdView
.
advertiserView
=
adAdvertiser
adHeadline
.
text
=
nativeAd
.
headline
nativeAd
.
mediaContent
?.
let
{
adMedia
.
mediaContent
=
it
}
if
(
nativeAd
.
body
==
null
)
{
adBody
.
visibility
=
View
.
INVISIBLE
}
else
{
adBody
.
visibility
=
View
.
VISIBLE
adBody
.
text
=
nativeAd
.
body
}
val
adNativeAdvanceBinding
=
AdNativeAdvance
Sample
Binding
.
inflate
(
layoutInflater
)
val
nativeAdView
=
adNativeAdvanceBinding
.
root
nativeAdView
.
mediaView
=
adNativeAdvanceBinding
.
adMedia
nativeAdView
.
headlineView
=
adNativeAdvanceBinding
.
adHeadline
nativeAdView
.
bodyView
=
adNativeAdvanceBinding
.
adBody
nativeAdView
.
callToActionView
=
adNativeAdvanceBinding
.
adCallToAction
nativeAdView
.
iconView
=
adNativeAdvanceBinding
.
adAppIcon
nativeAdView
.
priceView
=
adNativeAdvanceBinding
.
adPrice
nativeAdView
.
starRatingView
=
adNativeAdvanceBinding
.
adStars
nativeAdView
.
storeView
=
adNativeAdvanceBinding
.
adStore
nativeAdView
.
advertiserView
=
adNativeAdvanceBinding
.
adAdvertiser
adNativeAdvanceBinding
.
adHeadline
.
text
=
nativeAd
.
headline
nativeAd
.
mediaContent
?.
let
{
adNativeAdvanceBinding
.
adMedia
.
mediaContent
=
it
}
if
(
nativeAd
.
body
==
null
)
{
adNativeAdvanceBinding
.
adBody
.
visibility
=
View
.
INVISIBLE
}
else
{
adNativeAdvanceBinding
.
adBody
.
visibility
=
View
.
VISIBLE
adNativeAdvanceBinding
.
adBody
.
text
=
nativeAd
.
body
}
if
(
nativeAd
.
callToAction
==
null
)
{
adCallToAction
.
visibility
=
View
.
INVISIBLE
}
else
{
adCallToAction
.
visibility
=
View
.
VISIBLE
adCallToAction
.
text
=
nativeAd
.
callToAction
}
if
(
nativeAd
.
callToAction
==
null
)
{
adNativeAdvanceBinding
.
adCallToAction
.
visibility
=
View
.
INVISIBLE
}
else
{
adNativeAdvanceBinding
.
adCallToAction
.
visibility
=
View
.
VISIBLE
adNativeAdvanceBinding
.
adCallToAction
.
text
=
nativeAd
.
callToAction
}
if
(
nativeAd
.
icon
==
null
)
{
adAppIcon
.
visibility
=
View
.
GONE
}
else
{
adAppIcon
.
setImageDrawable
(
nativeAd
.
icon
?.
drawable
)
adAppIcon
.
visibility
=
View
.
VISIBLE
}
if
(
nativeAd
.
icon
==
null
)
{
adNativeAdvanceBinding
.
adAppIcon
.
visibility
=
View
.
GONE
}
else
{
adNativeAdvanceBinding
.
adAppIcon
.
setImageDrawable
(
nativeAd
.
icon
?.
drawable
)
adNativeAdvanceBinding
.
adAppIcon
.
visibility
=
View
.
VISIBLE
}
if
(
nativeAd
.
price
==
null
)
{
adPrice
.
visibility
=
View
.
INVISIBLE
}
else
{
adPrice
.
visibility
=
View
.
VISIBLE
adPrice
.
text
=
nativeAd
.
price
}
if
(
nativeAd
.
price
==
null
)
{
adNativeAdvanceBinding
.
adPrice
.
visibility
=
View
.
INVISIBLE
}
else
{
adNativeAdvanceBinding
.
adPrice
.
visibility
=
View
.
VISIBLE
adNativeAdvanceBinding
.
adPrice
.
text
=
nativeAd
.
price
}
if
(
nativeAd
.
store
==
null
)
{
adStore
.
visibility
=
View
.
INVISIBLE
}
else
{
adStore
.
visibility
=
View
.
VISIBLE
adStore
.
text
=
nativeAd
.
store
}
if
(
nativeAd
.
store
==
null
)
{
adNativeAdvanceBinding
.
adStore
.
visibility
=
View
.
INVISIBLE
}
else
{
adNativeAdvanceBinding
.
adStore
.
visibility
=
View
.
VISIBLE
adNativeAdvanceBinding
.
adStore
.
text
=
nativeAd
.
store
}
if
(
nativeAd
.
starRating
==
null
)
{
adStars
.
visibility
=
View
.
INVISIBLE
}
else
{
adStars
.
rating
=
nativeAd
.
starRating
!!
.
toFloat
()
adStars
.
visibility
=
View
.
VISIBLE
}
if
(
nativeAd
.
starRating
==
null
)
{
adNativeAdvanceBinding
.
adStars
.
visibility
=
View
.
INVISIBLE
}
else
{
adNativeAdvanceBinding
.
adStars
.
rating
=
nativeAd
.
starRating
!!
.
toFloat
()
adNativeAdvanceBinding
.
adStars
.
visibility
=
View
.
VISIBLE
}
if
(
nativeAd
.
advertiser
==
null
)
{
adAdvertiser
.
visibility
=
View
.
INVISIBLE
}
else
{
adAdvertiser
.
text
=
nativeAd
.
advertiser
adAdvertiser
.
visibility
=
View
.
VISIBLE
}
if
(
nativeAd
.
advertiser
==
null
)
{
adNativeAdvanceBinding
.
adAdvertiser
.
visibility
=
View
.
INVISIBLE
}
else
{
adNativeAdvanceBinding
.
adAdvertiser
.
text
=
nativeAd
.
advertiser
adNativeAdvanceBinding
.
adAdvertiser
.
visibility
=
View
.
VISIBLE
}
nativeAdView
.
setNativeAd
(
nativeAd
)
val
mediaContent
=
nativeAd
.
mediaContent
val
vc
=
mediaContent
?.
videoController
if
(
vc
!=
null
&&
mediaContent
.
hasVideoContent
())
{
vc
.
videoLifecycleCallbacks
=
object
:
VideoController
.
VideoLifecycleCallbacks
()
{
override
fun
onVideoEnd
()
{
super
.
onVideoEnd
()
}
}
}
return
adNativeAdvanceBinding
.
root
}
fun
bindFastNativeAd
(
nativeAd
:
NativeAd
,
layoutInflater
:
LayoutInflater
):
NativeAdView
{
val
adNativeAdvanceBinding
=
AdNativeAdvanceFastBinding
.
inflate
(
layoutInflater
)
val
nativeAdView
=
adNativeAdvanceBinding
.
root
nativeAdView
.
mediaView
=
adNativeAdvanceBinding
.
adMedia
nativeAdView
.
headlineView
=
adNativeAdvanceBinding
.
adHeadline
nativeAdView
.
bodyView
=
adNativeAdvanceBinding
.
adBody
nativeAdView
.
callToActionView
=
adNativeAdvanceBinding
.
adCallToAction
nativeAdView
.
iconView
=
adNativeAdvanceBinding
.
adAppIcon
nativeAdView
.
starRatingView
=
adNativeAdvanceBinding
.
adStars
nativeAdView
.
advertiserView
=
adNativeAdvanceBinding
.
adAdvertiser
adNativeAdvanceBinding
.
adHeadline
.
text
=
nativeAd
.
headline
nativeAd
.
mediaContent
?.
let
{
adNativeAdvanceBinding
.
adMedia
.
mediaContent
=
it
}
if
(
nativeAd
.
body
==
null
)
{
adNativeAdvanceBinding
.
adBody
.
visibility
=
View
.
INVISIBLE
}
else
{
adNativeAdvanceBinding
.
adBody
.
visibility
=
View
.
VISIBLE
adNativeAdvanceBinding
.
adBody
.
text
=
nativeAd
.
body
}
if
(
nativeAd
.
callToAction
==
null
)
{
adNativeAdvanceBinding
.
adCallToAction
.
visibility
=
View
.
INVISIBLE
}
else
{
adNativeAdvanceBinding
.
adCallToAction
.
visibility
=
View
.
VISIBLE
adNativeAdvanceBinding
.
adCallToAction
.
text
=
nativeAd
.
callToAction
}
nativeAdView
.
setNativeAd
(
nativeAd
)
if
(
nativeAd
.
icon
==
null
)
{
adNativeAdvanceBinding
.
adAppIcon
.
visibility
=
View
.
GONE
}
else
{
adNativeAdvanceBinding
.
adAppIcon
.
setImageDrawable
(
nativeAd
.
icon
?.
drawable
)
adNativeAdvanceBinding
.
adAppIcon
.
visibility
=
View
.
VISIBLE
}
if
(
nativeAd
.
starRating
==
null
)
{
adNativeAdvanceBinding
.
adStars
.
visibility
=
View
.
INVISIBLE
}
else
{
adNativeAdvanceBinding
.
adStars
.
rating
=
nativeAd
.
starRating
!!
.
toFloat
()
adNativeAdvanceBinding
.
adStars
.
visibility
=
View
.
VISIBLE
}
if
(
nativeAd
.
advertiser
==
null
)
{
adNativeAdvanceBinding
.
adAdvertiser
.
visibility
=
View
.
INVISIBLE
}
else
{
adNativeAdvanceBinding
.
adAdvertiser
.
text
=
nativeAd
.
advertiser
adNativeAdvanceBinding
.
adAdvertiser
.
visibility
=
View
.
VISIBLE
}
nativeAdView
.
setNativeAd
(
nativeAd
)
val
mediaContent
=
nativeAd
.
mediaContent
val
vc
=
mediaContent
?.
videoController
...
...
app/src/main/java/com/zxhy/fastfilemanagerpro/kokohome/KoHomekoFragment.kt
View file @
ba77eeca
...
...
@@ -79,10 +79,10 @@ class KoHomekoFragment : Fragment() {
binding
.
flStorage
.
setOnClickListener
{
startActivity
(
Intent
(
context
,
KoInternalkoActivity
::
class
.
java
))
}
//
refreshAd(requireActivity(), binding.flAd, ADMOB_AD_UNIT_ID) {
//
currentNativeAd?.destroy()
//
currentNativeAd = it
//
}
refreshAd
(
requireActivity
(),
binding
.
flAd
,
ADMOB_AD_UNIT_ID
)
{
currentNativeAd
?.
destroy
()
currentNativeAd
=
it
}
}
override
fun
onStop
()
{
...
...
app/src/main/java/com/zxhy/fastfilemanagerpro/kokomanager/KoManagerkoFragment.kt
View file @
ba77eeca
...
...
@@ -99,14 +99,14 @@ class KoManagerkoFragment : Fragment() {
}
}
//
AdNativeAdvanceEx.refreshAd(
//
requireActivity(),
//
binding.flAd,
//
MainActivity.ADMOB_AD_UNIT_ID
//
) {
//
currentNativeAd?.destroy()
//
currentNativeAd = it
//
}
AdNativeAdvanceEx
.
refreshAd
(
requireActivity
(),
binding
.
flAd
,
MainActivity
.
ADMOB_AD_UNIT_ID
)
{
currentNativeAd
?.
destroy
()
currentNativeAd
=
it
}
}
override
fun
onResume
()
{
...
...
app/src/main/res/layout/ad_native_advance_fast.xml
0 → 100644
View file @
ba77eeca
<?xml version="1.0" encoding="utf-8"?>
<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"
>
<LinearLayout
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_gravity=
"center"
android:background=
"#FFFFFF"
android:minHeight=
"50dp"
android:orientation=
"vertical"
>
<com.google.android.gms.ads.nativead.MediaView
android:id=
"@+id/ad_media"
android:layout_width=
"match_parent"
android:layout_height=
"96dp"
android:layout_gravity=
"center_horizontal"
android:layout_margin=
"2dp"
android:maxHeight=
"150dp"
android:minHeight=
"100dp"
/>
<TextView
android:id=
"@+id/ad_body"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_margin=
"2dp"
android:layout_marginEnd=
"20dp"
android:textSize=
"12sp"
/>
<LinearLayout
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:orientation=
"horizontal"
>
<TextView
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_gravity=
"center_vertical"
android:layout_margin=
"2dp"
android:background=
"@color/black"
android:text=
"Ad"
android:textColor=
"#FFFFFF"
android:textSize=
"12sp"
tools:ignore=
"HardcodedText"
/>
<ImageView
android:id=
"@+id/ad_app_icon"
android:layout_width=
"32dp"
android:layout_height=
"32dp"
android:layout_gravity=
"center_vertical"
android:adjustViewBounds=
"true"
android:paddingEnd=
"5dp"
android:paddingBottom=
"5dp"
android:scaleType=
"centerCrop"
tools:ignore=
"ContentDescription,RtlSymmetry"
/>
<LinearLayout
android:layout_width=
"0dp"
android:layout_height=
"wrap_content"
android:layout_gravity=
"center_vertical"
android:layout_marginHorizontal=
"5dp"
android:layout_weight=
"1"
android:orientation=
"vertical"
>
<TextView
android:id=
"@+id/ad_headline"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:textColor=
"#0000FF"
android:textSize=
"16sp"
android:textStyle=
"bold"
/>
<LinearLayout
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
>
<TextView
android:id=
"@+id/ad_advertiser"
android:layout_width=
"wrap_content"
android:layout_height=
"match_parent"
android:gravity=
"bottom"
android:textSize=
"14sp"
android:textStyle=
"bold"
/>
<RatingBar
android:id=
"@+id/ad_stars"
style=
"?android:attr/ratingBarStyleSmall"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:isIndicator=
"true"
android:numStars=
"5"
android:stepSize=
"0.5"
/>
</LinearLayout>
</LinearLayout>
<Button
android:id=
"@+id/ad_call_to_action"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_gravity=
"center_vertical"
android:layout_marginEnd=
"5dp"
android:gravity=
"center"
android:textSize=
"12sp"
/>
</LinearLayout>
</LinearLayout>
</com.google.android.gms.ads.nativead.NativeAdView>
\ No newline at end of file
app/src/main/res/layout/ad_native_advance.xml
→
app/src/main/res/layout/ad_native_advance
_sample
.xml
View file @
ba77eeca
...
...
@@ -66,7 +66,6 @@
</LinearLayout>
<!-- body内容 -->
<LinearLayout
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
...
...
app/src/main/res/layout/fragment_ko_homeko.xml
View file @
ba77eeca
...
...
@@ -386,6 +386,7 @@
android:layout_marginHorizontal=
"20dp"
android:layout_marginTop=
"20dp"
android:layout_marginBottom=
"8dp"
android:maxHeight=
"200dp"
app:layout_constraintBottom_toBottomOf=
"parent"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintStart_toStartOf=
"parent"
...
...
app/src/main/res/layout/fragment_ko_managerko.xml
View file @
ba77eeca
...
...
@@ -272,9 +272,10 @@
<FrameLayout
android:id=
"@+id/fl_ad"
android:layout_width=
"0dp"
android:layout_height=
"
140dp
"
android:layout_height=
"
wrap_content
"
android:layout_marginHorizontal=
"20dp"
android:layout_marginTop=
"20dp"
android:maxHeight=
"200dp"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toBottomOf=
"@id/ll_documents"
...
...
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