TopOn集成(mintegral、unityads、liftoff(vungle)、Bigo)V1.2(3)
This commit is contained in:
parent
a161dda6c0
commit
29bdb87355
@ -1,30 +1,31 @@
|
||||
import java.util.Date
|
||||
import java.text.SimpleDateFormat
|
||||
plugins {
|
||||
id("com.android.application")
|
||||
id("org.jetbrains.kotlin.android")
|
||||
id("com.google.gms.google-services")
|
||||
id("applovin-quality-service")
|
||||
}
|
||||
applovin {
|
||||
apiKey = "HiXscdwWaEIFC16qq8xh13TwCnN5Jrs_b0ANd1EtqbPEQX_KegZ5CxV47OaffUbNouMT1l31b3ND3kKEbthqWZ"
|
||||
id("com.google.firebase.crashlytics")
|
||||
}
|
||||
|
||||
val timestamp = SimpleDateFormat("MM_dd_HH_mm").format(Date())
|
||||
android {
|
||||
namespace = "com.prankapp.fartsounds.airhorn"
|
||||
compileSdk = 33
|
||||
compileSdk = 34
|
||||
|
||||
defaultConfig {
|
||||
applicationId = "com.prankapp.fartsounds.airhorn"
|
||||
minSdk = 21
|
||||
targetSdk = 33
|
||||
versionCode = 2
|
||||
versionName = "1.1"
|
||||
minSdk = 23
|
||||
targetSdk = 34
|
||||
versionCode = 3
|
||||
versionName = "1.2"
|
||||
|
||||
setProperty("archivesBaseName", "Prank App_V" + versionName + "(${versionCode})_$timestamp")
|
||||
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
|
||||
}
|
||||
//prank01 prank prank123
|
||||
buildTypes {
|
||||
release {
|
||||
isMinifyEnabled = false
|
||||
isMinifyEnabled = true
|
||||
proguardFiles(
|
||||
getDefaultProguardFile("proguard-android-optimize.txt"),
|
||||
"proguard-rules.pro"
|
||||
@ -48,26 +49,69 @@ dependencies {
|
||||
androidTestImplementation("androidx.test.ext:junit:1.1.5")
|
||||
androidTestImplementation("androidx.test.espresso:espresso-core:3.5.1")
|
||||
|
||||
implementation ("com.google.code.gson:gson:2.8.6")
|
||||
implementation("com.google.code.gson:gson:2.8.6")
|
||||
|
||||
implementation ("com.github.CymChad:BaseRecyclerViewAdapterHelper:2.9.47")
|
||||
implementation("com.github.CymChad:BaseRecyclerViewAdapterHelper:2.9.47")
|
||||
|
||||
implementation ("com.github.bumptech.glide:glide:4.16.0")
|
||||
implementation ("me.drakeet.materialdialog:library:1.3.1")
|
||||
implementation("com.github.bumptech.glide:glide:4.16.0")
|
||||
implementation("me.drakeet.materialdialog:library:1.3.1")
|
||||
|
||||
annotationProcessor ("com.github.bumptech.glide:compiler:4.16.0")
|
||||
implementation ("com.github.ForgetAll:LoadingDialog:v1.1.2")
|
||||
annotationProcessor("com.github.bumptech.glide:compiler:4.16.0")
|
||||
implementation("com.github.ForgetAll:LoadingDialog:v1.1.2")
|
||||
|
||||
implementation ("com.alibaba:fastjson:1.2.70")
|
||||
implementation(platform("com.google.firebase:firebase-bom:33.0.0"))
|
||||
implementation("com.alibaba:fastjson:1.2.70")
|
||||
|
||||
|
||||
implementation(platform("com.google.firebase:firebase-bom:33.1.1"))
|
||||
implementation("com.google.firebase:firebase-crashlytics")
|
||||
implementation("com.google.firebase:firebase-analytics")
|
||||
|
||||
implementation("com.applovin:applovin-sdk:12.5.0")
|
||||
implementation("com.applovin.mediation:adcolony-adapter:4.8.0.4")
|
||||
implementation("com.applovin.mediation:ironsource-adapter:8.1.0.0.0")
|
||||
implementation("com.applovin.mediation:vungle-adapter:7.3.2.1")
|
||||
implementation("com.applovin.mediation:facebook-adapter:6.17.0.0")
|
||||
implementation("com.applovin.mediation:bytedance-adapter:5.9.0.6.0")
|
||||
implementation("com.applovin.mediation:unityads-adapter:4.12.0.0")
|
||||
|
||||
//-----------------------------TopOn 聚合(mintegral、unityads、liftoff(vungle)、Bigo)
|
||||
//Anythink (Necessary)
|
||||
implementation("com.anythink.sdk:core-tpn:6.3.68")
|
||||
implementation("com.anythink.sdk:nativead-tpn:6.3.68")
|
||||
implementation("com.anythink.sdk:banner-tpn:6.3.68")
|
||||
implementation("com.anythink.sdk:interstitial-tpn:6.3.68")
|
||||
implementation("com.anythink.sdk:rewardedvideo-tpn:6.3.68")
|
||||
implementation("com.anythink.sdk:splash-tpn:6.3.68")
|
||||
|
||||
//Androidx (Necessary)
|
||||
implementation("androidx.appcompat:appcompat:1.1.0")
|
||||
implementation("androidx.browser:browser:1.4.0")
|
||||
|
||||
//Vungle
|
||||
implementation("com.anythink.sdk:adapter-tpn-vungle:6.3.68")
|
||||
implementation("com.vungle:vungle-ads:7.3.2")
|
||||
implementation("com.google.android.gms:play-services-basement:18.1.0")
|
||||
implementation("com.google.android.gms:play-services-ads-identifier:18.0.1")
|
||||
|
||||
//UnityAds
|
||||
implementation("com.anythink.sdk:adapter-tpn-unityads:6.3.68")
|
||||
implementation("com.unity3d.ads:unity-ads:4.9.3")
|
||||
|
||||
//Bigo
|
||||
implementation("com.anythink.sdk:adapter-tpn-bigo:6.3.68")
|
||||
implementation("com.bigossp:bigo-ads:4.7.4")
|
||||
|
||||
//Mintegral
|
||||
implementation("com.anythink.sdk:adapter-tpn-mintegral-nonchina:6.3.68")
|
||||
implementation("com.mbridge.msdk.oversea:reward:16.7.51")
|
||||
implementation("com.mbridge.msdk.oversea:newinterstitial:16.7.51")
|
||||
implementation("com.mbridge.msdk.oversea:mbnative:16.7.51")
|
||||
implementation("com.mbridge.msdk.oversea:mbnativeadvanced:16.7.51")
|
||||
implementation("com.mbridge.msdk.oversea:mbsplash:16.7.51")
|
||||
implementation("com.mbridge.msdk.oversea:mbbanner:16.7.51")
|
||||
implementation("com.mbridge.msdk.oversea:mbbid:16.7.51")
|
||||
implementation("androidx.recyclerview:recyclerview:1.1.0")
|
||||
|
||||
//Tramini
|
||||
implementation("com.anythink.sdk:tramini-plugin-tpn:6.3.68")
|
||||
//-----------------------------TopOn 聚合
|
||||
|
||||
|
||||
// Debugger UI Tools
|
||||
// implementation ("com.anythink.sdk:debugger-ui:1.0.7")
|
||||
|
||||
|
||||
}
|
||||
@ -1,13 +1,13 @@
|
||||
{
|
||||
"project_info": {
|
||||
"project_number": "545114132353",
|
||||
"project_id": "prank-app-funny-sounds-air-hor",
|
||||
"storage_bucket": "prank-app-funny-sounds-air-hor.appspot.com"
|
||||
"project_number": "890674306096",
|
||||
"project_id": "prank-app-funny-sound-air-horn",
|
||||
"storage_bucket": "prank-app-funny-sound-air-horn.appspot.com"
|
||||
},
|
||||
"client": [
|
||||
{
|
||||
"client_info": {
|
||||
"mobilesdk_app_id": "1:545114132353:android:2f3713b50c726900a2a280",
|
||||
"mobilesdk_app_id": "1:890674306096:android:1ea832c0b755fe7fd161f5",
|
||||
"android_client_info": {
|
||||
"package_name": "com.prankapp.fartsounds.airhorn"
|
||||
}
|
||||
@ -15,7 +15,7 @@
|
||||
"oauth_client": [],
|
||||
"api_key": [
|
||||
{
|
||||
"current_key": "AIzaSyCkBnu8PFLZmPPBEEv1o27iTAYBVZpBdec"
|
||||
"current_key": "AIzaSyB5GQ6DOpqiXmY6EBGCJy4yrV3OyRvt2F8"
|
||||
}
|
||||
],
|
||||
"services": {
|
||||
|
||||
5
app/keyinfo
Normal file
5
app/keyinfo
Normal file
@ -0,0 +1,5 @@
|
||||
keyfile:prankapp.jks
|
||||
key store psd :prankapp
|
||||
alias:prank
|
||||
key psd:prankapp123
|
||||
|
||||
@ -1,10 +0,0 @@
|
||||
{\rtf1\ansi\ansicpg936\cocoartf2761
|
||||
\cocoatextscaling0\cocoaplatform0{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
|
||||
{\colortbl;\red255\green255\blue255;}
|
||||
{\*\expandedcolortbl;;}
|
||||
\paperw11900\paperh16840\margl1440\margr1440\vieww11520\viewh8400\viewkind0
|
||||
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\partightenfactor0
|
||||
|
||||
\f0\fs24 \cf0 key store psd \uc0\u65306 prank123\
|
||||
alias\uc0\u65306 prank\
|
||||
key psd\uc0\u65306 prank123123}
|
||||
107
app/proguard-rules.pro
vendored
107
app/proguard-rules.pro
vendored
@ -18,4 +18,109 @@
|
||||
|
||||
# If you keep the line number information, uncomment this to
|
||||
# hide the original source file name.
|
||||
#-renamesourcefileattribute SourceFile
|
||||
#-renamesourcefileattribute SourceFile
|
||||
|
||||
#---------------------------------TopOn 聚合
|
||||
# Vungle
|
||||
-dontwarn com.vungle.ads.**
|
||||
-keepclassmembers class com.vungle.ads.** {
|
||||
*;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
# Google
|
||||
-keep class com.google.android.gms.** { *; }
|
||||
-dontwarn com.google.android.gms.**
|
||||
|
||||
|
||||
|
||||
|
||||
# START OkHttp + Okio
|
||||
# JSR 305 annotations are for embedding nullability information.
|
||||
-dontwarn javax.annotation.**
|
||||
|
||||
|
||||
# A resource is loaded with a relative path so the package of this class must be preserved.
|
||||
-adaptresourcefilenames okhttp3/internal/publicsuffix/PublicSuffixDatabase.gz
|
||||
|
||||
|
||||
# Animal Sniffer compileOnly dependency to ensure APIs are compatible with older versions of Java.
|
||||
-dontwarn org.codehaus.mojo.animal_sniffer.*
|
||||
|
||||
|
||||
# OkHttp platform used only on JVM and when Conscrypt and other security providers are available.
|
||||
-dontwarn okhttp3.internal.platform.**
|
||||
-dontwarn org.conscrypt.**
|
||||
-dontwarn org.bouncycastle.**
|
||||
-dontwarn org.openjsse.**
|
||||
|
||||
|
||||
# Animal Sniffer compileOnly dependency to ensure APIs are compatible with older versions of Java.
|
||||
-dontwarn org.codehaus.mojo.animal_sniffer.*
|
||||
|
||||
|
||||
# END OkHttp + Okio
|
||||
|
||||
|
||||
# START Protobuf
|
||||
-dontwarn com.google.protobuf.**
|
||||
-keepclassmembers class com.google.protobuf.** {
|
||||
*;
|
||||
}
|
||||
-keep class * extends com.google.protobuf.GeneratedMessageLite { *; }
|
||||
|
||||
|
||||
# END Protobuf
|
||||
-keepattributes Signature
|
||||
-keepattributes *Annotation*
|
||||
-keep class com.mbridge.** {*; }
|
||||
-keep interface com.mbridge.** {*; }
|
||||
-keep class android.support.v4.** { *; }
|
||||
-dontwarn com.mbridge.**
|
||||
-keep class **.R$* { public static final int mbridge*; }
|
||||
-keep public class com.mbridge.* extends androidx.** { *; }
|
||||
-keep public class androidx.viewpager.widget.PagerAdapter{ *; }
|
||||
-keep public class androidx.viewpager.widget.ViewPager.OnPageChangeListener{ *; }
|
||||
-keep interface androidx.annotation.IntDef{ *; }
|
||||
-keep interface androidx.annotation.Nullable{ *; }
|
||||
-keep interface androidx.annotation.CheckResult{ *; }
|
||||
-keep interface androidx.annotation.NonNull{ *; }
|
||||
-keep public class androidx.fragment.app.Fragment{ *; }
|
||||
-keep public class androidx.core.content.FileProvider{ *; }
|
||||
-keep public class androidx.core.app.NotificationCompat{ *; }
|
||||
-keep public class androidx.appcompat.widget.AppCompatImageView { *; }
|
||||
-keep public class androidx.recyclerview.*{ *; }
|
||||
|
||||
#---------------------------------TopOn 聚合
|
||||
|
||||
|
||||
|
||||
-dontwarn java.awt.Color
|
||||
-dontwarn java.awt.Font
|
||||
-dontwarn java.awt.Point
|
||||
-dontwarn java.awt.Rectangle
|
||||
-dontwarn javax.money.CurrencyUnit
|
||||
-dontwarn javax.money.Monetary
|
||||
-dontwarn javax.ws.rs.Consumes
|
||||
-dontwarn javax.ws.rs.Produces
|
||||
-dontwarn javax.ws.rs.core.Response
|
||||
-dontwarn javax.ws.rs.core.StreamingOutput
|
||||
-dontwarn javax.ws.rs.ext.MessageBodyReader
|
||||
-dontwarn javax.ws.rs.ext.MessageBodyWriter
|
||||
-dontwarn javax.ws.rs.ext.Provider
|
||||
-dontwarn org.glassfish.jersey.internal.spi.AutoDiscoverable
|
||||
-dontwarn org.javamoney.moneta.Money
|
||||
-dontwarn org.joda.time.DateTime
|
||||
-dontwarn org.joda.time.DateTimeZone
|
||||
-dontwarn org.joda.time.Duration
|
||||
-dontwarn org.joda.time.Instant
|
||||
-dontwarn org.joda.time.LocalDate
|
||||
-dontwarn org.joda.time.LocalDateTime
|
||||
-dontwarn org.joda.time.LocalTime
|
||||
-dontwarn org.joda.time.Period
|
||||
-dontwarn org.joda.time.ReadablePartial
|
||||
-dontwarn org.joda.time.format.DateTimeFormat
|
||||
-dontwarn org.joda.time.format.DateTimeFormatter
|
||||
-dontwarn springfox.documentation.spring.web.json.Json
|
||||
|
||||
@ -3,8 +3,8 @@
|
||||
xmlns:tools="http://schemas.android.com/tools">
|
||||
<uses-permission android:name="android.permission.INTERNET" />
|
||||
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
|
||||
<uses-permission android:name="com.google.android.gms.permission.AD_ID"/>
|
||||
|
||||
<!-- 基本所有广告平台SDK的必要权限-->
|
||||
<uses-permission android:name="com.google.android.gms.permission.AD_ID" />
|
||||
<application
|
||||
android:name=".app.Application__"
|
||||
android:allowBackup="true"
|
||||
@ -16,6 +16,10 @@
|
||||
android:supportsRtl="true"
|
||||
android:theme="@style/prank01"
|
||||
tools:targetApi="31">
|
||||
|
||||
<!-- Android 9以上适配 -->
|
||||
<uses-library android:name="org.apache.http.legacy" android:required="false"/>
|
||||
|
||||
<activity
|
||||
android:name=".splash_prank.SplashActivity"
|
||||
android:theme="@style/splashprank"
|
||||
|
||||
@ -1,69 +0,0 @@
|
||||
package com.prankapp.fartsounds.airhorn.ad_util;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.content.Context;
|
||||
import android.util.Log;
|
||||
|
||||
import androidx.lifecycle.Lifecycle;
|
||||
import androidx.lifecycle.LifecycleObserver;
|
||||
import androidx.lifecycle.OnLifecycleEvent;
|
||||
import androidx.lifecycle.ProcessLifecycleOwner;
|
||||
|
||||
import com.applovin.mediation.MaxAd;
|
||||
import com.applovin.mediation.MaxAdListener;
|
||||
import com.applovin.mediation.MaxError;
|
||||
import com.applovin.mediation.ads.MaxAppOpenAd;
|
||||
import com.applovin.mediation.ads.MaxInterstitialAd;
|
||||
|
||||
public class MaxPrankAdManager implements LifecycleObserver, MaxAdListener {
|
||||
private MaxInterstitialAd appOpenAd;
|
||||
private Context context;
|
||||
AdPrankListener adListener;
|
||||
public MaxPrankAdManager(Context context, String id, AdPrankListener adLoadedListener) {
|
||||
ProcessLifecycleOwner.get().getLifecycle().addObserver(this);
|
||||
this.adListener = adLoadedListener;
|
||||
this.context = context;
|
||||
appOpenAd = new MaxInterstitialAd(id, context);
|
||||
appOpenAd.setListener(this);
|
||||
appOpenAd.loadAd();
|
||||
}
|
||||
|
||||
@OnLifecycleEvent(Lifecycle.Event.ON_START)
|
||||
public void onStart() {
|
||||
//showAdIfReady();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAdLoaded(final MaxAd ad) {
|
||||
Log.e("prank","onAdLoaded");
|
||||
adListener.adPrankShow();
|
||||
appOpenAd.showAd();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAdLoadFailed(final String adUnitId, final MaxError error) {
|
||||
Log.e("prank","onAdLoadFailed");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAdDisplayed(final MaxAd ad) {
|
||||
Log.e("prank","onAdDisplayed");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAdClicked(final MaxAd ad) {
|
||||
Log.e("prank","onAdClicked");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAdHidden(final MaxAd ad) {
|
||||
adListener.adPrankClose();
|
||||
// appOpenAd.loadAd();
|
||||
Log.e("prank","onAdHidden");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAdDisplayFailed(final MaxAd ad, final MaxError error) {
|
||||
appOpenAd.loadAd();
|
||||
}
|
||||
}
|
||||
@ -1,13 +1,56 @@
|
||||
package com.prankapp.fartsounds.airhorn.app;
|
||||
|
||||
import android.app.Application;
|
||||
import android.util.Log;
|
||||
|
||||
import com.anythink.core.api.ATSDK;
|
||||
import com.anythink.core.api.NetTrafficeCallback;
|
||||
import com.prankapp.fartsounds.airhorn.openmediation.AdManager;
|
||||
import com.prankapp.fartsounds.airhorn.utilsfff.Utils;
|
||||
|
||||
public class Application__ extends Application {
|
||||
private static String AppKey = "a706b17d04ce19de26cb3adb5b6c330ca";
|
||||
private static String APPId = "h6697383c8175b";
|
||||
private static String debug_KEy="a8dd4a3f1c38a5a3cadb4f39385fb682af63df07";
|
||||
public static String TAG = "----------tt";
|
||||
@Override
|
||||
public void onCreate() {
|
||||
super.onCreate();
|
||||
Utils.init(this);
|
||||
setTopOnGDPR();
|
||||
initTopOnSDk();
|
||||
}
|
||||
|
||||
private void initTopOnSDk(){
|
||||
ATSDK.init( this, APPId, AppKey);
|
||||
// ATDebuggerUITest.showDebuggerUI(this,debug_KEy);
|
||||
AdManager.loadAllAd();
|
||||
}
|
||||
|
||||
private void setTopOnGDPR(){
|
||||
// ATSDK.PERSONALIZED //设备数据允许上报
|
||||
// ATSDK.NONPERSONALIZED //设备数据不允许上报
|
||||
// ATSDK.UNKNOWN //未知等级,只能通过getGDPRDataLevel方法获取,不能用setGDPRUploadDataLevel方法设置
|
||||
// ATSDK.setGDPRUploadDataLevel(this, ATSDK.PERSONALIZED);
|
||||
|
||||
ATSDK.checkIsEuTraffic(this, new NetTrafficeCallback() {
|
||||
|
||||
@Override
|
||||
public void onResultCallback(boolean isEU) {
|
||||
Log.e(TAG, "onResultCallback:" + isEU);
|
||||
if (isEU && ATSDK.getGDPRDataLevel(Application__.this) == ATSDK.UNKNOWN) {
|
||||
ATSDK.showGdprAuth(Application__.this);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onErrorCallback(String errorMsg) {
|
||||
Log.e(TAG, "onErrorCallback:" + errorMsg);
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -0,0 +1,9 @@
|
||||
package com.prankapp.fartsounds.airhorn.openmediation
|
||||
|
||||
interface AdListener {
|
||||
fun showSuccess()
|
||||
|
||||
fun showFail()
|
||||
|
||||
fun showClose()
|
||||
}
|
||||
@ -0,0 +1,175 @@
|
||||
package com.prankapp.fartsounds.airhorn.openmediation
|
||||
|
||||
import android.app.Activity
|
||||
import android.os.CountDownTimer
|
||||
import android.util.Log
|
||||
import com.anythink.core.api.ATAdInfo
|
||||
import com.anythink.core.api.AdError
|
||||
import com.anythink.interstitial.api.ATInterstitial
|
||||
import com.anythink.interstitial.api.ATInterstitialListener
|
||||
import com.prankapp.fartsounds.airhorn.app.Application__
|
||||
import com.prankapp.fartsounds.airhorn.utilsfff.Utils
|
||||
|
||||
object AdManager {
|
||||
|
||||
|
||||
const val type_no_cache = 0
|
||||
const val type_has_cache = 1
|
||||
const val type_show_success = 2
|
||||
const val type_show_close = 3
|
||||
const val type_show_fail = 4
|
||||
|
||||
|
||||
const val place1Id = "n669738b37f8f2"
|
||||
const val place2Id = "n1fon1upfbrc2p"
|
||||
const val place3Id = "n669738b37f8f2"
|
||||
|
||||
val list = mutableListOf<ATInterstitial>()
|
||||
|
||||
|
||||
@JvmStatic
|
||||
fun loadAllAd() {
|
||||
if (list.size <= 0) {
|
||||
val mInterstitialAd1 = ATInterstitial(Utils.context, place1Id)
|
||||
val mInterstitialAd2 = ATInterstitial(Utils.context, place2Id)
|
||||
val mInterstitialAd3 = ATInterstitial(Utils.context, place3Id)
|
||||
list.add(mInterstitialAd1)
|
||||
list.add(mInterstitialAd2)
|
||||
list.add(mInterstitialAd3)
|
||||
}
|
||||
for (ad in list) {
|
||||
if (!ad.isAdReady) {
|
||||
setCallBack(ad,object :AdListener{
|
||||
override fun showSuccess() {
|
||||
|
||||
}
|
||||
|
||||
override fun showFail() {
|
||||
|
||||
}
|
||||
|
||||
override fun showClose() {
|
||||
|
||||
}
|
||||
|
||||
})
|
||||
ad.load()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@JvmStatic
|
||||
fun getReadyAd(): ATInterstitial? {
|
||||
list.shuffle()
|
||||
for (ad in list) {
|
||||
if (ad.isAdReady) {
|
||||
return ad
|
||||
}
|
||||
}
|
||||
return null
|
||||
}
|
||||
|
||||
|
||||
@JvmStatic
|
||||
fun showWelcomeAd(activity: Activity,totalTim: Long, goMain: () -> Unit): CountDownTimer {
|
||||
var alreadyShow = false
|
||||
var timer = object : CountDownTimer(totalTim, 100) {
|
||||
override fun onTick(millisUntilFinished: Long) {
|
||||
if (!alreadyShow) {
|
||||
showAD(activity) {
|
||||
if (it == type_has_cache) {
|
||||
alreadyShow = true
|
||||
}
|
||||
if (it == type_show_close || it == type_show_fail) {
|
||||
goMain.invoke()
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
override fun onFinish() {
|
||||
if (!alreadyShow) {
|
||||
showAD(activity) {
|
||||
if (it == type_show_close || it == type_show_fail || it == type_no_cache) {
|
||||
goMain.invoke()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
return timer
|
||||
}
|
||||
|
||||
private fun setCallBack(ad: ATInterstitial, listener: AdListener) {
|
||||
ad.setAdListener(object : ATInterstitialListener {
|
||||
override fun onInterstitialAdLoaded() {
|
||||
Log.d(Application__.TAG, "LoadLoaded ${ad.mPlacementId}")
|
||||
}
|
||||
|
||||
override fun onInterstitialAdLoadFail(p0: AdError?) {
|
||||
Log.d(Application__.TAG, "LoadFail:${p0?.code} ${p0?.desc}")
|
||||
}
|
||||
|
||||
override fun onInterstitialAdClicked(p0: ATAdInfo?) {
|
||||
|
||||
}
|
||||
|
||||
override fun onInterstitialAdShow(p0: ATAdInfo?) {
|
||||
Log.d(Application__.TAG, "AdShow ${p0?.showId} ")
|
||||
listener.showSuccess()
|
||||
ad.load()
|
||||
}
|
||||
|
||||
override fun onInterstitialAdClose(p0: ATAdInfo?) {
|
||||
listener.showClose()
|
||||
}
|
||||
|
||||
override fun onInterstitialAdVideoStart(p0: ATAdInfo?) {
|
||||
|
||||
}
|
||||
|
||||
override fun onInterstitialAdVideoEnd(p0: ATAdInfo?) {
|
||||
|
||||
}
|
||||
|
||||
override fun onInterstitialAdVideoError(p0: AdError?) {
|
||||
listener.showFail()
|
||||
}
|
||||
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
@JvmStatic
|
||||
fun showAD(activity: Activity, action: (type: Int) -> Unit) {
|
||||
val readyAd = getReadyAd()
|
||||
if (readyAd!= null) {
|
||||
Log.d(Application__.TAG, "readyAd ${readyAd.mPlacementId} ")
|
||||
action.invoke(type_has_cache)
|
||||
setCallBack(readyAd,object : AdListener {
|
||||
override fun showSuccess() {
|
||||
action.invoke(type_show_success)
|
||||
}
|
||||
|
||||
override fun showFail() {
|
||||
action.invoke(type_show_fail)
|
||||
}
|
||||
|
||||
override fun showClose() {
|
||||
action.invoke(type_show_close)
|
||||
}
|
||||
|
||||
})
|
||||
readyAd.show(activity)
|
||||
} else {
|
||||
action.invoke(type_no_cache)
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@ -2,90 +2,52 @@ package com.prankapp.fartsounds.airhorn.splash_prank;
|
||||
|
||||
import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
import android.os.CountDownTimer;
|
||||
import android.os.Handler;
|
||||
import android.util.Log;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
|
||||
import com.applovin.sdk.AppLovinMediationProvider;
|
||||
import com.applovin.sdk.AppLovinSdk;
|
||||
import com.applovin.sdk.AppLovinSdkConfiguration;
|
||||
import com.applovin.sdk.AppLovinSdkInitializationConfiguration;
|
||||
import com.prankapp.fartsounds.airhorn.MainActivity;
|
||||
import com.prankapp.fartsounds.airhorn.ad_util.AdPrankListener;
|
||||
import com.prankapp.fartsounds.airhorn.ad_util.MaxPrankAdManager;
|
||||
import com.prankapp.fartsounds.airhorn.utilsfff.Constant;
|
||||
import com.prankapp.fartsounds.airhorn.R;
|
||||
import com.prankapp.fartsounds.airhorn.openmediation.AdManager;
|
||||
|
||||
import kotlin.Unit;
|
||||
import kotlin.jvm.functions.Function0;
|
||||
|
||||
public class SplashActivity extends AppCompatActivity {
|
||||
|
||||
Handler handlerdfdsf = new Handler();
|
||||
private Runnable runnablegfdg;
|
||||
|
||||
|
||||
private boolean isShowedPrankAd = false;
|
||||
private Long totalTim = 11000L;
|
||||
private CountDownTimer countDownTimer;
|
||||
|
||||
@Override
|
||||
protected void onCreate(@Nullable Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
|
||||
runnablegfdg = new Runnable() {
|
||||
int count = 15;
|
||||
|
||||
setContentView(R.layout.splash_activity);
|
||||
countDownTimer = AdManager.showWelcomeAd(SplashActivity.this,totalTim, new Function0<Unit>() {
|
||||
@Override
|
||||
public void run() {
|
||||
if (count > 0) {
|
||||
if (isShowedPrankAd) {
|
||||
handlerdfdsf.removeCallbacks(runnablegfdg);
|
||||
return;
|
||||
}
|
||||
count--;
|
||||
handlerdfdsf.postDelayed(this, 1000);
|
||||
} else {
|
||||
finish();
|
||||
startActivity(new Intent(SplashActivity.this, MainActivity.class));
|
||||
}
|
||||
public Unit invoke() {
|
||||
go();
|
||||
return null;
|
||||
}
|
||||
};
|
||||
handlerdfdsf.postDelayed(runnablegfdg, 0);
|
||||
|
||||
|
||||
AppLovinSdkInitializationConfiguration initConfig = AppLovinSdkInitializationConfiguration.builder( "yuB4fQEc6yE5384qm7dKkZU6eOJDHwLmJfxUZ8s7A7nDa5nUlrG85VwVgJCl3X_EQWhiRZTyyVhiJWlmorVRxi", this )
|
||||
.setMediationProvider( AppLovinMediationProvider.MAX )
|
||||
.build();
|
||||
|
||||
// Initialize the SDK with the configuration
|
||||
AppLovinSdk.getInstance( this ).initialize( initConfig, new AppLovinSdk.SdkInitializationListener()
|
||||
{
|
||||
@Override
|
||||
public void onSdkInitialized(final AppLovinSdkConfiguration sdkConfig)
|
||||
{
|
||||
Log.e("hhh", "sdk初始化成功");
|
||||
|
||||
MaxPrankAdManager maxAdManager = new MaxPrankAdManager(SplashActivity.this, Constant.adIdpPrankSplash, new AdPrankListener() {
|
||||
@Override
|
||||
public void adPrankShow() {
|
||||
isShowedPrankAd = true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void adPrankClose() {
|
||||
finish();
|
||||
startActivity(new Intent(SplashActivity.this, MainActivity.class));
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
} );
|
||||
});
|
||||
countDownTimer.start();
|
||||
|
||||
|
||||
}
|
||||
|
||||
private void go() {
|
||||
finish();
|
||||
startActivity(new Intent(SplashActivity.this, MainActivity.class));
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onDestroy() {
|
||||
super.onDestroy();
|
||||
handlerdfdsf.removeCallbacks(runnablegfdg);
|
||||
countDownTimer.cancel();
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -17,8 +17,8 @@ import com.bumptech.glide.Glide;
|
||||
import com.google.gson.Gson;
|
||||
import com.prankapp.fartsounds.airhorn.R;
|
||||
import com.prankapp.fartsounds.airhorn.ad_util.AdPrankListener;
|
||||
import com.prankapp.fartsounds.airhorn.ad_util.MaxPrankAdManager;
|
||||
import com.prankapp.fartsounds.airhorn.model.PrankListModel;
|
||||
import com.prankapp.fartsounds.airhorn.openmediation.AdManager;
|
||||
import com.prankapp.fartsounds.airhorn.utilsfff.Constant;
|
||||
import com.prankapp.fartsounds.airhorn.utilsfff.ImmUtils;
|
||||
import com.prankapp.fartsounds.airhorn.utilsfff.SPUtils;
|
||||
@ -30,6 +30,9 @@ import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
|
||||
import kotlin.Unit;
|
||||
import kotlin.jvm.functions.Function1;
|
||||
|
||||
public class PrankDetailsActivity extends AppCompatActivity {
|
||||
|
||||
ImageView iv_back;
|
||||
@ -49,6 +52,7 @@ public class PrankDetailsActivity extends AppCompatActivity {
|
||||
ObjectAnimator animator;
|
||||
|
||||
boolean isPlayAd = false;
|
||||
|
||||
@Override
|
||||
protected void onCreate(@Nullable Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
@ -59,7 +63,7 @@ public class PrankDetailsActivity extends AppCompatActivity {
|
||||
.setSuccessText("Success")
|
||||
.setInterceptBack(true)
|
||||
.show();
|
||||
ImmUtils.setStatusBar(this,false,false);
|
||||
ImmUtils.setStatusBar(this, false, false);
|
||||
|
||||
iv_back = findViewById(R.id.iv_back);
|
||||
tv_shake_tips = findViewById(R.id.tv_shake_tips);
|
||||
@ -70,17 +74,16 @@ public class PrankDetailsActivity extends AppCompatActivity {
|
||||
iv_back.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
finish();
|
||||
}
|
||||
});
|
||||
AdManager.showAD(PrankDetailsActivity.this, new Function1<Integer, Unit>() {
|
||||
@Override
|
||||
public Unit invoke(Integer integer) {
|
||||
if (integer == AdManager.type_show_close || integer == AdManager.type_no_cache || integer == AdManager.type_show_fail) {
|
||||
finish();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
});
|
||||
|
||||
new MaxPrankAdManager(PrankDetailsActivity.this, Constant.adIdPrankSee, new AdPrankListener() {
|
||||
@Override
|
||||
public void adPrankShow() {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void adPrankClose() {
|
||||
}
|
||||
});
|
||||
|
||||
@ -93,7 +96,7 @@ public class PrankDetailsActivity extends AppCompatActivity {
|
||||
|
||||
for (int i = 0; i < Constant.prankListModel.size(); i++) {
|
||||
if (Constant.prankListModel.get(i).getCategoryId().equals(id)) {
|
||||
jj = i ;
|
||||
jj = i;
|
||||
listBeans.addAll(Constant.prankListModel.get(i).getList());
|
||||
}
|
||||
}
|
||||
@ -103,16 +106,16 @@ public class PrankDetailsActivity extends AppCompatActivity {
|
||||
iv_shoucang.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
if(isShoucah(id)){
|
||||
if (isShoucah(id)) {
|
||||
pankList.remove(getIndex(id));
|
||||
Gson gson = new Gson();
|
||||
String json = gson.toJson(pankList);
|
||||
SPUtils.getInstance().put(Constant.shouCang,json);
|
||||
}else{
|
||||
SPUtils.getInstance().put(Constant.shouCang, json);
|
||||
} else {
|
||||
pankList.add(Constant.prankListModel.get(jj));
|
||||
Gson gson = new Gson();
|
||||
String json = gson.toJson(pankList);
|
||||
SPUtils.getInstance().put(Constant.shouCang,json);
|
||||
SPUtils.getInstance().put(Constant.shouCang, json);
|
||||
|
||||
}
|
||||
isShoucah(id);
|
||||
@ -120,7 +123,7 @@ public class PrankDetailsActivity extends AppCompatActivity {
|
||||
}
|
||||
});
|
||||
|
||||
if (mShakeUtils==null){
|
||||
if (mShakeUtils == null) {
|
||||
|
||||
mShakeUtils = new ShakeUtils(this);
|
||||
|
||||
@ -145,15 +148,15 @@ public class PrankDetailsActivity extends AppCompatActivity {
|
||||
}
|
||||
});
|
||||
|
||||
if(id.equals("625f83491fea07887e61906a") || id.equals("636b8e5415831ec42fc7d80a")){//左右摇晃
|
||||
if (id.equals("625f83491fea07887e61906a") || id.equals("636b8e5415831ec42fc7d80a")) {//左右摇晃
|
||||
// 设置动画的初始位置,0表示当前位置
|
||||
animator = ObjectAnimator.ofFloat(ivContent, "translationX", -20f,20f);//上下摇晃
|
||||
}else if(id.equals("625f83491fea07887e61906b") || id.equals("62be51cc4d4edd56b588d54e") || id.equals("62be51f84d4edd56b588d54f")|| id.equals("625f83491fea07887e619065")|| id.equals("64b617f06d7b94ebbe2a20fa")) {
|
||||
animator = ObjectAnimator.ofFloat(ivContent, "translationX", -20f, 20f);//上下摇晃
|
||||
} else if (id.equals("625f83491fea07887e61906b") || id.equals("62be51cc4d4edd56b588d54e") || id.equals("62be51f84d4edd56b588d54f") || id.equals("625f83491fea07887e619065") || id.equals("64b617f06d7b94ebbe2a20fa")) {
|
||||
tv_shake_tips.setVisibility(View.VISIBLE);
|
||||
iv_bofang.setVisibility(View.INVISIBLE);
|
||||
animator = ObjectAnimator.ofFloat(ivContent, "translationY", 0f, 20f, -20f, 20f, -20f, 20f, 0f);
|
||||
}else {
|
||||
animator = ObjectAnimator.ofFloat(ivContent, "translationY", 0f,0f);
|
||||
} else {
|
||||
animator = ObjectAnimator.ofFloat(ivContent, "translationY", 0f, 0f);
|
||||
}
|
||||
|
||||
// 动画时长
|
||||
@ -177,8 +180,8 @@ public class PrankDetailsActivity extends AppCompatActivity {
|
||||
mShakeUtils.setOnShakeListener(new ShakeUtils.OnShakeListener() {
|
||||
@Override
|
||||
public void onShake() {
|
||||
if(id.equals("625f83491fea07887e61906b") || id.equals("62be51cc4d4edd56b588d54e") || id.equals("62be51f84d4edd56b588d54f")|| id.equals("625f83491fea07887e619065")|| id.equals("64b617f06d7b94ebbe2a20fa")) {
|
||||
Log.e("666","摇晃了");
|
||||
if (id.equals("625f83491fea07887e61906b") || id.equals("62be51cc4d4edd56b588d54e") || id.equals("62be51f84d4edd56b588d54f") || id.equals("625f83491fea07887e619065") || id.equals("64b617f06d7b94ebbe2a20fa")) {
|
||||
Log.e("666", "摇晃了");
|
||||
playYaoHuangSingle();
|
||||
}
|
||||
}
|
||||
@ -188,50 +191,45 @@ public class PrankDetailsActivity extends AppCompatActivity {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
|
||||
if(!isPlayAd){
|
||||
new MaxPrankAdManager(PrankDetailsActivity.this, Constant.adIdPrankUse, new AdPrankListener() {
|
||||
if (!isPlayAd) {
|
||||
isPlayAd = true;
|
||||
if (!isPrepare) {
|
||||
return;
|
||||
}
|
||||
AdManager.showAD(PrankDetailsActivity.this, new Function1<Integer, Unit>() {
|
||||
@Override
|
||||
public void adPrankShow() {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void adPrankClose() {
|
||||
isPlayAd = true;
|
||||
if(!isPrepare){
|
||||
return;
|
||||
}
|
||||
|
||||
if (isBoFang){
|
||||
isBoFang =false;
|
||||
Constant.mediaPlayer.pause();
|
||||
iv_bofang.setImageDrawable(getDrawable(R.mipmap.ic_bofang1));
|
||||
animator.cancel();
|
||||
}else {
|
||||
Constant.mediaPlayer.start();
|
||||
isBoFang =true;
|
||||
iv_bofang.setImageDrawable(getDrawable(R.mipmap.ic_zanting1));
|
||||
/* if(id.equals("625f83491fea07887e61906b")){
|
||||
public Unit invoke(Integer integer) {
|
||||
if (integer == AdManager.type_show_close || integer == AdManager.type_no_cache || integer == AdManager.type_show_fail) {
|
||||
if (isBoFang) {
|
||||
isBoFang = false;
|
||||
Constant.mediaPlayer.pause();
|
||||
iv_bofang.setImageDrawable(getDrawable(R.mipmap.ic_bofang1));
|
||||
animator.cancel();
|
||||
} else {
|
||||
Constant.mediaPlayer.start();
|
||||
isBoFang = true;
|
||||
iv_bofang.setImageDrawable(getDrawable(R.mipmap.ic_zanting1));
|
||||
animator.start();
|
||||
}*/
|
||||
animator.start();
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
});
|
||||
|
||||
}else {
|
||||
} else {
|
||||
|
||||
if(!isPrepare){
|
||||
if (!isPrepare) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (isBoFang){
|
||||
isBoFang =false;
|
||||
if (isBoFang) {
|
||||
isBoFang = false;
|
||||
Constant.mediaPlayer.pause();
|
||||
iv_bofang.setImageDrawable(getDrawable(R.mipmap.ic_bofang1));
|
||||
animator.cancel();
|
||||
}else {
|
||||
} else {
|
||||
Constant.mediaPlayer.start();
|
||||
isBoFang =true;
|
||||
isBoFang = true;
|
||||
iv_bofang.setImageDrawable(getDrawable(R.mipmap.ic_zanting1));
|
||||
/* if(id.equals("625f83491fea07887e61906b")){
|
||||
animator.start();
|
||||
@ -245,79 +243,82 @@ public class PrankDetailsActivity extends AppCompatActivity {
|
||||
});
|
||||
}
|
||||
|
||||
public void playYaoHuangSingle(){
|
||||
public void playYaoHuangSingle() {
|
||||
|
||||
if(!isPlayAd){
|
||||
new MaxPrankAdManager(PrankDetailsActivity.this, Constant.adIdPrankUse, new AdPrankListener() {
|
||||
if (!isPlayAd) {
|
||||
isPlayAd = true;
|
||||
if (!isPrepare) {
|
||||
return;
|
||||
}
|
||||
AdManager.showAD(PrankDetailsActivity.this, new Function1<Integer, Unit>() {
|
||||
@Override
|
||||
public void adPrankShow() {
|
||||
}
|
||||
public Unit invoke(Integer integer) {
|
||||
if (integer == AdManager.type_show_close || integer == AdManager.type_no_cache || integer == AdManager.type_show_fail) {
|
||||
if (isYaoHuangBoFang) {
|
||||
isYaoHuangBoFang = false;
|
||||
Constant.mediaPlayer.pause();
|
||||
animator.cancel();
|
||||
} else {
|
||||
Constant.mediaPlayer.start();
|
||||
isYaoHuangBoFang = true;
|
||||
animator.start();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void adPrankClose() {
|
||||
isPlayAd = true;
|
||||
if(!isPrepare){
|
||||
return;
|
||||
}
|
||||
if (isYaoHuangBoFang){
|
||||
isYaoHuangBoFang =false;
|
||||
Constant.mediaPlayer.pause();
|
||||
animator.cancel();
|
||||
}else {
|
||||
Constant.mediaPlayer.start();
|
||||
isYaoHuangBoFang =true;
|
||||
animator.start();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
});
|
||||
|
||||
}else {
|
||||
if(!isPrepare){
|
||||
|
||||
} else {
|
||||
if (!isPrepare) {
|
||||
return;
|
||||
}
|
||||
if (isYaoHuangBoFang){
|
||||
isYaoHuangBoFang =false;
|
||||
if (isYaoHuangBoFang) {
|
||||
isYaoHuangBoFang = false;
|
||||
Constant.mediaPlayer.pause();
|
||||
animator.cancel();
|
||||
}else {
|
||||
} else {
|
||||
Constant.mediaPlayer.start();
|
||||
isYaoHuangBoFang =true;
|
||||
isYaoHuangBoFang = true;
|
||||
animator.start();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public void playLoop(){
|
||||
public void playLoop() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onDestroy() {
|
||||
super.onDestroy();
|
||||
if (isBoFang || isYaoHuangBoFang){
|
||||
if (isBoFang || isYaoHuangBoFang) {
|
||||
Constant.mediaPlayer.stop();
|
||||
}
|
||||
}
|
||||
|
||||
protected void onResume() {
|
||||
super.onResume();
|
||||
if (mShakeUtils!=null){
|
||||
if (mShakeUtils != null) {
|
||||
mShakeUtils.onResume();
|
||||
}
|
||||
}
|
||||
|
||||
protected void onPause() {
|
||||
super.onPause();
|
||||
if (mShakeUtils!=null){
|
||||
mShakeUtils.onPause( );
|
||||
if (mShakeUtils != null) {
|
||||
mShakeUtils.onPause();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public boolean isShoucah(String id){
|
||||
public boolean isShoucah(String id) {
|
||||
iv_shoucang.setImageDrawable(getResources().getDrawable(R.mipmap.xihuan2));
|
||||
String shouCang = SPUtils.getInstance().getString(Constant.shouCang);
|
||||
pankList = new ArrayList<>();
|
||||
if(!shouCang.isEmpty()){
|
||||
if (!shouCang.isEmpty()) {
|
||||
JSONArray jsonArray = JSONArray.parseArray(shouCang);
|
||||
for (int i = 0; i < jsonArray.size(); i++) {
|
||||
PrankListModel prankListModel = JSON.parseObject(jsonArray.get(i).toString(), PrankListModel.class);
|
||||
@ -325,28 +326,38 @@ public class PrankDetailsActivity extends AppCompatActivity {
|
||||
}
|
||||
}
|
||||
|
||||
boolean sss= false;
|
||||
boolean sss = false;
|
||||
for (int i = 0; i < pankList.size(); i++) {
|
||||
if(Objects.equals(pankList.get(i).getCategoryId(), id)){
|
||||
if (Objects.equals(pankList.get(i).getCategoryId(), id)) {
|
||||
sss = true;
|
||||
iv_shoucang.setImageDrawable(getResources().getDrawable(R.mipmap.xihuan1));
|
||||
}
|
||||
}
|
||||
return sss;
|
||||
return sss;
|
||||
}
|
||||
|
||||
public int getIndex(String id){
|
||||
int reti = 0;
|
||||
public int getIndex(String id) {
|
||||
int reti = 0;
|
||||
for (int i = 0; i < pankList.size(); i++) {
|
||||
if(Objects.equals(pankList.get(i).getCategoryId(), id)){
|
||||
reti = i;
|
||||
if (Objects.equals(pankList.get(i).getCategoryId(), id)) {
|
||||
reti = i;
|
||||
}
|
||||
}
|
||||
|
||||
return reti;
|
||||
return reti;
|
||||
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBackPressed() {
|
||||
super.onBackPressed();
|
||||
AdManager.showAD(PrankDetailsActivity.this, new Function1<Integer, Unit>() {
|
||||
@Override
|
||||
public Unit invoke(Integer integer) {
|
||||
return null;
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
18
app/src/main/res/layout/splash_activity.xml
Normal file
18
app/src/main/res/layout/splash_activity.xml
Normal file
@ -0,0 +1,18 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
|
||||
|
||||
|
||||
<ProgressBar
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignParentBottom="true"
|
||||
android:layout_marginBottom="38dp"
|
||||
android:indeterminateTint="@color/black"
|
||||
android:layout_marginTop="60dp"
|
||||
android:layout_centerHorizontal="true" />
|
||||
|
||||
</RelativeLayout>
|
||||
BIN
app/testPrankApp.jks
Normal file
BIN
app/testPrankApp.jks
Normal file
Binary file not shown.
@ -2,13 +2,14 @@ plugins {
|
||||
id("com.android.application") version "8.1.0" apply false
|
||||
id("org.jetbrains.kotlin.android") version "1.8.0" apply false
|
||||
id("com.google.gms.google-services") version "4.4.1" apply false
|
||||
id ("com.google.firebase.crashlytics") version "2.9.2" apply false
|
||||
}
|
||||
buildscript {
|
||||
repositories {
|
||||
maven { url = uri("https://artifacts.applovin.com/android") }
|
||||
|
||||
}
|
||||
dependencies {
|
||||
classpath ("com.applovin.quality:AppLovinQualityServiceGradlePlugin:5.2.6")
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
[versions]
|
||||
agp = "8.1.0"
|
||||
agp = "8.1.3"
|
||||
junit = "4.13.2"
|
||||
androidx-test-ext-junit = "1.1.5"
|
||||
espresso-core = "3.5.1"
|
||||
|
||||
@ -3,9 +3,7 @@ pluginManagement {
|
||||
google()
|
||||
mavenCentral()
|
||||
gradlePluginPortal()
|
||||
maven { url = uri("https://android-sdk.is.com") }
|
||||
maven { url = uri("https://dl-maven-android.mintegral.com/repository/mbridge_android_sdk_oversea") }
|
||||
maven { url = uri("https://artifact.bytedance.com/repository/pangle") }
|
||||
|
||||
}
|
||||
}
|
||||
dependencyResolutionManagement {
|
||||
@ -14,12 +12,19 @@ dependencyResolutionManagement {
|
||||
google()
|
||||
mavenCentral()
|
||||
maven { url = uri("https://jitpack.io") }
|
||||
maven { url = uri("https://android-sdk.is.com") }
|
||||
maven { url = uri("https://dl-maven-android.mintegral.com/repository/mbridge_android_sdk_oversea") }
|
||||
maven { url = uri("https://artifact.bytedance.com/repository/pangle") }
|
||||
|
||||
//Anythink(Core)
|
||||
maven ("https://jfrog.anythinktech.com/artifactory/overseas_sdk")
|
||||
//Mintegral
|
||||
maven ("https://dl-maven-android.mintegral.com/repository/mbridge_android_sdk_oversea")
|
||||
|
||||
//TopOn集成测试工具
|
||||
// maven ( "https://jfrog.anythinktech.com/artifactory/debugger")
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
rootProject.name = "prink01"
|
||||
rootProject.name = "Prank App"
|
||||
include(":app")
|
||||
|
||||
Loading…
Reference in New Issue
Block a user