in ClassyTaxiAppKotlin/app/src/main/java/com/example/subscriptions/ui/SubscriptionBindingAdapter.kt [121:177]
fun updateHomeViews(view: View, subscriptions: List<SubscriptionStatus>?) {
// Set visibility assuming no subscription is available.
// If a subscription is found that meets certain criteria, then the visibility of the paywall
// will be changed to View.GONE.
view.home_paywall_message.visibility = View.VISIBLE
// The remaining views start hidden. If a subscription is found that meets each criteria,
// then the visibility will be changed to View.VISIBLE.
view.home_restore_message.visibility = View.GONE
view.home_grace_period_message.visibility = View.GONE
view.home_transfer_message.visibility = View.GONE
view.home_account_hold_message.visibility = View.GONE
view.home_account_paused_message.visibility = View.GONE
view.home_basic_message.visibility = View.GONE
// Update based on subscription information.
subscriptions?.let {
for (subscription in subscriptions) {
if (isSubscriptionRestore(subscription)) {
Log.d(TAG, "restore VISIBLE")
view.home_restore_message.run {
visibility = View.VISIBLE
val expiryDate = getHumanReadableDate(subscription.activeUntilMillisec)
text = view.resources.getString(R.string.restore_message_with_date, expiryDate)
}
view.home_paywall_message.visibility = View.GONE // Paywall gone.
}
if (isGracePeriod(subscription)) {
Log.d(TAG, "grace period VISIBLE")
view.home_grace_period_message.visibility = View.VISIBLE
view.home_paywall_message.visibility = View.GONE // Paywall gone.
}
if (isTransferRequired(subscription) && subscription.sku == Constants.BASIC_SKU) {
Log.d(TAG, "transfer VISIBLE")
view.home_transfer_message.visibility = View.VISIBLE
view.home_paywall_message.visibility = View.GONE // Paywall gone.
}
if (isAccountHold(subscription)) {
Log.d(TAG, "account hold VISIBLE")
view.home_account_hold_message.visibility = View.VISIBLE
view.home_paywall_message.visibility = View.GONE // Paywall gone.
}
if (isPaused(subscription)) {
Log.d(TAG, "account paused VISIBLE")
view.home_account_paused_message_text.run {
val autoResumeDate = getHumanReadableDate(subscription.autoResumeTimeMillis)
text = view.resources.getString(R.string.account_paused_message, autoResumeDate)
}
view.home_account_paused_message.visibility = View.VISIBLE
view.home_paywall_message.visibility = View.GONE // Paywall gone.
}
if (isBasicContent(subscription) || isPremiumContent(subscription)) {
Log.d(TAG, "basic VISIBLE")
view.home_basic_message.visibility = View.VISIBLE
view.home_paywall_message.visibility = View.GONE // Paywall gone.
}
}
}
}