fun updateHomeViews()

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.
            }
        }
    }
}