1 /*
2  *  Copyright (C) 2012-2018 Team Kodi
3  *  This file is part of Kodi - https://kodi.tv
4  *
5  *  SPDX-License-Identifier: GPL-2.0-or-later
6  *  See LICENSES/README.md for more information.
7  */
8 
9 #pragma once
10 
11 #include "storage/IStorageProvider.h"
12 
13 #include <set>
14 #include <string>
15 #include <vector>
16 
17 class CAndroidStorageProvider : public IStorageProvider
18 {
19 public:
20   CAndroidStorageProvider();
21   ~CAndroidStorageProvider() override = default;
22 
Initialize()23   void Initialize() override {}
Stop()24   void Stop() override {}
Eject(const std::string & mountpath)25   bool Eject(const std::string& mountpath) override { return false; }
26 
27   void GetLocalDrives(VECSOURCES& localDrives) override;
28   void GetRemovableDrives(VECSOURCES& removableDrives) override;
29   std::vector<std::string> GetDiskUsage() override;
30 
31   bool PumpDriveChangeEvents(IStorageEventsCallback* callback) override;
32 
33 private:
34   std::string unescape(const std::string& str);
35   VECSOURCES m_removableDrives;
36   unsigned int m_removableLength;
37 
38   static std::set<std::string> GetRemovableDrives();
39   static std::set<std::string> GetRemovableDrivesLinux();
40 };
41