chromium/chrome/browser/ui/android/device_lock/java/src/org/chromium/chrome/browser/ui/device_lock/DeviceLockProperties.java

// Copyright 2023 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.ui.device_lock;

import android.view.View.OnClickListener;

import org.chromium.ui.modelutil.PropertyKey;
import org.chromium.ui.modelutil.PropertyModel.ReadableObjectPropertyKey;
import org.chromium.ui.modelutil.PropertyModel.WritableBooleanPropertyKey;
import org.chromium.ui.modelutil.PropertyModel.WritableObjectPropertyKey;

public class DeviceLockProperties {
    static final WritableBooleanPropertyKey PREEXISTING_DEVICE_LOCK =
            new WritableBooleanPropertyKey();
    static final WritableBooleanPropertyKey DEVICE_SUPPORTS_PIN_CREATION_INTENT =
            new WritableBooleanPropertyKey();

    /**
     * UI enabled is true when first showing the dialog, but also if the user backtracks to the
     * dialog (ex: clicking create profile lock and then clicking the back button).
     */
    static final WritableBooleanPropertyKey UI_ENABLED = new WritableBooleanPropertyKey();

    static final WritableObjectPropertyKey<String> SOURCE = new WritableObjectPropertyKey<>();
    static final ReadableObjectPropertyKey<OnClickListener> ON_CREATE_DEVICE_LOCK_CLICKED =
            new ReadableObjectPropertyKey<>();
    static final ReadableObjectPropertyKey<OnClickListener> ON_GO_TO_OS_SETTINGS_CLICKED =
            new ReadableObjectPropertyKey<>();
    static final ReadableObjectPropertyKey<OnClickListener> ON_USER_UNDERSTANDS_CLICKED =
            new ReadableObjectPropertyKey<>();

    static final ReadableObjectPropertyKey<OnClickListener> ON_USE_WITHOUT_AN_ACCOUNT_CLICKED =
            new ReadableObjectPropertyKey<>();

    static final ReadableObjectPropertyKey<OnClickListener> ON_DISMISS_CLICKED =
            new ReadableObjectPropertyKey<>();

    static final PropertyKey[] ALL_KEYS =
            new PropertyKey[] {
                PREEXISTING_DEVICE_LOCK,
                DEVICE_SUPPORTS_PIN_CREATION_INTENT,
                UI_ENABLED,
                SOURCE,
                ON_CREATE_DEVICE_LOCK_CLICKED,
                ON_GO_TO_OS_SETTINGS_CLICKED,
                ON_USER_UNDERSTANDS_CLICKED,
                ON_USE_WITHOUT_AN_ACCOUNT_CLICKED,
                ON_DISMISS_CLICKED,
            };

    private DeviceLockProperties() {}
}