com.amanotes.gdk 0.2.68 → 0.2.70-1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. package/CHANGELOG.md +39 -0
  2. package/Editor/AmaGDKEditor.cs +78 -23
  3. package/Editor/AmaGDKExtra.cs +14 -13
  4. package/Editor/Extra/GDKAutoUpdateAdapter.cs +14 -1
  5. package/Editor/Extra/GDKCIBuildCommand.cs +2 -16
  6. package/Editor/Extra/GDKSymbolDefine.cs +372 -0
  7. package/Editor/{AmaGDKManager.cs.meta → Extra/GDKSymbolDefine.cs.meta} +1 -1
  8. package/Editor/Utils/AmaGDKEditor.ExtractVersion.cs +41 -3
  9. package/Extra/AmaGDKInstaller.unitypackage +0 -0
  10. package/Extra/CheckDiskSpace.unitypackage +0 -0
  11. package/Extra/Consent.unitypackage +0 -0
  12. package/Extra/{GoogleCMP.unitypackage.meta → Consent.unitypackage.meta} +1 -1
  13. package/Extra/ForceUpdate.unitypackage +0 -0
  14. package/Extra/LegacyGDKUpdateHelper.unitypackage +0 -0
  15. package/Extra/PostProcessor.unitypackage +0 -0
  16. package/Packages/AmaGDKConfig.unitypackage +0 -0
  17. package/Packages/AmaGDKExample.unitypackage +0 -0
  18. package/Packages/AmaGDKTest.unitypackage +0 -0
  19. package/Packages/AppsFlyerAdapter.PurchaseConnector.unitypackage +0 -0
  20. package/Packages/AppsFlyerAdapter.unitypackage +0 -0
  21. package/Packages/FirebaseAnalyticsAdapter.unitypackage +0 -0
  22. package/Packages/FirebaseRemoteConfigAdapter.unitypackage +0 -0
  23. package/Packages/IronSourceAdapter.unitypackage +0 -0
  24. package/Packages/MaxAdNetworkAdapter.unitypackage +0 -0
  25. package/{Editor/Resources.meta → Packages/MaxAdNetworkAdapter.unitypackage.meta} +1 -2
  26. package/Packages/RevenueCatAdapter.unitypackage +0 -0
  27. package/Packages/SqliteAnalyticsAdapter.unitypackage +0 -0
  28. package/Runtime/Ad/AdExtension.cs +2 -0
  29. package/Runtime/Ad/AdLogic.cs +83 -70
  30. package/Runtime/Ad/AdShowContext.cs +1 -0
  31. package/Runtime/Ad/AmaGDK.Ads.cs +17 -3
  32. package/Runtime/AmaGDK.Adapters.cs +12 -5
  33. package/Runtime/AmaGDK.Analytics.cs +45 -38
  34. package/Runtime/AmaGDK.Consent.cs +259 -0
  35. package/Runtime/AmaGDK.Consent.cs.meta +11 -0
  36. package/Runtime/AmaGDK.Device.cs +4 -4
  37. package/Runtime/AmaGDK.RemoteConfig.cs +3 -1
  38. package/Runtime/AmaGDK.cs +28 -19
  39. package/Runtime/AnalyticQualityAsset.cs +16 -9
  40. package/Runtime/AudioToolkit/AmaGDK.Audio.Latency.cs +1 -3
  41. package/Runtime/AudioToolkit/AmaGDK.Audio.cs +41 -25
  42. package/Runtime/AudioToolkit/Plugins/AudioDeviceDetector.cs +13 -12
  43. package/Runtime/Core/GDKPool.cs +83 -17
  44. package/Runtime/Fps/AmaFPS.cs +0 -1
  45. package/Runtime/Fps/AmaFPSVisualizer.cs +7 -7
  46. package/Runtime/Internal/AmaGDK.Internal.AmaGUI.cs +1 -1
  47. package/Runtime/Internal/AmaGDK.Internal.cs +2 -5
  48. package/Runtime/Internal/AmaGDK.Utils.cs +32 -81
  49. package/Runtime/Internal/GDKGeoLocationcs.cs +3 -1
  50. package/Runtime/Internal/GDKServerTime.cs +13 -10
  51. package/package.json +1 -1
  52. package/Editor/AmaGDKManager.cs +0 -235
  53. package/Editor/Resources/amasdk-modules.json +0 -31
  54. package/Editor/Resources/amasdk-modules.json.meta +0 -7
  55. package/Extra/GoogleCMP.unitypackage +0 -0
