Skip to content
Snippets Groups Projects
Commit 55415d60 authored by Liam Coursodon's avatar Liam Coursodon
Browse files

Donation campaign: add toggleswitch setting

GitLab: #1334
Change-Id: Ic0e2a4b08db7228e4a4bdab665f53adfa581e16c
parent 9d3b5cd0
No related branches found
No related tags found
No related merge requests found
......@@ -64,7 +64,10 @@ extern const QString defaultDownloadPath;
X(ShowMardownOption, false) \
X(ChatViewEnterIsNewLine, false) \
X(ShowSendOption, false) \
X(DonateVisibleDate, "2999-02-01 05:00")
X(DonationVisibleDate, "2023-11-01 05:00") \
X(IsDonationVisible, true) \
X(DonationEndDate, "2024-01-01 00:00")
/*
* A class to expose settings keys in both c++ and QML.
* Note: this is using a non-constructable class instead of a
......
......@@ -72,7 +72,11 @@ Item {
}
function isDonationBannerVisible() {
// The banner is visible if the current date is after the date set in the settings
return new Date() > new Date(Date.parse(UtilsAdapter.getAppValue(Settings.Key.DonateVisibleDate)));
// The banner is visible if the current date is after the date set in the settings and before the end date
// And if the donation toggle is checked
var isDonationVisible = UtilsAdapter.getAppValue(Settings.Key.IsDonationVisible);
var endDonationDate = new Date(Date.parse(UtilsAdapter.getAppValue(Settings.Key.DonationEndDate)));
var donationVisibleDate = new Date(Date.parse(UtilsAdapter.getAppValue(Settings.Key.DonationVisibleDate)));
return new Date() < endDonationDate && new Date() > donationVisibleDate && isDonationVisible;
}
}
......@@ -843,4 +843,5 @@ Item {
property string donation: qsTr("Donate")
property string donationText: qsTr("If you enjoy using Jami and believe in our mission, would you make a donation?")
property string notNow: qsTr("Not now")
property string enableDonation: qsTr("Enable donation campaign")
}
......@@ -109,8 +109,7 @@ Rectangle {
anchors.fill: parent
onClicked: {
// When the user clicks on "Not now", we set the donation date to 7 days from now (1 for the test)
// TODO reset to 7 days
UtilsAdapter.setAppValue(Settings.Key.DonateVisibleDate, new Date(new Date().getTime() + 1 * 24 * 60 * 60 * 1000).toISOString().slice(0, 16).replace("T", " "));
UtilsAdapter.setAppValue(Settings.Key.DonationVisibleDate, new Date(new Date().getTime() + 7 * 24 * 60 * 60 * 1000).toISOString().slice(0, 16).replace("T", " "));
donation.donationVisible = Qt.binding(() => JamiQmlUtils.isDonationBannerVisible());
}
}
......
......@@ -49,11 +49,13 @@ SettingsPageBase {
anchors.left: parent.left
anchors.leftMargin: JamiTheme.preferredSettingsMarginSize
ColumnLayout {
Column {
id: enableAccount
width: parent.width
spacing: 10
FolderDialog {
id: downloadPathDialog
......@@ -71,7 +73,7 @@ SettingsPageBase {
ToggleSwitch {
id: notificationCheckBox
Layout.fillWidth: true
width: parent.width
checked: UtilsAdapter.getAppValue(Settings.EnableNotifications)
labelText: JamiStrings.showNotifications
......@@ -79,9 +81,25 @@ SettingsPageBase {
onSwitchToggled: UtilsAdapter.setAppValue(Settings.Key.EnableNotifications, checked)
}
ToggleSwitch {
id: enableDonation
width: parent.width
visible: new Date() >= new Date(Date.parse("2023-11-01"))
checked: UtilsAdapter.getAppValue(Settings.Key.IsDonationVisible)
labelText: JamiStrings.enableDonation
tooltipText: JamiStrings.enableDonation
onSwitchToggled: {
UtilsAdapter.setAppValue(Settings.Key.IsDonationVisible, checked);
if (checked) {
UtilsAdapter.setToDefault(Settings.Key.DonationVisibleDate);
}
}
}
ToggleSwitch {
id: closeOrMinCheckBox
Layout.fillWidth: true
width: parent.width
visible: UtilsAdapter.isSystemTrayIconVisible()
checked: UtilsAdapter.getAppValue(Settings.MinimizeOnClose) && UtilsAdapter.isSystemTrayIconVisible()
......@@ -91,7 +109,7 @@ SettingsPageBase {
ToggleSwitch {
id: applicationOnStartUpCheckBox
Layout.fillWidth: true
width: parent.width
checked: UtilsAdapter.checkStartupLink()
labelText: JamiStrings.runStartup
......@@ -100,8 +118,8 @@ SettingsPageBase {
}
RowLayout {
Layout.fillWidth: true
Layout.minimumHeight: JamiTheme.preferredFieldHeight
width: parent.width
height: JamiTheme.preferredFieldHeight
Text {
Layout.fillWidth: true
......@@ -138,8 +156,8 @@ SettingsPageBase {
SettingsComboBox {
id: langComboBoxSetting
Layout.fillWidth: true
Layout.preferredHeight: JamiTheme.preferredFieldHeight
width: parent.width
height: JamiTheme.preferredFieldHeight
labelText: JamiStrings.language
tipText: JamiStrings.language
......@@ -245,6 +263,9 @@ SettingsPageBase {
UtilsAdapter.setToDefault(Settings.Key.MinimizeOnClose);
UtilsAdapter.setToDefault(Settings.Key.LANG);
UtilsAdapter.setToDefault(Settings.Key.EnableExperimentalSwarm);
UtilsAdapter.setToDefault(Settings.Key.IsDonationVisible);
UtilsAdapter.setToDefault(Settings.Key.DonationVisibleDate);
enableDonation.checked = Qt.binding(() => UtilsAdapter.getAppValue(Settings.Key.IsDonationVisible));
}
}
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment