Skip to content
Snippets Groups Projects
Commit 6cc92e33 authored by Pierre Nicolas's avatar Pierre Nicolas :joy: Committed by Adrien Béraud
Browse files

donation: show card only during campaign

Appears Monday, November 27, 2023 12:00:00 AM
Disappears Wednesday, January 31, 2024 11:59:59.999 PM

GitLab: #1361
GitLab: jami-project#1330
Change-Id: I6a49003ae30cb2c02654edaf13690ca7b82583bd
parent c9c34036
No related branches found
No related tags found
No related merge requests found
......@@ -39,6 +39,7 @@ import cx.ring.utils.ActionHelper.openJamiDonateWebPage
import dagger.hilt.android.AndroidEntryPoint
import net.jami.account.AccountEditionPresenter
import net.jami.account.AccountEditionView
import net.jami.utils.DonationUtils
@AndroidEntryPoint
class AccountEditionFragment : BaseSupportFragment<AccountEditionPresenter, AccountEditionView>(),
......@@ -50,9 +51,14 @@ class AccountEditionFragment : BaseSupportFragment<AccountEditionPresenter, Acco
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View =
FragAccountSettingsBinding.inflate(inflater, container, false).apply {
toolbar.setNavigationOnClickListener { activity?.onBackPressedDispatcher?.onBackPressed() }
donateButton.setOnClickListener {
openJamiDonateWebPage(requireContext())
if (DonationUtils.isDonationPeriod()) {
donateButton.visibility = View.VISIBLE
donateButton.setOnClickListener {
openJamiDonateWebPage(requireContext())
}
}
mBinding = this
}.root
......
......@@ -51,6 +51,8 @@ import net.jami.model.Settings
import net.jami.mvp.GenericView
import net.jami.settings.SettingsPresenter
import net.jami.settings.SettingsViewModel
import net.jami.utils.DonationUtils.endDonationTimeMillis
import net.jami.utils.DonationUtils.startDonationTimeMillis
@AndroidEntryPoint
class SettingsFragment :
......@@ -79,9 +81,18 @@ class SettingsFragment :
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View =
FragSettingsBinding.inflate(inflater, container, false).apply {
donateButton.setOnClickListener {
openJamiDonateWebPage(requireContext())
if (System.currentTimeMillis() in startDonationTimeMillis until endDonationTimeMillis) {
donateButton.visibility= View.VISIBLE
settingsDonateLayout.visibility = View.VISIBLE
donateButton.setOnClickListener {
openJamiDonateWebPage(requireContext())
}
settingsDonateSwitch.setOnCheckedChangeListener { _, _ ->
saveDonationSettings(binding!!)
}
}
settingsPluginsLayout.setOnClickListener {
if (JamiService.getPluginsEnabled()) {
goToPluginsListSettings()
......@@ -106,9 +117,6 @@ class SettingsFragment :
settingsVideoLayout.setOnClickListener {
goToVideoSettings()
}
settingsDonateSwitch.setOnCheckedChangeListener { _, _ ->
saveDonationSettings(binding!!)
}
val singleItems = arrayOf(
getString(R.string.notification_private),
......
......@@ -49,6 +49,7 @@
android:outlineProvider="none"
android:text="@string/donation_donate"
android:textColor="@color/black"
android:visibility="gone"
app:backgroundTint="@color/donation_card_background_color"
app:cornerRadius="16dp"
app:icon="@drawable/baseline_favorite_24"
......
......@@ -54,6 +54,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
android:outlineProvider="none"
android:text="@string/donation_donate"
android:textColor="@color/black"
android:visibility="gone"
app:backgroundTint="@color/donation_card_background_color"
app:cornerRadius="16dp"
app:icon="@drawable/baseline_favorite_24"
......@@ -225,6 +226,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
android:id="@+id/settings_donate_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:visibility="gone"
android:padding="@dimen/padding_large">
<ImageView
......
......@@ -19,6 +19,7 @@ package net.jami.home
import net.jami.model.DonationSettings
import net.jami.mvp.RootPresenter
import net.jami.services.PreferencesService
import net.jami.utils.DonationUtils
import javax.inject.Inject
class HomePresenter @Inject constructor(
......@@ -26,6 +27,10 @@ class HomePresenter @Inject constructor(
) : RootPresenter<HomeView>() {
override fun bindView(view: HomeView) {
super.bindView(view)
if (!DonationUtils.isDonationPeriod())
return
mCompositeDisposable.add(mPreferencesService.donationSettings().subscribe { settings ->
// No need to show the reminder if user specified not to display it anymore
if (!settings.donationReminderVisibility) {
......
package net.jami.utils
object DonationUtils {
// First millisecond of 27 November 2023 GMT
const val startDonationTimeMillis = 1701043200000
// Last millisecond of 31 January 2024 GMT
const val endDonationTimeMillis = 1706745599999
fun isDonationPeriod(): Boolean {
return System.currentTimeMillis() in startDonationTimeMillis until endDonationTimeMillis
}
}
\ No newline at end of file
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