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

#ifndef VM_TOOLS_GARCON_ARC_SIDELOAD_H_
#define VM_TOOLS_GARCON_ARC_SIDELOAD_H_

#include <string>

namespace vm_tools {
namespace garcon {
class PackageKitProxy;

class ArcSideload {
 public:
  // Enable sideloading android apps into Arc. If something goes wrong, a
  // human-readable error will be written to |out_error|. Returns true if it
  // succeeds.
  static bool Enable(std::string* out_error);

 private:
  // Tracks whether we have successfully added the rules once this session. This
  // will be false until Enable() succeeds. This variable is static so that
  // different instances of ArcSideload will not re-run the same configuration.
  static bool enable_completed_successfully_this_session_;
};

}  // namespace garcon
}  // namespace vm_tools

#endif  // VM_TOOLS_GARCON_ARC_SIDELOAD_H_
