Skip to content

Commit 753548c

Browse files
committed
Add Garmin server selection and debug logging
Introduces a ComboBox in settings to select between global and China Garmin servers, prompting for app restart when changed. Adds debug logging in garminconnect.cpp to trace domain and API URLs, and logs the loaded domain from settings.
1 parent 365abbb commit 753548c

2 files changed

Lines changed: 85 additions & 0 deletions

File tree

src/garminconnect.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -391,6 +391,9 @@ bool GarminConnect::fetchCsrfToken()
391391
bool GarminConnect::performLogin(const QString &email, const QString &password, bool suppressMfaSignal)
392392
{
393393
qDebug() << "GarminConnect: Performing login...";
394+
qDebug() << "GarminConnect: Using domain:" << m_domain;
395+
qDebug() << "GarminConnect: SSO URL:" << ssoUrl();
396+
qDebug() << "GarminConnect: Connect API URL:" << connectApiUrl();
394397

395398
QString ssoEmbedUrl = ssoUrl() + SSO_EMBED_PATH;
396399

@@ -1401,6 +1404,7 @@ void GarminConnect::loadTokensFromSettings()
14011404
m_oauth1Token.oauth_token = settings.value(QZSettings::garmin_oauth1_token, QZSettings::default_garmin_oauth1_token).toString();
14021405
m_oauth1Token.oauth_token_secret = settings.value(QZSettings::garmin_oauth1_token_secret, QZSettings::default_garmin_oauth1_token_secret).toString();
14031406
m_domain = settings.value(QZSettings::garmin_domain, QZSettings::default_garmin_domain).toString();
1407+
qDebug() << "GarminConnect: Loaded Garmin domain from settings:" << m_domain;
14041408

14051409
if (!m_oauth2Token.access_token.isEmpty()) {
14061410
qDebug() << "GarminConnect: Loaded tokens from settings (OAuth1 + OAuth2)";

src/settings.qml

Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6725,6 +6725,87 @@ import Qt.labs.platform 1.1
67256725
}
67266726
}
67276727

6728+
RowLayout {
6729+
spacing: 10
6730+
Label {
6731+
text: qsTr("Garmin Server:")
6732+
Layout.fillWidth: true
6733+
}
6734+
ComboBox {
6735+
id: garminServerComboBox
6736+
Layout.fillHeight: false
6737+
Layout.alignment: Qt.AlignRight | Qt.AlignVCenter
6738+
model: ["Global (garmin.com)", "China (garmin.cn)"]
6739+
currentIndex: settings.garmin_domain === "garmin.cn" ? 1 : 0
6740+
onCurrentIndexChanged: {
6741+
var newDomain = currentIndex === 1 ? "garmin.cn" : "garmin.com";
6742+
if (newDomain !== settings.garmin_domain) {
6743+
rootItem.garmin_connect_logout();
6744+
settings.garmin_domain = newDomain;
6745+
garminServerRestartDialog.open();
6746+
}
6747+
}
6748+
}
6749+
}
6750+
6751+
// Garmin Server Change Restart Dialog
6752+
Popup {
6753+
id: garminServerRestartDialog
6754+
modal: true
6755+
focus: true
6756+
closePolicy: Popup.CloseOnEscape
6757+
anchors.centerIn: Overlay.overlay
6758+
width: Math.min(parent.width * 0.9, 400)
6759+
6760+
ColumnLayout {
6761+
anchors.fill: parent
6762+
spacing: 20
6763+
6764+
Label {
6765+
text: "Restart Required"
6766+
font.pixelSize: 18
6767+
font.bold: true
6768+
Layout.fillWidth: true
6769+
horizontalAlignment: Text.AlignHCenter
6770+
}
6771+
6772+
Label {
6773+
text: "The application needs to be restarted to apply the Garmin server change."
6774+
wrapMode: Text.WordWrap
6775+
Layout.fillWidth: true
6776+
horizontalAlignment: Text.AlignHCenter
6777+
}
6778+
6779+
RowLayout {
6780+
spacing: 10
6781+
Layout.fillWidth: true
6782+
Layout.alignment: Qt.AlignHCenter
6783+
6784+
Button {
6785+
text: "Cancel"
6786+
Layout.preferredWidth: 120
6787+
onClicked: {
6788+
garminServerRestartDialog.close();
6789+
// Revert the change
6790+
var currentDomain = settings.garmin_domain;
6791+
garminServerComboBox.currentIndex = currentDomain === "garmin.cn" ? 1 : 0;
6792+
}
6793+
}
6794+
6795+
Button {
6796+
text: "Restart App"
6797+
Layout.preferredWidth: 120
6798+
highlighted: true
6799+
onClicked: {
6800+
garminServerRestartDialog.close();
6801+
toast.show("Restarting application...");
6802+
Qt.quit();
6803+
}
6804+
}
6805+
}
6806+
}
6807+
}
6808+
67286809
Button {
67296810
text: "Test Garmin Login"
67306811
Layout.alignment: Qt.AlignHCenter

0 commit comments

Comments
 (0)