This commit is contained in:
litingting 2025-12-01 17:17:03 +08:00
parent 295b446eac
commit 37ca0b72ff
14 changed files with 331 additions and 21 deletions

View File

@ -3,6 +3,8 @@ import java.text.SimpleDateFormat
plugins { plugins {
id 'com.android.application' id 'com.android.application'
id 'org.jetbrains.kotlin.android' id 'org.jetbrains.kotlin.android'
id 'com.google.gms.google-services'
id 'com.google.firebase.crashlytics'
} }
def timestamp = new Date().format("MM_dd_HH_mm") def timestamp = new Date().format("MM_dd_HH_mm")
android { android {
@ -13,8 +15,8 @@ android {
applicationId "com.led.scroller.barrage.banner" applicationId "com.led.scroller.barrage.banner"
minSdk 24 minSdk 24
targetSdk 36 targetSdk 36
versionCode 1 versionCode 2
versionName "1.0" versionName "1.1"
setProperty( setProperty(
"archivesBaseName", "archivesBaseName",
"LED Scroller_V" + versionName + "(${versionCode})_$timestamp" "LED Scroller_V" + versionName + "(${versionCode})_$timestamp"
@ -57,4 +59,86 @@ dependencies {
implementation 'com.google.android.material:material:1.13.0' implementation 'com.google.android.material:material:1.13.0'
implementation 'androidx.activity:activity-ktx:1.11.0' implementation 'androidx.activity:activity-ktx:1.11.0'
implementation 'androidx.constraintlayout:constraintlayout:2.2.1' implementation 'androidx.constraintlayout:constraintlayout:2.2.1'
implementation(files("libs/TradPlusLibrary_11_25_15_02-release.aar"))
implementation(files("libs/UpLoadLibrary_11_24_18_30-release.aar"))
implementation("com.squareup.okhttp3:logging-interceptor:4.12.0")
implementation(platform("com.google.firebase:firebase-bom:33.7.0"))
implementation("com.google.firebase:firebase-crashlytics")
implementation("com.google.firebase:firebase-analytics")
implementation("com.google.firebase:firebase-config")
// TradPlus
implementation("com.tradplusad:tradplus:14.5.0.1")
//noinspection GradleCompatible
implementation("androidx.legacy:legacy-support-v4:1.0.0")
implementation("androidx.appcompat:appcompat:1.3.0-alpha02")
// Meta
implementation("com.facebook.android:audience-network-sdk:6.20.0")
implementation("com.tradplusad:tradplus-facebook:1.14.5.0.1")
// Applovin
implementation("com.applovin:applovin-sdk:13.3.1")
implementation("com.tradplusad:tradplus-applovin:9.14.5.0.1")
implementation("com.google.android.gms:play-services-ads-identifier:18.2.0")
// Ironsource
implementation("com.ironsource.sdk:mediationsdk:8.10.0")
implementation("com.tradplusad:tradplus-ironsource:10.14.5.0.1")
implementation("com.google.android.gms:play-services-appset:16.0.0")
implementation("com.google.android.gms:play-services-ads-identifier:17.0.0")
implementation("com.google.android.gms:play-services-basement:17.5.0")
// Adcolony
implementation("com.adcolony:sdk:4.8.0")
implementation("com.tradplusad:tradplus-adcolony:4.14.5.0.1")
implementation("com.google.android.gms:play-services-ads-identifier:17.0.0")
// Pangle
implementation("com.tradplusad:tradplus-pangle:19.14.5.0.1")
implementation("com.pangle.global:pag-sdk:7.3.0.3")
// UnityAds
implementation("com.tradplusad:tradplus-unity:5.14.5.0.1")
implementation("com.unity3d.ads:unity-ads:4.15.1")
// Chartboost
implementation("com.tradplusad:tradplus-chartboostx:15.14.5.0.1")
implementation("com.chartboost:chartboost-sdk:9.8.3")
implementation("com.google.android.gms:play-services-ads-identifier:17.0.0")
implementation("com.google.android.gms:play-services-base:17.4.0")
// Inmobi
implementation("com.tradplusad:tradplus-inmobix:23.14.5.0.1")
implementation("com.inmobi.monetization:inmobi-ads-kotlin:10.8.3")
implementation("androidx.core:core-ktx:1.5.0")
implementation("com.inmobi.omsdk:inmobi-omsdk:1.5.2.0")
// Fyber
implementation("com.fyber:marketplace-sdk:8.3.7")
implementation("com.tradplusad:tradplus-fyber:24.14.5.0.1")
implementation("com.google.android.gms:play-services-ads-identifier:17.0.0")
implementation("com.google.android.gms:play-services-base:17.4.0")
// Start.io
implementation("com.startapp:inapp-sdk:5.2.3")
implementation("com.tradplusad:tradplus-startapp:28.14.5.0.1")
// Mintegral
implementation("com.tradplusad:tradplus-mintegralx_overseas:18.14.5.0.1")
implementation("androidx.recyclerview:recyclerview:1.1.0")
implementation("com.mbridge.msdk.oversea:mbridge_android_sdk:16.9.71")
// Liftoff
implementation("com.tradplusad:tradplus-vunglex:7.14.5.0.1")
implementation("com.vungle:vungle-ads:7.5.0")
// Yandex
// implementation("com.yandex.android:mobileads:7.13.0") {
// exclude(group = "com.caverock", module = "androidsvg-aar")
// }
implementation("com.tradplusad:tradplus-yandex:50.14.6.10.1")
// Bigo
implementation("com.bigossp:bigo-ads:5.4.0")
implementation("com.tradplusad:tradplus-bigo:57.14.5.0.1")
// Cross Promotion
implementation("com.tradplusad:tradplus-crosspromotion:27.14.5.0.1")
// TP Exchange
//
implementation("com.google.code.gson:gson:2.8.6")
implementation("com.tradplusad:tp_exchange:40.14.5.0.1")
// Google UMP
implementation ("com.google.android.ump:user-messaging-platform:3.2.0")
} }

29
app/google-services.json Normal file
View File

@ -0,0 +1,29 @@
{
"project_info": {
"project_number": "688205801204",
"project_id": "led-scroller-eb9e7",
"storage_bucket": "led-scroller-eb9e7.firebasestorage.app"
},
"client": [
{
"client_info": {
"mobilesdk_app_id": "1:688205801204:android:74f1a4467eeb5852d1a0a1",
"android_client_info": {
"package_name": "com.led.scroller.barrage.banner"
}
},
"oauth_client": [],
"api_key": [
{
"current_key": "AIzaSyC0xRKJkPXdyPDQP7GdmH1TPecCocw2Rko"
}
],
"services": {
"appinvite_service": {
"other_platform_oauth_client": []
}
}
}
],
"configuration_version": "1"
}

Binary file not shown.

Binary file not shown.

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" <manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" > xmlns:tools="http://schemas.android.com/tools" >
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<application <application
android:name=".LBApplication" android:name=".LBApplication"
android:allowBackup="true" android:allowBackup="true"
@ -11,21 +11,27 @@
android:label="@string/app_name" android:label="@string/app_name"
android:roundIcon="@mipmap/icon" android:roundIcon="@mipmap/icon"
android:supportsRtl="true" android:supportsRtl="true"
android:networkSecurityConfig="@xml/net"
tools:replace="networkSecurityConfig"
android:theme="@style/Theme.LEDBarrage" android:theme="@style/Theme.LEDBarrage"
tools:targetApi="31" > tools:targetApi="31" >
<activity <activity
android:name=".ui.MainActivity" android:name=".ui.MainActivity"
android:exported="true" android:exported="false"
android:theme="@style/Theme.LEDBarrage" > android:theme="@style/Theme.LEDBarrage" >
</activity>
<activity
android:name=".ui.ShowBarrageActivity"
android:screenOrientation="landscape" />
<activity android:name=".ui.SplashActivity"
android:exported="true">
<intent-filter> <intent-filter>
<action android:name="android.intent.action.MAIN" /> <action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" /> <category android:name="android.intent.category.LAUNCHER" />
</intent-filter> </intent-filter>
</activity> </activity>
<activity
android:name=".ui.ShowBarrageActivity"
android:screenOrientation="landscape" />
</application> </application>
</manifest> </manifest>

View File

@ -1,16 +1,21 @@
package com.led.scroller.barrage.banner package com.led.scroller.barrage.banner
import android.app.Application import android.app.Application
import com.up.uploadlibrary.UpLoadManager
class LBApplication : Application() { class LBApplication : Application() {
companion object { companion object {
lateinit var app: LBApplication lateinit var app: LBApplication
val TAG = "==========LED========="
} }
override fun onCreate() { override fun onCreate() {
super.onCreate() super.onCreate()
app = this app = this
UpLoadManager.init(this,TAG){_,_->
}
} }
} }

View File

@ -18,6 +18,7 @@ import androidx.core.view.WindowCompat
import androidx.core.view.WindowInsetsCompat import androidx.core.view.WindowInsetsCompat
import androidx.core.widget.addTextChangedListener import androidx.core.widget.addTextChangedListener
import androidx.fragment.app.Fragment import androidx.fragment.app.Fragment
import com.ad.tradpluslibrary.TPAdManager
import com.led.scroller.barrage.banner.R import com.led.scroller.barrage.banner.R
import com.led.scroller.barrage.banner.databinding.ActivityMainBinding import com.led.scroller.barrage.banner.databinding.ActivityMainBinding
import com.led.scroller.barrage.banner.sp.AppSP import com.led.scroller.barrage.banner.sp.AppSP
@ -114,9 +115,13 @@ class MainActivity : BaseActivity(), TextFragment.TextFragmentClickListener,
binding.startBtn.setOnClickListener { binding.startBtn.setOnClickListener {
val content = binding.contentEdit.text.toString() val content = binding.contentEdit.text.toString()
if (content.isNotEmpty()) { if (content.isNotEmpty()) {
TPAdManager.showTPAD(this@MainActivity){
val intent = Intent(this, ShowBarrageActivity::class.java) val intent = Intent(this, ShowBarrageActivity::class.java)
intent.putExtra(ShowBarrageActivity.CONTENT_KEY, content) intent.putExtra(ShowBarrageActivity.CONTENT_KEY, content)
startActivity(intent) startActivity(intent)
}
} else { } else {
showToast(getString(R.string.type_something)) showToast(getString(R.string.type_something))
} }

View File

@ -17,6 +17,7 @@ import androidx.core.view.WindowInsetsControllerCompat
import com.led.scroller.barrage.banner.databinding.ActivityShowBarrageBinding import com.led.scroller.barrage.banner.databinding.ActivityShowBarrageBinding
import com.led.scroller.barrage.banner.sp.AppSP import com.led.scroller.barrage.banner.sp.AppSP
import androidx.core.view.isVisible import androidx.core.view.isVisible
import com.ad.tradpluslibrary.TPAdManager
class ShowBarrageActivity : ComponentActivity() { class ShowBarrageActivity : ComponentActivity() {
companion object { companion object {
@ -54,18 +55,11 @@ class ShowBarrageActivity : ComponentActivity() {
} }
binding.backImg.setOnClickListener { binding.backImg.setOnClickListener {
Log.d("ShowBarrageActivity", "返回按钮点击调用finish()") Log.d("ShowBarrageActivity", "返回按钮点击调用finish()")
TPAdManager.showTPAD(this@ShowBarrageActivity){
finish() finish()
} }
}
override fun onBackPressed() {
Log.d("ShowBarrageActivity", "系统返回键被按下")
super.onBackPressed()
} }
override fun finish() {
Log.d("ShowBarrageActivity", "finish()被调用")
super.finish()
} }
private fun animatorRightToLeft(content: String) { private fun animatorRightToLeft(content: String) {

View File

@ -0,0 +1,90 @@
package com.led.scroller.barrage.banner.ui
import android.app.Activity
import android.content.Intent
import android.os.Bundle
import android.os.CountDownTimer
import android.view.View
import android.view.WindowManager
import android.widget.ProgressBar
import androidx.appcompat.app.AppCompatActivity
import com.ad.tradpluslibrary.TPAdManager
import com.led.scroller.barrage.banner.LBApplication
import com.led.scroller.barrage.banner.R
import kotlin.jvm.java
import kotlin.math.roundToInt
class SplashActivity : AppCompatActivity() {
private lateinit var progressBar: ProgressBar
private var countTime = 13000L
private lateinit var timer: CountDownTimer
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_splash)
initFullScreen(this,false)
init()
findView()
}
private fun init() {
TPAdManager.init(
this,
LBApplication.TAG,
"899EFE2615AE2209B50C709D28C9E411",
"B2EF79773F1D3AF7916FFFE756F39412",
"8DA8AF9FCE5DCB6BDFA166152706E612",
"4485F52811D3029D661F2E12B3D02212"
) {
}
timer = TPAdManager.showWelcomeAd(this, countTime, { millisUntilFinished ->
val percentage: Float = 100 - millisUntilFinished.toFloat() / countTime * 100
val round = percentage.roundToInt()
progressBar.progress = round
}) {
progressBar.progress = 100
toHome()
}
timer.start()
}
private fun findView() {
progressBar = findViewById<ProgressBar>(R.id.nova_progress)
}
private fun toHome() {
startActivity(Intent(this, MainActivity::class.java))
finish()
}
override fun onDestroy() {
super.onDestroy()
timer.cancel()
}
fun initFullScreen(activity: Activity, dark: Boolean? = true) {
val window = activity.window
val decorView = window.decorView
val rootView = decorView.rootView
//
if (dark == null) return
if (dark) {
decorView.setSystemUiVisibility(
View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
or View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR
)
} else {
decorView.setSystemUiVisibility(
(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
or View.SYSTEM_UI_FLAG_LAYOUT_STABLE)
)
}
window.addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS)
}
}

View File

@ -0,0 +1,23 @@
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@android:id/background">
<shape>
<corners android:radius="10dp" />
<solid android:color="@color/text_color_desc" />
</shape>
</item>
<item android:id="@android:id/progress">
<clip>
<shape>
<corners android:radius="10dp" />
<solid android:color="@color/black"/>
</shape>
</clip>
</item>
</layer-list>

View File

@ -0,0 +1,45 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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="match_parent"
android:background="@color/white">
<ProgressBar
android:id="@+id/nova_progress"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="240dp"
android:layout_height="5dp"
android:layout_below="@id/tv"
android:layout_centerHorizontal="true"
android:layout_marginStart="33dp"
android:layout_marginTop="28dp"
android:layout_marginEnd="33dp"
android:layout_marginBottom="40dp"
android:progress="1"
android:progressDrawable="@drawable/splash_drawable" />
<androidx.constraintlayout.utils.widget.ImageFilterView
android:id="@+id/image"
android:layout_width="106dp"
android:layout_height="106dp"
app:roundPercent="0.2"
android:layout_centerHorizontal="true"
android:layout_marginTop="260dp"
android:src="@mipmap/icon" />
<TextView
android:id="@+id/tv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/image"
android:layout_centerHorizontal="true"
android:layout_marginTop="5dp"
android:text="@string/app_name"
android:textStyle="bold"
android:textColor="@color/black"
android:textSize="18sp" />
</RelativeLayout>

View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<network-security-config xmlns:tools="http://schemas.android.com/tools">
<domain-config cleartextTrafficPermitted="true">
<domain tools:ignore="NetworkSecurityConfig">mobile-server.lux-ad.com</domain>
</domain-config>
</network-security-config>

View File

@ -3,4 +3,6 @@ plugins {
id 'com.android.application' version '8.9.1' apply false id 'com.android.application' version '8.9.1' apply false
id 'com.android.library' version '8.9.1' apply false id 'com.android.library' version '8.9.1' apply false
id 'org.jetbrains.kotlin.android' version '2.2.21' apply false id 'org.jetbrains.kotlin.android' version '2.2.21' apply false
id 'com.google.gms.google-services' version "4.4.2" apply false
id 'com.google.firebase.crashlytics' version "3.0.2" apply false
} }

View File

@ -10,6 +10,27 @@ dependencyResolutionManagement {
repositories { repositories {
google() google()
mavenCentral() mavenCentral()
//------------------------- TradPlus
// Ironsource
maven { url = uri("https://android-sdk.is.com/") }
// Pangle
maven {
url = uri("https://artifact.bytedance.com/repository/pangle")
}
// Chartboost
maven { url = uri("https://cboost.jfrog.io/artifactory/chartboost-ads/") }
maven {
name = "Chartboost Mediations maven repo"
url = uri("https://cboost.jfrog.io/artifactory/chartboost-mediation")
}
// Mintegral
//Launch GP market application Android X Version
//If you fail to pull the code using gradle, add the maven warehouse configuration to the project root build.gradle file
maven {
url =
uri("https://dl-maven-android.mintegral.com/repository/mbridge_android_sdk_oversea")
}
} }
} }
rootProject.name = "LED Scroller" rootProject.name = "LED Scroller"