From 8f6d643936743051d618c86144f7946ca8899e4e Mon Sep 17 00:00:00 2001 From: Danny Date: Mon, 26 Oct 2026 13:42:49 -0700 Subject: [PATCH] Galaxy: Send Android users to the beta group instead of the APK download --- .../galaxy/tests/test_companion_update.mjs | 2 +- .../galaxy/tests/test_home_polish.mjs | 2 +- .../galaxy/tests/test_install_app.mjs | 15 ++++++--------- .../galaxy/tests/test_local_access.mjs | 2 +- openpilot/starpilot/galaxy/web/js/companion.js | 6 ++---- openpilot/starpilot/galaxy/web/js/galaxy.js | 4 ++-- .../starpilot/galaxy/web/js/install-app.js | 18 +++++++----------- 7 files changed, 20 insertions(+), 29 deletions(-) diff --git a/openpilot/starpilot/galaxy/tests/test_companion_update.mjs b/openpilot/starpilot/galaxy/tests/test_companion_update.mjs index 4bd1dc3947..8bbdf33062 100644 --- a/openpilot/starpilot/galaxy/tests/test_companion_update.mjs +++ b/openpilot/starpilot/galaxy/tests/test_companion_update.mjs @@ -57,7 +57,7 @@ try { const notice = banner(host) assert.ok(notice, 'A native app without an internet-sharing lease still gets an update notice') assert.match(text(notice), /Version 1.1.5 is available.*Installed: 1.1.4/s) - assert.ok(all(notice).some(item => item.type === 'a' && item.props.href === './app.apk' && text(item).includes('Update app'))) + assert.ok(all(notice).some(item => item.type === 'a' && item.props.href === 'https://groups.google.com/g/galaxy-starpilot-android-beta' && text(item).includes('Update app'))) assert.ok(all(host).some(item => item.type === 'div' && item.props.class === 'install-state' && text(item).includes('true')), 'The main install action is told to render as an update') const root = host.children.find(item => item.type === 'div') diff --git a/openpilot/starpilot/galaxy/tests/test_home_polish.mjs b/openpilot/starpilot/galaxy/tests/test_home_polish.mjs index c1923108af..f6a840364f 100644 --- a/openpilot/starpilot/galaxy/tests/test_home_polish.mjs +++ b/openpilot/starpilot/galaxy/tests/test_home_polish.mjs @@ -13,7 +13,7 @@ assert.ok(Home.template.includes('aria-hidden="true">Galaxy Access & Install')) assert.ok(!GalaxyPage.template.includes('Galaxy & App Install')) assert.ok(GalaxyPage.template.includes('Your remote link needs Internet and an active tunnel.')) -assert.ok(GalaxyPage.template.includes('Download Android APK')) +assert.ok(GalaxyPage.template.includes('join the Android beta on Google Groups')) assert.ok(GalaxyPage.template.includes('Android offline app version:')) assert.ok(GalaxyPage.template.includes(' { apk = value } } @@ -57,15 +57,12 @@ assert.equal(apk, undefined, 'Native updates never hand the APK to a browser') delete window.StarPilotApp const android = { ...InstallApp.data() } InstallApp.methods.installAndroid.call(android) -assert.equal(apk, './app.apk') +assert.equal(apk, ANDROID_BETA_URL) assert.match(InstallApp.template, /Install web app/) -assert.match(InstallApp.template, /Direct \(advanced\) · Download APK/) +assert.match(InstallApp.template, /Join the Android beta/) +assert.doesNotMatch(InstallApp.template, /app\.apk|Download Android APK/) assert.match(InstallApp.template, /Update offline app \(Android\)/) assert.match(InstallApp.template, /android && !ios/) -location.protocol = 'https:' -InstallApp.methods.installAndroid.call(android) -assert.equal(android.help, true) -assert.match(android.message, /Android app.*locally|locally.*Android app/i) // Choosing the web app on Android always keeps web-install guidance. const webHelp = InstallApp.methods.installHelp.call(android) diff --git a/openpilot/starpilot/galaxy/tests/test_local_access.mjs b/openpilot/starpilot/galaxy/tests/test_local_access.mjs index a480b14aaf..258a825278 100644 --- a/openpilot/starpilot/galaxy/tests/test_local_access.mjs +++ b/openpilot/starpilot/galaxy/tests/test_local_access.mjs @@ -66,6 +66,6 @@ console.log('Local access: actual Vue component/setup, bounded automatically syn assert.equal(GalaxyPage.components.LocalAccess, LocalAccess) const installStep = GalaxyPage.template.slice(GalaxyPage.template.indexOf('

Install Galaxy

'), GalaxyPage.template.indexOf('', GalaxyPage.template.indexOf('

Install Galaxy

'))) assert.ok(installStep.includes('')) -assert.ok(installStep.indexOf('Download Android APK') < installStep.indexOf(' value.replaceAll('&', '&') }) console.log('Galaxy APK installation exposes authenticated local links with current mode and session handling') diff --git a/openpilot/starpilot/galaxy/web/js/companion.js b/openpilot/starpilot/galaxy/web/js/companion.js index 2416706509..e1a459d1bd 100644 --- a/openpilot/starpilot/galaxy/web/js/companion.js +++ b/openpilot/starpilot/galaxy/web/js/companion.js @@ -87,10 +87,8 @@ export const GalaxyCompanion = {

Phone internet requires the Galaxy hotspot. Settings and small requests remain available.

Share your phone’s mobile data over Galaxy Wi-Fi. Navigation and online services use your mobile plan. Log uploads, software updates and offline map downloads are blocked.

-