in ClassyTaxiJava/app/src/main/java/com/sample/android/classytaxijava/ui/SubscriptionBindingAdapter.java [113:180]
public static void updateHomeViews(View view, List<SubscriptionStatus> subscriptions) {
TextView restoreMsg = view.findViewById(R.id.home_restore_message);
View paywallMsg = view.findViewById(R.id.home_paywall_message);
View gracePeriodMsg = view.findViewById(R.id.home_grace_period_message);
View transferMsg = view.findViewById(R.id.home_transfer_message);
View accountHoldMsg = view.findViewById(R.id.home_account_hold_message);
View accountPausedMsg = view.findViewById(R.id.home_account_paused_message);
TextView accountPausedMsgTxt = view.findViewById(R.id.home_account_paused_message_text);
View basicMsg = view.findViewById(R.id.home_basic_message);
// 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.
paywallMsg.setVisibility(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.
restoreMsg.setVisibility(View.GONE);
gracePeriodMsg.setVisibility(View.GONE);
transferMsg.setVisibility(View.GONE);
accountHoldMsg.setVisibility(View.GONE);
accountPausedMsg.setVisibility(View.GONE);
basicMsg.setVisibility(View.GONE);
// Update based on subscription information.
if (subscriptions != null) {
for (SubscriptionStatus subscription : subscriptions) {
if (BillingUtilities.isSubscriptionRestore(subscription)) {
Log.d(TAG, "restore VISIBLE");
restoreMsg.setVisibility(View.VISIBLE);
String expiryDate = getHumanReadableDate(subscription.getActiveUntilMillisec());
restoreMsg.setText(view.getResources()
.getString(R.string.restore_message_with_date, expiryDate));
paywallMsg.setVisibility(View.GONE); // Paywall gone.
}
if (BillingUtilities.isGracePeriod(subscription)) {
Log.d(TAG, "grace period VISIBLE");
gracePeriodMsg.setVisibility(View.VISIBLE);
paywallMsg.setVisibility(View.GONE); // Paywall gone.
}
if (BillingUtilities.isTransferRequired(subscription)
&& TextUtils.equals(subscription.getSku(), Constants.BASIC_SKU)) {
Log.d(TAG, "transfer VISIBLE");
transferMsg.setVisibility(View.VISIBLE);
paywallMsg.setVisibility(View.GONE); // Paywall gone.
}
if (BillingUtilities.isAccountHold(subscription)) {
Log.d(TAG, "account hold VISIBLE");
accountHoldMsg.setVisibility(View.VISIBLE);
paywallMsg.setVisibility(View.GONE); // Paywall gone.
}
if (BillingUtilities.isPaused(subscription)) {
Log.d(TAG, "account paused VISIBLE");
String autoResumeDate = getHumanReadableDate(subscription.getAutoResumeTimeMillis());
String text = view.getResources()
.getString(R.string.account_paused_message_string, autoResumeDate);
accountPausedMsgTxt.setText(text);
accountPausedMsg.setVisibility(View.VISIBLE);
paywallMsg.setVisibility(View.GONE); // Paywall gone.
}
if (BillingUtilities.isBasicContent(subscription)
|| BillingUtilities.isPremiumContent(subscription)) {
Log.d(TAG, "basic VISIBLE");
basicMsg.setVisibility(View.VISIBLE);
paywallMsg.setVisibility(View.GONE); // Paywall gone.
}
}
}
}