package/CHANGELOG.md CHANGED
@@ -1,5 +1,44 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.2.70 - 2024-08-02]
4
+ - [Fix] onAdResult call multiple times
5
+ - [Dev] Show SQLite analytics in GDK Inspector
6
+ - [Dev] Reduce GC by reuse StringBuilders
7
+
8
+ ## [0.2.69 - 2024-07-26]
9
+ - [Fix] disable Max adapter
10
+ - [Dev] Update OnAdResult callback
11
+ - [Fix] Waiting for ad callback
12
+ - [Feature] AdEventTracking for Max ad network
13
+ - [Fix] Wait until the application regains focus after showing ads
14
+ - [Fix] Add OnAdReward callback for Max adapter
15
+ - [Fix] Wrong coverage report for unity 2021
16
+ - [Dev] Multiple AdAdapters is not supported
17
+ - [Fix] Do not register disabled adapter
18
+ - [Fix] add logic ad isSuccess
19
+ - [Fix] Force-close ad when OnAdClose callback is missing
20
+ - [Feature] Consent module: ATT + CMP
21
+ - [Fix] Warning in RevenueCat Adapter
22
+ - [Dev] Clean up timeout override for adapters
23
+ - [Fix] Do not init disabled Adapters
24
+ - [Dev] Remove AmaGDKManager
25
+ - [Fix] Max Mediation not show up in AmaGDK Inspector
26
+ - [Fix] iOS build process hang
27
+ - [Feature] Add Max Ad Network Adapter
28
+ - [Dev] Add option force clean up
29
+ - [Fix] Warning FPS Module
30
+ - [Dev] Config timeout for each adapter
31
+ - [Fix] GDKSymbolDefine Log methods should not require context object
32
+ - [Fix] Do not automatically reimport adapters in dev mode (for LegacyGDKUpdateHelper)
33
+ - [Dev] Add GDK Symbol Define
34
+ - Also: Option to generate a custom logger
35
+ - [Dev] Improve GDK inspector UI with tooltip & logo
36
+ - [Fix] Warnings for AutoUpdate module in dev mode
37
+ - [Fix] Do not automatically reimport adapters in dev mode
38
+ - [Dev] Display module flags in AmaGDK inspector
39
+ - [Dev] Enable AudioModule by default
40
+ - [Dev] Standardize variable names
41
+
3
42
  ## [0.2.68 - 2024-07-08]
4
43
  - [Dev] Add IronSource setting to pause game during ad
5
44
  - [Fix] Support Android API Version 24 and below
@@ -51,7 +51,9 @@ namespace Amanotes.Editor
51
51
  FIREBASE_REMOTE_CONFIG,
52
52
  APPSFLYER,
53
53
  IRONSOURCE,
54
- REVENUECAT
54
+ MAX,
55
+ REVENUECAT,
56
+ SQLITE_ANALYTICS,
55
57
  };
56
58
 
57
59
  public void OnEnable()
@@ -235,26 +237,67 @@ namespace Amanotes.Editor
235
237
  // Debug.Log($"Content of version_info.tsv copied to clipboard!\n\n{tsv}\n\n");
236
238
  // }
237
239
 
