admanagekit-mcp-server 1.1.1 → 1.2.0
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.
|
@@ -3,6 +3,15 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.registerCodeGenerationTools = registerCodeGenerationTools;
|
|
4
4
|
const zod_1 = require("zod");
|
|
5
5
|
const templates_js_1 = require("../utils/templates.js");
|
|
6
|
+
// Mirrors config/AdLoadingStrategy.kt. All four values are valid for every
|
|
7
|
+
// strategy field — the schema previously omitted FRESH_WITH_CACHE_FALLBACK
|
|
8
|
+
// entirely and restricted native ads to two of the four.
|
|
9
|
+
const AD_LOADING_STRATEGIES = [
|
|
10
|
+
"ON_DEMAND",
|
|
11
|
+
"ONLY_CACHE",
|
|
12
|
+
"HYBRID",
|
|
13
|
+
"FRESH_WITH_CACHE_FALLBACK",
|
|
14
|
+
];
|
|
6
15
|
function registerCodeGenerationTools(server) {
|
|
7
16
|
// Tool 7: generate_config
|
|
8
17
|
server.tool("generate_config", "Generate AdManageKitConfig setup code for your Application class. Produces complete configuration including ad initialization, billing setup, and loading strategies.", {
|
|
@@ -30,13 +39,9 @@ function registerCodeGenerationTools(server) {
|
|
|
30
39
|
.boolean()
|
|
31
40
|
.optional()
|
|
32
41
|
.describe("Enable performance tracking"),
|
|
33
|
-
interstitial_strategy: zod_1.z
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
app_open_strategy: zod_1.z
|
|
37
|
-
.enum(["ON_DEMAND", "ONLY_CACHE", "HYBRID"])
|
|
38
|
-
.optional(),
|
|
39
|
-
native_strategy: zod_1.z.enum(["ON_DEMAND", "HYBRID"]).optional(),
|
|
42
|
+
interstitial_strategy: zod_1.z.enum(AD_LOADING_STRATEGIES).optional(),
|
|
43
|
+
app_open_strategy: zod_1.z.enum(AD_LOADING_STRATEGIES).optional(),
|
|
44
|
+
native_strategy: zod_1.z.enum(AD_LOADING_STRATEGIES).optional(),
|
|
40
45
|
interstitial_auto_reload: zod_1.z.boolean().optional(),
|
|
41
46
|
app_open_auto_reload: zod_1.z.boolean().optional(),
|
|
42
47
|
rewarded_auto_reload: zod_1.z.boolean().optional(),
|
|
@@ -102,7 +107,7 @@ function registerCodeGenerationTools(server) {
|
|
|
102
107
|
.optional()
|
|
103
108
|
.describe("For interstitial: how to show the ad"),
|
|
104
109
|
loading_strategy: zod_1.z
|
|
105
|
-
.enum(
|
|
110
|
+
.enum(AD_LOADING_STRATEGIES)
|
|
106
111
|
.optional()
|
|
107
112
|
.describe("Loading strategy to use"),
|
|
108
113
|
use_caching: zod_1.z
|
|
@@ -171,12 +176,16 @@ function registerCodeGenerationTools(server) {
|
|
|
171
176
|
"setup",
|
|
172
177
|
"purchase",
|
|
173
178
|
"subscribe",
|
|
179
|
+
"offers",
|
|
174
180
|
"consumable",
|
|
175
181
|
"subscription_management",
|
|
182
|
+
"account_hold",
|
|
176
183
|
"expiry_verification",
|
|
177
184
|
"complete",
|
|
178
185
|
])
|
|
179
|
-
.describe("Which billing scenario to generate code for"
|
|
186
|
+
.describe("Which billing scenario to generate code for. 'offers' covers multi-offer paywalls " +
|
|
187
|
+
"(enumerating offers, buying a specific one, savings badges, trial eligibility); " +
|
|
188
|
+
"'account_hold' covers declined-payment detection and Play's recovery flow."),
|
|
180
189
|
products: zod_1.z
|
|
181
190
|
.array(zod_1.z.object({
|
|
182
191
|
product_id: zod_1.z.string(),
|
|
@@ -235,7 +244,7 @@ function registerCodeGenerationTools(server) {
|
|
|
235
244
|
.optional()
|
|
236
245
|
.describe("For native_template: NativeAdTemplate value (e.g., MATERIAL3)"),
|
|
237
246
|
loading_strategy: zod_1.z
|
|
238
|
-
.enum(
|
|
247
|
+
.enum(AD_LOADING_STRATEGIES)
|
|
239
248
|
.optional(),
|
|
240
249
|
with_callbacks: zod_1.z.boolean().optional(),
|
|
241
250
|
show_mode: zod_1.z
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"code-generation.js","sourceRoot":"","sources":["../../src/tools/code-generation.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"code-generation.js","sourceRoot":"","sources":["../../src/tools/code-generation.ts"],"names":[],"mappings":";;AAmBA,kEAoSC;AAtTD,6BAAwB;AACxB,wDAK+B;AAE/B,2EAA2E;AAC3E,2EAA2E;AAC3E,yDAAyD;AACzD,MAAM,qBAAqB,GAAG;IAC5B,WAAW;IACX,YAAY;IACZ,QAAQ;IACR,2BAA2B;CACnB,CAAC;AAEX,SAAgB,2BAA2B,CAAC,MAAiB;IAC3D,0BAA0B;IAC1B,MAAM,CAAC,IAAI,CACT,iBAAiB,EACjB,uKAAuK,EACvK;QACE,QAAQ,EAAE,OAAC;aACR,IAAI,CAAC,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;aACxB,QAAQ,EAAE;aACV,OAAO,CAAC,QAAQ,CAAC;aACjB,QAAQ,CAAC,mCAAmC,CAAC;QAChD,QAAQ,EAAE,OAAC;aACR,MAAM,CAAC;YACN,UAAU,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC;YAChE,gBAAgB,EAAE,OAAC;iBAChB,OAAO,EAAE;iBACT,QAAQ,EAAE;iBACV,QAAQ,CAAC,4BAA4B,CAAC;YACzC,UAAU,EAAE,OAAC;iBACV,OAAO,EAAE;iBACT,QAAQ,EAAE;iBACV,QAAQ,CAAC,2CAA2C,CAAC;YACxD,kBAAkB,EAAE,OAAC;iBAClB,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CAAC,iCAAiC,CAAC;YAC9C,mBAAmB,EAAE,OAAC;iBACnB,OAAO,EAAE;iBACT,QAAQ,EAAE;iBACV,QAAQ,CAAC,6BAA6B,CAAC;YAC1C,qBAAqB,EAAE,OAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,QAAQ,EAAE;YAC/D,iBAAiB,EAAE,OAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,QAAQ,EAAE;YAC3D,eAAe,EAAE,OAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,QAAQ,EAAE;YACzD,wBAAwB,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;YAChD,oBAAoB,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;YAC5C,oBAAoB,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;YAC5C,OAAO,EAAE,OAAC;iBACP,OAAO,EAAE;iBACT,QAAQ,EAAE;iBACV,QAAQ,CAAC,uBAAuB,CAAC;YACpC,gBAAgB,EAAE,OAAC;iBAChB,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CAAC,qBAAqB,CAAC;YAClC,SAAS,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC;SAC/D,CAAC;aACD,QAAQ,EAAE;aACV,OAAO,CAAC,EAAE,CAAC;KACf,EACD,KAAK,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE;QAC/B,MAAM,IAAI,GAAG,IAAA,6BAAc,EAAC;YAC1B,QAAQ;YACR,GAAG,QAAQ;SACZ,CAAC,CAAC;QAEH,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE,SAAS,QAAQ,KAAK,IAAI,UAAU;iBAC3C;aACF;SACF,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,kCAAkC;IAClC,MAAM,CAAC,IAAI,CACT,yBAAyB,EACzB,uIAAuI,EACvI;QACE,OAAO,EAAE,OAAC;aACP,IAAI,CAAC;YACJ,cAAc;YACd,QAAQ;YACR,cAAc;YACd,eAAe;YACf,cAAc;YACd,iBAAiB;YACjB,UAAU;YACV,UAAU;SACX,CAAC;aACD,QAAQ,CAAC,qCAAqC,CAAC;QAClD,QAAQ,EAAE,OAAC;aACR,IAAI,CAAC,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;aACxB,QAAQ,EAAE;aACV,OAAO,CAAC,QAAQ,CAAC;aACjB,QAAQ,CAAC,mCAAmC,CAAC;QAChD,UAAU,EAAE,OAAC;aACV,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,0CAA0C,CAAC;QACvD,OAAO,EAAE,OAAC;aACP,MAAM,CAAC;YACN,YAAY,EAAE,OAAC;iBACZ,IAAI,CAAC;gBACJ,OAAO;gBACP,YAAY;gBACZ,aAAa;gBACb,SAAS;gBACT,aAAa;aACd,CAAC;iBACD,QAAQ,EAAE;iBACV,QAAQ,CAAC,sCAAsC,CAAC;YACnD,gBAAgB,EAAE,OAAC;iBAChB,IAAI,CAAC,qBAAqB,CAAC;iBAC3B,QAAQ,EAAE;iBACV,QAAQ,CAAC,yBAAyB,CAAC;YACtC,WAAW,EAAE,OAAC;iBACX,OAAO,EAAE;iBACT,QAAQ,EAAE;iBACV,QAAQ,CAAC,gCAAgC,CAAC;YAC7C,QAAQ,EAAE,OAAC;iBACR,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CACP,mEAAmE,CACpE;YACH,WAAW,EAAE,OAAC;iBACX,OAAO,EAAE;iBACT,QAAQ,EAAE;iBACV,QAAQ,CAAC,oCAAoC,CAAC;YACjD,cAAc,EAAE,OAAC;iBACd,OAAO,EAAE;iBACT,QAAQ,EAAE;iBACV,QAAQ,CAAC,gDAAgD,CAAC;YAC7D,cAAc,EAAE,OAAC;iBACd,OAAO,EAAE;iBACT,QAAQ,EAAE;iBACV,QAAQ,CAAC,qDAAqD,CAAC;YAClE,iBAAiB,EAAE,OAAC;iBACjB,MAAM,CAAC;gBACN,cAAc,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;gBACrC,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;gBAChC,oBAAoB,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;aAC5C,CAAC;iBACD,QAAQ,EAAE;YACb,kBAAkB,EAAE,OAAC;iBAClB,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC;iBACjB,QAAQ,EAAE;iBACV,QAAQ,CAAC,2CAA2C,CAAC;YACxD,WAAW,EAAE,OAAC;iBACX,OAAO,EAAE;iBACT,QAAQ,EAAE;iBACV,QAAQ,CAAC,6BAA6B,CAAC;SAC3C,CAAC;aACD,QAAQ,EAAE;aACV,OAAO,CAAC,EAAE,CAAC;KACf,EACD,KAAK,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,EAAE;QACnD,MAAM,IAAI,GAAG,IAAA,oCAAqB,EAAC;YACjC,OAAO;YACP,QAAQ;YACR,UAAU;YACV,GAAG,OAAO;SACX,CAAC,CAAC;QAEH,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE,SAAS,QAAQ,KAAK,IAAI,UAAU;iBAC3C;aACF;SACF,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,gCAAgC;IAChC,MAAM,CAAC,IAAI,CACT,uBAAuB,EACvB,yJAAyJ,EACzJ;QACE,QAAQ,EAAE,OAAC;aACR,IAAI,CAAC,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;aACxB,QAAQ,EAAE;aACV,OAAO,CAAC,QAAQ,CAAC;aACjB,QAAQ,CAAC,mCAAmC,CAAC;QAChD,QAAQ,EAAE,OAAC;aACR,IAAI,CAAC;YACJ,OAAO;YACP,UAAU;YACV,WAAW;YACX,QAAQ;YACR,YAAY;YACZ,yBAAyB;YACzB,cAAc;YACd,qBAAqB;YACrB,UAAU;SACX,CAAC;aACD,QAAQ,CACP,oFAAoF;YAClF,kFAAkF;YAClF,4EAA4E,CAC/E;QACH,QAAQ,EAAE,OAAC;aACR,KAAK,CACJ,OAAC,CAAC,MAAM,CAAC;YACP,UAAU,EAAE,OAAC,CAAC,MAAM,EAAE;YACtB,IAAI,EAAE,OAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;YAC1C,QAAQ,EAAE,OAAC;iBACR,IAAI,CAAC;gBACJ,YAAY;gBACZ,gBAAgB;gBAChB,kBAAkB;gBAClB,YAAY;aACb,CAAC;iBACD,QAAQ,EAAE;YACb,WAAW,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;SACnC,CAAC,CACH;aACA,QAAQ,EAAE;aACV,QAAQ,CAAC,gCAAgC,CAAC;KAC9C,EACD,KAAK,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE;QACzC,MAAM,IAAI,GAAG,IAAA,kCAAmB,EAAC;YAC/B,QAAQ;YACR,QAAQ;YACR,QAAQ;SACT,CAAC,CAAC;QAEH,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE,SAAS,QAAQ,KAAK,IAAI,UAAU;iBAC3C;aACF;SACF,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,iCAAiC;IACjC,MAAM,CAAC,IAAI,CACT,uBAAuB,EACvB,sLAAsL,EACtL;QACE,SAAS,EAAE,OAAC;aACT,IAAI,CAAC;YACJ,QAAQ;YACR,iBAAiB;YACjB,cAAc;YACd,eAAe;YACf,cAAc;YACd,cAAc;YACd,oBAAoB;YACpB,gBAAgB;YAChB,eAAe;YACf,iBAAiB;SAClB,CAAC;aACD,QAAQ,CAAC,qCAAqC,CAAC;QAClD,UAAU,EAAE,OAAC;aACV,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,uCAAuC,CAAC;QACpD,OAAO,EAAE,OAAC;aACP,MAAM,CAAC;YACN,QAAQ,EAAE,OAAC;iBACR,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CACP,+DAA+D,CAChE;YACH,gBAAgB,EAAE,OAAC;iBAChB,IAAI,CAAC,qBAAqB,CAAC;iBAC3B,QAAQ,EAAE;YACb,cAAc,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;YACtC,SAAS,EAAE,OAAC;iBACT,IAAI,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,mBAAmB,CAAC,CAAC;iBACrD,QAAQ,EAAE;iBACV,QAAQ,CAAC,4CAA4C,CAAC;SAC1D,CAAC;aACD,QAAQ,EAAE;aACV,OAAO,CAAC,EAAE,CAAC;KACf,EACD,KAAK,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,EAAE;QAC3C,MAAM,IAAI,GAAG,IAAA,kCAAmB,EAAC;YAC/B,SAAS;YACT,UAAU;YACV,GAAG,OAAO;SACX,CAAC,CAAC;QAEH,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE,iBAAiB,IAAI,UAAU;iBACtC;aACF;SACF,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC"}
|
package/dist/utils/templates.js
CHANGED
|
@@ -46,6 +46,12 @@ function generateConfigKotlin(o) {
|
|
|
46
46
|
: `"${types_js_1.TEST_AD_UNITS.app_open}"`;
|
|
47
47
|
const imports = [
|
|
48
48
|
"import android.app.Application",
|
|
49
|
+
"import android.content.pm.PackageManager",
|
|
50
|
+
"import android.os.Handler",
|
|
51
|
+
"import android.os.Looper",
|
|
52
|
+
"import com.google.android.libraries.ads.mobile.sdk.MobileAds",
|
|
53
|
+
"import com.google.android.libraries.ads.mobile.sdk.initialization.InitializationConfig",
|
|
54
|
+
"import com.i2hammad.admanagekit.admob.AppOpenManager",
|
|
49
55
|
"import com.i2hammad.admanagekit.config.AdManageKitConfig",
|
|
50
56
|
];
|
|
51
57
|
if (o.interstitial_strategy ||
|
|
@@ -54,16 +60,15 @@ function generateConfigKotlin(o) {
|
|
|
54
60
|
imports.push("import com.i2hammad.admanagekit.config.AdLoadingStrategy");
|
|
55
61
|
}
|
|
56
62
|
if (o.billing) {
|
|
57
|
-
imports.push("import com.i2hammad.admanagekit.
|
|
63
|
+
imports.push("import com.i2hammad.admanagekit.billing.AppPurchase");
|
|
64
|
+
imports.push("import com.i2hammad.admanagekit.billing.PurchaseItem");
|
|
58
65
|
imports.push("import com.i2hammad.admanagekit.billing.BillingPurchaseProvider");
|
|
66
|
+
imports.push("import com.i2hammad.admanagekit.core.BillingConfig");
|
|
59
67
|
}
|
|
60
|
-
|
|
61
|
-
imports.push("import com.i2hammad.admanagekit.admob.AppOpenManager");
|
|
62
|
-
}
|
|
63
|
-
return `${imports.join("\n")}
|
|
68
|
+
return `${imports.sort().join("\n")}
|
|
64
69
|
|
|
65
70
|
class MyApp : Application() {
|
|
66
|
-
private
|
|
71
|
+
private var appOpenManager: AppOpenManager? = null
|
|
67
72
|
|
|
68
73
|
override fun onCreate() {
|
|
69
74
|
super.onCreate()
|
|
@@ -74,13 +79,61 @@ ${configLines.join("\n")}
|
|
|
74
79
|
}
|
|
75
80
|
${o.billing
|
|
76
81
|
? `
|
|
77
|
-
|
|
78
|
-
BillingConfig.setPurchaseProvider(BillingPurchaseProvider())
|
|
82
|
+
initBilling()
|
|
79
83
|
`
|
|
80
84
|
: ""}
|
|
81
|
-
|
|
82
|
-
appOpenManager = AppOpenManager(this, ${appOpenUnit})
|
|
85
|
+
initAds()
|
|
83
86
|
}
|
|
87
|
+
|
|
88
|
+
/**
|
|
89
|
+
* Since v4.2.0 AdManageKit runs on the Next-Gen Google Mobile Ads SDK, which
|
|
90
|
+
* removed the legacy SDK's silent lazy-init. MobileAds.initialize() must be
|
|
91
|
+
* called explicitly once before any ad request — AdManageKit does not do it
|
|
92
|
+
* for you, because it does not own your consent flow.
|
|
93
|
+
*/
|
|
94
|
+
private fun initAds() {
|
|
95
|
+
val config = InitializationConfig.Builder(readApplicationIdFromManifest()).build()
|
|
96
|
+
|
|
97
|
+
// initialize() is blocking, so keep it off the main thread or it can ANR.
|
|
98
|
+
Thread {
|
|
99
|
+
MobileAds.initialize(this, config)
|
|
100
|
+
|
|
101
|
+
// Construct AppOpenManager only after initialize() returns. It registers
|
|
102
|
+
// a lifecycle observer that can fire a load immediately, and the Next-Gen
|
|
103
|
+
// SDK rejects requests made before initialization completes.
|
|
104
|
+
Handler(Looper.getMainLooper()).post {
|
|
105
|
+
appOpenManager = AppOpenManager(this, ${appOpenUnit})
|
|
106
|
+
}
|
|
107
|
+
}.start()
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
/**
|
|
111
|
+
* The Next-Gen SDK does not read the manifest tag automatically like the
|
|
112
|
+
* legacy SDK did, so the application id must be supplied explicitly.
|
|
113
|
+
*/
|
|
114
|
+
private fun readApplicationIdFromManifest(): String {
|
|
115
|
+
val appInfo = packageManager.getApplicationInfo(packageName, PackageManager.GET_META_DATA)
|
|
116
|
+
return appInfo.metaData.getString("com.google.android.gms.ads.APPLICATION_ID")
|
|
117
|
+
?: error("Missing com.google.android.gms.ads.APPLICATION_ID meta-data in AndroidManifest.xml")
|
|
118
|
+
}${o.billing
|
|
119
|
+
? `
|
|
120
|
+
|
|
121
|
+
private fun initBilling() {
|
|
122
|
+
// A library AAR is always compiled with BuildConfig.DEBUG = false, so the
|
|
123
|
+
// host app must inject its own build state. Call this BEFORE initBilling().
|
|
124
|
+
AppPurchase.getInstance().setDebugMode(BuildConfig.DEBUG)
|
|
125
|
+
|
|
126
|
+
val products = listOf(
|
|
127
|
+
PurchaseItem("remove_ads", AppPurchase.TYPE_IAP.PURCHASE, PurchaseItem.PurchaseCategory.REMOVE_ADS),
|
|
128
|
+
PurchaseItem("premium_monthly", AppPurchase.TYPE_IAP.SUBSCRIPTION),
|
|
129
|
+
PurchaseItem("premium_yearly", AppPurchase.TYPE_IAP.SUBSCRIPTION)
|
|
130
|
+
)
|
|
131
|
+
AppPurchase.getInstance().initBilling(this, products)
|
|
132
|
+
|
|
133
|
+
// Lets every ad component skip loading for paying users.
|
|
134
|
+
BillingConfig.setPurchaseProvider(BillingPurchaseProvider())
|
|
135
|
+
}`
|
|
136
|
+
: ""}
|
|
84
137
|
}`;
|
|
85
138
|
}
|
|
86
139
|
function generateConfigJava(o) {
|
|
@@ -101,10 +154,17 @@ function generateConfigJava(o) {
|
|
|
101
154
|
configLines.push(` AdManageKitConfig.INSTANCE.setNativeLoadingStrategy(AdLoadingStrategy.${o.native_strategy});`);
|
|
102
155
|
const appOpenUnit = o.app_open_ad_unit || types_js_1.TEST_AD_UNITS.app_open;
|
|
103
156
|
return `import android.app.Application;
|
|
157
|
+
import android.content.pm.PackageManager;
|
|
158
|
+
import android.os.Handler;
|
|
159
|
+
import android.os.Looper;
|
|
160
|
+
import java.util.Arrays;
|
|
161
|
+
import java.util.List;
|
|
162
|
+
import com.google.android.libraries.ads.mobile.sdk.MobileAds;
|
|
163
|
+
import com.google.android.libraries.ads.mobile.sdk.initialization.InitializationConfig;
|
|
104
164
|
import com.i2hammad.admanagekit.config.AdManageKitConfig;
|
|
105
165
|
import com.i2hammad.admanagekit.config.AdLoadingStrategy;
|
|
106
166
|
import com.i2hammad.admanagekit.admob.AppOpenManager;
|
|
107
|
-
${o.billing ? "import com.i2hammad.admanagekit.
|
|
167
|
+
${o.billing ? "import com.i2hammad.admanagekit.billing.AppPurchase;\nimport com.i2hammad.admanagekit.billing.PurchaseItem;\nimport com.i2hammad.admanagekit.billing.BillingPurchaseProvider;\nimport com.i2hammad.admanagekit.core.BillingConfig;\n" : ""}
|
|
108
168
|
public class MyApp extends Application {
|
|
109
169
|
private AppOpenManager appOpenManager;
|
|
110
170
|
|
|
@@ -114,10 +174,67 @@ public class MyApp extends Application {
|
|
|
114
174
|
|
|
115
175
|
// Configure AdManageKit
|
|
116
176
|
${configLines.join("\n")}
|
|
117
|
-
${o.billing ? "\n
|
|
118
|
-
|
|
119
|
-
|
|
177
|
+
${o.billing ? "\n initBilling();\n" : ""}
|
|
178
|
+
initAds();
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
/**
|
|
182
|
+
* Since v4.2.0 AdManageKit runs on the Next-Gen Google Mobile Ads SDK, which
|
|
183
|
+
* removed the legacy SDK's silent lazy-init. MobileAds.initialize() must be
|
|
184
|
+
* called explicitly once before any ad request.
|
|
185
|
+
*/
|
|
186
|
+
private void initAds() {
|
|
187
|
+
InitializationConfig config =
|
|
188
|
+
new InitializationConfig.Builder(readApplicationIdFromManifest()).build();
|
|
189
|
+
|
|
190
|
+
// initialize() is blocking, so keep it off the main thread or it can ANR.
|
|
191
|
+
new Thread(() -> {
|
|
192
|
+
MobileAds.initialize(this, config);
|
|
193
|
+
|
|
194
|
+
// Construct AppOpenManager only after initialize() returns — it registers a
|
|
195
|
+
// lifecycle observer that can request an ad immediately, and the Next-Gen SDK
|
|
196
|
+
// rejects requests made before initialization completes.
|
|
197
|
+
new Handler(Looper.getMainLooper()).post(() ->
|
|
198
|
+
appOpenManager = new AppOpenManager(this, "${appOpenUnit}"));
|
|
199
|
+
}).start();
|
|
120
200
|
}
|
|
201
|
+
|
|
202
|
+
/**
|
|
203
|
+
* The Next-Gen SDK does not read the manifest tag automatically like the
|
|
204
|
+
* legacy SDK did, so the application id must be supplied explicitly.
|
|
205
|
+
*/
|
|
206
|
+
private String readApplicationIdFromManifest() {
|
|
207
|
+
try {
|
|
208
|
+
android.content.pm.ApplicationInfo info = getPackageManager()
|
|
209
|
+
.getApplicationInfo(getPackageName(), PackageManager.GET_META_DATA);
|
|
210
|
+
String id = info.metaData.getString("com.google.android.gms.ads.APPLICATION_ID");
|
|
211
|
+
if (id == null) {
|
|
212
|
+
throw new IllegalStateException(
|
|
213
|
+
"Missing com.google.android.gms.ads.APPLICATION_ID meta-data in AndroidManifest.xml");
|
|
214
|
+
}
|
|
215
|
+
return id;
|
|
216
|
+
} catch (PackageManager.NameNotFoundException e) {
|
|
217
|
+
throw new IllegalStateException(e);
|
|
218
|
+
}
|
|
219
|
+
}${o.billing
|
|
220
|
+
? `
|
|
221
|
+
|
|
222
|
+
private void initBilling() {
|
|
223
|
+
// A library AAR is always compiled with BuildConfig.DEBUG = false, so the
|
|
224
|
+
// host app must inject its own build state. Call this BEFORE initBilling().
|
|
225
|
+
AppPurchase.getInstance().setDebugMode(BuildConfig.DEBUG);
|
|
226
|
+
|
|
227
|
+
List<PurchaseItem> products = Arrays.asList(
|
|
228
|
+
new PurchaseItem("remove_ads", AppPurchase.TYPE_IAP.PURCHASE,
|
|
229
|
+
PurchaseItem.PurchaseCategory.REMOVE_ADS),
|
|
230
|
+
new PurchaseItem("premium_monthly", AppPurchase.TYPE_IAP.SUBSCRIPTION),
|
|
231
|
+
new PurchaseItem("premium_yearly", AppPurchase.TYPE_IAP.SUBSCRIPTION));
|
|
232
|
+
AppPurchase.getInstance().initBilling(this, products);
|
|
233
|
+
|
|
234
|
+
// Lets every ad component skip loading for paying users.
|
|
235
|
+
BillingConfig.INSTANCE.setPurchaseProvider(new BillingPurchaseProvider());
|
|
236
|
+
}`
|
|
237
|
+
: ""}
|
|
121
238
|
}`;
|
|
122
239
|
}
|
|
123
240
|
function generateAdIntegration(options) {
|
|
@@ -449,18 +566,24 @@ function generateBillingCode(options) {
|
|
|
449
566
|
return generateBillingPurchase();
|
|
450
567
|
case "subscribe":
|
|
451
568
|
return generateBillingSubscribe();
|
|
569
|
+
case "offers":
|
|
570
|
+
return generateBillingOffers();
|
|
452
571
|
case "consumable":
|
|
453
572
|
return generateBillingConsumable();
|
|
454
573
|
case "subscription_management":
|
|
455
574
|
return generateBillingSubscriptionMgmt();
|
|
575
|
+
case "account_hold":
|
|
576
|
+
return generateBillingAccountHold();
|
|
456
577
|
case "expiry_verification":
|
|
457
578
|
return generateBillingExpiryVerification();
|
|
458
579
|
case "complete":
|
|
459
580
|
return [
|
|
460
581
|
generateBillingSetup(options),
|
|
461
582
|
generateBillingPurchase(),
|
|
583
|
+
generateBillingOffers(),
|
|
462
584
|
generateBillingConsumable(),
|
|
463
585
|
generateBillingSubscriptionMgmt(),
|
|
586
|
+
generateBillingAccountHold(),
|
|
464
587
|
].join("\n\n// ---\n\n");
|
|
465
588
|
default:
|
|
466
589
|
return `// Unknown billing scenario: ${scenario}`;
|
|
@@ -487,6 +610,12 @@ function generateBillingSetup(o) {
|
|
|
487
610
|
})
|
|
488
611
|
.join(",\n");
|
|
489
612
|
return `import com.i2hammad.admanagekit.billing.*
|
|
613
|
+
import com.i2hammad.admanagekit.core.BillingConfig
|
|
614
|
+
|
|
615
|
+
// A library AAR is always compiled with BuildConfig.DEBUG = false, so the host
|
|
616
|
+
// app must inject its own build state. In debug builds this routes purchase()/
|
|
617
|
+
// subscribe() to the dev bottom sheet. Call this BEFORE initBilling().
|
|
618
|
+
AppPurchase.getInstance().setDebugMode(BuildConfig.DEBUG)
|
|
490
619
|
|
|
491
620
|
// Define products
|
|
492
621
|
val products = listOf(
|
|
@@ -497,12 +626,39 @@ ${productLines}
|
|
|
497
626
|
AppPurchase.getInstance().initBilling(application, products)
|
|
498
627
|
|
|
499
628
|
// Set up billing provider for ad suppression
|
|
500
|
-
BillingConfig.setPurchaseProvider(BillingPurchaseProvider())
|
|
629
|
+
BillingConfig.setPurchaseProvider(BillingPurchaseProvider())
|
|
630
|
+
|
|
631
|
+
// Optional but recommended: hashed identifiers Google uses for fraud detection.
|
|
632
|
+
// Never pass raw emails or user ids; max 64 characters.
|
|
633
|
+
AppPurchase.getInstance().setObfuscatedAccountId(sha256(userId))
|
|
634
|
+
|
|
635
|
+
// Diagnose an empty paywall — reports which product ids Play declined and why.
|
|
636
|
+
// Register BEFORE initBilling().
|
|
637
|
+
AppPurchase.getInstance().setProductDetailsListener(object : ProductDetailsListener {
|
|
638
|
+
override fun onProductDetailsLoaded(
|
|
639
|
+
productType: String,
|
|
640
|
+
loaded: List<ProductDetails>,
|
|
641
|
+
unfetched: List<UnfetchedProduct>,
|
|
642
|
+
) {
|
|
643
|
+
unfetched.forEach { Log.e("Billing", "\${it.productId}: status \${it.statusCode}") }
|
|
644
|
+
}
|
|
645
|
+
|
|
646
|
+
override fun onProductDetailsFailed(productType: String, responseCode: Int, debugMessage: String?) {
|
|
647
|
+
Log.e("Billing", "\$productType query failed: \$responseCode \$debugMessage")
|
|
648
|
+
}
|
|
649
|
+
})`;
|
|
501
650
|
}
|
|
502
651
|
function generateBillingPurchase() {
|
|
503
652
|
return `// Purchase a product
|
|
504
653
|
AppPurchase.getInstance().purchase(activity, "remove_ads")
|
|
505
654
|
|
|
655
|
+
// If the product has multiple offers (a launch discount, a rental, a
|
|
656
|
+
// limited-quantity drop), buy the specific one instead — see the
|
|
657
|
+
// "offers" scenario.
|
|
658
|
+
AppPurchase.getInstance().getBestOneTimeOffer("remove_ads")?.let { offer ->
|
|
659
|
+
AppPurchase.getInstance().purchase(activity, offer)
|
|
660
|
+
}
|
|
661
|
+
|
|
506
662
|
// Check purchase status
|
|
507
663
|
if (AppPurchase.getInstance().isPurchased()) {
|
|
508
664
|
// User has premium access
|
|
@@ -519,15 +675,115 @@ AppPurchase.getInstance().setPurchaseHistoryListener(object : PurchaseHistoryLis
|
|
|
519
675
|
})`;
|
|
520
676
|
}
|
|
521
677
|
function generateBillingSubscribe() {
|
|
522
|
-
return
|
|
523
|
-
|
|
678
|
+
return `val billing = AppPurchase.getInstance()
|
|
679
|
+
|
|
680
|
+
// Simple case — one offer on the product. The library picks the offer for you:
|
|
681
|
+
// the id configured as PurchaseItem.trialId, otherwise Play's LAST offer.
|
|
682
|
+
billing.subscribe(activity, "premium_monthly")
|
|
683
|
+
|
|
684
|
+
// If the product has more than one offer (base plan + free trial + intro offer),
|
|
685
|
+
// the line above can charge for a plan the user did not pick. Pass the offer
|
|
686
|
+
// explicitly instead — see the "offers" scenario for a full paywall.
|
|
687
|
+
val offers = billing.getOffers("premium_monthly")
|
|
688
|
+
billing.subscribe(activity, offers[selectedIndex])
|
|
524
689
|
|
|
525
690
|
// Check subscription state
|
|
526
|
-
|
|
527
|
-
when (state) {
|
|
691
|
+
when (billing.getSubscriptionState("premium_monthly")) {
|
|
528
692
|
SubscriptionState.ACTIVE -> showPremiumUI()
|
|
529
|
-
SubscriptionState.CANCELLED -> showRenewalPrompt()
|
|
693
|
+
SubscriptionState.CANCELLED -> showRenewalPrompt() // Still has access
|
|
694
|
+
SubscriptionState.ON_HOLD -> showFixPaymentPrompt() // Payment declined — no access
|
|
530
695
|
SubscriptionState.EXPIRED -> showSubscribeButton()
|
|
696
|
+
else -> showSubscribeButton()
|
|
697
|
+
}`;
|
|
698
|
+
}
|
|
699
|
+
function generateBillingOffers() {
|
|
700
|
+
return `val billing = AppPurchase.getInstance()
|
|
701
|
+
|
|
702
|
+
// A subscription product usually carries several offers — a base plan, a free
|
|
703
|
+
// trial, an introductory discount. Play returns only the ones THIS account is
|
|
704
|
+
// eligible for, so the list is already personalized.
|
|
705
|
+
for (offer in billing.getOffers("premium_monthly")) {
|
|
706
|
+
Log.d("IAP", "\${offer.basePlanId}/\${offer.offerId} " +
|
|
707
|
+
"trial=\${offer.isFreeTrial} intro=\${offer.introPrice} base=\${offer.basePrice}")
|
|
708
|
+
}
|
|
709
|
+
|
|
710
|
+
// Find a specific offer rather than relying on list order
|
|
711
|
+
billing.getIntroOffer("premium_monthly") // first with an intro price
|
|
712
|
+
billing.getTrialOffer("premium_monthly") // first with a free trial
|
|
713
|
+
billing.getOfferByBasePlanId("premium_yearly", "yearly") // by base plan id
|
|
714
|
+
billing.getOfferByTag("premium_yearly", "popular") // by Play Console offer tag
|
|
715
|
+
billing.getBestValueOffer("premium_yearly") // lowest cost per month
|
|
716
|
+
billing.getCheapestFirstCycleOffer("premium_yearly") // cheapest way in
|
|
717
|
+
|
|
718
|
+
// Render an offer without hand-parsing ProductDetails or ISO-8601 periods
|
|
719
|
+
val offer = billing.getBaseOffer("premium_yearly") ?: return
|
|
720
|
+
|
|
721
|
+
priceLabel.text = offer.basePrice // "\$59.99"
|
|
722
|
+
cycleLabel.text = BillingPeriod.formatOf(offer.billingPeriod) // "1 year"
|
|
723
|
+
perMonthLabel.text = AppPurchase.formatPrice(offer.pricePerMonthMicros, offer.currencyCode)
|
|
724
|
+
todayLabel.text = offer.firstCyclePrice // "Free", "\$1.99" or "\$59.99"
|
|
725
|
+
|
|
726
|
+
// "Save 50%" badge — compares BASE offers, so trial/intro phases don't distort it
|
|
727
|
+
val savings = billing.getSavingsPercent("premium_monthly", "premium_yearly")
|
|
728
|
+
savingsBadge.isVisible = savings > 0
|
|
729
|
+
savingsBadge.text = "Save \$savings%"
|
|
730
|
+
|
|
731
|
+
// Only promise a trial this account can actually claim, or Play charges immediately
|
|
732
|
+
subscribeButton.text = if (billing.isEligibleForFreeTrial("premium_monthly")) {
|
|
733
|
+
"Start free trial"
|
|
734
|
+
} else {
|
|
735
|
+
"Subscribe"
|
|
736
|
+
}
|
|
737
|
+
|
|
738
|
+
// Buy exactly the offer the user tapped
|
|
739
|
+
subscribeButton.setOnClickListener { billing.subscribe(activity, offer) }
|
|
740
|
+
|
|
741
|
+
// One-time products can carry multiple offers too (discounts, rentals,
|
|
742
|
+
// pre-orders, limited quantity)
|
|
743
|
+
billing.getBestOneTimeOffer("remove_ads")?.let { oneTime ->
|
|
744
|
+
price.text = oneTime.formattedPrice
|
|
745
|
+
badge.isVisible = oneTime.isDiscounted
|
|
746
|
+
badge.text = "-\${oneTime.effectiveDiscountPercent}%"
|
|
747
|
+
buyButton.isEnabled = !oneTime.isSoldOut && oneTime.isValidAt()
|
|
748
|
+
buyButton.setOnClickListener { billing.purchase(activity, oneTime) }
|
|
749
|
+
}
|
|
750
|
+
|
|
751
|
+
// NOTE: localize periods with BillingPeriod.parse(iso) and pair unit + count with
|
|
752
|
+
// your own plurals resources. BillingPeriod.formatOf() is English-only.`;
|
|
753
|
+
}
|
|
754
|
+
function generateBillingAccountHold() {
|
|
755
|
+
return `val billing = AppPurchase.getInstance()
|
|
756
|
+
|
|
757
|
+
// When Play cannot charge a subscriber, the subscription enters ACCOUNT HOLD.
|
|
758
|
+
// The purchase record still exists, but the user has NOT paid.
|
|
759
|
+
// Detected client-side since v4.4.0 — it used to need server-side verification.
|
|
760
|
+
if (billing.hasSubscriptionOnHold()) {
|
|
761
|
+
// Play shows the user an in-app flow to fix their payment method.
|
|
762
|
+
// Google recommends calling this on foreground entry for subscription apps.
|
|
763
|
+
billing.showInAppMessages(activity, object : InAppMessageListener {
|
|
764
|
+
override fun onSubscriptionRecovered(purchaseToken: String) {
|
|
765
|
+
// AppPurchase already refreshed its state — isPurchased() is correct here.
|
|
766
|
+
refreshPremiumUi()
|
|
767
|
+
}
|
|
768
|
+
|
|
769
|
+
override fun onNoActionNeeded() { }
|
|
770
|
+
})
|
|
771
|
+
}
|
|
772
|
+
|
|
773
|
+
// Per-subscription check
|
|
774
|
+
val subscription = billing.getSubscription("premium_monthly")
|
|
775
|
+
if (subscription?.isSuspended == true) {
|
|
776
|
+
showFixPaymentPrompt()
|
|
777
|
+
}
|
|
778
|
+
|
|
779
|
+
// IMPORTANT: isSubscriptionActive() returns false during account hold, which is
|
|
780
|
+
// what Google requires — an on-hold user must not keep premium access. If your
|
|
781
|
+
// app deliberately keeps serving these users, check isSuspended() explicitly.
|
|
782
|
+
|
|
783
|
+
// A plan change the user started but has not paid for yet. The CURRENT plan
|
|
784
|
+
// remains the entitlement in force until it completes.
|
|
785
|
+
if (billing.hasPendingSubscriptionChange()) {
|
|
786
|
+
showPlanChangePendingBanner()
|
|
531
787
|
}`;
|
|
532
788
|
}
|
|
533
789
|
function generateBillingConsumable() {
|
|
@@ -545,27 +801,44 @@ AppPurchase.getInstance().setPurchaseHistoryListener(object : PurchaseHistoryLis
|
|
|
545
801
|
})`;
|
|
546
802
|
}
|
|
547
803
|
function generateBillingSubscriptionMgmt() {
|
|
548
|
-
return
|
|
549
|
-
|
|
550
|
-
|
|
804
|
+
return `val billing = AppPurchase.getInstance()
|
|
805
|
+
|
|
806
|
+
// Check subscription state
|
|
807
|
+
when (billing.getSubscriptionState("premium_monthly")) {
|
|
551
808
|
SubscriptionState.ACTIVE -> showPremiumUI()
|
|
552
|
-
SubscriptionState.CANCELLED -> showRenewalPrompt()
|
|
809
|
+
SubscriptionState.CANCELLED -> showRenewalPrompt() // Still has access until period ends
|
|
810
|
+
SubscriptionState.ON_HOLD -> showFixPaymentPrompt() // Payment declined — no access (v4.4.0+)
|
|
553
811
|
SubscriptionState.EXPIRED -> showSubscribeButton()
|
|
812
|
+
else -> showSubscribeButton()
|
|
554
813
|
}
|
|
555
814
|
|
|
556
815
|
// Upgrade subscription
|
|
557
|
-
|
|
816
|
+
billing.upgradeSubscription(activity, "premium_yearly")
|
|
558
817
|
|
|
559
818
|
// Downgrade subscription
|
|
560
|
-
|
|
819
|
+
billing.downgradeSubscription(activity, "premium_basic")
|
|
561
820
|
|
|
562
821
|
// Full control with proration mode
|
|
563
|
-
|
|
822
|
+
billing.changeSubscription(
|
|
564
823
|
activity,
|
|
565
824
|
"premium_monthly", // from
|
|
566
825
|
"premium_yearly", // to
|
|
567
826
|
SubscriptionReplacementMode.CHARGE_PRORATED_PRICE
|
|
568
|
-
)
|
|
827
|
+
)
|
|
828
|
+
|
|
829
|
+
// Upgrade onto a SPECIFIC offer of the new plan. The overloads above let the
|
|
830
|
+
// library resolve the offer, which may not be the one the user selected.
|
|
831
|
+
val target = billing.getOfferByBasePlanId("premium_yearly", "yearly")
|
|
832
|
+
val current = billing.getSubscription("premium_monthly")
|
|
833
|
+
if (target != null && current != null) {
|
|
834
|
+
billing.updateSubscription(
|
|
835
|
+
activity,
|
|
836
|
+
"premium_yearly",
|
|
837
|
+
target.offerToken,
|
|
838
|
+
current.purchaseToken,
|
|
839
|
+
AppPurchase.SubscriptionReplacementMode.CHARGE_PRORATED_PRICE
|
|
840
|
+
)
|
|
841
|
+
}`;
|
|
569
842
|
}
|
|
570
843
|
function generateBillingExpiryVerification() {
|
|
571
844
|
return `// Set up server-side verification callback
|
|
@@ -593,21 +866,65 @@ AppPurchase.getInstance().verifySubscription("premium_monthly",
|
|
|
593
866
|
)`;
|
|
594
867
|
}
|
|
595
868
|
function generateBillingJava(o) {
|
|
596
|
-
return `//
|
|
869
|
+
return `// ─── Setup ───────────────────────────────────────────────────
|
|
870
|
+
// A library AAR is always compiled with BuildConfig.DEBUG = false, so the host
|
|
871
|
+
// app must inject its own build state. Call this BEFORE initBilling().
|
|
872
|
+
AppPurchase.getInstance().setDebugMode(BuildConfig.DEBUG);
|
|
873
|
+
|
|
597
874
|
List<PurchaseItem> products = Arrays.asList(
|
|
598
|
-
new PurchaseItem("remove_ads", TYPE_IAP.PURCHASE,
|
|
599
|
-
|
|
875
|
+
new PurchaseItem("remove_ads", AppPurchase.TYPE_IAP.PURCHASE,
|
|
876
|
+
PurchaseItem.PurchaseCategory.REMOVE_ADS),
|
|
877
|
+
new PurchaseItem("premium_monthly", AppPurchase.TYPE_IAP.SUBSCRIPTION),
|
|
878
|
+
new PurchaseItem("premium_yearly", AppPurchase.TYPE_IAP.SUBSCRIPTION)
|
|
600
879
|
);
|
|
601
880
|
|
|
602
881
|
AppPurchase.getInstance().initBilling(getApplication(), products);
|
|
603
882
|
BillingConfig.INSTANCE.setPurchaseProvider(new BillingPurchaseProvider());
|
|
604
883
|
|
|
605
|
-
// Purchase
|
|
884
|
+
// ─── Purchase ────────────────────────────────────────────────
|
|
606
885
|
AppPurchase.getInstance().purchase(activity, "remove_ads");
|
|
607
886
|
|
|
608
|
-
// Check status
|
|
609
887
|
if (AppPurchase.getInstance().isPurchased()) {
|
|
610
888
|
// User has premium access
|
|
889
|
+
}
|
|
890
|
+
|
|
891
|
+
// ─── Offers ──────────────────────────────────────────────────
|
|
892
|
+
// A subscription usually has several offers. subscribe(activity, id) resolves
|
|
893
|
+
// the offer itself and may not pick the one the user tapped — pass it directly.
|
|
894
|
+
AppPurchase billing = AppPurchase.getInstance();
|
|
895
|
+
List<OfferInfo> offers = billing.getOffers("premium_monthly");
|
|
896
|
+
billing.subscribe(activity, offers.get(selectedIndex));
|
|
897
|
+
|
|
898
|
+
OfferInfo base = billing.getBaseOffer("premium_yearly");
|
|
899
|
+
if (base != null) {
|
|
900
|
+
priceLabel.setText(base.getBasePrice());
|
|
901
|
+
cycleLabel.setText(BillingPeriod.formatOf(base.getBillingPeriod()));
|
|
902
|
+
perMonthLabel.setText(
|
|
903
|
+
AppPurchase.formatPrice(base.getPricePerMonthMicros(), base.getCurrencyCode()));
|
|
904
|
+
}
|
|
905
|
+
|
|
906
|
+
int savings = billing.getSavingsPercent("premium_monthly", "premium_yearly");
|
|
907
|
+
if (savings > 0) {
|
|
908
|
+
savingsBadge.setText("Save " + savings + "%");
|
|
909
|
+
}
|
|
910
|
+
|
|
911
|
+
// Only promise a trial this account can actually claim
|
|
912
|
+
subscribeButton.setText(
|
|
913
|
+
billing.isEligibleForFreeTrial("premium_monthly") ? "Start free trial" : "Subscribe");
|
|
914
|
+
|
|
915
|
+
// ─── Account hold ────────────────────────────────────────────
|
|
916
|
+
// isSubscriptionActive() returns false during account hold — the user's payment
|
|
917
|
+
// was declined and they must not keep premium access.
|
|
918
|
+
if (billing.hasSubscriptionOnHold()) {
|
|
919
|
+
billing.showInAppMessages(activity, new InAppMessageListener() {
|
|
920
|
+
@Override
|
|
921
|
+
public void onSubscriptionRecovered(@NonNull String purchaseToken) {
|
|
922
|
+
refreshPremiumUi();
|
|
923
|
+
}
|
|
924
|
+
|
|
925
|
+
@Override
|
|
926
|
+
public void onNoActionNeeded() { }
|
|
927
|
+
});
|
|
611
928
|
}`;
|
|
612
929
|
}
|
|
613
930
|
function generateComposeCode(options) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"templates.js","sourceRoot":"","sources":["../../src/utils/templates.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"templates.js","sourceRoot":"","sources":["../../src/utils/templates.ts"],"names":[],"mappings":";;AA6BA,wCAOC;AAoSD,sDAsBC;AAkWD,kDAqCC;AA0WD,kDAyBC;AAxmCD,0CAAsD;AAEtD,SAAS,eAAe,CACtB,QAA4B,EAC5B,IAAY;IAEZ,OAAO,QAAQ,IAAI,wBAAa,CAAC,IAAI,CAAC,IAAI,oBAAoB,CAAC;AACjE,CAAC;AAsBD,SAAgB,cAAc,CAAC,OAAsB;IACnD,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,IAAI,QAAQ,CAAC;IAE1C,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;QACtB,OAAO,oBAAoB,CAAC,OAAO,CAAC,CAAC;IACvC,CAAC;IACD,OAAO,kBAAkB,CAAC,OAAO,CAAC,CAAC;AACrC,CAAC;AAED,SAAS,oBAAoB,CAAC,CAAgB;IAC5C,MAAM,WAAW,GAAa,EAAE,CAAC;IAEjC,IAAI,CAAC,CAAC,UAAU,KAAK,SAAS;QAC5B,WAAW,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC;IACtD,IAAI,CAAC,CAAC,SAAS,KAAK,SAAS;QAC3B,WAAW,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;IACpD,IAAI,CAAC,CAAC,gBAAgB;QACpB,WAAW,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;IACvD,IAAI,CAAC,CAAC,UAAU,KAAK,SAAS;QAC5B,WAAW,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC;IAC/D,IAAI,CAAC,CAAC,kBAAkB,KAAK,SAAS;QACpC,WAAW,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC,kBAAkB,EAAE,CAAC,CAAC;IACrE,IAAI,CAAC,CAAC,mBAAmB;QACvB,WAAW,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;IAE1D,IAAI,CAAC,CAAC,qBAAqB;QACzB,WAAW,CAAC,IAAI,CACd,uDAAuD,CAAC,CAAC,qBAAqB,EAAE,CACjF,CAAC;IACJ,IAAI,CAAC,CAAC,iBAAiB;QACrB,WAAW,CAAC,IAAI,CACd,kDAAkD,CAAC,CAAC,iBAAiB,EAAE,CACxE,CAAC;IACJ,IAAI,CAAC,CAAC,eAAe;QACnB,WAAW,CAAC,IAAI,CACd,iDAAiD,CAAC,CAAC,eAAe,EAAE,CACrE,CAAC;IAEJ,IAAI,CAAC,CAAC,wBAAwB,KAAK,SAAS;QAC1C,WAAW,CAAC,IAAI,CACd,gCAAgC,CAAC,CAAC,wBAAwB,EAAE,CAC7D,CAAC;IACJ,IAAI,CAAC,CAAC,oBAAoB,KAAK,SAAS;QACtC,WAAW,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC,oBAAoB,EAAE,CAAC,CAAC;IACxE,IAAI,CAAC,CAAC,oBAAoB,KAAK,SAAS;QACtC,WAAW,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC,oBAAoB,EAAE,CAAC,CAAC;IAEzE,MAAM,WAAW,GAAG,CAAC,CAAC,gBAAgB;QACpC,CAAC,CAAC,IAAI,CAAC,CAAC,gBAAgB,GAAG;QAC3B,CAAC,CAAC,IAAI,wBAAa,CAAC,QAAQ,GAAG,CAAC;IAElC,MAAM,OAAO,GAAG;QACd,gCAAgC;QAChC,0CAA0C;QAC1C,2BAA2B;QAC3B,0BAA0B;QAC1B,8DAA8D;QAC9D,wFAAwF;QACxF,sDAAsD;QACtD,0DAA0D;KAC3D,CAAC;IAEF,IACE,CAAC,CAAC,qBAAqB;QACvB,CAAC,CAAC,iBAAiB;QACnB,CAAC,CAAC,eAAe,EACjB,CAAC;QACD,OAAO,CAAC,IAAI,CACV,0DAA0D,CAC3D,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;QACd,OAAO,CAAC,IAAI,CAAC,qDAAqD,CAAC,CAAC;QACpE,OAAO,CAAC,IAAI,CAAC,sDAAsD,CAAC,CAAC;QACrE,OAAO,CAAC,IAAI,CACV,iEAAiE,CAClE,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAC;IACrE,CAAC;IAED,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC;;;;;;;;;;EAUnC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;;EAGtB,CAAC,CAAC,OAAO;QACP,CAAC,CAAC;;CAEL;QACG,CAAC,CAAC,EACN;;;;;;;;;;;;;;;;;;;;;wDAqBwD,WAAW;;;;;;;;;;;;;OAc7D,CAAC,CAAC,OAAO;QACP,CAAC,CAAC;;;;;;;;;;;;;;;;MAgBJ;QACE,CAAC,CAAC,EACN;EACF,CAAC;AACH,CAAC;AAED,SAAS,kBAAkB,CAAC,CAAgB;IAC1C,MAAM,WAAW,GAAa,EAAE,CAAC;IAEjC,IAAI,CAAC,CAAC,UAAU,KAAK,SAAS;QAC5B,WAAW,CAAC,IAAI,CACd,mDAAmD,CAAC,CAAC,UAAU,IAAI,CACpE,CAAC;IACJ,IAAI,CAAC,CAAC,SAAS,KAAK,SAAS;QAC3B,WAAW,CAAC,IAAI,CACd,kDAAkD,CAAC,CAAC,SAAS,IAAI,CAClE,CAAC;IACJ,IAAI,CAAC,CAAC,gBAAgB;QACpB,WAAW,CAAC,IAAI,CACd,oEAAoE,CACrE,CAAC;IACJ,IAAI,CAAC,CAAC,UAAU,KAAK,SAAS;QAC5B,WAAW,CAAC,IAAI,CACd,4DAA4D,CAAC,CAAC,UAAU,IAAI,CAC7E,CAAC;IACJ,IAAI,CAAC,CAAC,qBAAqB;QACzB,WAAW,CAAC,IAAI,CACd,uFAAuF,CAAC,CAAC,qBAAqB,IAAI,CACnH,CAAC;IACJ,IAAI,CAAC,CAAC,iBAAiB;QACrB,WAAW,CAAC,IAAI,CACd,kFAAkF,CAAC,CAAC,iBAAiB,IAAI,CAC1G,CAAC;IACJ,IAAI,CAAC,CAAC,eAAe;QACnB,WAAW,CAAC,IAAI,CACd,iFAAiF,CAAC,CAAC,eAAe,IAAI,CACvG,CAAC;IAEJ,MAAM,WAAW,GAAG,CAAC,CAAC,gBAAgB,IAAI,wBAAa,CAAC,QAAQ,CAAC;IAEjE,OAAO;;;;;;;;;;;EAWP,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,sOAAsO,CAAC,CAAC,CAAC,EAAE;;;;;;;;;EASvP,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;EACtB,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,4BAA4B,CAAC,CAAC,CAAC,EAAE;;;;;;;;;;;;;;;;;;;;;iEAqBkB,WAAW;;;;;;;;;;;;;;;;;;;;;OAsBtE,CAAC,CAAC,OAAO;QACP,CAAC,CAAC;;;;;;;;;;;;;;;;MAgBJ;QACE,CAAC,CAAC,EACN;EACF,CAAC;AACH,CAAC;AAwBD,SAAgB,qBAAqB,CAAC,OAA6B;IACjE,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,IAAI,QAAQ,CAAC;IAC1C,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC;IAE7B,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,cAAc;YACjB,OAAO,oBAAoB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAC7C,KAAK,QAAQ;YACX,OAAO,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QACvC,KAAK,cAAc,CAAC;QACpB,KAAK,eAAe,CAAC;QACrB,KAAK,cAAc;YACjB,OAAO,kBAAkB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAC3C,KAAK,iBAAiB;YACpB,OAAO,sBAAsB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAC/C,KAAK,UAAU;YACb,OAAO,eAAe,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QACxC,KAAK,UAAU;YACb,OAAO,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QACzC;YACE,OAAO,uBAAuB,IAAI,EAAE,CAAC;IACzC,CAAC;AACH,CAAC;AAED,SAAS,oBAAoB,CAAC,CAAuB,EAAE,IAAc;IACnE,MAAM,MAAM,GAAG,eAAe,CAAC,CAAC,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;IAC7D,MAAM,IAAI,GAAG,CAAC,CAAC,YAAY,IAAI,SAAS,CAAC;IAEzC,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;QACtB,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,IAAI,OAAO,GAAG;;eAEL,MAAM,IAAI,CAAC;YAEpB,IAAI,CAAC,CAAC,gBAAgB;gBACpB,OAAO,IAAI,4CAA4C,CAAC,CAAC,gBAAgB,GAAG,CAAC;YAC/E,IAAI,CAAC,CAAC,cAAc;gBAClB,OAAO,IAAI,wCAAwC,CAAC;YACtD,IAAI,CAAC,CAAC,iBAAiB,EAAE,cAAc;gBACrC,OAAO,IAAI,uBAAuB,CAAC,CAAC,iBAAiB,CAAC,cAAc,GAAG,CAAC;YAC1E,IAAI,CAAC,CAAC,iBAAiB,EAAE,SAAS;gBAChC,OAAO,IAAI,mBAAmB,CAAC,CAAC,iBAAiB,CAAC,SAAS,GAAG,CAAC;YACjE,IAAI,CAAC,CAAC,iBAAiB,EAAE,oBAAoB;gBAC3C,OAAO,IAAI,6BAA6B,CAAC,CAAC,iBAAiB,CAAC,oBAAoB,GAAG,CAAC;YACtF,IAAI,CAAC,CAAC,WAAW,KAAK,SAAS;gBAC7B,OAAO,IAAI,qBAAqB,CAAC,CAAC,WAAW,GAAG,CAAC;YAEnD,OAAO,IAAI,gCAAgC,CAAC;YAC5C,OAAO,OAAO,CAAC;QACjB,CAAC;QAED,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;YACrB,OAAO;oDACuC,MAAM;;;;;;;EAQxD,CAAC,CAAC,cAAc,KAAK,KAAK;gBACxB,CAAC,CAAC;;;;;;;;MAQA;gBACF,CAAC,CAAC,EACN;GACG,CAAC;QACA,CAAC;QAED,IAAI,IAAI,KAAK,YAAY,EAAE,CAAC;YAC1B,OAAO;oDACuC,MAAM;;;;;;;GAOvD,CAAC;QACA,CAAC;QAED,IAAI,IAAI,KAAK,aAAa,EAAE,CAAC;YAC3B,OAAO;oDACuC,MAAM;;;;;;;wBAOlC,CAAC;QACrB,CAAC;QAED,IAAI,IAAI,KAAK,aAAa,EAAE,CAAC;YAC3B,OAAO;;;;;;;;;EASX,CAAC;QACC,CAAC;IACH,CAAC;IAED,OAAO;IACP,OAAO;oDAC2C,MAAM;;;;;;;;IAQtD,CAAC;AACL,CAAC;AAED,SAAS,cAAc,CAAC,CAAuB,EAAE,IAAc;IAC7D,MAAM,MAAM,GAAG,eAAe,CAAC,CAAC,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IAEvD,MAAM,GAAG,GAAG;;;;4CAI8B,CAAC;IAE3C,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;QACtB,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;YAClB,OAAO,GAAG,GAAG;;;4CAGyB,MAAM,UAAU,CAAC;QACzD,CAAC;QAED,IAAI,IAAI,GAAG,GAAG,GAAG;;;iCAGY,MAAM,IAAI,CAAC;QAExC,IAAI,CAAC,CAAC,cAAc,KAAK,KAAK,EAAE,CAAC;YAC/B,IAAI,IAAI;;;iCAGmB,MAAM;;;;;;;GAOpC,CAAC;QACA,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,GAAG,GAAG;;;iCAGkB,MAAM,KAAK,CAAC;AAC7C,CAAC;AAED,SAAS,kBAAkB,CAAC,CAAuB,EAAE,IAAc;IACjE,MAAM,MAAM,GAAG,eAAe,CAAC,CAAC,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IACvD,MAAM,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;IAC9C,MAAM,SAAS,GACb,IAAI,KAAK,OAAO;QACd,CAAC,CAAC,mBAAmB;QACrB,CAAC,CAAC,IAAI,KAAK,QAAQ;YACjB,CAAC,CAAC,oBAAoB;YACtB,CAAC,CAAC,aAAa,CAAC;IAEtB,MAAM,GAAG,GAAG;kCACoB,SAAS;uBACpB,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;;4CAEjC,CAAC;IAE3C,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;QACtB,MAAM,SAAS,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9D,OAAO,GAAG,GAAG;;iBAEA,IAAI;EACnB,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,8BAA8B,MAAM,IAAI,SAAS,GAAG,CAAC;IAC3G,CAAC;IAED,OAAO,GAAG,GAAG;;iBAEE,IAAI;EACnB,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,8BAA8B,MAAM,KAAK,CAAC;AAClG,CAAC;AAED,SAAS,sBAAsB,CAC7B,CAAuB,EACvB,IAAc;IAEd,MAAM,MAAM,GAAG,eAAe,CAAC,CAAC,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IACvD,MAAM,QAAQ,GAAG,CAAC,CAAC,QAAQ,IAAI,WAAW,CAAC;IAE3C,MAAM,GAAG,GAAG;;;;;sBAKQ,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAEjD,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;QACtB,IAAI,IAAI,GAAG,GAAG,GAAG;;;kDAG6B,QAAQ;6CACb,MAAM,IAAI,CAAC;QAEpD,IAAI,CAAC,CAAC,cAAc,KAAK,KAAK,EAAE,CAAC;YAC/B,IAAI,IAAI;;;6CAG+B,MAAM;;;GAGhD,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC;QACxE,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,GAAG,GAAG;;;kDAGmC,QAAQ;6CACb,MAAM,KAAK,CAAC;AACzD,CAAC;AAED,SAAS,eAAe,CAAC,CAAuB,EAAE,IAAc;IAC9D,MAAM,MAAM,GAAG,eAAe,CAAC,CAAC,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;IAEzD,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;QACtB,IAAI,IAAI,GAAG;;;;;;iDAMkC,MAAM,IAAI,CAAC;QAExD,IAAI,CAAC,CAAC,kBAAkB,EAAE,MAAM,EAAE,CAAC;YACjC,KAAK,MAAM,QAAQ,IAAI,CAAC,CAAC,kBAAkB,EAAE,CAAC;gBAC5C,IAAI,IAAI,uDAAuD,QAAQ,eAAe,CAAC;YACzF,CAAC;QACH,CAAC;QAED,IAAI,IAAI;;EAEV,CAAC;QAEC,IAAI,IAAI;;;;;;;;;;;;;gCAaoB,CAAC;QAE7B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO;;;;;;;qDAO4C,MAAM;;EAEzD,CAAC;AACH,CAAC;AAED,SAAS,gBAAgB,CAAC,CAAuB,EAAE,IAAc;IAC/D,MAAM,MAAM,GAAG,eAAe,CAAC,CAAC,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;IAEzD,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;QACtB,IAAI,IAAI,GAAG;yCAC0B,MAAM;;;;;;;;;;UAUrC,CAAC;QAEP,IAAI,CAAC,CAAC,cAAc,KAAK,KAAK,EAAE,CAAC;YAC/B,IAAI,IAAI;;;;;;;;;UASJ,CAAC;QACP,CAAC;QAED,IAAI,IAAI;MACN,CAAC;QAEH,IAAI,CAAC,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;YAChC,IAAI,IAAI,kBAAkB,CAAC,CAAC,WAAW,EAAE,CAAC;QAC5C,CAAC;QAED,IAAI,IAAI;;;;;;;;;;GAUT,CAAC;QAEA,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO;kDACyC,MAAM;;;;;;;;;;;;;;EActD,CAAC;AACH,CAAC;AAeD,SAAgB,mBAAmB,CAAC,OAAuB;IACzD,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,IAAI,QAAQ,CAAC;IAC1C,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;IAElC,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;QACtB,OAAO,mBAAmB,CAAC,OAAO,CAAC,CAAC;IACtC,CAAC;IAED,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,OAAO;YACV,OAAO,oBAAoB,CAAC,OAAO,CAAC,CAAC;QACvC,KAAK,UAAU;YACb,OAAO,uBAAuB,EAAE,CAAC;QACnC,KAAK,WAAW;YACd,OAAO,wBAAwB,EAAE,CAAC;QACpC,KAAK,QAAQ;YACX,OAAO,qBAAqB,EAAE,CAAC;QACjC,KAAK,YAAY;YACf,OAAO,yBAAyB,EAAE,CAAC;QACrC,KAAK,yBAAyB;YAC5B,OAAO,+BAA+B,EAAE,CAAC;QAC3C,KAAK,cAAc;YACjB,OAAO,0BAA0B,EAAE,CAAC;QACtC,KAAK,qBAAqB;YACxB,OAAO,iCAAiC,EAAE,CAAC;QAC7C,KAAK,UAAU;YACb,OAAO;gBACL,oBAAoB,CAAC,OAAO,CAAC;gBAC7B,uBAAuB,EAAE;gBACzB,qBAAqB,EAAE;gBACvB,yBAAyB,EAAE;gBAC3B,+BAA+B,EAAE;gBACjC,0BAA0B,EAAE;aAC7B,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC3B;YACE,OAAO,gCAAgC,QAAQ,EAAE,CAAC;IACtD,CAAC;AACH,CAAC;AAED,SAAS,oBAAoB,CAAC,CAAiB;IAC7C,MAAM,QAAQ,GAAG,CAAC,CAAC,QAAQ,IAAI;QAC7B,EAAE,UAAU,EAAE,YAAY,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,YAAY,EAAE;QACtE;YACE,UAAU,EAAE,iBAAiB;YAC7B,IAAI,EAAE,cAAc;YACpB,WAAW,EAAE,YAAY;SAC1B;KACF,CAAC;IAEF,MAAM,YAAY,GAAG,QAAQ;SAC1B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACT,IAAI,CAAC,CAAC,IAAI,KAAK,cAAc,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;YAC/C,OAAO,qBAAqB,CAAC,CAAC,UAAU,OAAO,CAAC,CAAC,WAAW,2BAA2B,CAAC;QAC1F,CAAC;QACD,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;YACf,OAAO,qBAAqB,CAAC,CAAC,UAAU,0CAA0C,CAAC,CAAC,QAAQ,GAAG,CAAC;QAClG,CAAC;QACD,OAAO,qBAAqB,CAAC,CAAC,UAAU,eAAe,CAAC,CAAC,IAAI,GAAG,CAAC;IACnE,CAAC,CAAC;SACD,IAAI,CAAC,KAAK,CAAC,CAAC;IAEf,OAAO;;;;;;;;;;EAUP,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BX,CAAC;AACJ,CAAC;AAED,SAAS,uBAAuB;IAC9B,OAAO;;;;;;;;;;;;;;;;;;;;;;;GAuBN,CAAC;AACJ,CAAC;AAED,SAAS,wBAAwB;IAC/B,OAAO;;;;;;;;;;;;;;;;;;;EAmBP,CAAC;AACH,CAAC;AAED,SAAS,qBAAqB;IAC5B,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yEAoDgE,CAAC;AAC1E,CAAC;AAED,SAAS,0BAA0B;IACjC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgCP,CAAC;AACH,CAAC;AAED,SAAS,yBAAyB;IAChC,OAAO;;;;;;;;;;;GAWN,CAAC;AACJ,CAAC;AAED,SAAS,+BAA+B;IACtC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAqCP,CAAC;AACH,CAAC;AAED,SAAS,iCAAiC;IACxC,OAAO;;;;;;;;;;;;;;;;;;;;;;EAsBP,CAAC;AACH,CAAC;AAED,SAAS,mBAAmB,CAAC,CAAiB;IAC5C,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2DP,CAAC;AACH,CAAC;AAaD,SAAgB,mBAAmB,CAAC,OAAuB;IACzD,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;IAEpC,QAAQ,SAAS,EAAE,CAAC;QAClB,KAAK,QAAQ;YACX,OAAO,qBAAqB,CAAC,OAAO,CAAC,CAAC;QACxC,KAAK,iBAAiB;YACpB,OAAO,6BAA6B,CAAC,OAAO,CAAC,CAAC;QAChD,KAAK,cAAc,CAAC;QACpB,KAAK,eAAe,CAAC;QACrB,KAAK,cAAc;YACjB,OAAO,yBAAyB,CAAC,OAAO,CAAC,CAAC;QAC5C,KAAK,cAAc;YACjB,OAAO,2BAA2B,CAAC,OAAO,CAAC,CAAC;QAC9C,KAAK,oBAAoB;YACvB,OAAO,gCAAgC,CAAC,OAAO,CAAC,CAAC;QACnD,KAAK,gBAAgB;YACnB,OAAO,0BAA0B,CAAC,OAAO,CAAC,CAAC;QAC7C,KAAK,eAAe;YAClB,OAAO,2BAA2B,CAAC,OAAO,CAAC,CAAC;QAC9C,KAAK,iBAAiB;YACpB,OAAO,6BAA6B,CAAC,OAAO,CAAC,CAAC;QAChD;YACE,OAAO,iCAAiC,SAAS,EAAE,CAAC;IACxD,CAAC;AACH,CAAC;AAED,SAAS,qBAAqB,CAAC,CAAiB;IAC9C,MAAM,MAAM,GAAG,eAAe,CAAC,CAAC,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IACvD,OAAO;;kCAEyB,MAAM;EACtC,CAAC;AACH,CAAC;AAED,SAAS,6BAA6B,CAAC,CAAiB;IACtD,MAAM,MAAM,GAAG,eAAe,CAAC,CAAC,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IACvD,MAAM,QAAQ,GAAG,CAAC,CAAC,QAAQ,IAAI,WAAW,CAAC;IAC3C,MAAM,QAAQ,GAAG,CAAC,CAAC,gBAAgB;QACjC,CAAC,CAAC,kDAAkD,CAAC,CAAC,gBAAgB,EAAE;QACxE,CAAC,CAAC,EAAE,CAAC;IAEP,OAAO;;;sBAGa,MAAM;sCACU,QAAQ,GAAG,QAAQ;;EAEvD,CAAC;AACH,CAAC;AAED,SAAS,yBAAyB,CAAC,CAAiB;IAClD,MAAM,MAAM,GAAG,eAAe,CAAC,CAAC,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IACvD,MAAM,IAAI,GAAG,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;IAChD,MAAM,UAAU,GACd,IAAI,KAAK,OAAO;QACd,CAAC,CAAC,0BAA0B;QAC5B,CAAC,CAAC,IAAI,KAAK,QAAQ;YACjB,CAAC,CAAC,2BAA2B;YAC7B,CAAC,CAAC,oBAAoB,CAAC;IAC7B,MAAM,QAAQ,GAAG,CAAC,CAAC,gBAAgB;QACjC,CAAC,CAAC,kDAAkD,CAAC,CAAC,gBAAgB,EAAE;QACxE,CAAC,CAAC,EAAE,CAAC;IAEP,OAAO;;MAEH,UAAU;sBACM,MAAM,IAAI,QAAQ;;EAEtC,CAAC;AACH,CAAC;AAED,SAAS,2BAA2B,CAAC,CAAiB;IACpD,MAAM,MAAM,GAAG,eAAe,CAAC,CAAC,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;IAE7D,OAAO;;;sBAGa,MAAM;;;;;;;EAO1B,CAAC;AACH,CAAC;AAED,SAAS,gCAAgC,CAAC,CAAiB;IACzD,MAAM,MAAM,GAAG,eAAe,CAAC,CAAC,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;IAC7D,MAAM,IAAI,GAAG,CAAC,CAAC,SAAS,IAAI,OAAO,CAAC;IAEpC,OAAO;;;sBAGa,MAAM;;;;;;8CAMkB,IAAI;;;;;;;;;;;EAWhD,CAAC;AACH,CAAC;AAED,SAAS,0BAA0B,CAAC,CAAiB;IACnD,MAAM,MAAM,GAAG,eAAe,CAAC,CAAC,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IAEvD,OAAO;;;;;0BAKiB,MAAM;;;;EAI9B,CAAC;AACH,CAAC;AAED,SAAS,2BAA2B,CAAC,CAAiB;IACpD,MAAM,MAAM,GAAG,eAAe,CAAC,CAAC,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IAEvD,OAAO;;;;sBAIa,MAAM;;;;;;sBAMN,MAAM;;;;EAI1B,CAAC;AACH,CAAC;AAED,SAAS,6BAA6B,CAAC,CAAiB;IACtD,MAAM,UAAU,GAAG,eAAe,CAAC,CAAC,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IAC3D,MAAM,UAAU,GAAG,eAAe,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IACxD,MAAM,gBAAgB,GAAG,eAAe,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;IAEpE,OAAO;;;qCAG4B,UAAU;;;sBAGzB,gBAAgB;;;;;;sCAMA,UAAU;;;;;;;;;;;;sCAYV,UAAU;;;;;;;;;;;;;;;;EAgB9C,CAAC;AACH,CAAC"}
|