You've already forked Commercialization.topon
feat(android): integrate gromore csj mix sdk for rewarded and interstitial
This commit is contained in:
@@ -54,7 +54,6 @@ namespace Topon_Adapter.Editor
|
||||
{
|
||||
Directory.CreateDirectory(resXmlPath);
|
||||
}
|
||||
// var fromScriptableObject = MonoScript.FromScriptableObject(this);
|
||||
var xmlPath = GetScriptsPath("AD_BuildAndroidProcess");
|
||||
saveFile($"{xmlPath}/alex_tt_file_path.xml", resXmlPath);
|
||||
saveFile($"{xmlPath}/anythink_bk_tt_file_path.xml", resXmlPath);
|
||||
@@ -75,8 +74,6 @@ namespace Topon_Adapter.Editor
|
||||
}
|
||||
|
||||
ToSingleTop (elementManifest);
|
||||
|
||||
var queries = CreateQueries ();
|
||||
|
||||
var xManifestElements = elementManifest.Descendants ();
|
||||
var xApplicationElements = elementApplication.Descendants ();
|
||||
@@ -84,12 +81,14 @@ namespace Topon_Adapter.Editor
|
||||
XElement tencentElement = GetElementByName (useQueries, "com.tencent.mm");
|
||||
if (tencentElement == null)
|
||||
{
|
||||
elementManifest.Add (queries);
|
||||
elementManifest.Add (CreateQueries ());
|
||||
}
|
||||
|
||||
var wxElements = xApplicationElements.Where (element => element.Name.LocalName.Equals ("activity"));
|
||||
XElement wxElement = GetElementByName (wxElements, ".wxapi.WXEntryActivity");
|
||||
if (wxElement != null)
|
||||
var wxElements = xApplicationElements
|
||||
.Where (element => element.Name.LocalName.Equals ("activity"))
|
||||
.Where (element => element.Attribute (AndroidNamespace + "name")?.Value == ".wxapi.WXEntryActivity")
|
||||
.ToList ();
|
||||
foreach (var wxElement in wxElements)
|
||||
{
|
||||
wxElement.Remove ();
|
||||
}
|
||||
@@ -98,18 +97,31 @@ namespace Topon_Adapter.Editor
|
||||
|
||||
|
||||
var elementlauncherManifest = launcherManifest.Element ("manifest");
|
||||
var elementlauncherApplication = elementlauncherManifest.Element ("application");
|
||||
|
||||
var launcherElements = elementlauncherApplication.Descendants ().Where (element => element.Name.LocalName.Equals ("provider"));
|
||||
XElement launcherElement = GetElementByName (launcherElements, "com.bytedance.sdk.openadsdk.TTFileProvider");
|
||||
if (launcherElement == null)
|
||||
if (elementlauncherManifest == null)
|
||||
{
|
||||
//增加穿山甲配置
|
||||
elementlauncherApplication.Add (CreateCSJGromore ());
|
||||
//在application节点下添加android:allowBackup="false" tools:replace="android:allowBackup"
|
||||
elementlauncherApplication.Add (new XAttribute (AndroidNamespace + "allowBackup", "false"));
|
||||
elementlauncherApplication.Add (new XAttribute (ToolsNamespace + "replace", "android:allowBackup"));
|
||||
ATLog.log ("[BuildAndroidProcess] Launcher AndroidManifest.xml is invalid.");
|
||||
return;
|
||||
}
|
||||
|
||||
var elementlauncherApplication = elementlauncherManifest.Element ("application");
|
||||
if (elementlauncherApplication == null)
|
||||
{
|
||||
ATLog.log ("[BuildAndroidProcess] Launcher AndroidManifest.xml is invalid.");
|
||||
return;
|
||||
}
|
||||
|
||||
var launcherProviders = elementlauncherApplication.Descendants ()
|
||||
.Where (element => element.Name.LocalName.Equals ("provider"))
|
||||
.Where (element => element.Attribute (AndroidNamespace + "name")?.Value == "com.bytedance.sdk.openadsdk.TTFileProvider")
|
||||
.ToList ();
|
||||
foreach (var launcherProvider in launcherProviders)
|
||||
{
|
||||
launcherProvider.Remove ();
|
||||
}
|
||||
|
||||
elementlauncherApplication.Add (CreateCSJGromore ());
|
||||
SetOrAddAttribute (elementlauncherApplication, AndroidNamespace + "allowBackup", "false");
|
||||
SetOrAddAttribute (elementlauncherApplication, ToolsNamespace + "replace", "android:allowBackup");
|
||||
|
||||
var elementMainManifest = manifest.Element ("manifest");
|
||||
var elementMainApplication = elementMainManifest.Element ("application");
|
||||
@@ -129,6 +141,12 @@ namespace Topon_Adapter.Editor
|
||||
|
||||
public static void saveFile(string filePathName , string toFilesPath)
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(filePathName) || !File.Exists(filePathName))
|
||||
{
|
||||
ATLog.log ($"[BuildAndroidProcess] Skip missing file copy: {filePathName}");
|
||||
return;
|
||||
}
|
||||
|
||||
FileInfo file = new FileInfo(filePathName);
|
||||
string newFileName = file.Name;
|
||||
file.CopyTo(toFilesPath + "/" + newFileName, true);
|
||||
@@ -223,13 +241,30 @@ namespace Topon_Adapter.Editor
|
||||
var elements = manifest.Descendants ().Where (element => element.Name.LocalName.Equals ("activity"));
|
||||
// 如果这个activity已经有了 android:launchMode="singleTask",则不再添加
|
||||
XElement elementByName = GetElementByName (elements , "com.unity3d.player.UnityPlayerActivity");
|
||||
if (elementByName == null)
|
||||
{
|
||||
ATLog.log ("[BuildAndroidProcess] UnityPlayerActivity not found, skip launchMode patch.");
|
||||
return;
|
||||
}
|
||||
|
||||
//此处将 android:launchMode="singleTask" 改为 android:launchMode="singleTop"
|
||||
// elementByName.Add (new XAttribute (AndroidNamespace + "launchMode", "singleTop"));
|
||||
elementByName.Attribute ( AndroidNamespace + "launchMode")?.SetValue ("singleTop");
|
||||
SetOrAddAttribute (elementByName, AndroidNamespace + "launchMode", "singleTop");
|
||||
}
|
||||
|
||||
private static void SetOrAddAttribute (XElement element, XName attributeName, string value)
|
||||
{
|
||||
var attribute = element.Attribute (attributeName);
|
||||
if (attribute == null)
|
||||
{
|
||||
element.Add (new XAttribute (attributeName, value));
|
||||
return;
|
||||
}
|
||||
|
||||
attribute.SetValue (value);
|
||||
}
|
||||
|
||||
public int callbackOrder { get; }
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user