fun updateSettingsViews()

in ClassyTaxiAppKotlin/app/src/main/java/com/example/subscriptions/ui/SubscriptionBindingAdapter.kt [271:327]


fun updateSettingsViews(view: View, subscriptions: List<SubscriptionStatus>?) {
    // Set default button text: it might be overridden based on the subscription state.
    view.subscription_option_premium_button.text =
        view.resources.getString(R.string.subscription_option_premium_message)
    view.subscription_option_basic_button.text =
        view.resources.getString(R.string.subscription_option_basic_message)
    view.settings_transfer_message.visibility = View.GONE
    // Update based on subscription information.
    var basicRequiresTransfer = false
    var premiumRequiresTransfer = false
    subscriptions?.let {
        for (subscription in it) {
            when (subscription.sku) {
                Constants.BASIC_SKU -> {
                    view.subscription_option_basic_button.text =
                        basicTextForSubscription(view.resources, subscription)
                    if (isTransferRequired(subscription)) {
                        basicRequiresTransfer = true
                    }
                }
                Constants.PREMIUM_SKU -> {
                    view.subscription_option_premium_button.text =
                        premiumTextForSubscription(view.resources, subscription)
                    if (isTransferRequired(subscription)) {
                        premiumRequiresTransfer = true
                    }
                }
            }
        }
    }
    val message = when {
        basicRequiresTransfer && premiumRequiresTransfer -> {
            val basicName = view.resources.getString(R.string.basic_button_text)
            val premiumName = view.resources.getString(R.string.premium_button_text)
            view.resources.getString(
                R.string.transfer_message_with_two_skus, basicName, premiumName
            )
        }
        basicRequiresTransfer -> {
            val basicName = view.resources.getString(R.string.basic_button_text)
            view.resources.getString(R.string.transfer_message_with_sku, basicName)
        }
        premiumRequiresTransfer -> {
            val premiumName = view.resources.getString(R.string.premium_button_text)
            view.resources.getString(R.string.transfer_message_with_sku, premiumName)
        }
        else -> null
    }
    if (message != null) {
        Log.d(TAG, "transfer VISIBLE")
        view.settings_transfer_message.visibility = View.VISIBLE
        view.settings_transfer_message_text.text = message
    } else {
        view.settings_transfer_message_text.text =
            view.resources.getString(R.string.transfer_message)
    }
}