V1.0.2(4),更换为MAX

This commit is contained in:
lihongwei 2024-09-19 11:56:35 +08:00
parent 2bfb955cf0
commit 0bcf78fe7a
25 changed files with 459 additions and 70 deletions

Binary file not shown.

18
.safedk/app_sdks.lst Normal file
View File

@ -0,0 +1,18 @@
106f9be0e66f52f36eaaaff4dd231971
75939c4ce23c53ad9534d43be176b3e9
217e8f437c9fc4244d6e74653ac8a8c7
66b774de6608db14a84e972fba1ec954
e1c9ddef73e5621f62c717badf1be3f2
daaea35726ab7cd457ab61d4538fb822
946dbe0d5ed7fee91c8ece64d035e70b
1be9e72506f3307ce6a9e78d26d65bd0
7eac188d3286b05ccbba774f63a2c049
4df96d3bc9afd17b812e65e6c6add1ef
becf75b2cc99e82716da2e6697879509
7eec7b9476b99b3ce94533da4f2eb987
974322f19d813702ea048d95288d2b8c
29015bbfcc182d80e7f75bd2c38e4521
dd2971b0681141d57b221687791ad1bd
86a0d598cde251321e21a0da4ab94065
74616804a7dc29147dfb0afe122a9fd2

Binary file not shown.

Binary file not shown.

2
.safedk/hashes.safedk Normal file
View File

@ -0,0 +1,2 @@
#Thu Sep 19 11:18:12 CST 2024
json=-1663032132

1
.safedk/list.enc Normal file

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,6 @@
#
#Thu Sep 19 11:28:35 CST 2024
sdk_analysis_plugin_version=5.4.6
set_multidex=true
y87o4e7vb5bbqzuGVTFyOIfZiyBG0Nf0Ksq8S3m2MJOHf_A5BcWGJnKuQqoxwxVvtdQdiTC4O3MPzFwy8rJ9Cc=3cUMfTcsZKzlJevxK4IkNysgDAeQA4B5w332p3g8B9ZAgC54WQNZLVxuxnCx4sCHA5StLJnDTAFa68mFTi8rd8
yatmRma9RKlsVe1if4NVbCKUizbmnIgxrtP84RJ2FMcQ5IfcZmuauBmU10zf9CTTaOJrzeIoGCmgT7uTlyigFN=Kwbl2wDLdNgp3kE8gk7WW_CCEBAee8xOIUJZQtEdNZX1iwclqFHlbgrUJt_g4zzSHJosSKIN13gv5Lqoe0bPvg

View File

@ -0,0 +1,34 @@
-keep class androidx.multidex.** { *; }
-keep class androidx.browser.customtabs.CustomTabsIntent { *; }
-keep class androidx.** {
*** startActivityForResult(***);
*** startActivity(***);
}
-keep class android.support.multidex.** { *; }
-keep class android.support.v4.app.** { *; }
-keep class com.google.android.gms.location.FusedLocationProviderApi { *; }
-keep class com.google.android.gms.location.LocationListener { *; }
-keep class io.fabric.sdk.android.** { *; }
-keep class okio.** { *; }
-keep class retrofit2.** { *; }
-keep class okhttp3.** { *; }
-keep class com.squareup.okhttp.** { *; }
-keep class com.android.volley.** { *; }
-keep class com.flurry.** { *; }
-keep class org.apache.** { *; }
-keep class com.applovin.** { *; }
-keep class com.google.android.gms.ads.** { *; }
-keep class com.ironsource.** { *; }
-keep class com.fyber.inneractive.** { *; }
-keep class com.vungle.** { *; }
-keep class com.unity3d.ads.** { *; }
-keep class com.unity3d.services.** { *; }
-keep class com.mintegral.msdk.** { *; }
-keep class com.mbridge.msdk.** { *; }
-keep class com.adcolony.sdk.** { *; }
-keep class com.inmobi.** { *; }
-keep class com.five_corp.** { *; }
-keep class com.bytedance.** { *; }
-keep class com.smaato.** { *; }
-keep class com.safedk.** { *; }
-keep class com.applovin.quality.** { *; }