240
+ void ShowAmaGDKContext()
241
+ {
242
+ var menu = new GenericMenu();
243
+ menu.AddDisabledItem(new GUIContent("AmaGDK"));
244
+ menu.AddSeparator("");
245
+ menu.AddItem(new GUIContent("Auto Init"), sdk.autoInit, () =>
246
+ {
247
+ sdk.autoInit = !sdk.autoInit;
248
+ EditorUtility.SetDirty(sdk);
249
+ });
250
+ menu.AddItem(new GUIContent("Clear Cache"), false, () =>
251
+ {
252
+ GDKFileUtils.ClearCacheData();
253
+ });
254
+ menu.AddSeparator("");
255
+ menu.AddItem(new GUIContent("Change Log"), false, () =>
256
+ {
257
+ Application.OpenURL("https://amagdk.notion.site/Change-Log-6dfd4b67d64f496bbd9eb04ccb4ef95a");
258
+ });
259
+ menu.AddItem(new GUIContent("Documentation"), false, () =>
260
+ {
261
+ Application.OpenURL("https://amagdk.notion.site/Ama-GDK-a73596617ab247b6a43c8f12a1581415?pvs=4");
262
+ });
263
+ menu.ShowAsContext();
264
+ UnityEvent.current.Use();
265
+ }
266
+
267
+ private static GUIContent hamburgerIcon;
268
+ private static readonly Lazy<Texture2D> logo = new Lazy<Texture2D>(() =>
269
+ {
270
+ const string logoBase64 =
271
+ "iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAAHdbkFIAAAAAXNSR0IArs4c6QAAALhlWElmTU0AKgAAAAgABQESAAMAAAABAAEAAAEaAAUAAAABAAAASgEbAAUAAAABAAAAUgEyAAIAAAAUAAAAWodpAAQAAAABAAAAbgAAAAAAAABIAAAAAQAAAEgAAAABMjAyNDowNzoxMCAxMjoyOTowMQAABJAEAAIAAAAUAAAApKABAAMAAAABAAEAAKACAAQAAAABAAAAQKADAAQAAAABAAAAQAAAAAAyMDI0OjA3OjEwIDEyOjA3OjQ4APsHu7YAAAAJcEhZcwAACxMAAAsTAQCanBgAAAlZaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJYTVAgQ29yZSA2LjAuMCI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIKICAgICAgICAgICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIgogICAgICAgICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgICAgICAgICAgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyI+CiAgICAgICAgIDxkYzpmb3JtYXQ+aW1hZ2UvcG5nPC9kYzpmb3JtYXQ+CiAgICAgICAgIDx4bXA6TW9kaWZ5RGF0ZT4yMDI0LTA3LTEwVDEyOjI5OjAxKzA3OjAwPC94bXA6TW9kaWZ5RGF0ZT4KICAgICAgICAgPHhtcDpDcmVhdGVEYXRlPjIwMjQtMDctMTBUMTI6MDc6NDgrMDc6MDA8L3htcDpDcmVhdGVEYXRlPgogICAgICAgICA8eG1wOk1ldGFkYXRhRGF0ZT4yMDI0LTA3LTEwVDEyOjI5OjAxKzA3OjAwPC94bXA6TWV0YWRhdGFEYXRlPgogICAgICAgICA8eG1wTU06SGlzdG9yeT4KICAgICAgICAgICAgPHJkZjpTZXE+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6c29mdHdhcmVBZ2VudD5BZG9iZSBQaG90b3Nob3AgMjIuNCAoTWFjaW50b3NoKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmNoYW5nZWQ+Lzwvc3RFdnQ6Y2hhbmdlZD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAyNC0wNy0xMFQxMjoxOTowOCswNzowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDpiM2Y2ZDQ5My1iYTI4LTQwZGQtODUxMC0yNzJlYzYyMjM3Nzg8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+c2F2ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6c29mdHdhcmVBZ2VudD5BZG9iZSBQaG90b3Nob3AgMjIuNCAoTWFjaW50b3NoKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmNoYW5nZWQ+Lzwvc3RFdnQ6Y2hhbmdlZD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAyNC0wNy0xMFQxMjoyOTowMSswNzowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDo0ZjFkOWU5NS1hZjdjLTQzZDQtYTczYS1kODZhMTI4MDI3YjE8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+c2F2ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgIDwvcmRmOlNlcT4KICAgICAgICAgPC94bXBNTTpIaXN0b3J5PgogICAgICAgICA8eG1wTU06T3JpZ2luYWxEb2N1bWVudElEPnhtcC5kaWQ6YjNmNmQ0OTMtYmEyOC00MGRkLTg1MTAtMjcyZWM2MjIzNzc4PC94bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDx4bXBNTTpEb2N1bWVudElEPnhtcC5kaWQ6YjNmNmQ0OTMtYmEyOC00MGRkLTg1MTAtMjcyZWM2MjIzNzc4PC94bXBNTTpEb2N1bWVudElEPgogICAgICAgICA8eG1wTU06SW5zdGFuY2VJRD54bXAuaWlkOjRmMWQ5ZTk1LWFmN2MtNDNkNC1hNzNhLWQ4NmExMjgwMjdiMTwveG1wTU06SW5zdGFuY2VJRD4KICAgICAgICAgPHBob3Rvc2hvcDpJQ0NQcm9maWxlPnNSR0IgSUVDNjE5NjYtMi4xPC9waG90b3Nob3A6SUNDUHJvZmlsZT4KICAgICAgICAgPHBob3Rvc2hvcDpDb2xvck1vZGU+MzwvcGhvdG9zaG9wOkNvbG9yTW9kZT4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WFJlc29sdXRpb24+NzI8L3RpZmY6WFJlc29sdXRpb24+CiAgICAgICAgIDx0aWZmOllSZXNvbHV0aW9uPjcyPC90aWZmOllSZXNvbHV0aW9uPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KFOd9IgAAF2JJREFUeAHtOwl0lcXVd+Zb3paXlxASAQElgEDC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";
272
+ var tex = new Texture2D(2, 2, TextureFormat.RGBA32, false, true);
273
+ tex.LoadImage(Convert.FromBase64String(logoBase64), true);
274
+ return tex;
275
+ });
276
+
277
+ [NonSerialized] private static GUIContent bannerTitle;
278
+
238
279
  void DrawGUI_AmaGDKBanner()
