Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
3c64169
feat: expose runtime web override configuration
pschildgen87-code Sep 18, 2026
b55b3d3
feat: compile custom request headers into runtime
pschildgen87-code Sep 18, 2026
d18ecef
perf: make asset store opt-in and defer page warmup
pschildgen87-code Sep 18, 2026
72e80b1
feat: forward configured headers to native downloads
pschildgen87-code Sep 18, 2026
bf8a6a4
feat: reuse runtime headers for native downloads
pschildgen87-code Sep 18, 2026
88d12a0
test: cover custom runtime request headers
pschildgen87-code Sep 18, 2026
ef806aa
fix: correct custom header name validation pattern
pschildgen87-code Sep 18, 2026
9cf1d4a
test: provide org.json implementation for local unit tests
pschildgen87-code Sep 18, 2026
cd6ec1f
feat: add startup asset sync configuration
pschildgen87-code Sep 18, 2026
66e88ab
feat: add manifest driven startup asset downloader
pschildgen87-code Sep 18, 2026
965209c
feat: start manifest asset sync with WebView runtime
pschildgen87-code Sep 18, 2026
7854198
test: cover startup asset root normalization
pschildgen87-code Sep 18, 2026
f34adeb
ci: use runner Android SDK instead of broken setup action
pschildgen87-code Sep 18, 2026
3278079
ci: use runner Android SDK instead of broken setup action
pschildgen87-code Sep 18, 2026
488bc04
ci: migrate Android SDK setup to v4 without legacy tools package
pschildgen87-code Sep 18, 2026
4585845
ci: migrate Android SDK setup to v4 without legacy tools package
pschildgen87-code Sep 18, 2026
572d1e8
feat: add stable AndroidX WebKit custom header support
pschildgen87-code Sep 18, 2026
0520a46
feat: apply headers to supported WebView profile requests
pschildgen87-code Sep 18, 2026
e2a3cc7
feat: install request headers before first WebView navigation
pschildgen87-code Sep 18, 2026
77050bc
test: cover WebView custom header origin rules
pschildgen87-code Sep 18, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion .github/workflows/android-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,11 @@ jobs:
with:
gradle-version: '9.6.0'


- name: Set up Android SDK
uses: android-actions/setup-android@v3
uses: android-actions/setup-android@v4
with:
packages: ''

- name: Install Android 16 SDK
run: |
Expand Down
5 changes: 4 additions & 1 deletion .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -44,8 +44,11 @@ jobs:
with:
gradle-version: '9.6.0'


- name: Set up Android SDK
uses: android-actions/setup-android@v3
uses: android-actions/setup-android@v4
with:
packages: ''

- name: Install Android 16 SDK
shell: bash
Expand Down
2 changes: 2 additions & 0 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -37,5 +37,7 @@ android {
}

dependencies {
implementation 'androidx.webkit:webkit:1.15.0'
testImplementation 'junit:junit:4.13.2'
testImplementation 'org.json:json:20240303'
}
4 changes: 3 additions & 1 deletion app/src/main/java/de/starlightunit/wrapper/MainActivity.java
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@
import de.starlightunit.wrapper.web.GameWebChromeClient;
import de.starlightunit.wrapper.web.GameWebViewClient;
import de.starlightunit.wrapper.web.WebViewConfigurator;
import de.starlightunit.wrapper.web.WebViewProfileHeaders;
import de.starlightunit.wrapper.web.WrapperRequestHeaders;

public final class MainActivity extends Activity
Expand Down Expand Up @@ -74,6 +75,7 @@ protected void onCreate(Bundle savedInstanceState) {

navigationPolicy = new NavigationPolicy(AppConfig.TRUSTED_DOMAIN);
requestHeaders = WrapperRequestHeaders.create();
WebViewProfileHeaders.install(webView, AppConfig.START_URL, requestHeaders);
nativeMediaPlayer = new QuantumNativeMediaPlayer(this);
webView.addJavascriptInterface(
new QuantumNativeMediaBridge(webView, navigationPolicy, nativeMediaPlayer),
Expand All @@ -83,7 +85,7 @@ protected void onCreate(Bundle savedInstanceState) {
webView.setWebViewClient(webViewClient);
chromeClient = new GameWebChromeClient(fullscreenContainer, this, this);
webView.setWebChromeClient(chromeClient);
webView.setDownloadListener(new AppDownloadListener(this));
webView.setDownloadListener(new AppDownloadListener(this, requestHeaders));

retryButton.setOnClickListener(v -> {
errorPanel.setVisibility(View.GONE);
Expand Down
Loading
Loading