接mbridge 1.0.2(3)

This commit is contained in:
zhouzhijia 2024-07-09 18:42:11 +08:00
parent 7c34021efd
commit e81a4b71e9
14 changed files with 537 additions and 14 deletions

View File

@ -16,8 +16,8 @@ android {
applicationId = "com.key.keyboardskins.test"
minSdk = 23
targetSdk = 34
versionCode = 2
versionName = "1.0.1"
versionCode = 3
versionName = "1.0.2"
setProperty("archivesBaseName", "keyboardskins_V" + versionName + "(${versionCode})_$timestamp")
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
}
@ -55,6 +55,7 @@ dependencies {
implementation("com.google.firebase:firebase-analytics-ktx")
implementation ("com.google.firebase:firebase-crashlytics-ktx")
implementation("com.mbridge.msdk.oversea:newinterstitial:16.7.51")
implementation ("com.mbridge.msdk.oversea:mbbid:16.7.51")
}

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

@ -0,0 +1,29 @@
{
"project_info": {
"project_number": "792062570245",
"project_id": "keyboard-skins-d06e1",
"storage_bucket": "keyboard-skins-d06e1.appspot.com"
},
"client": [
{
"client_info": {
"mobilesdk_app_id": "1:792062570245:android:5dc674c9f224da7c87116c",
"android_client_info": {
"package_name": "com.key.keyboardskins"
}
},
"oauth_client": [],
"api_key": [
{
"current_key": "AIzaSyCYcuE9Leq0YS5dH4yoBbiBAooCO8b7qIw"
}
],
"services": {
"appinvite_service": {
"other_platform_oauth_client": []
}
}
}
],
"configuration_version": "1"
}

View File

@ -20,4 +20,28 @@
# hide the original source file name.
#-renamesourcefileattribute SourceFile
-keep class com.omicronapplications.** { *; }
-keep class net.sf.sevenzipjbinding.** { *; }
-keep class net.sf.sevenzipjbinding.** { *; }
-keepattributes Signature
-keepattributes *Annotation*
-keep class com.mbridge.** {*; }
-keep interface com.mbridge.** {*; }
-dontwarn com.mbridge.**
-keepclassmembers 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.*{*;}
-keep class com.mbridge.msdk.foundation.tools.FastKV{*;}
-keep class com.mbridge.msdk.foundation.tools.FastKV$Builder{*;}

View File

