From 45c13d49936009f095629ef6f6d82aae768b20f3 Mon Sep 17 00:00:00 2001 From: "kali kaneko (leap communications)" <kali@leap.se> Date: Tue, 22 Jun 2021 17:10:26 +0200 Subject: [PATCH] [feat] only show donate dialog after first connect when due - Cloases: #470 --- CHANGELOG | 3 ++- gui/qml/VpnState.qml | 6 ++++++ gui/qml/logic.js | 20 ++++++++++++-------- gui/qml/main.qml | 8 ++++---- pkg/backend/donate.go | 2 ++ 5 files changed, 26 insertions(+), 13 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index cbaf8224..2595c7d1 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -4,4 +4,5 @@ - First iteration of the gateway selector. - Allow to select obfs4 gateways (bridges) to bypass censorship. - Ability to define explicitly allowed addresses for local networks. -- Update translations. New locales: greek, farsi, hungarian, dutch, polish and uyghur. +- Make the donate dialog less intrusive (#470) +- Updated translations. New locales: greek, farsi, hungarian, dutch, polish and uyghur. diff --git a/gui/qml/VpnState.qml b/gui/qml/VpnState.qml index b18d6b5a..86239e43 100644 --- a/gui/qml/VpnState.qml +++ b/gui/qml/VpnState.qml @@ -48,6 +48,12 @@ StateGroup { script: { Logic.setNeedsReconnect(false); brReconnect = false; + + if (needsDonate && !shownDonate) { + donate.visible = true; + shownDonate = true; + backend.donateSeen(); + } } } diff --git a/gui/qml/logic.js b/gui/qml/logic.js index 582b8249..10ebfcd6 100644 --- a/gui/qml/logic.js +++ b/gui/qml/logic.js @@ -1,5 +1,13 @@ -let status = 'off'; -let needsReconnect = false; +var status = 'off'; +var needsReconnect = false; + +function setNeedsReconnect(val) { + needsReconnect = val; +} + +function getNeedsReconnect() { + return needsReconnect; +} function setStatus(st) { status = st; @@ -9,12 +17,8 @@ function getStatus() { return status; } -function setNeedsReconnect(val) { - needsReconnect = val; -} - -function getNeedsReconnect() { - return needsReconnect; +function setNeedsDonate(val) { + needsDonate = val; } function toHuman(st) { diff --git a/gui/qml/main.qml b/gui/qml/main.qml index e0a9a817..e12c61da 100644 --- a/gui/qml/main.qml +++ b/gui/qml/main.qml @@ -21,7 +21,8 @@ ApplicationWindow { property var loginDone property var allowEmptyPass property var needsRestart - + property var needsDonate + property var shownDonate onSceneGraphError: function(error, msg) { console.debug("ERROR while initializing scene") @@ -189,9 +190,7 @@ ApplicationWindow { gwSelector.model = Object.keys(ctx.locations) if (ctx.donateDialog == 'true') { - console.debug(jsonModel.getJson()) - donate.visible = true - backend.donateSeen() + Logic.setNeedsDonate(true); } if (ctx.loginDialog == 'true') { console.debug(jsonModel.getJson()) @@ -276,6 +275,7 @@ ApplicationWindow { loginDone = false allowEmptyPass = Logic.shouldAllowEmptyPass(providers) needsRestart = false; + shownDonate = false; if (!systrayAvailable) { app.visible = true app.raise() diff --git a/pkg/backend/donate.go b/pkg/backend/donate.go index c16c0f4e..98f9e6ba 100644 --- a/pkg/backend/donate.go +++ b/pkg/backend/donate.go @@ -15,6 +15,8 @@ func runDonationReminder() { } } }() + // to test manually, uncomment this line. + // time.AfterFunc(1*time.Minute, func() { showDonate() }) } func needsDonationReminder() bool { -- GitLab