chromium/chrome/android/features/keyboard_accessory/internal/java/src/org/chromium/chrome/browser/keyboard_accessory/sheet_tabs/PasswordAccessorySheetMediator.java

// Copyright 2020 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.keyboard_accessory.sheet_tabs;

import androidx.annotation.Nullable;

import org.chromium.chrome.browser.keyboard_accessory.data.KeyboardAccessoryData.AccessorySheetData;
import org.chromium.ui.modelutil.PropertyModel;

/** This class contains the logic specific to the password accessory sheet. */
class PasswordAccessorySheetMediator extends AccessorySheetTabMediator {
    private final ToggleChangeDelegate mToggleChangeDelegate;

    PasswordAccessorySheetMediator(
            PropertyModel model,
            int tabType,
            int userInfoType,
            int manageActionToRecord,
            @Nullable ToggleChangeDelegate toggleChangeDelegate) {
        super(model, tabType, userInfoType, manageActionToRecord, toggleChangeDelegate);
        mToggleChangeDelegate = toggleChangeDelegate;
    }

    @Override
    public void onItemAvailable(int typeId, AccessorySheetData accessorySheetData) {
        super.onItemAvailable(typeId, accessorySheetData);
        if (accessorySheetData == null || accessorySheetData.getOptionToggle() == null) {
            // This call makes sure that the default tab icon is used when the toggle doesn't exist,
            // in case the cached icon is obsolete.
            mToggleChangeDelegate.onToggleChanged(true);
        }
    }
}