@ -10,10 +10,15 @@ import androidx.localbroadcastmanager.content.LocalBroadcastManager;
import com.exquisite.data.Mydata;
import com.exquisite.mintegral.MBrManager;
import com.exquisite.tools.Mytools;
import com.mbridge.msdk.MBridgeSDK;
import com.mbridge.msdk.out.MBridgeSDKFactory;
import com.mbridge.msdk.out.SDKInitStatusListener;
import java.util.Collections;
import java.util.List;
import java.util.Map;
public class KeyboardSkin extends Application {
public static KeyboardSkin app;
@ -22,17 +27,39 @@ public class KeyboardSkin extends Application {
private static final String MAX_SDK = "JE7gVeObwAxnnPBv2tb61lNAIEHd4Udk3kac0g2rNpfhmVP0m6PwUH38KLK7yVPblRTBpgFf8ansDbsMtQJ3mx";
public static final String AD_BROADCAST = "on_success_action";
public static Boolean initSDK = false;
public static final String Place_1="1628319";
public static final String AD_2="Keyboard_inter_mintegral_2nd";
public static final String AD_3="Keyboard_inter_mintegral_3rd";
@Override
public void onCreate() {
super.onCreate();
context = getApplicationContext();
app = this;
// initSDK();
initSdk();
List<Mydata> myData = Mytools.parseJsonToList("keyboard.json");
myDataArrayList = myData;
}
private void initSdk() {
MBridgeSDK sdk = MBridgeSDKFactory.getMBridgeSDK();
Map<String, String> map = sdk.getMBConfigurationMap("301174", "8fe84f59b43d24c2aa49154f37e47bae");
sdk.init(map, this,new SDKInitStatusListener() {
@Override
public void onInitSuccess() {
initSDK = true;
Log.e("SDKInitStatus", "onInitSuccess");
LocalBroadcastManager.getInstance(context).sendBroadcast(new Intent(AD_BROADCAST));
}
@Override
public void onInitFail(String errorMsg) {
Log.e("SDKInitStatusFail", errorMsg);
}
});
}
public static Context getAppContext() {
return context;
}
@ -47,6 +74,8 @@ public class KeyboardSkin extends Application {
}
// private void initSDK() {
// AppLovinSdkInitializationConfiguration initConfig = AppLovinSdkInitializationConfiguration.builder(MAX_SDK, this)
// .setMediationProvider(AppLovinMediationProvider.MAX)

View File

@ -17,6 +17,10 @@ import android.widget.LinearLayout;
import com.exquisite.fragment.AllFragment;
import com.exquisite.demo08.R;
import com.exquisite.mintegral.ADBean;
import com.exquisite.mintegral.MBrManager;
import com.exquisite.mintegral.Mylistener;
import com.exquisite.mintegral.onAdStatusListener;
import com.exquisite.tools.Mytools;
import java.util.List;
@ -59,10 +63,46 @@ public class AllActivity extends AppCompatActivity implements View.OnClickListen
public void onClick(View v) {
if (v.getId() == R.id.back) {
// showAd();
finish();
startShowAd(new Mylistener() {
@Override
public void actuion(boolean go) {
finish();
}
});
}
}
private void startShowAd(Mylistener mylistener){
ADBean cache = MBrManager.getCache();
if(cache == null){
mylistener.actuion(false);
}else{
MBrManager.setCallBack(cache.getInterstitialHandler(), new onAdStatusListener() {
@Override
public void onLoaded() {
}
@Override
public void onLoadFail() {
}
@Override
public void onShowFail() {
mylistener.actuion(true);
}
@Override
public void onClose() {
mylistener.actuion(true);
}
});
cache.getInterstitialHandler().showFromBid();
}
}
// private void showAd() {
// MaxInterstitialAd cachedAd = Mytools.onCache(adsList);
// if (cachedAd == null) {
@ -85,6 +125,12 @@ public class AllActivity extends AppCompatActivity implements View.OnClickListen
@Override
public void onBackPressed() {
super.onBackPressed();
// showAd();
startShowAd(new Mylistener() {
@Override
public void actuion(boolean go) {
}
});
}
}

View File

@ -33,6 +33,10 @@ import com.exquisite.callback.DownloadCallback;
import com.exquisite.callback.UnzipCallback;
import com.exquisite.data.StaticValue;
import com.exquisite.demo08.R;
import com.exquisite.mintegral.ADBean;
import com.exquisite.mintegral.MBrManager;
import com.exquisite.mintegral.Mylistener;
import com.exquisite.mintegral.onAdStatusListener;
import com.exquisite.tools.Mytools;
import com.exquisite.tools.SpaceItem;
@ -150,8 +154,13 @@ public class PreviewActivity extends AppCompatActivity implements View.OnClickLi
StaticValue.PATH = resDirPath;
Toast.makeText(PreviewActivity.this, getString(R.string.set_successful), Toast.LENGTH_SHORT).show();
progressBarDownload.setVisibility(View.GONE);
// showAd();
finish();
startShowAd(new Mylistener() {
@Override
public void actuion(boolean go) {
finish();
}
});
}
});
}
@ -159,6 +168,37 @@ public class PreviewActivity extends AppCompatActivity implements View.OnClickLi
}
}
private void startShowAd(Mylistener mylistener) {
ADBean cache = MBrManager.getCache();
if (cache == null) {
mylistener.actuion(false);
} else {
MBrManager.setCallBack(cache.getInterstitialHandler(), new onAdStatusListener() {
@Override
public void onLoaded() {
}
@Override
public void onLoadFail() {
}
@Override
public void onShowFail() {
mylistener.actuion(true);
}
@Override
public void onClose() {
mylistener.actuion(true);
}
});
cache.getInterstitialHandler().showFromBid();
}
}
// private void showAd() {
// MaxInterstitialAd cachedAd = Mytools.onCache(adsList);
// if (cachedAd == null) {

View File