View File

@ -6,7 +6,12 @@ plugins {
id ("kotlin-kapt")
id("com.google.gms.google-services")
id("com.google.firebase.crashlytics")
id("applovin-quality-service")
}
applovin{
apiKey = "yatmRma9RKlsVe1if4NVbCKUizbmnIgxrtP84RJ2FMcQ5IfcZmuauBmU10zf9CTTaOJrzeIoGCmgT7uTlyigFN"
}
val timestamp = SimpleDateFormat("MM_dd_HH_mm").format(Date())
android {
namespace = "com.key.simplekeyboard"
@ -61,5 +66,17 @@ dependencies {
implementation("com.google.firebase:firebase-analytics-ktx")
implementation("com.google.firebase:firebase-crashlytics-ktx")
//--------------------------MAXLiftoff Monetizevungle、Mintegral、Pangle、Unity Ads、inmobi
implementation("com.applovin:applovin-sdk:+")
implementation("com.applovin.mediation:vungle-adapter:+")
implementation("com.applovin.mediation:mintegral-adapter:+")
implementation("com.applovin.mediation:bytedance-adapter:+")
implementation("com.applovin.mediation:unityads-adapter:+")
implementation("com.applovin.mediation:inmobi-adapter:+")
implementation("com.squareup.picasso:picasso:2.71828")
implementation("androidx.recyclerview:recyclerview:1.1.0")
//MAX
}

6
app/keystore.properties Normal file
View File

@ -0,0 +1,6 @@
app_name=Simple Keyboard
package_name=com.key.simplekeyboard
keystoreFile=app/simplekeyboard.jks
key_alias=simplekeyboardkey0
key_store_password=simplekeyboard
key_password=simplekeyboard

View File

@ -11,9 +11,9 @@
"type": "SINGLE",
"filters": [],
"attributes": [],
"versionCode": 1,
"versionName": "1.0.0",
"outputFile": "simplekeyboard_V1.0.0(1)_08_01_14_24-release.apk"
"versionCode": 3,
"versionName": "1.0.2",
"outputFile": "simplekeyboard_V1.0.2(3)_09_19_11_23-release.apk"
}
],
"elementType": "File"

View File

@ -1,20 +0,0 @@
{
"version": 3,
"artifactType": {
"type": "APK",
"kind": "Directory"
},
"applicationId": "com.key.simplekeyboard.test",
"variantName": "release",
"elements": [
{
"type": "SINGLE",
"filters": [],
"attributes": [],
"versionCode": 1,
"versionName": "1.0.0",
"outputFile": "simplekeyboard_V1.0.0(1)_07_05_14_06-release.apk"
}
],
"elementType": "File"
}

View File