239
280
  {
240
- AmaGUI.SectionLabel($"<b>AmaGDK</b> <size=12><color=gray>v{AmaGDK.VERSION}</color></size>");
281
+ bannerTitle ??= new GUIContent()
282
+ {
283
+ image = logo.Value,
284
+ text = $"<b>AmaGDK</b> <size=12><color=gray>v{AmaGDK.VERSION}</color></size>"
285
+ };
286
+ AmaGUI.SectionLabel(bannerTitle);
241
287
  var rect = GUILayoutUtility.GetLastRect();
242
- if (UnityEvent.current.isMouse && UnityEvent.current.button == 1 && rect.Contains(UnityEvent.current.mousePosition))
288
+ var btnRect = rect;
289
+
290
+ // btnRect.x = 4f;
291
+ // btnRect.width = 24f; //btnRect.xMax -
292
+ // btnRect.yMin = btnRect.yMax - 32f;
293
+
294
+ btnRect.xMin = btnRect.xMax - 24f;
295
+ btnRect.yMin = btnRect.yMax - 32f;
296
+
297
+ if (hamburgerIcon == null) hamburgerIcon = EditorGUIUtility.IconContent("d__Menu@2X");
298
+ if (GUI.Button(btnRect, hamburgerIcon.image, EditorStyles.label))
243
299
  {
244
- var menu = new GenericMenu();
245
- menu.AddDisabledItem(new GUIContent("AmaGDK"));
246
- menu.AddSeparator("");
247
- menu.AddItem(new GUIContent("Auto Init"), sdk.autoInit, () =>
248
- {
249
- sdk.autoInit = !sdk.autoInit;
250
- EditorUtility.SetDirty(sdk);
251
- });
252
- menu.AddItem(new GUIContent("Clear Cache"), false, () =>
253
- {
254
- GDKFileUtils.ClearCacheData();
255
- });
256
- menu.ShowAsContext();
257
- UnityEvent.current.Use();
300
+ ShowAmaGDKContext();
258
301
  }
259
302
  }
260
303
 
@@ -306,8 +349,10 @@ namespace Amanotes.Editor
306
349
 
307
350
  configSO = new SerializedObject(configAsset);
308
351
  configSO.Update();
309
- DrawProperty(configSO, "common");
310
- EditorGUILayout.ObjectField("Config", configAsset, typeof(ScriptableObject), false);
352
+ DrawProperty(configSO, "common", true);
353
+ DrawProperty(configSO, "enableAudioModule", false);
354
+ DrawProperty(configSO, "enableServerTime", false);
355
+ DrawProperty(configSO, "enableGeoLocation", false);
311
356
  GUILayout.Space(8f);
