kopia lustrzana https://github.com/ryukoposting/Signal-Android
54 wiersze
1.7 KiB
Kotlin
54 wiersze
1.7 KiB
Kotlin
package org.thoughtcrime.securesms.badges.gifts
|
|
|
|
import android.os.Bundle
|
|
import androidx.fragment.app.FragmentManager
|
|
import org.thoughtcrime.securesms.badges.gifts.ExpiredGiftSheetConfiguration.forExpiredBadge
|
|
import org.thoughtcrime.securesms.badges.models.Badge
|
|
import org.thoughtcrime.securesms.components.settings.DSLSettingsAdapter
|
|
import org.thoughtcrime.securesms.components.settings.DSLSettingsBottomSheetFragment
|
|
import org.thoughtcrime.securesms.components.settings.configure
|
|
import org.thoughtcrime.securesms.util.BottomSheetUtil
|
|
import org.thoughtcrime.securesms.util.fragments.requireListener
|
|
|
|
/**
|
|
* Displays expired gift information and gives the user the option to start a recurring monthly donation.
|
|
*/
|
|
class ExpiredGiftSheet : DSLSettingsBottomSheetFragment() {
|
|
|
|
companion object {
|
|
private const val ARG_BADGE = "arg.badge"
|
|
|
|
fun show(fragmentManager: FragmentManager, badge: Badge) {
|
|
ExpiredGiftSheet().apply {
|
|
arguments = Bundle().apply {
|
|
putParcelable(ARG_BADGE, badge)
|
|
}
|
|
}.show(fragmentManager, BottomSheetUtil.STANDARD_BOTTOM_SHEET_FRAGMENT_TAG)
|
|
}
|
|
}
|
|
|
|
private val badge: Badge
|
|
get() = requireArguments().getParcelable(ARG_BADGE)!!
|
|
|
|
override fun bindAdapter(adapter: DSLSettingsAdapter) {
|
|
ExpiredGiftSheetConfiguration.register(adapter)
|
|
adapter.submitList(
|
|
configure {
|
|
forExpiredBadge(
|
|
badge = badge,
|
|
onMakeAMonthlyDonation = {
|
|
requireListener<Callback>().onMakeAMonthlyDonation()
|
|
},
|
|
onNotNow = {
|
|
dismissAllowingStateLoss()
|
|
}
|
|
)
|
|
}.toMappingModelList()
|
|
)
|
|
}
|
|
|
|
interface Callback {
|
|
fun onMakeAMonthlyDonation()
|
|
}
|
|
}
|