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

donation: integrate donation card

Display donation card it only if setting is enabled and if it was dismissed more than 7days ago.
GitLab: #1361
GitLab: jami-project#1330

Change-Id: Iebd59719486e12db54c770e79cc318ec30da2fc0
parent 4fcd621c
No related branches found
No related tags found
No related merge requests found
......@@ -40,6 +40,7 @@ import androidx.lifecycle.DefaultLifecycleObserver
import androidx.lifecycle.LifecycleOwner
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import androidx.transition.AutoTransition
import androidx.transition.ChangeBounds
import androidx.transition.Fade
import androidx.transition.Slide
......@@ -262,6 +263,18 @@ class HomeFragment: BaseSupportFragment<HomePresenter, HomeView>(),
// Setup floating button.
binding.newSwarmFab.setOnClickListener { expandSearchActionView() }
// Setup donation card
binding.donationCard.donationCard.visibility = View.GONE
binding.donationCard.donationCard.setOnClickListener {
openJamiDonateWebPage(requireContext())
}
binding.donationCard.donationCardDonateButton.setOnClickListener {
openJamiDonateWebPage(requireContext())
}
binding.donationCard.donationCardNotNowButton.setOnClickListener {
presenter.setDonationReminderDismissed()
}
// Setup invitation card adapter.
binding.invitationCard.pendingList.adapter =
SmartListAdapter(
......@@ -563,6 +576,16 @@ class HomeFragment: BaseSupportFragment<HomePresenter, HomeView>(),
}
}
override fun showDonationReminder(show: Boolean) {
mBinding?.appBar?.let {
TransitionManager.beginDelayedTransition(
it, AutoTransition()
)
}
mBinding?.donationCard?.donationCard?.isVisible = show
mBinding?.fragmentContainer?.getFragment<SmartListFragment>()?.scrollToTop()
}
override fun onQueryTextSubmit(query: String?): Boolean {
return true
}
......
......@@ -56,6 +56,17 @@ along with this program; if not, write to the Free Software
app:autoShowKeyboard="true"
app:navigationIcon="@android:color/transparent" />
<!-- Donation card -->
<include
android:id="@+id/donation_card"
layout="@layout/frag_donation_card"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_marginBottom="16dp"
android:layout_marginEnd="16dp"
android:layout_marginStart="16dp"
android:visibility="gone"/>
<!-- Received invitations -->
<include
android:id="@+id/invitation_card"
......
......@@ -16,21 +16,35 @@
*/
package net.jami.home
import io.reactivex.rxjava3.core.Observable
import io.reactivex.rxjava3.core.Scheduler
import io.reactivex.rxjava3.subjects.BehaviorSubject
import net.jami.model.DonationSettings
import net.jami.mvp.RootPresenter
import net.jami.services.ConversationFacade
import net.jami.services.PreferencesService
import net.jami.utils.Log
import java.util.concurrent.TimeUnit
import javax.inject.Inject
import javax.inject.Named
class HomePresenter @Inject constructor(
private val mPreferencesService: PreferencesService,
) : RootPresenter<HomeView>() {
override fun bindView(view: HomeView) {
super.bindView(view)
mCompositeDisposable.add(mPreferencesService.donationSettings().subscribe { settings ->
// No need to show the reminder if user specified not to display it anymore
if (!settings.donationReminderVisibility) {
view.showDonationReminder(false)
return@subscribe
}
// Show the reminder if it's been more than 7 days since the last time it was dismissed
val lastDismissed = settings.lastDismissed
val elapsedDay = (System.currentTimeMillis() - lastDismissed) / 1000 / 60 / 60 / 24
view.showDonationReminder(elapsedDay >= 7)
})
}
fun setDonationReminderDismissed() {
mPreferencesService.setDonationSettings(
DonationSettings(lastDismissed = System.currentTimeMillis())
)
}
fun clickQRSearch() {
......
......@@ -19,4 +19,5 @@ package net.jami.home
interface HomeView {
fun goToQRFragment()
fun startNewSwarm()
fun showDonationReminder(show: Boolean = true)
}
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment