chromium/chrome/browser/ash/app_list/arc/arc_data_removal_dialog.h

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

#ifndef CHROME_BROWSER_ASH_APP_LIST_ARC_ARC_DATA_REMOVAL_DIALOG_H_
#define CHROME_BROWSER_ASH_APP_LIST_ARC_ARC_DATA_REMOVAL_DIALOG_H_

#include "base/functional/callback_forward.h"

class Profile;

namespace arc {

// Callback to notify the result of data removal confirmation dialog. Invoked
// with true in case the user accepts data removal and false in case the user
// declines data removal or dialog is closed.
using DataRemovalConfirmationCallback = base::OnceCallback<void(bool)>;

// It shows a confirmation dialog for data removal. User has the option to
// accept or decline data removal. The result is passed using |callback|.
void ShowDataRemovalConfirmationDialog(
    Profile* profile,
    DataRemovalConfirmationCallback callback);

// Returns true if the ARC data removal dialog is open.
bool IsDataRemovalConfirmationDialogOpenForTesting();

// Simulates that user closes the open confirmation dialog for data removal.
// The confirmation dialog is closed and |confirm| is returned in confirmation
// callback, which was passed during ShowDataRemovalConfirmationDialog call.
void CloseDataRemovalConfirmationDialogForTesting(bool confirm);

}  // namespace arc

#endif  // CHROME_BROWSER_ASH_APP_LIST_ARC_ARC_DATA_REMOVAL_DIALOG_H_