@ -2,8 +2,15 @@ package com.key.simplekeyboard;
import android.app.Application;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import androidx.localbroadcastmanager.content.LocalBroadcastManager;
import com.applovin.sdk.AppLovinMediationProvider;
import com.applovin.sdk.AppLovinSdk;
import com.applovin.sdk.AppLovinSdkConfiguration;
import com.applovin.sdk.AppLovinSdkInitializationConfiguration;
import com.key.simplekeyboard.data.Mydata;
import com.key.simplekeyboard.data.MydataBase;
import com.key.simplekeyboard.data.Otherdata;
@ -36,11 +43,13 @@ public class SimpleKeyboardSkins extends Application {
private static boolean isinsert;
private static final String PREFS_NAME = "MyPrefs";
private static final String KEY_IS_INSERTED = "isinserted";
private static final String TOP_ID = "h66ab2087ca5f6";
private static final String TOP_KEY = "abd49d8b0a0203888f56dd3c9b35201d3";
private static final String TOP_DEBUG = "04e8ce6db9751f67501af2bfed0cd0de0391453a";
public static final String AD_BROADCAST = "on_success_action";
private static final String MAX_SDK = "Kwbl2wDLdNgp3kE8gk7WW_CCEBAee8xOIUJZQtEdNZX1iwclqFHlbgrUJt_g4zzSHJosSKIN13gv5Lqoe0bPvg";
public static Boolean initSDK = false;
public static final String TAG = "--------------";
@Override
public void onCreate() {
super.onCreate();
@ -73,6 +82,20 @@ public class SimpleKeyboardSkins extends Application {
private void initSdk() {
AppLovinSdkInitializationConfiguration initConfig = AppLovinSdkInitializationConfiguration.builder(MAX_SDK, this)
.setMediationProvider(AppLovinMediationProvider.MAX)
.build();
AppLovinSdk.getInstance(this).initialize(initConfig, new AppLovinSdk.SdkInitializationListener() {
@Override
public void onSdkInitialized(final AppLovinSdkConfiguration sdkConfig) {
initSDK = true;
LocalBroadcastManager.getInstance(context).sendBroadcast(new Intent(AD_BROADCAST));
}
});
AppLovinSdk.getInstance(this).getSettings().setVerboseLogging(true);
//MAX广告测试
// AppLovinSdk.getInstance( this ).showMediationDebugger();
}

View File

@ -23,6 +23,8 @@ import com.google.android.material.tabs.TabLayout;
import com.key.simplekeyboard.R;
import com.key.simplekeyboard.adapter.PageAdapter;
import com.key.simplekeyboard.fragment.AllFragment;
import com.key.simplekeyboard.max.MaxManager;
import com.key.simplekeyboard.max.onAdAfterAction;
import com.key.simplekeyboard.tools.AdActionListener;
import java.util.ArrayList;
@ -53,6 +55,8 @@ public class AllActivity extends AppCompatActivity {
return insets;
});
MaxManager.onLoadAd();
@ -103,9 +107,12 @@ public class AllActivity extends AppCompatActivity {
}
private void showAd(AdActionListener listener) {
listener.onAction();
// TODO: 2024/9/19
MaxManager.startShowMaxAd(this, new onAdAfterAction() {
@Override
public void onAction() {
listener.onAction();
}
});
}

View File

@ -30,6 +30,8 @@ import com.key.simplekeyboard.adapter.ThumAdapter;
import com.key.simplekeyboard.data.MydataBase;
import com.key.simplekeyboard.data.Otherdata;
import com.key.simplekeyboard.fragment.MainFragment;
import com.key.simplekeyboard.max.MaxManager;
import com.key.simplekeyboard.max.onAdAfterAction;
import com.key.simplekeyboard.tools.AdActionListener;
import com.key.simplekeyboard.tools.Mytools;
import com.key.simplekeyboard.tools.SpaceItem;
@ -62,7 +64,7 @@ public class PreviewActivity extends AppCompatActivity {
v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom);
return insets;
});
MaxManager.onLoadAd();
intView();
@ -120,8 +122,12 @@ public class PreviewActivity extends AppCompatActivity {
}
private void showAd(AdActionListener listener) {
listener.onAction();
// TODO: 2024/9/19
MaxManager.startShowMaxAd(this, new onAdAfterAction() {
@Override
public void onAction() {
listener.onAction();
}
});
}
private void intEvent() {

View File

@ -25,6 +25,7 @@ import com.key.simplekeyboard.SimpleKeyboardSkins;
import com.key.simplekeyboard.adapter.ThumAdapter;
import com.key.simplekeyboard.data.MydataBase;
import com.key.simplekeyboard.data.Otherdata;
import com.key.simplekeyboard.max.MaxManager;
import com.key.simplekeyboard.tools.Mytools;
import com.key.simplekeyboard.tools.SpaceItem;
@ -51,7 +52,7 @@ public class SearchActivity extends AppCompatActivity {
v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom);
return insets;
});
MaxManager.onLoadAd();
initView();
faile.setVisibility(View.GONE);
searchText.requestFocus();

View File

