#include "ash/webui/eche_app_ui/apps_access_setup_operation.h"
#include <array>
#include "base/check.h"
#include "base/containers/contains.h"
namespace ash {
namespace eche_app {
namespace {
constexpr std::array<AppsAccessSetupOperation::Status, 5>
kOperationFinishedStatus{
AppsAccessSetupOperation::Status::kTimedOutConnecting,
AppsAccessSetupOperation::Status::kConnectionDisconnected,
AppsAccessSetupOperation::Status::kCompletedSuccessfully,
AppsAccessSetupOperation::Status::kCompletedUserRejected,
AppsAccessSetupOperation::Status::kOperationFailedOrCancelled,
};
}
bool AppsAccessSetupOperation::IsFinalStatus(Status status) {
return base::Contains(kOperationFinishedStatus, status);
}
AppsAccessSetupOperation::AppsAccessSetupOperation(
Delegate* delegate,
base::OnceClosure destructor_callback)
: delegate_(delegate),
destructor_callback_(std::move(destructor_callback)) {
DCHECK(delegate_);
DCHECK(destructor_callback_);
}
AppsAccessSetupOperation::~AppsAccessSetupOperation() {
std::move(destructor_callback_).Run();
}
void AppsAccessSetupOperation::NotifyAppsStatusChanged(Status new_status) {
current_status_ = new_status;
delegate_->OnAppsStatusChange(new_status);
}
}
}