chromium/chrome/android/java/src/org/chromium/chrome/browser/payments/handler/toolbar/PaymentHandlerToolbarProperties.java

// Copyright 2019 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.handler.toolbar;

import org.chromium.ui.modelutil.PropertyKey;
import org.chromium.ui.modelutil.PropertyModel.WritableBooleanPropertyKey;
import org.chromium.ui.modelutil.PropertyModel.WritableFloatPropertyKey;
import org.chromium.ui.modelutil.PropertyModel.WritableIntPropertyKey;
import org.chromium.ui.modelutil.PropertyModel.WritableObjectPropertyKey;
import org.chromium.url.GURL;

/** PaymentHandlerToolbar UI properties, which fully describe the state of the UI. */
/* package */ class PaymentHandlerToolbarProperties {
    /* package */ static final WritableObjectPropertyKey<GURL> URL =
            new WritableObjectPropertyKey<>();

    /* package */ static final WritableObjectPropertyKey<String> TITLE =
            new WritableObjectPropertyKey<>();

    /* package */ static final WritableFloatPropertyKey LOAD_PROGRESS =
            new WritableFloatPropertyKey();

    /* package */ static final WritableBooleanPropertyKey PROGRESS_VISIBLE =
            new WritableBooleanPropertyKey();

    /* package */ static final WritableIntPropertyKey SECURITY_ICON = new WritableIntPropertyKey();

    /* package */ static final WritableObjectPropertyKey<String> SECURITY_ICON_CONTENT_DESCRIPTION =
            new WritableObjectPropertyKey<>();

    /** The callback when the security icon is clicked. */
    /* package */ static final WritableObjectPropertyKey<Runnable> SECURITY_ICON_ON_CLICK_CALLBACK =
            new WritableObjectPropertyKey<>();

    /** The callback when the close icon is clicked. */
    /* package */ static final WritableObjectPropertyKey<Runnable> CLOSE_BUTTON_ON_CLICK_CALLBACK =
            new WritableObjectPropertyKey<>();

    /* package */ static final PropertyKey[] ALL_KEYS =
            new PropertyKey[] {
                URL,
                TITLE,
                LOAD_PROGRESS,
                PROGRESS_VISIBLE,
                SECURITY_ICON,
                SECURITY_ICON_CONTENT_DESCRIPTION,
                SECURITY_ICON_ON_CLICK_CALLBACK,
                CLOSE_BUTTON_ON_CLICK_CALLBACK
            };

    // Prevent instantiation.
    private PaymentHandlerToolbarProperties() {}
}