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