chromium/chrome/browser/download/android/download_utils.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_DOWNLOAD_ANDROID_DOWNLOAD_UTILS_H_
#define CHROME_BROWSER_DOWNLOAD_ANDROID_DOWNLOAD_UTILS_H_

#include <string>

#include "base/files/file_path.h"
#include "chrome/browser/download/android/download_open_source.h"

namespace download {
class DownloadItem;
}

class GURL;

// Native side of DownloadUtils.java.
class DownloadUtils {
 public:
  static base::FilePath GetUriStringForPath(const base::FilePath& file_path);
  static int GetAutoResumptionSizeLimit();
  static void OpenDownload(download::DownloadItem* item,
                           DownloadOpenSource open_source);
  static std::string RemapGenericMimeType(const std::string& mime_type,
                                          const GURL& url,
                                          const std::string& file_name);
  static bool ShouldAutoOpenDownload(download::DownloadItem* item);
  static bool IsOmaDownloadDescription(const std::string& mime_type);

  // Called to show the download manager, with a choice to focus on prefetched
  // content instead of regular downloads. |download_open_source| is the source
  // of the action.
  static void ShowDownloadManager(bool show_prefetched_content,
                                  DownloadOpenSource open_source);
  static bool IsDownloadUserInitiated(download::DownloadItem* download);
};

#endif  // CHROME_BROWSER_DOWNLOAD_ANDROID_DOWNLOAD_UTILS_H_