@ -17,8 +17,17 @@ import android.os.CountDownTimer;
import android.util.Log;
import android.view.View;
import com.exquisite.KeyboardSkin;
import com.exquisite.demo08.R;
import com.exquisite.mintegral.ADBean;
import com.exquisite.mintegral.MBrManager;
import com.exquisite.mintegral.Mylistener;
import com.exquisite.mintegral.onAdStatusListener;
import com.exquisite.mintegral.onInterHandlerListener;
import com.exquisite.tools.Mytools;
import com.mbridge.msdk.mbbid.out.BidListennning;
import com.mbridge.msdk.mbbid.out.BidManager;
import com.mbridge.msdk.mbbid.out.BidResponsed;
import java.util.List;
@ -27,7 +36,6 @@ public class SplashActivity extends AppCompatActivity {
private boolean needShow = true;
private boolean key = true;
// private static List<MaxInterstitialAd> adsList;
@SuppressLint("MissingInflatedId")
@Override
protected void onCreate(Bundle savedInstanceState) {
@ -40,22 +48,91 @@ public class SplashActivity extends AppCompatActivity {
v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom);
return insets;
});
countDownTimer = new CountDownTimer(1000, 100) {
countDownTimer = new CountDownTimer(11000, 100) {
@Override
public void onTick(long l) {
if (needShow) {
startShowAd(new Mylistener() {
@Override
public void actuion(boolean go) {
if (go){
startView();
}
}
});
}
}
@Override
public void onFinish() {
startView();
if (needShow) {
startShowAd(new Mylistener() {
@Override
public void actuion(boolean go) {
startView();
}
});
}
}
};
countDownTimer.start();
starAd();
// initializeCountDownTimer();
// loadAndStartAd();
}
private void startShowAd(Mylistener mylistener){
ADBean cache = MBrManager.getCache();
if(cache == null){
mylistener.actuion(false);
}else{
needShow = false;
MBrManager.setCallBack(cache.getInterstitialHandler(), new onAdStatusListener() {
@Override
public void onLoaded() {
}
@Override
public void onLoadFail() {
}
@Override
public void onShowFail() {
mylistener.actuion(true);
}
@Override
public void onClose() {
mylistener.actuion(true);
}
});
cache.getInterstitialHandler().showFromBid();
}
}
private void starAd() {
if (!KeyboardSkin.initSDK){
LocalBroadcastManager.getInstance(this).registerReceiver(new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
initAD();
}
}, new IntentFilter(KeyboardSkin.AD_BROADCAST));
}else {
initAD();
}
}
private void initAD() {
MBrManager.init(this, new onInterHandlerListener() {
@Override
public void onAddOK() {
countDownTimer.start();
}
});
}
// private void initializeCountDownTimer() {
// countDownTimer = new CountDownTimer(1000, 100) {
// @Override

View File

@ -0,0 +1,25 @@
package com.exquisite.mintegral;
import com.mbridge.msdk.newinterstitial.out.MBBidNewInterstitialHandler;
public class ADBean {
private MBBidNewInterstitialHandler interstitialHandler;
private String token;
public void setInterstitialHandler(MBBidNewInterstitialHandler interstitialHandler) {
this.interstitialHandler = interstitialHandler;
}
public void setToken(String token) {
this.token = token;
}
public MBBidNewInterstitialHandler getInterstitialHandler() {
return interstitialHandler;
}
public String getToken() {
return token;
}
}

View File

