Compare commits

..

1 Commits

Author SHA1 Message Date
Aveline 0513328620
Merge 0cc84f0c54 into 31ea366e51 2025-11-10 14:53:22 +01:00
4 changed files with 17 additions and 11 deletions

15
ota.go
View File

@ -135,9 +135,9 @@ func rpcGetLocalVersion() (*ota.LocalMetadata, error) {
} }
type updateParams struct { type updateParams struct {
AppTargetVersion string `json:"appTargetVersion"` AppTargetVersion string `json:"appTargetVersion"`
SystemTargetVersion string `json:"systemTargetVersion"` SystemTargetVersion string `json:"systemTargetVersion"`
Components []string `json:"components,omitempty"` Components string `json:"components,omitempty"` // components is a comma-separated list of components to update
} }
func rpcTryUpdate() error { func rpcTryUpdate() error {
@ -154,7 +154,9 @@ func rpcCheckUpdateComponents(params updateParams, includePreRelease bool) (*ota
IncludePreRelease: includePreRelease, IncludePreRelease: includePreRelease,
AppTargetVersion: params.AppTargetVersion, AppTargetVersion: params.AppTargetVersion,
SystemTargetVersion: params.SystemTargetVersion, SystemTargetVersion: params.SystemTargetVersion,
Components: params.Components, }
if params.Components != "" {
updateParams.Components = strings.Split(params.Components, ",")
} }
info, err := otaState.GetUpdateStatus(context.Background(), updateParams) info, err := otaState.GetUpdateStatus(context.Background(), updateParams)
if err != nil { if err != nil {
@ -168,7 +170,6 @@ func rpcTryUpdateComponents(params updateParams, includePreRelease bool, resetCo
DeviceID: GetDeviceID(), DeviceID: GetDeviceID(),
IncludePreRelease: includePreRelease, IncludePreRelease: includePreRelease,
ResetConfig: resetConfig, ResetConfig: resetConfig,
Components: params.Components,
} }
updateParams.AppTargetVersion = params.AppTargetVersion updateParams.AppTargetVersion = params.AppTargetVersion
@ -181,6 +182,10 @@ func rpcTryUpdateComponents(params updateParams, includePreRelease bool, resetCo
return fmt.Errorf("failed to set system target version: %w", err) return fmt.Errorf("failed to set system target version: %w", err)
} }
if params.Components != "" {
updateParams.Components = strings.Split(params.Components, ",")
}
go func() { go func() {
err := otaState.TryUpdate(context.Background(), updateParams) err := otaState.TryUpdate(context.Background(), updateParams)
if err != nil { if err != nil {

View File

@ -203,7 +203,7 @@ export default function SettingsAdvancedRoute() {
// because it will be redirected to the update page later // because it will be redirected to the update page later
setVersionUpdateLoading(true); setVersionUpdateLoading(true);
versionInfo = await checkUpdateComponents({ versionInfo = await checkUpdateComponents({
components, components: components.join(","),
appTargetVersion: appVersion, appTargetVersion: appVersion,
systemTargetVersion: systemVersion, systemTargetVersion: systemVersion,
}, devChannel); }, devChannel);

View File

@ -49,7 +49,7 @@ export default function SettingsGeneralUpdateRoute() {
send("tryUpdateComponents", { send("tryUpdateComponents", {
params: { params: {
components, components: components.join(","),
appTargetVersion, appTargetVersion,
systemTargetVersion, systemTargetVersion,
}, },
@ -196,12 +196,13 @@ function LoadingState({
return await getVersionInfo(); return await getVersionInfo();
} }
const params : updateParams = { const params : updateParams = {
components: [], components: "",
appTargetVersion: customAppVersion, appTargetVersion: customAppVersion,
systemTargetVersion: customSystemVersion, systemTargetVersion: customSystemVersion,
}; };
if (customAppVersion) params.components?.push("app"); if (customAppVersion) params.components += ",app";
if (customSystemVersion) params.components?.push("system"); if (customSystemVersion) params.components += ",system";
params.components = params.components?.replace(/^,+/, "");
return await checkUpdateComponents(params, false); return await checkUpdateComponents(params, false);
}, [customAppVersion, customSystemVersion, getVersionInfo]); }, [customAppVersion, customSystemVersion, getVersionInfo]);

View File

@ -246,7 +246,7 @@ export async function getLocalVersion() {
export interface updateParams { export interface updateParams {
appTargetVersion?: string; appTargetVersion?: string;
systemTargetVersion?: string; systemTargetVersion?: string;
components?: string[]; components?: string;
} }
export async function checkUpdateComponents(params: updateParams, includePreRelease: boolean) { export async function checkUpdateComponents(params: updateParams, includePreRelease: boolean) {