diff --git a/jami-android/app/src/main/java/cx/ring/account/AccountEditionFragment.kt b/jami-android/app/src/main/java/cx/ring/account/AccountEditionFragment.kt index cea5635e6836978361c839862f0643cc8bdd2e22..626f3cb5e8ec6b5ffb3288738e0c8c4fad0e5446 100644 --- a/jami-android/app/src/main/java/cx/ring/account/AccountEditionFragment.kt +++ b/jami-android/app/src/main/java/cx/ring/account/AccountEditionFragment.kt @@ -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 diff --git a/jami-android/app/src/main/java/cx/ring/settings/SettingsFragment.kt b/jami-android/app/src/main/java/cx/ring/settings/SettingsFragment.kt index 1e99a23f275acb393533e949af61ea563d52e4a3..7fd6a06740e6dfc6ea545ed44469b84f8e86a10f 100644 --- a/jami-android/app/src/main/java/cx/ring/settings/SettingsFragment.kt +++ b/jami-android/app/src/main/java/cx/ring/settings/SettingsFragment.kt @@ -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), diff --git a/jami-android/app/src/main/res/layout/frag_account_settings.xml b/jami-android/app/src/main/res/layout/frag_account_settings.xml index 36ad14438baa9ff903b22955a165fe79fb4ecc52..29d972d9dd97b26b459a665948aa942290076cd1 100644 --- a/jami-android/app/src/main/res/layout/frag_account_settings.xml +++ b/jami-android/app/src/main/res/layout/frag_account_settings.xml @@ -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" diff --git a/jami-android/app/src/main/res/layout/frag_settings.xml b/jami-android/app/src/main/res/layout/frag_settings.xml index ca6edf25d2b90f34f1e9e4bf0cf81098ff832058..dcbd10d465f38ad8e3a8fc5b8d9adad7bcd54721 100644 --- a/jami-android/app/src/main/res/layout/frag_settings.xml +++ b/jami-android/app/src/main/res/layout/frag_settings.xml @@ -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 diff --git a/jami-android/libjamiclient/src/main/kotlin/net/jami/home/HomePresenter.kt b/jami-android/libjamiclient/src/main/kotlin/net/jami/home/HomePresenter.kt index 26e0e2f4c28236dab8220dcc539e89b1e6b1ee83..d55206aaea5bd9b6565629756cba5dfa25d0602e 100644 --- a/jami-android/libjamiclient/src/main/kotlin/net/jami/home/HomePresenter.kt +++ b/jami-android/libjamiclient/src/main/kotlin/net/jami/home/HomePresenter.kt @@ -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) { diff --git a/jami-android/libjamiclient/src/main/kotlin/net/jami/utils/DonationUtils.kt b/jami-android/libjamiclient/src/main/kotlin/net/jami/utils/DonationUtils.kt new file mode 100644 index 0000000000000000000000000000000000000000..8ab0779a45d91ead80b9a6c7da3ed1b9309b5992 --- /dev/null +++ b/jami-android/libjamiclient/src/main/kotlin/net/jami/utils/DonationUtils.kt @@ -0,0 +1,13 @@ +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