312
357
  for (var i = 0; i < allAdapters.Count; i++)
313
358
  {
@@ -318,6 +363,7 @@ namespace Amanotes.Editor
318
363
 
319
364
  AmaGUI.Foldout("Adapters", ref showAdapterInstaller, DrawGUI_AdapterList);
320
365
  AmaGUI.Foldout("Extras", ref showExtra, DrawGUI_ExtraList);
366
+ EditorGUILayout.ObjectField("Config", configAsset, typeof(ScriptableObject), false);
321
367
  Profiler.EndSample();
322
368
  }
323
369
 
@@ -401,7 +447,7 @@ namespace Amanotes.Editor
401
447
 
402
448
  }, () =>
403
449
  {
404
- if (icon != null)
450
+ if (icon != null && adapter != null && adapter.enabled)
405
451
  {
406
452
  Rect rect = GUILayoutUtility.GetRect(6f, 6f, 16f, 16f);
407
453
  rect.xMin -= 10f;
@@ -487,7 +533,7 @@ namespace Amanotes.Editor
487
533
  EditorGUI.BeginDisabledGroup(!adapter.enabled);
488
534
  EditorGUIUtility.labelWidth += 70;
489
535
  {
490
- DrawProperty(configSO, adapterId);
536
+ DrawProperty(configSO, adapterId, true);
491
537
  GUILayout.Space(8f);
492
538
 
493
539
  if (adapterId == IRONSOURCE)
@@ -515,11 +561,20 @@ namespace Amanotes.Editor
515
561
  EditorGUI.EndDisabledGroup();
516
562
  }
517
563
 
518
- private static void DrawProperty(SerializedObject so, string propertyField)
564
+ private static void DrawProperty(SerializedObject so, string propertyField, bool childrenOnly)
519
565
  {
520
566
  SerializedProperty property = so.FindProperty(propertyField);
521
- if (property == null) return;
567
+ if (property == null)
568
+ {
569
+ EditorGUILayout.HelpBox($"Property not found <{propertyField}>!", MessageType.Warning);
570
+ return;
571
+ }
522
572
 
573
+ if (!childrenOnly)
574
+ {
575
+ EditorGUILayout.PropertyField(property);
576
+ }
577
+
523
578
  string basePath = property.propertyPath;
524
579
  var first = true;
525
580
  while (property.NextVisible(first))
@@ -7,20 +7,21 @@ namespace Amanotes.Editor
7
7
  {
8
8
  public static Dictionary<string, object> GetThirdPartyVersions()
9
9
  {
10
- Dictionary<string, object> dicThirdParty = new Dictionary<string, object>();
11
- List<GDKModule> listModule = VersionHelper.LoadLocalModuleInfo();
12
- foreach (var module in listModule)
10
+ var dicThirdParty = new Dictionary<string, object>
13
11
  {
14
- VersionHelper.UpdateListVersions(module);
15
- dicThirdParty.Add(module.id, ExtractVersion.ThirdParty(module.id));
16
- }
17
-
18
- dicThirdParty["Firebase"] = AmaGDKExtra.FirebaseVersion();
19
- dicThirdParty["AmaGDK"] = AmaGDK.VERSION;
20
- dicThirdParty["AdQuality"] = ExtractVersion.IronSourceAdQuality();
21
- dicThirdParty["AdRevenue"] = ExtractVersion.AppsFlyerAdRevenue();
22
- dicThirdParty["ACM"] = ExtractVersion.Acm();
23
- dicThirdParty["FacebookSDK"] = ExtractVersion.Facebook();
12
+ ["FirebaseAnalytics"] = ExtractVersion.FirebaseAnalytics(),
13
+ ["FirebaseRemoteConfig"] = ExtractVersion.FirebaseRemoteConfig(),
14
+ ["AppsFlyer"] = ExtractVersion.AppsFlyer(),
15
+ ["IronSource"] = ExtractVersion.IronSource(),
16
+ ["Max"] = ExtractVersion.Max(),
17
+ ["RevenueCat"] = ExtractVersion.RevenueCat(),
18
+ ["Firebase"] = AmaGDKExtra.FirebaseVersion(),
19
+ ["AmaGDK"] = AmaGDK.VERSION,
20
+ ["AdQuality"] = ExtractVersion.IronSourceAdQuality(),
21
+ ["AdRevenue"] = ExtractVersion.AppsFlyerAdRevenue(),
22
+ ["ACM"] = ExtractVersion.Acm(),
23
+ ["FacebookSDK"] = ExtractVersion.Facebook()
24
+ };
24
25
 
25
26
  return dicThirdParty;
26
27
  }
@@ -23,11 +23,23 @@ namespace Amanotes.Editor
23
23
  // Extra packages
24
24
  { "DiskSpacePopup", $"{Res.EXTRA_PATH}CheckDiskSpace.unitypackage" },
25
25
  { "ForceUpdatePopup", $"{Res.EXTRA_PATH}ForceUpdate.unitypackage" },
26
- { "GoogleCMPSupport", $"{Res.EXTRA_PATH}GoogleCMP.unitypackage" },
26
+ { "Consent.ATTSupport", $"{Res.EXTRA_PATH}Consent.unitypackage" },
27
+ { "Consent.GoogleCMPSupport", $"{Res.EXTRA_PATH}Consent.unitypackage" },
27
28
  { "AndroidPostProcessor", $"{Res.EXTRA_PATH}PostProcessor.unitypackage" }
28
29
  };
29
30
 
30
31
  private static void OnPostprocessAllAssets(string[] importedAssets, string[] deletedAssets, string[] movedAssets, string[] movedFromAssetPaths)
32
+ {
33
+ #if AMAGDK_DEV
34
+ return;
35
+ #endif
36
+
37
+ #pragma warning disable CS0162
38
+ CheckImportedAssets(importedAssets);
39
+ #pragma warning restore CS0162
40
+ }
41
+
42
+ private static void CheckImportedAssets(string[] importedAssets)
31
43
  {
32
44
  if (importedAssets.Length == 0) return;
33
45
  // Debug.LogWarning($"importedAssets: {string.Join("\n", importedAssets)}");
@@ -53,6 +65,7 @@ namespace Amanotes.Editor
53
65
  continue;
54
66
  }
55
67
 
68
+ if (packages.Contains(kvp.Value)) continue;
56
69
  packages.Add(kvp.Value);
57
70
  }
58
71
 
@@ -315,13 +315,6 @@ namespace Amanotes.Core
315
315
 
316
316
  public class GDKPreProcessBuild: IPreprocessBuildWithReport
317
317
  {
318
- #if UNITY_2022_1_OR_NEWER
319
- private static readonly string GRADLE_VERSION = "7.6.1";
320
- #else
321
- private static readonly string GRADLE_VERSION = "6.7.1";
322
- #endif
323
- private static readonly string GRADLE_ROOT = "/usr/local/gradle";
324
-
325
318
  public int callbackOrder
326
319
  {
327
320
  get { return 0; }
@@ -333,19 +326,12 @@ namespace Amanotes.Core
333
326
  // Change Gradle path when running in headless mode (CI Machine)
334
327
  if (Application.isBatchMode)
335
328
  {
336
- EditorPrefs.SetBool("GradleUseEmbedded", false);
337
-
338
329
  if (GDKCIBuildCommand.TryGetEnv("GRADLE_PATH", out string envGradlePath))
339
- {
330
+ {
331
+ EditorPrefs.SetBool("GradleUseEmbedded", false);
340
332
  EditorPrefs.SetString("GradlePath", envGradlePath);
341
333
  Debug.Log("Update gradle path to: " + envGradlePath);
342
334
  }
343
- else
344
- {
345
- string gradlePath = GRADLE_ROOT + "/gradle-" + GRADLE_VERSION;
346
- EditorPrefs.SetString("GradlePath", gradlePath);
347
- Debug.Log("Update gradle path to: " + gradlePath);
348
- }
349
335
  }
350
336
  }
351
337