Skip to content

Commit c237e1f

Browse files
author
Ajit Kumar
committed
chore: remove comments from generated files
1 parent eef67bc commit c237e1f

1 file changed

Lines changed: 72 additions & 64 deletions

File tree

hooks/immersive-fullscreen.js

Lines changed: 72 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@ module.exports = function prepareImmersiveFullscreen(context) {
1919
const original = fs.readFileSync(webViewPath, "utf8");
2020
const newline = original.includes("\r\n") ? "\r\n" : "\n";
2121

22-
// Rebuild our blocks on every prepare, including when only the controller
23-
// changes. No stale version flag and no duplicate fields or lifecycle calls.
22+
// Markers delimit our generated blocks so each prepare can replace them safely,
23+
// including when only the controller changes.
2424
let source = original
2525
.replace(/\r\n/g, "\n")
2626
.replace(
@@ -33,7 +33,7 @@ module.exports = function prepareImmersiveFullscreen(context) {
3333
);
3434
}
3535

36-
function insert(name, anchor, lines, before = false) {
36+
function insert(name, anchor, code, before = false) {
3737
const matches = [...source.matchAll(new RegExp(anchor.source, "gm"))];
3838
if (matches.length !== 1) {
3939
throw new Error(
@@ -43,7 +43,7 @@ module.exports = function prepareImmersiveFullscreen(context) {
4343
const indent = matches[0][1];
4444
const block = [
4545
`// ACODE_FULLSCREEN_BEGIN ${name}`,
46-
...lines,
46+
...code.trim().split("\n"),
4747
`// ACODE_FULLSCREEN_END ${name}`,
4848
]
4949
.map((line) => indent + line)
@@ -53,94 +53,102 @@ module.exports = function prepareImmersiveFullscreen(context) {
5353
);
5454
}
5555

56-
insert("field", /^([ \t]*)private View mCustomView;[ \t]*$/m, [
57-
"private ImmersiveFullscreen immersiveFullscreen;",
58-
"private boolean fullscreenPaused;",
59-
"private boolean fullscreenBackHandlerEnabled;",
60-
"",
61-
"public void setFullscreenBackHandler(boolean enabled) {",
62-
" if (enabled && (mCustomView == null || !mCustomView.isAttachedToWindow() || fullscreenPaused)) {",
63-
' throw new IllegalStateException("Back handler requires foreground fullscreen.");',
64-
" }",
65-
" fullscreenBackHandlerEnabled = enabled;",
66-
"}",
67-
"",
68-
"// Called on the UI thread by Acode's System plugin. null releases the override.",
69-
"public void setFullscreenOrientation(String orientation) {",
70-
" if (orientation == null) {",
71-
" if (immersiveFullscreen != null) immersiveFullscreen.unlockOrientation();",
72-
" return;",
73-
" }",
74-
" if (immersiveFullscreen == null) {",
75-
' throw new IllegalStateException("Orientation requires foreground fullscreen.");',
76-
" }",
77-
" immersiveFullscreen.lockOrientation(orientation);",
78-
"}",
79-
]);
56+
// System calls these setters on the UI thread; null releases the orientation override.
57+
insert(
58+
"field",
59+
/^([ \t]*)private View mCustomView;[ \t]*$/m,
60+
`
61+
private ImmersiveFullscreen immersiveFullscreen;
62+
private boolean fullscreenPaused;
63+
private boolean fullscreenBackHandlerEnabled;
64+
65+
public void setFullscreenBackHandler(boolean enabled) {
66+
if (enabled && (mCustomView == null || !mCustomView.isAttachedToWindow() || fullscreenPaused)) {
67+
throw new IllegalStateException("Back handler requires foreground fullscreen.");
68+
}
69+
fullscreenBackHandlerEnabled = enabled;
70+
}
71+
72+
public void setFullscreenOrientation(String orientation) {
73+
if (orientation == null) {
74+
if (immersiveFullscreen != null) immersiveFullscreen.unlockOrientation();
75+
return;
76+
}
77+
if (immersiveFullscreen == null) {
78+
throw new IllegalStateException("Orientation requires foreground fullscreen.");
79+
}
80+
immersiveFullscreen.lockOrientation(orientation);
81+
}
82+
`,
83+
);
84+
// CoreAndroid's message channel accepts only Cordova's built-in events.
8085
insert(
8186
"back",
8287
/(?<=if \(isBackButton && mCustomView != null\) \{\n)^([ \t]*)hideCustomView\(\);\n[ \t]*return true;[ \t]*$/m,
83-
[
84-
"if (fullscreenBackHandlerEnabled) {",
85-
// CoreAndroid's message channel accepts only Cordova's built-in events.
86-
` engine.evaluateJavascript("cordova.fireDocumentEvent('fullscreenbackbutton');", null);`,
87-
" return true;",
88-
"}",
89-
],
88+
`
89+
if (fullscreenBackHandlerEnabled) {
90+
engine.evaluateJavascript("cordova.fireDocumentEvent('fullscreenbackbutton');", null);
91+
return true;
92+
}
93+
`,
9094
true,
9195
);
92-
insert("enter", /^([ \t]*)parent\.bringToFront\(\);[ \t]*$/m, [
93-
"fullscreenBackHandlerEnabled = false;",
94-
"immersiveFullscreen = new ImmersiveFullscreen(cordova.getActivity(), !fullscreenPaused, () -> fullscreenBackHandlerEnabled = false);",
95-
"immersiveFullscreen.enter(wrapperView);",
96-
]);
96+
insert(
97+
"enter",
98+
/^([ \t]*)parent\.bringToFront\(\);[ \t]*$/m,
99+
`
100+
fullscreenBackHandlerEnabled = false;
101+
immersiveFullscreen = new ImmersiveFullscreen(cordova.getActivity(), !fullscreenPaused, () -> fullscreenBackHandlerEnabled = false);
102+
immersiveFullscreen.enter(wrapperView);
103+
`,
104+
);
97105
insert(
98106
"exit",
99107
/^([ \t]*)mCustomView\.setVisibility\(View\.GONE\);[ \t]*$/m,
100-
[
101-
"fullscreenBackHandlerEnabled = false;",
102-
"if (immersiveFullscreen != null) {",
103-
" immersiveFullscreen.exit();",
104-
" immersiveFullscreen = null;",
105-
"}",
106-
],
108+
`
109+
fullscreenBackHandlerEnabled = false;
110+
if (immersiveFullscreen != null) {
111+
immersiveFullscreen.exit();
112+
immersiveFullscreen = null;
113+
}
114+
`,
107115
true,
108116
);
109117
insert(
110118
"pause",
111119
/^([ \t]*)pluginManager\.onPause\(keepRunning\);[ \t]*$/m,
112-
[
113-
"fullscreenPaused = true;",
114-
"if (immersiveFullscreen != null) immersiveFullscreen.pause();",
115-
],
120+
`
121+
fullscreenPaused = true;
122+
if (immersiveFullscreen != null) immersiveFullscreen.pause();
123+
`,
116124
true,
117125
);
118126
insert(
119127
"resume",
120128
/^([ \t]*)this\.pluginManager\.onResume\(keepRunning\);[ \t]*$/m,
121-
[
122-
"fullscreenPaused = false;",
123-
"if (immersiveFullscreen != null) immersiveFullscreen.resume();",
124-
],
129+
`
130+
fullscreenPaused = false;
131+
if (immersiveFullscreen != null) immersiveFullscreen.resume();
132+
`,
125133
true,
126134
);
127135
insert(
128136
"reset",
129137
/^([ \t]*)pluginManager\.onReset\(\);[ \t]*$/m,
130-
[
131-
"fullscreenBackHandlerEnabled = false;",
132-
"if (immersiveFullscreen != null) immersiveFullscreen.unlockOrientation();",
133-
],
138+
`
139+
fullscreenBackHandlerEnabled = false;
140+
if (immersiveFullscreen != null) immersiveFullscreen.unlockOrientation();
141+
`,
134142
true,
135143
);
144+
// Release fullscreen while the WebView and its callback are still alive.
136145
insert(
137146
"destroy",
138147
/^([ \t]*)engine\.destroy\(\);[ \t]*$/m,
139-
[
140-
"// Release fullscreen while the WebView and its callback are still alive.",
141-
"fullscreenBackHandlerEnabled = false;",
142-
"hideCustomView();",
143-
],
148+
`
149+
fullscreenBackHandlerEnabled = false;
150+
hideCustomView();
151+
`,
144152
true,
145153
);
146154

0 commit comments

Comments
 (0)