@ -19,6 +19,7 @@ import android.widget.ImageView;
import com.key.simplekeyboard.R;
import com.key.simplekeyboard.SimpleKeyboardSkins;
import com.key.simplekeyboard.max.MaxManager;
import com.key.simplekeyboard.tools.Mytools;
public class SettingActivity extends AppCompatActivity {
@ -37,7 +38,7 @@ public class SettingActivity extends AppCompatActivity {
v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom);
return insets;
});
MaxManager.onLoadAd();
intView();
BroadcastReceiver broadcastReceiver = new BroadcastReceiver() {

View File

@ -10,16 +10,20 @@ import androidx.core.graphics.Insets;
import androidx.core.view.ViewCompat;
import androidx.core.view.WindowInsetsCompat;
import com.app.wallpaper.max.WelComManager;
import com.key.simplekeyboard.R;
import com.key.simplekeyboard.tools.CustomProgressBar;
import kotlin.Unit;
import kotlin.jvm.functions.Function0;
import kotlin.jvm.functions.Function1;
public class SplashActivity extends AppCompatActivity {
private long timer = 12000;
private CountDownTimer countDownTimer;
private boolean isAlreadyShow = false;
private float i = 0;
@SuppressLint("MissingInflatedId")
@Override
protected void onCreate(Bundle savedInstanceState) {
@ -34,39 +38,36 @@ public class SplashActivity extends AppCompatActivity {
CustomProgressBar customProgressBar = findViewById(R.id.splash_pg);
countDownTimer = new CountDownTimer(10100, 100) {
countDownTimer = WelComManager.initTimer(this, timer, new Function1<Long, Unit>() {
@Override
public void onTick(long l) {
i++;
customProgressBar.setProgress(i);
if (!isAlreadyShow) {
showAd(false);
}
public Unit invoke(Long aLong) {
float l1 = (float) aLong / timer;
float v = 100 - l1 * 100;
customProgressBar.setProgress((int) v);
return null;
}
}, new Function0<Unit>() {
@Override
public void onFinish() {
if (!isAlreadyShow) {
showAd(true);
}
public Unit invoke() {
starMainactivity();
return null;
}
};
countDownTimer.start();
});
}
private void showAd(boolean go) {
if(go){
starMainactivity();
}
}
private void starMainactivity() {
Intent intent = new Intent(SplashActivity.this, MainActivity.class);
startActivity(intent);
finish();
}
@Override
protected void onDestroy() {
super.onDestroy();
if(countDownTimer!=null){
countDownTimer.cancel();
}
}
}

View File

@ -0,0 +1,11 @@
package com.key.simplekeyboard.max;
import com.applovin.mediation.MaxAd;
public interface MaxListener {
void onFail(MaxAd ad);
void onShowSuccess(MaxAd ad);
void onHidden();
}

View File

@ -0,0 +1,185 @@
package com.key.simplekeyboard.max;
import android.app.Activity;
import android.util.Log;
import androidx.annotation.NonNull;
import com.applovin.mediation.MaxAd;
import com.applovin.mediation.MaxAdListener;
import com.applovin.mediation.MaxError;
import com.applovin.mediation.ads.MaxInterstitialAd;
import com.key.simplekeyboard.SimpleKeyboardSkins;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class MaxManager {
/**
* Keyboard_inter_1
* 7c434fe5706c6992
* Keyboard_inter_2
* 00624c6bceb0316f
* Keyboard_inter_3
* 98d734a39afa4806
* Keyboard_inter_4
* b034a4f35be23afe
*/
private static final String one_AD = "7c434fe5706c6992";
private static final String two_Ad = "00624c6bceb0316f";
private static final String three_ad = "98d734a39afa4806";
private static final String four_ad = "b034a4f35be23afe";
public static final int type_no_cache = 0;
public static final int type_has_cache = 1;
public static final int type_show_success = 2;
public static final int type_show_close = 3;
public static final int type_show_fail = 4;
private static List<MaxInterstitialAd> adList = new ArrayList<>();
public static MaxInterstitialAd getAd(List<MaxInterstitialAd> list) {
Collections.shuffle(list);
for (MaxInterstitialAd ad : list) {
if (ad.isReady()) {
return ad;
}
}
return null;
}
public static List<MaxInterstitialAd> onLoadAd() {
if (adList.isEmpty()) {
MaxInterstitialAd AdT = new MaxInterstitialAd(two_Ad, SimpleKeyboardSkins.getContext());
MaxInterstitialAd AdOne = new MaxInterstitialAd(one_AD, SimpleKeyboardSkins.getContext());
MaxInterstitialAd AdThree = new MaxInterstitialAd(three_ad, SimpleKeyboardSkins.getContext());
MaxInterstitialAd AdFour = new MaxInterstitialAd(four_ad, SimpleKeyboardSkins.getContext());
adList.add(AdOne);
adList.add(AdT);
adList.add(AdThree);
adList.add(AdFour);
}
for (MaxInterstitialAd ad : adList) {
if (!ad.isReady()) {
setMyListener(ad, new MaxListener() {
@Override
public void onFail(MaxAd ad) {
}
@Override
public void onShowSuccess(MaxAd ad) {
}
@Override
public void onHidden() {
}
});
ad.loadAd();
}
}
return adList;
}
public static void setMyListener(MaxInterstitialAd ad, MaxListener maxListener) {
ad.setListener(new MaxAdListener() {
@Override
public void onAdLoaded(@NonNull MaxAd maxAd) {
Log.d(SimpleKeyboardSkins.TAG, "-------onAdLoaded-----maxAd=" + maxAd.getAdUnitId());
}
@Override
public void onAdDisplayed(@NonNull MaxAd maxAd) {
Log.d(SimpleKeyboardSkins.TAG, "-------onAdDisplayed-----maxAd=" + maxAd.getAdUnitId());
maxListener.onShowSuccess(maxAd);
}
@Override
public void onAdHidden(@NonNull MaxAd maxAd) {
Log.d(SimpleKeyboardSkins.TAG, "-------onAdHidden-----maxAd=" + maxAd.getAdUnitId());
maxListener.onHidden();
setMyListener(ad, new MaxListener() {
@Override
public void onFail(MaxAd ad) {
}
@Override
public void onShowSuccess(MaxAd ad) {
}
@Override
public void onHidden() {
}
});
ad.loadAd();
}
@Override
public void onAdClicked(@NonNull MaxAd maxAd) {
}
@Override
public void onAdLoadFailed(@NonNull String s, @NonNull MaxError maxError) {
Log.d(SimpleKeyboardSkins.TAG, "-------onAdLoadFailed-----s=" + s+"----maxError="+maxError.getMessage());
}
@Override
public void onAdDisplayFailed(@NonNull MaxAd maxAd, @NonNull MaxError maxError) {
maxListener.onFail(maxAd);
}
});
}
public static void ShowAd(Activity activity, onAdStatusListener listener) {
MaxInterstitialAd ad = MaxManager.getAd(adList);
if (ad == null) {
listener.onAdStatus(type_no_cache);
} else {
listener.onAdStatus(type_has_cache);
MaxManager.setMyListener(ad, new MaxListener() {
@Override
public void onFail(MaxAd ad) {
listener.onAdStatus(type_show_fail);
}
@Override
public void onShowSuccess(MaxAd ad) {
listener.onAdStatus(type_show_success);
}
@Override
public void onHidden() {
listener.onAdStatus(type_show_close);
}
});
ad.showAd(activity);
}
}
public static void startShowMaxAd(Activity activity, onAdAfterAction listener) {
MaxManager.ShowAd(activity, new onAdStatusListener() {
@Override
public void onAdStatus(int type) {
if (type == MaxManager.type_show_close || type == MaxManager.type_show_fail || type == MaxManager.type_no_cache) {
if (listener != null)
listener.onAction();
}
}
});
}
}

View File

@ -0,0 +1,78 @@
package com.app.wallpaper.max
import android.app.Activity
import android.content.BroadcastReceiver
import android.content.Context
import android.content.Intent
import android.content.IntentFilter
import android.os.CountDownTimer
import android.util.Log
import androidx.localbroadcastmanager.content.LocalBroadcastManager
import com.applovin.mediation.ads.MaxInterstitialAd
import com.key.simplekeyboard.SimpleKeyboardSkins
import com.key.simplekeyboard.max.MaxManager
object WelComManager {
private lateinit var timer: CountDownTimer
private var need_Show = true
private lateinit var lists: List<MaxInterstitialAd>
@JvmStatic
fun initTimer(activity: Activity, countTime: Long,countAction: (Long) -> Unit, goMainAction: () -> Unit): CountDownTimer {
need_Show = true
timer = object : CountDownTimer(countTime, 100) {
override fun onTick(millisUntilFinished: Long) {
countAction.invoke(millisUntilFinished)
if (need_Show) {
MaxManager.ShowAd(activity) {
Log.d(SimpleKeyboardSkins.TAG, "--onTick----------it=$it")
if (it == MaxManager.type_has_cache) {
need_Show = false
}
if (it == MaxManager.type_show_close || it == MaxManager.type_show_fail) {
Log.d(SimpleKeyboardSkins.TAG, "--onTick---------enter")
goMainAction.invoke()
}
}
}
}
override fun onFinish() {
if (need_Show) {
MaxManager.ShowAd(activity) {
if (it == MaxManager.type_show_close || it == MaxManager.type_show_fail || it == MaxManager.type_no_cache) {
Log.d(SimpleKeyboardSkins.TAG, "--onFinish---------enter")
goMainAction.invoke()
}
}
}
}
}
startAd(activity)
return timer
}
private fun startAd(activity: Activity) {
if (!SimpleKeyboardSkins.initSDK) {
LocalBroadcastManager.getInstance(activity)
.registerReceiver(object : BroadcastReceiver() {
override fun onReceive(context: Context?, intent: Intent?) {
lists = MaxManager.onLoadAd()
timer.start()
Log.d(SimpleKeyboardSkins.TAG, "------------1sucess")
}
}, IntentFilter(SimpleKeyboardSkins.AD_BROADCAST))
} else {
lists = MaxManager.onLoadAd()
timer.start()
Log.d(SimpleKeyboardSkins.TAG, "------------2sucess")
}
}
}

View File

@ -0,0 +1,6 @@
package com.key.simplekeyboard.max;
public interface onAdAfterAction {
void onAction();
}

View File

@ -0,0 +1,6 @@
package com.key.simplekeyboard.max;
public interface onAdStatusListener {
void onAdStatus(int type);
}

View File

@ -4,4 +4,9 @@ plugins {
id("org.jetbrains.kotlin.android") version "1.9.0" apply false
id("com.google.gms.google-services") version "4.3.15" apply false
id ("com.google.firebase.crashlytics") version "2.9.2" apply false
}
buildscript {
dependencies {
classpath("com.applovin.quality:AppLovinQualityServiceGradlePlugin:+")
}
}

View File

@ -2,6 +2,9 @@ pluginManagement {
repositories {
google()
mavenCentral()
maven { url = uri("https://artifacts.applovin.com/android") }
gradlePluginPortal()
}
}
@ -12,17 +15,9 @@ dependencyResolutionManagement {
mavenCentral()
maven("https://jitpack.io")
//Anythink(Core)
maven("https://jfrog.anythinktech.com/artifactory/overseas_sdk")
//Ironsource
maven("https://android-sdk.is.com/")
//Mintegral
maven("https://dl-maven-android.mintegral.com/repository/mbridge_android_sdk_oversea")
//Pangle
maven("https://artifact.bytedance.com/repository/pangle")
maven { url = uri("https://dl-maven-android.mintegral.com/repository/mbridge_android_sdk_oversea") }
maven { url = uri("https://artifact.bytedance.com/repository/pangle") }
//TopOn集成测试工具
// maven ( "https://jfrog.anythinktech.com/artifactory/debugger")
}
}