public static void updateHomeViews()

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