@ -0,0 +1,213 @@
package com.exquisite.mintegral;
import android.app.Activity;
import android.util.Log;
import com.exquisite.KeyboardSkin;
import com.mbridge.msdk.MBridgeConstans;
import com.mbridge.msdk.mbbid.out.BidListennning;
import com.mbridge.msdk.mbbid.out.BidManager;
import com.mbridge.msdk.mbbid.out.BidResponsed;
import com.mbridge.msdk.newinterstitial.out.MBBidNewInterstitialHandler;
import com.mbridge.msdk.newinterstitial.out.NewInterstitialListener;
import com.mbridge.msdk.out.MBridgeIds;
import com.mbridge.msdk.out.RewardInfo;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class MBrManager {
public static String TAG = "------------ltt";
public static String[] placeIDs = new String[]{"1628304", "1628319", "1628321"};
public static String[] unitIDs = new String[]{"3491035", "3491052", "3491054"};
public static List<ADBean> AdInstances = new ArrayList<>();
public static void getToken(String placeId, String unitId, onBidTokenListener listener) {
BidManager manager = new BidManager(placeId, unitId);
manager.setBidListener(new BidListennning() {
@Override
public void onFailed(String s) {
listener.onBidToken("");
}
@Override
public void onSuccessed(BidResponsed bidResponsed) {
String mBidToken = bidResponsed.getBidToken();
listener.onBidToken(mBidToken);
}
});
manager.bid();
}
;
public static void init(Activity activity, onInterHandlerListener listener) {
for (int i = 0; i < 3; i++) {
String finalPlaceId = placeIDs[i];
String unitId = unitIDs[i];
getToken(finalPlaceId, unitId, new onBidTokenListener() {
@Override
public void onBidToken(String token) {
MBBidNewInterstitialHandler mMBBidNewInterstitialHandler = new MBBidNewInterstitialHandler(KeyboardSkin.getAppContext(), finalPlaceId, unitId);
ADBean adBean = new ADBean();
Log.d(TAG, "------------token=" + token);
adBean.setToken(token);
adBean.setInterstitialHandler(mMBBidNewInterstitialHandler);
mMBBidNewInterstitialHandler.loadFromBid(token);
AdInstances.add(adBean);
listener.onAddOK();
}
});
}
}
public static void loadAllAd() {
if (AdInstances.size() > 0) {
for (ADBean adBean : AdInstances) {
if (!adBean.getInterstitialHandler().isBidReady()) {
adBean.getInterstitialHandler().loadFromBid(adBean.getToken());
}
}
}
}
public static ADBean getCache() {
Collections.shuffle(AdInstances);
for (ADBean adBean : AdInstances) {
if (adBean.getInterstitialHandler().isBidReady()) {
return adBean;
}
}
return null;
}
public static void setCallBack(MBBidNewInterstitialHandler mbBidNewInterstitialHandler, onAdStatusListener listener) {
mbBidNewInterstitialHandler.setInterstitialVideoListener(new NewInterstitialListener() {
@Override
public void onLoadCampaignSuccess(MBridgeIds ids) {
/**
* 广告已填充
* @param ids 封装的广告id对象
*/
Log.i(TAG, "onLoadCampaignSuccess: " + Thread.currentThread() + " " + ids.toString());
}
@Override
public void onResourceLoadSuccess(MBridgeIds ids) {
/**
* 广告资源加载成功可以播放
* @param ids 封装的广告id对象
*/
Log.i(TAG, "onResourceLoadSuccess: " + Thread.currentThread() + " " + ids.toString());
listener.onLoaded();
}
@Override
public void onResourceLoadFail(MBridgeIds ids, String errorMsg) {
/**
* 广告加载失败
* @param errorMsg 加载错误原因
*/
listener.onLoadFail();
Log.e(TAG, "onResourceLoadFail errorMsg: " + errorMsg + " " + ids.toString());
}
@Override
public void onShowFail(MBridgeIds ids, String errorMsg) {
/**
* 广告播放失败
* @param errorMsg 错误原因
*/
listener.onShowFail();
Log.e(TAG, "onShowFail: " + errorMsg + " " + ids.toString());
}
@Override
public void onAdShow(MBridgeIds ids) {
/**
* 广告成功展示
*/
Log.i(TAG, "onAdShow: " + ids.toString());
}
@Override
public void onAdClose(MBridgeIds ids, RewardInfo info) {
/**
* 广告关闭时调用
* @param info.isCompleteView如果为true则表示已完全观看了视频
*/
listener.onClose();
loadAllAd();
Log.i(TAG, "onAdClose: " + "isCompleteView" + info.isCompleteView() + " " + ids.toString());
}
@Override
public void onAdClicked(MBridgeIds ids) {
/**
* 广告被点击
* @param 封装的广告id对象
*/
Log.i(TAG, "onAdClicked: " + ids.toString());
}
@Override
public void onVideoComplete(MBridgeIds ids) {
/**
* 广告播放完成时调用
* @param ids 封装的广告id对象
*/
Log.i(TAG, "onVideoComplete: " + ids.toString());
}
@Override
public void onAdCloseWithNIReward(MBridgeIds ids, RewardInfo info) {
/**
* 如果开发人员设置了IV奖励则在广告关闭时调用.
*
* @param 封装的广告id对象
* @param info.isCompleteView() 是否完全观看
*/
Log.i(TAG, "onAdCloseWithNIReward: " + ids.toString() + " " + info.toString());
Log.i(TAG, info.isCompleteView() ? "Video playback/playable is complete." : "Video playback/playable is not complete.");
int rewardAlertStatus = info.getRewardAlertStatus();
if (rewardAlertStatus == MBridgeConstans.IVREWARDALERT_STATUS_NOTSHOWN) {
Log.e(TAG, "The dialog is not show.");
}
if (rewardAlertStatus == MBridgeConstans.IVREWARDALERT_STATUS_CLICKCONTINUE) {
Log.e(TAG, "The dialog's continue button clicked.");
}
if (rewardAlertStatus == MBridgeConstans.IVREWARDALERT_STATUS_CLICKCANCEL) {
Log.e(TAG, "The dialog's cancel button clicked.");
}
}
@Override
public void onEndcardShow(MBridgeIds ids) {
/**
* 展示广告落地页时调用
* @param ids 封装的广告id对象
*/
Log.i(TAG, "onEndcardShow: " + ids.toString());
}
});
}
}

View File

@ -0,0 +1,5 @@
package com.exquisite.mintegral;
public interface Mylistener {
void actuion(boolean go);
}

View File

@ -0,0 +1,12 @@
package com.exquisite.mintegral;
import com.mbridge.msdk.newinterstitial.out.MBBidNewInterstitialHandler;
public interface onAdStatusListener {
void onLoaded();
void onLoadFail();
void onShowFail();
void onClose();
}

View File

@ -0,0 +1,6 @@
package com.exquisite.mintegral;
public interface onBidTokenListener {
void onBidToken(String token);
}

View File

@ -0,0 +1,15 @@
package com.exquisite.mintegral;
import com.mbridge.msdk.newinterstitial.out.MBBidNewInterstitialHandler;
public interface onInterHandlerListener {
void onAddOK();
// void onLoaded();
// void onLoadFail();
// void onShowFail();
//
// void onClose();
}

View File

@ -12,6 +12,7 @@ dependencyResolutionManagement {
google()
mavenCentral()
maven("https://jitpack.io")
maven{url = uri("https://dl-maven-android.mintegral.com/repository/mbridge_android_sdk_oversea")}
}
}