1
0
mirror of git://f0xx.org/android_cast synced 2026-07-29 06:18:42 +03:00
This commit is contained in:
Anton Afanasyeu
2026-06-02 15:24:11 +02:00
parent 9f9d617730
commit 5e940690e9
35 changed files with 896 additions and 41 deletions

View File

@@ -11,8 +11,15 @@
})();
</script>
<link rel="stylesheet" href="/app/androidcast_project/crashes/assets/css/app.css">
<link rel="stylesheet" href="hub.css?v=20260601earth3d">
<link rel="stylesheet" href="hub-logo-layers.css?v=20260601earth3d">
<link rel="stylesheet" href="hub.css?v=20260532globe">
<link rel="stylesheet" href="hub-logo-layers.css?v=20260532globe">
<script type="importmap">
{
"imports": {
"three": "https://cdn.jsdelivr.net/npm/three@0.170.0/build/three.module.js"
}
}
</script>
<script src="assets/analytics.config.js"></script>
<script src="/app/androidcast_project/crashes/assets/js/analytics.js" defer></script>
</head>
@@ -94,6 +101,12 @@
</span>
<span class="hub-card-label">AndroidCast crashes</span>
</a>
<a class="hub-card card card--lift" href="graphs/">
<span class="hub-card-icon" aria-hidden="true">
<span class="nav-icon nav-icon--graphs"></span>
</span>
<span class="hub-card-label">AndroidCast graphs</span>
</a>
<a class="hub-card card card--lift" href="build/">
<span class="hub-card-icon" aria-hidden="true">
<span class="nav-icon nav-icon--builder"></span>
@@ -158,7 +171,7 @@
var supportsLayout = !!(window.CSS && CSS.supports && CSS.supports('object-fit', 'cover'));
var logoEnabled = !!(stage && supportsSvg && supportsLayout);
var logoBuild = '20260601earth3d';
var logoBuild = '20260532globe';
function hubAsset(rel) {
var link = document.querySelector('link[href*="hub.css"]');
@@ -225,11 +238,11 @@
}
var useGlobe3d = logoEnabled && (params.get('globe3d') || '1') !== '0';
var globe3dSkip = { globe: true, continents: true, gridOverlay: true };
var globe3dLayers = { globe: true, continents: true, gridOverlay: true };
function appendLogoLayers() {
function appendStaticLayers() {
list.forEach(function (name) {
if (useGlobe3d && globe3dSkip[name]) return;
if (useGlobe3d && globe3dLayers[name]) return;
var img = document.createElement('img');
img.className = 'hub-logo-layer hub-logo-layer--' + name;
img.src = fragmentSrc(name);
@@ -247,7 +260,7 @@
}
if (logoEnabled) {
appendLogoLayers();
appendStaticLayers();
var logoOpacity = params.get('logoOpacity');
if (logoOpacity) {
@@ -259,12 +272,35 @@
if (useGlobe3d) {
var reducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches;
var globeYawDeg = parseFloat(params.get('globeYawDeg'));
var globeOpts = {
build: logoBuild,
reducedMotion: reducedMotion
};
if (isFinite(globeYawDeg)) {
globeOpts.initialRotationY = globeYawDeg * Math.PI / 180;
}
var globeModuleUrl = new URL('assets/hub-globe.js', window.location.href);
globeModuleUrl.searchParams.set('v', logoBuild);
import(globeModuleUrl.href).then(function (mod) {
return mod.mountHubGlobe(stage, { build: logoBuild, reducedMotion: reducedMotion });
return mod.mountHubGlobe(stage, globeOpts);
}).then(function (handle) {
if (handle) {
stage.dataset.globe3d = 'active';
}
if (!handle) {
['globe', 'continents', 'gridOverlay'].forEach(function (name) {
if (list.indexOf(name) === -1) return;
var img = document.createElement('img');
img.className = 'hub-logo-layer hub-logo-layer--' + name;
img.src = fragmentSrc(name);
img.alt = '';
img.decoding = 'async';
stage.appendChild(img);
});
}
}).catch(function (err) {
console.warn('HubGlobe: falling back to static layers', err);
console.warn('HubGlobe 3D unavailable, using flat layers', err);
['globe', 'continents', 'gridOverlay'].forEach(function (name) {
if (list.indexOf(name) === -1) return;
var img = document.createElement('img');