正在查看: 夜猫麻将 v24.1.1 应用的 AdUnitActivity.java JAVA 源代码文件
本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。
正在查看: 夜猫麻将 v24.1.1 应用的 AdUnitActivity.java JAVA 源代码文件
本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。
package com.unity3d.services.ads.adunit;
import android.app.Activity;
import android.graphics.drawable.ColorDrawable;
import android.os.Build;
import android.os.Bundle;
import android.support.v4.view.ViewCompat;
import android.view.KeyEvent;
import android.view.View;
import android.view.WindowManager;
import android.widget.FrameLayout;
import android.widget.RelativeLayout;
import com.unity3d.services.ads.api.AdUnit;
import com.unity3d.services.ads.configuration.IAdsModuleConfiguration;
import com.unity3d.services.core.api.Intent;
import com.unity3d.services.core.configuration.Configuration;
import com.unity3d.services.core.configuration.IModuleConfiguration;
import com.unity3d.services.core.log.DeviceLog;
import com.unity3d.services.core.misc.ViewUtilities;
import com.unity3d.services.core.webview.WebViewApp;
import com.unity3d.services.core.webview.WebViewEventCategory;
import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import org.json.JSONArray;
public class AdUnitActivity extends Activity {
public static final String EXTRA_ACTIVITY_ID = "activityId";
public static final String EXTRA_DISPLAY_CUTOUT_MODE = "displayCutoutMode";
public static final String EXTRA_KEEP_SCREEN_ON = "keepScreenOn";
public static final String EXTRA_KEY_EVENT_LIST = "keyEvents";
public static final String EXTRA_ORIENTATION = "orientation";
public static final String EXTRA_SYSTEM_UI_VISIBILITY = "systemUiVisibility";
public static final String EXTRA_VIEWS = "views";
private int _activityId;
private int _displayCutoutMode;
boolean _keepScreenOn;
private ArrayList<Integer> _keyEventList;
protected AdUnitRelativeLayout _layout;
private int _orientation = -1;
private int _systemUiVisibility;
private Map<String, IAdUnitViewHandler> _viewHandlers;
private String[] _views;
@Override
protected void onCreate(Bundle savedInstanceState) {
AdUnitEvent event;
super.onCreate(savedInstanceState);
if (WebViewApp.getCurrentApp() == null) {
DeviceLog.error("Unity Ads web app is null, closing Unity Ads activity from onCreate");
finish();
return;
}
AdUnit.setAdUnitActivity(this);
Intent.setActiveActivity(this);
createLayout();
ViewUtilities.removeViewFromParent(this._layout);
AdUnitRelativeLayout adUnitRelativeLayout = this._layout;
addContentView(adUnitRelativeLayout, adUnitRelativeLayout.getLayoutParams());
if (savedInstanceState == null) {
this._views = getIntent().getStringArrayExtra("views");
this._keyEventList = getIntent().getIntegerArrayListExtra("keyEvents");
if (getIntent().hasExtra("orientation")) {
this._orientation = getIntent().getIntExtra("orientation", -1);
}
if (getIntent().hasExtra("systemUiVisibility")) {
this._systemUiVisibility = getIntent().getIntExtra("systemUiVisibility", 0);
}
if (getIntent().hasExtra("activityId")) {
this._activityId = getIntent().getIntExtra("activityId", -1);
}
if (getIntent().hasExtra("displayCutoutMode")) {
this._displayCutoutMode = getIntent().getIntExtra("displayCutoutMode", 0);
}
event = AdUnitEvent.ON_CREATE;
} else {
this._views = savedInstanceState.getStringArray("views");
this._orientation = savedInstanceState.getInt("orientation", -1);
this._systemUiVisibility = savedInstanceState.getInt("systemUiVisibility", 0);
this._keyEventList = savedInstanceState.getIntegerArrayList("keyEvents");
this._keepScreenOn = savedInstanceState.getBoolean("keepScreenOn");
this._activityId = savedInstanceState.getInt("activityId", -1);
this._displayCutoutMode = savedInstanceState.getInt("displayCutoutMode", 0);
setKeepScreenOn(this._keepScreenOn);
event = AdUnitEvent.ON_RESTORE;
}
setOrientation(this._orientation);
setSystemUiVisibility(this._systemUiVisibility);
setLayoutInDisplayCutoutMode(this._displayCutoutMode);
String[] strArr = this._views;
if (strArr != null) {
for (String viewName : strArr) {
IAdUnitViewHandler handler = getViewHandler(viewName);
if (handler != null) {
handler.onCreate(this, savedInstanceState);
}
}
}
WebViewApp.getCurrentApp().sendEvent(WebViewEventCategory.ADUNIT, event, Integer.valueOf(this._activityId));
}
public AdUnitRelativeLayout getLayout() {
return this._layout;
}
@Override
protected void onStart() {
super.onStart();
if (WebViewApp.getCurrentApp() == null) {
if (!isFinishing()) {
DeviceLog.error("Unity Ads web app is null, closing Unity Ads activity from onStart");
finish();
return;
}
return;
}
Map<String, IAdUnitViewHandler> map = this._viewHandlers;
if (map != null) {
for (Map.Entry<String, IAdUnitViewHandler> entry : map.entrySet()) {
if (entry.getValue() != null) {
entry.getValue().onStart(this);
}
}
}
WebViewApp.getCurrentApp().sendEvent(WebViewEventCategory.ADUNIT, AdUnitEvent.ON_START, Integer.valueOf(this._activityId));
}
@Override
protected void onStop() {
super.onStop();
if (WebViewApp.getCurrentApp() == null) {
if (!isFinishing()) {
DeviceLog.error("Unity Ads web app is null, closing Unity Ads activity from onStop");
finish();
return;
}
return;
}
Map<String, IAdUnitViewHandler> map = this._viewHandlers;
if (map != null) {
for (Map.Entry<String, IAdUnitViewHandler> entry : map.entrySet()) {
if (entry.getValue() != null) {
entry.getValue().onStop(this);
}
}
}
WebViewApp.getCurrentApp().sendEvent(WebViewEventCategory.ADUNIT, AdUnitEvent.ON_STOP, Integer.valueOf(this._activityId));
}
@Override
protected void onResume() {
super.onResume();
if (WebViewApp.getCurrentApp() == null) {
if (!isFinishing()) {
DeviceLog.error("Unity Ads web app is null, closing Unity Ads activity from onResume");
finish();
return;
}
return;
}
setViews(this._views);
Map<String, IAdUnitViewHandler> map = this._viewHandlers;
if (map != null) {
for (Map.Entry<String, IAdUnitViewHandler> entry : map.entrySet()) {
if (entry.getValue() != null) {
entry.getValue().onResume(this);
}
}
}
WebViewApp.getCurrentApp().sendEvent(WebViewEventCategory.ADUNIT, AdUnitEvent.ON_RESUME, Integer.valueOf(this._activityId));
}
@Override
protected void onPause() {
super.onPause();
if (WebViewApp.getCurrentApp() == null) {
if (!isFinishing()) {
DeviceLog.error("Unity Ads web app is null, closing Unity Ads activity from onPause");
finish();
return;
}
return;
}
if (WebViewApp.getCurrentApp().getWebView() == null) {
DeviceLog.warning("Unity Ads web view is null, from onPause");
} else if (isFinishing()) {
ViewUtilities.removeViewFromParent(WebViewApp.getCurrentApp().getWebView());
}
Map<String, IAdUnitViewHandler> map = this._viewHandlers;
if (map != null) {
for (Map.Entry<String, IAdUnitViewHandler> entry : map.entrySet()) {
if (entry.getValue() != null) {
entry.getValue().onPause(this);
}
}
}
WebViewApp.getCurrentApp().sendEvent(WebViewEventCategory.ADUNIT, AdUnitEvent.ON_PAUSE, Boolean.valueOf(isFinishing()), Integer.valueOf(this._activityId));
}
@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putInt("orientation", this._orientation);
outState.putInt("systemUiVisibility", this._systemUiVisibility);
outState.putIntegerArrayList("keyEvents", this._keyEventList);
outState.putBoolean("keepScreenOn", this._keepScreenOn);
outState.putStringArray("views", this._views);
outState.putInt("activityId", this._activityId);
}
@Override
protected void onDestroy() {
super.onDestroy();
if (WebViewApp.getCurrentApp() == null) {
if (!isFinishing()) {
DeviceLog.error("Unity Ads web app is null, closing Unity Ads activity from onDestroy");
finish();
return;
}
return;
}
WebViewApp.getCurrentApp().sendEvent(WebViewEventCategory.ADUNIT, AdUnitEvent.ON_DESTROY, Boolean.valueOf(isFinishing()), Integer.valueOf(this._activityId));
Map<String, IAdUnitViewHandler> map = this._viewHandlers;
if (map != null) {
for (Map.Entry<String, IAdUnitViewHandler> entry : map.entrySet()) {
if (entry.getValue() != null) {
entry.getValue().onDestroy(this);
}
}
}
if (AdUnit.getCurrentAdUnitActivityId() == this._activityId) {
AdUnit.setAdUnitActivity(null);
}
Intent.removeActiveActivity(this);
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
ArrayList<Integer> arrayList = this._keyEventList;
if (arrayList == null || !arrayList.contains(Integer.valueOf(keyCode))) {
return false;
}
WebViewApp.getCurrentApp().sendEvent(WebViewEventCategory.ADUNIT, AdUnitEvent.KEY_DOWN, Integer.valueOf(keyCode), Long.valueOf(event.getEventTime()), Long.valueOf(event.getDownTime()), Integer.valueOf(event.getRepeatCount()), Integer.valueOf(this._activityId));
return true;
}
@Override
public void onWindowFocusChanged(boolean hasFocus) {
if (hasFocus) {
WebViewApp.getCurrentApp().sendEvent(WebViewEventCategory.ADUNIT, AdUnitEvent.ON_FOCUS_GAINED, Integer.valueOf(this._activityId));
} else {
WebViewApp.getCurrentApp().sendEvent(WebViewEventCategory.ADUNIT, AdUnitEvent.ON_FOCUS_LOST, Integer.valueOf(this._activityId));
}
super.onWindowFocusChanged(hasFocus);
}
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
try {
JSONArray permissionsArray = new JSONArray();
JSONArray grantResultsArray = new JSONArray();
for (String permission : permissions) {
permissionsArray.put(permission);
}
for (int grantResult : grantResults) {
grantResultsArray.put(grantResult);
}
WebViewApp.getCurrentApp().sendEvent(WebViewEventCategory.PERMISSIONS, PermissionsEvent.PERMISSIONS_RESULT, Integer.valueOf(requestCode), permissionsArray, grantResultsArray);
} catch (Exception e) {
WebViewApp.getCurrentApp().sendEvent(WebViewEventCategory.PERMISSIONS, PermissionsEvent.PERMISSIONS_ERROR, e.getMessage());
}
}
public void setViewFrame(String view, int x, int y, int width, int height) {
IAdUnitViewHandler handler = getViewHandler(view);
View targetView = null;
if (view.equals("adunit")) {
FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(width, height);
params.setMargins(x, y, 0, 0);
this._layout.setLayoutParams(params);
} else if (handler != null) {
targetView = handler.getView();
}
if (targetView != null) {
RelativeLayout.LayoutParams params2 = new RelativeLayout.LayoutParams(width, height);
params2.setMargins(x, y, 0, 0);
targetView.setLayoutParams(params2);
}
}
public Map<String, Integer> getViewFrame(String view) {
IAdUnitViewHandler handler = getViewHandler(view);
View targetView = null;
if (view.equals("adunit")) {
FrameLayout.LayoutParams params = (FrameLayout.LayoutParams) this._layout.getLayoutParams();
HashMap<String, Integer> map = new HashMap<>();
map.put("x", Integer.valueOf(params.leftMargin));
map.put("y", Integer.valueOf(params.topMargin));
map.put("width", Integer.valueOf(this._layout.getWidth()));
map.put("height", Integer.valueOf(this._layout.getHeight()));
return map;
}
if (handler != null) {
targetView = handler.getView();
}
if (targetView != null) {
RelativeLayout.LayoutParams params2 = (RelativeLayout.LayoutParams) targetView.getLayoutParams();
HashMap<String, Integer> map2 = new HashMap<>();
map2.put("x", Integer.valueOf(params2.leftMargin));
map2.put("y", Integer.valueOf(params2.topMargin));
map2.put("width", Integer.valueOf(targetView.getWidth()));
map2.put("height", Integer.valueOf(targetView.getHeight()));
return map2;
}
return null;
}
public void setViews(String[] views) {
String[] actualViews;
if (views == null) {
actualViews = new String[0];
} else {
actualViews = views;
}
Collection<?> newViews = new ArrayList<>(Arrays.asList(actualViews));
if (this._views == null) {
this._views = new String[0];
}
ArrayList<String> removedViews = new ArrayList<>(Arrays.asList(this._views));
removedViews.removeAll(newViews);
Iterator<String> it = removedViews.iterator();
while (it.hasNext()) {
getViewHandler(it.next()).destroy();
}
this._views = actualViews;
for (String view : actualViews) {
if (view != null) {
IAdUnitViewHandler handler = getViewHandler(view);
handler.create(this);
if (!handleViewPlacement(handler.getView())) {
return;
}
}
}
}
private boolean handleViewPlacement(View view) {
if (view == null) {
finish();
DeviceLog.error("Could not place view because it is null, finishing activity");
return false;
}
if (view.getParent() != null && view.getParent().equals(this._layout)) {
this._layout.bringChildToFront(view);
return true;
}
ViewUtilities.removeViewFromParent(view);
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(-1, -1);
params.addRule(13);
params.setMargins(0, 0, 0, 0);
view.setPadding(0, 0, 0, 0);
this._layout.addView(view, params);
return true;
}
public String[] getViews() {
return this._views;
}
public void setOrientation(int orientation) {
this._orientation = orientation;
setRequestedOrientation(orientation);
}
public boolean setKeepScreenOn(boolean keepScreenOn) {
this._keepScreenOn = keepScreenOn;
if (getWindow() == null) {
return false;
}
if (keepScreenOn) {
getWindow().addFlags(128);
return true;
}
getWindow().clearFlags(128);
return true;
}
public boolean setSystemUiVisibility(int flags) {
this._systemUiVisibility = flags;
if (Build.VERSION.SDK_INT < 11) {
return false;
}
try {
getWindow().getDecorView().setSystemUiVisibility(flags);
return true;
} catch (Exception e) {
DeviceLog.exception("Error while setting SystemUIVisibility", e);
return false;
}
}
public void setKeyEventList(ArrayList<Integer> keyevents) {
this._keyEventList = keyevents;
}
public IAdUnitViewHandler getViewHandler(String name) {
Map<String, IAdUnitViewHandler> map = this._viewHandlers;
if (map != null && map.containsKey(name)) {
return this._viewHandlers.get(name);
}
IAdUnitViewHandler viewHandler = createViewHandler(name);
if (viewHandler != null) {
if (this._viewHandlers == null) {
this._viewHandlers = new HashMap();
}
this._viewHandlers.put(name, viewHandler);
return viewHandler;
}
return viewHandler;
}
public void setLayoutInDisplayCutoutMode(int flags) {
this._displayCutoutMode = flags;
if (Build.VERSION.SDK_INT >= 28 && getWindow() != null) {
WindowManager.LayoutParams lp = getWindow().getAttributes();
try {
Field layoutInDisplayCutoutMode = lp.getClass().getField("layoutInDisplayCutoutMode");
layoutInDisplayCutoutMode.setInt(lp, flags);
} catch (IllegalAccessException e) {
DeviceLog.debug("Error setting layoutInDisplayCutoutMode", e);
} catch (NoSuchFieldException e2) {
DeviceLog.debug("Error getting layoutInDisplayCutoutMode", e2);
}
}
}
protected void createLayout() {
if (this._layout != null) {
return;
}
AdUnitRelativeLayout adUnitRelativeLayout = new AdUnitRelativeLayout(this);
this._layout = adUnitRelativeLayout;
adUnitRelativeLayout.setLayoutParams(new RelativeLayout.LayoutParams(-1, -1));
ViewUtilities.setBackground(this._layout, new ColorDrawable(ViewCompat.MEASURED_STATE_MASK));
}
private IAdUnitViewHandler createViewHandler(String name) {
Map<String, Class> adUnitViewHandlers;
if (WebViewApp.getCurrentApp() != null) {
Configuration configuration = WebViewApp.getCurrentApp().getConfiguration();
String[] list = configuration.getModuleConfigurationList();
for (String moduleName : list) {
IModuleConfiguration moduleConfig = configuration.getModuleConfiguration(moduleName);
if ((moduleConfig instanceof IAdsModuleConfiguration) && (adUnitViewHandlers = ((IAdsModuleConfiguration) moduleConfig).getAdUnitViewHandlers()) != null && adUnitViewHandlers.containsKey(name)) {
try {
IAdUnitViewHandler viewHandler = (IAdUnitViewHandler) adUnitViewHandlers.get(name).newInstance();
return viewHandler;
} catch (Exception e) {
DeviceLog.error("Error creating view: " + name);
return null;
}
}
}
return null;
}
return null;
}
}