chromium/chrome/browser/download/android/download_manager_bridge.h

// 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.

#ifndef CHROME_BROWSER_DOWNLOAD_ANDROID_DOWNLOAD_MANAGER_BRIDGE_H_
#define CHROME_BROWSER_DOWNLOAD_ANDROID_DOWNLOAD_MANAGER_BRIDGE_H_

#include "base/functional/callback.h"
#include "components/download/public/common/download_item.h"

using DownloadItem = download::DownloadItem;
using AddCompletedDownloadCallback = base::OnceCallback<void(int64_t)>;

// This class pairs with DownloadManagerBridge on Java side, that handles all
// the android DownloadManager related functionalities. Both classes have only
// static functions.
class DownloadManagerBridge {
 public:
  DownloadManagerBridge(const DownloadManagerBridge&) = delete;
  DownloadManagerBridge& operator=(const DownloadManagerBridge&) = delete;

  static void AddCompletedDownload(DownloadItem* download,
                                   AddCompletedDownloadCallback callback);
  static void RemoveCompletedDownload(DownloadItem* download);
};

#endif  // CHROME_BROWSER_DOWNLOAD_ANDROID_DOWNLOAD_MANAGER_BRIDGE_H_