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 {
id 'com.android.application'
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")
android {
@ -13,8 +15,8 @@ android {
applicationId "com.led.scroller.barrage.banner"
minSdk 24
targetSdk 36
versionCode 1
versionName "1.0"
versionCode 2
versionName "1.1"
setProperty(
"archivesBaseName",
"LED Scroller_V" + versionName + "(${versionCode})_$timestamp"
@ -57,4 +59,86 @@ dependencies {
implementation 'com.google.android.material:material:1.13.0'
implementation 'androidx.activity:activity-ktx:1.11.0'
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"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" >
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<application
android:name=".LBApplication"
android:allowBackup="true"
@ -11,21 +11,27 @@
android:label="@string/app_name"
android:roundIcon="@mipmap/icon"
android:supportsRtl="true"
android:networkSecurityConfig="@xml/net"
tools:replace="networkSecurityConfig"
android:theme="@style/Theme.LEDBarrage"
tools:targetApi="31" >
<activity
android:name=".ui.MainActivity"
android:exported="true"
android:exported="false"
android:theme="@style/Theme.LEDBarrage" >
</activity>
<activity
android:name=".ui.ShowBarrageActivity"
android:screenOrientation="landscape" />
<activity android:name=".ui.SplashActivity"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".ui.ShowBarrageActivity"
android:screenOrientation="landscape" />
</application>
</manifest>

View File

@ -1,16 +1,21 @@
package com.led.scroller.barrage.banner
import android.app.Application
import com.up.uploadlibrary.UpLoadManager
class LBApplication : Application() {
companion object {
lateinit var app: LBApplication
val TAG = "==========LED========="
}
override fun onCreate() {
super.onCreate()
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.widget.addTextChangedListener
import androidx.fragment.app.Fragment
import com.ad.tradpluslibrary.TPAdManager
import com.led.scroller.barrage.banner.R
import com.led.scroller.barrage.banner.databinding.ActivityMainBinding
import com.led.scroller.barrage.banner.sp.AppSP
@ -114,9 +115,13 @@ class MainActivity : BaseActivity(), TextFragment.TextFragmentClickListener,
binding.startBtn.setOnClickListener {
val content = binding.contentEdit.text.toString()
if (content.isNotEmpty()) {
val intent = Intent(this, ShowBarrageActivity::class.java)
intent.putExtra(ShowBarrageActivity.CONTENT_KEY, content)
startActivity(intent)
TPAdManager.showTPAD(this@MainActivity){
val intent = Intent(this, ShowBarrageActivity::class.java)
intent.putExtra(ShowBarrageActivity.CONTENT_KEY, content)
startActivity(intent)
}
} else {
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.sp.AppSP
import androidx.core.view.isVisible
import com.ad.tradpluslibrary.TPAdManager
class ShowBarrageActivity : ComponentActivity() {
companion object {
@ -54,20 +55,13 @@ class ShowBarrageActivity : ComponentActivity() {
}
binding.backImg.setOnClickListener {
Log.d("ShowBarrageActivity", "返回按钮点击调用finish()")
finish()
TPAdManager.showTPAD(this@ShowBarrageActivity){
finish()
}
}
}
override fun onBackPressed() {
Log.d("ShowBarrageActivity", "系统返回键被按下")
super.onBackPressed()
}
override fun finish() {
Log.d("ShowBarrageActivity", "finish()被调用")
super.finish()
}
private fun animatorRightToLeft(content: String) {
val sp = AppSP(this)
binding.previewLayout.setBackgroundColor(getColor(sp.bgColorResId))

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.library' version '8.9.1' 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 {
google()
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"