chromium/chrome/android/java/src/org/chromium/chrome/browser/payments/ShippingStrings.java

// Copyright 2016 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

package org.chromium.chrome.browser.payments;

import org.chromium.chrome.R;
import org.chromium.payments.mojom.PaymentShippingType;

/** Container for custom shipping strings. */
public class ShippingStrings {
    private final int mSummaryLabel;
    private final int mAddressLabel;
    private final int mOptionLabel;
    private final int mSelectPrompt;
    private final int mUnsupported;

    /**
     * Determines the strings to be used for the given shipping type.
     *
     * @param shippingType Shipping type. One of SHIPPING, DELIVERY, and PICKUP.
     */
    public ShippingStrings(int shippingType) {
        switch (shippingType) {
            case PaymentShippingType.SHIPPING:
                mSummaryLabel = R.string.payments_shipping_summary_label;
                mAddressLabel = R.string.payments_shipping_address_label;
                mOptionLabel = R.string.payments_shipping_option_label;
                mSelectPrompt = R.string.payments_select_shipping_address_for_shipping_methods;
                mUnsupported = R.string.payments_unsupported_shipping_address;
                break;

            case PaymentShippingType.DELIVERY:
                mSummaryLabel = R.string.payments_delivery_summary_label;
                mAddressLabel = R.string.payments_delivery_address_label;
                mOptionLabel = R.string.payments_delivery_option_label;
                mSelectPrompt = R.string.payments_select_delivery_address_for_delivery_methods;
                mUnsupported = R.string.payments_unsupported_delivery_address;
                break;

            case PaymentShippingType.PICKUP:
                mSummaryLabel = R.string.payments_pickup_summary_label;
                mAddressLabel = R.string.payments_pickup_address_label;
                mOptionLabel = R.string.payments_pickup_option_label;
                mSelectPrompt = R.string.payments_select_pickup_address_for_pickup_methods;
                mUnsupported = R.string.payments_unsupported_pickup_address;
                break;

            default:
                assert false;
                mSummaryLabel = 0;
                mAddressLabel = 0;
                mOptionLabel = 0;
                mSelectPrompt = 0;
                mUnsupported = 0;
                break;
        }
    }

    /** @return The string resource for the label of shipping summary section. */
    public int getSummaryLabel() {
        return mSummaryLabel;
    }

    /** @return The string resource for the label of shipping address section. */
    public int getAddressLabel() {
        return mAddressLabel;
    }

    /** @return The string resource for the label of shipping option section. */
    public int getOptionLabel() {
        return mOptionLabel;
    }

    /** @return The string resource for the prompt to choose a shipping address. */
    public int getSelectPrompt() {
        return mSelectPrompt;
    }

    /** @return The string resource for the unsupported shipping address message. */
    public int getUnsupported() {
        return mUnsupported;
    }
}