jimu-decompiled/sources/com/unity3d/ads/api/Intent.java
2025-05-13 19:24:51 +02:00

235 lines
8.8 KiB
Java

package com.unity3d.ads.api;
import android.app.Activity;
import android.net.Uri;
import com.ubt.jimu.base.entities.Constant;
import com.ubt.jimu.controller.data.widget.JockstickDataConverter;
import com.unity3d.ads.log.DeviceLog;
import com.unity3d.ads.properties.ClientProperties;
import com.unity3d.ads.webview.bridge.WebViewCallback;
import com.unity3d.ads.webview.bridge.WebViewExposed;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
/* loaded from: classes2.dex */
public class Intent {
public enum IntentError {
COULDNT_PARSE_EXTRAS,
COULDNT_PARSE_CATEGORIES,
INTENT_WAS_NULL,
JSON_EXCEPTION,
ACTIVITY_WAS_NULL
}
private static class IntentException extends Exception {
private IntentError error;
private Object field;
public IntentException(IntentError intentError, Object obj) {
this.error = intentError;
this.field = obj;
}
public IntentError getError() {
return this.error;
}
public Object getField() {
return this.field;
}
}
@WebViewExposed
public static void canOpenIntent(JSONObject jSONObject, WebViewCallback webViewCallback) {
try {
webViewCallback.invoke(Boolean.valueOf(checkIntentResolvable(intentFromMetadata(jSONObject))));
} catch (IntentException e) {
DeviceLog.exception("Couldn't resolve intent", e);
webViewCallback.error(e.getError(), e.getField());
}
}
@WebViewExposed
public static void canOpenIntents(JSONArray jSONArray, WebViewCallback webViewCallback) {
JSONObject jSONObject = new JSONObject();
int length = jSONArray.length();
for (int i = 0; i < length; i++) {
JSONObject optJSONObject = jSONArray.optJSONObject(i);
try {
jSONObject.put(optJSONObject.optString(JockstickDataConverter.ID), checkIntentResolvable(intentFromMetadata(optJSONObject)));
} catch (IntentException e) {
DeviceLog.exception("Exception parsing intent", e);
webViewCallback.error(e.getError(), e.getField());
return;
} catch (JSONException e2) {
webViewCallback.error(IntentError.JSON_EXCEPTION, e2.getMessage());
return;
}
}
webViewCallback.invoke(jSONObject);
}
private static boolean checkIntentResolvable(android.content.Intent intent) {
return ClientProperties.getApplicationContext().getPackageManager().resolveActivity(intent, 0) != null;
}
private static Activity getStartingActivity() {
if (AdUnit.getAdUnitActivity() != null) {
return AdUnit.getAdUnitActivity();
}
if (ClientProperties.getActivity() != null) {
return ClientProperties.getActivity();
}
return null;
}
private static android.content.Intent intentFromMetadata(JSONObject jSONObject) throws IntentException {
String str = (String) jSONObject.opt("className");
String str2 = (String) jSONObject.opt(Constant.SelectRobot.PACKAGE_NAME_KEY);
String str3 = (String) jSONObject.opt("action");
String str4 = (String) jSONObject.opt("uri");
String str5 = (String) jSONObject.opt("mimeType");
JSONArray jSONArray = (JSONArray) jSONObject.opt("categories");
Integer num = (Integer) jSONObject.opt("flags");
JSONArray jSONArray2 = (JSONArray) jSONObject.opt("extras");
if (str2 != null && str == null && str3 == null && str5 == null) {
android.content.Intent launchIntentForPackage = ClientProperties.getApplicationContext().getPackageManager().getLaunchIntentForPackage(str2);
if (launchIntentForPackage == null || num.intValue() <= -1) {
return launchIntentForPackage;
}
launchIntentForPackage.addFlags(num.intValue());
return launchIntentForPackage;
}
android.content.Intent intent = new android.content.Intent();
if (str != null && str2 != null) {
intent.setClassName(str2, str);
}
if (str3 != null) {
intent.setAction(str3);
}
if (str4 != null) {
intent.setData(Uri.parse(str4));
}
if (str5 != null) {
intent.setType(str5);
}
if (num != null && num.intValue() > -1) {
intent.setFlags(num.intValue());
}
if (!setCategories(intent, jSONArray)) {
throw new IntentException(IntentError.COULDNT_PARSE_CATEGORIES, jSONArray);
}
if (setExtras(intent, jSONArray2)) {
return intent;
}
throw new IntentException(IntentError.COULDNT_PARSE_EXTRAS, jSONArray2);
}
@WebViewExposed
public static void launch(JSONObject jSONObject, WebViewCallback webViewCallback) {
android.content.Intent intent;
String str = (String) jSONObject.opt("className");
String str2 = (String) jSONObject.opt(Constant.SelectRobot.PACKAGE_NAME_KEY);
String str3 = (String) jSONObject.opt("action");
String str4 = (String) jSONObject.opt("uri");
String str5 = (String) jSONObject.opt("mimeType");
JSONArray jSONArray = (JSONArray) jSONObject.opt("categories");
Integer num = (Integer) jSONObject.opt("flags");
JSONArray jSONArray2 = (JSONArray) jSONObject.opt("extras");
if (str2 != null && str == null && str3 == null && str5 == null) {
intent = ClientProperties.getApplicationContext().getPackageManager().getLaunchIntentForPackage(str2);
if (intent != null && num.intValue() > -1) {
intent.addFlags(num.intValue());
}
} else {
android.content.Intent intent2 = new android.content.Intent();
if (str != null && str2 != null) {
intent2.setClassName(str2, str);
}
if (str3 != null) {
intent2.setAction(str3);
}
if (str4 != null) {
intent2.setData(Uri.parse(str4));
}
if (str5 != null) {
intent2.setType(str5);
}
if (num != null && num.intValue() > -1) {
intent2.setFlags(num.intValue());
}
if (!setCategories(intent2, jSONArray)) {
webViewCallback.error(IntentError.COULDNT_PARSE_CATEGORIES, jSONArray);
}
if (!setExtras(intent2, jSONArray2)) {
webViewCallback.error(IntentError.COULDNT_PARSE_EXTRAS, jSONArray2);
}
intent = intent2;
}
if (intent == null) {
webViewCallback.error(IntentError.INTENT_WAS_NULL, new Object[0]);
} else if (getStartingActivity() == null) {
webViewCallback.error(IntentError.ACTIVITY_WAS_NULL, new Object[0]);
} else {
getStartingActivity().startActivity(intent);
webViewCallback.invoke(new Object[0]);
}
}
private static boolean setCategories(android.content.Intent intent, JSONArray jSONArray) {
if (jSONArray == null || jSONArray.length() <= 0) {
return true;
}
for (int i = 0; i < jSONArray.length(); i++) {
try {
intent.addCategory(jSONArray.getString(i));
} catch (Exception e) {
DeviceLog.exception("Couldn't parse categories for intent", e);
return false;
}
}
return true;
}
private static boolean setExtra(android.content.Intent intent, String str, Object obj) {
if (obj instanceof String) {
intent.putExtra(str, (String) obj);
return true;
}
if (obj instanceof Integer) {
intent.putExtra(str, ((Integer) obj).intValue());
return true;
}
if (obj instanceof Double) {
intent.putExtra(str, ((Double) obj).doubleValue());
return true;
}
if (obj instanceof Boolean) {
intent.putExtra(str, ((Boolean) obj).booleanValue());
return true;
}
DeviceLog.error("Unable to parse launch intent extra " + str);
return false;
}
private static boolean setExtras(android.content.Intent intent, JSONArray jSONArray) {
if (jSONArray == null) {
return true;
}
for (int i = 0; i < jSONArray.length(); i++) {
try {
JSONObject jSONObject = jSONArray.getJSONObject(i);
if (!setExtra(intent, jSONObject.getString("key"), jSONObject.get("value"))) {
return false;
}
} catch (Exception e) {
DeviceLog.exception("Couldn't parse extras", e);
return false;
}
}
return true;
}
}