//CFTTFileSystem_Android - [2020-04-13 11:57:46]
#ifndef _CFTTFILESYSTEM_ANDROID_H_
#define _CFTTFILESYSTEM_ANDROID_H_

#include <android/asset_manager.h>
#include "CFTTFileIterator.h"
#include "CFTTFileSystem.h"
#include "CFTTFile_AsyncQueue.h"

/*
0026C608 CFTTFileSystem_Android::CFTTFileSystem_Android(char const*,char const*)
0026C694 CFTTFileSystem_Android::~CFTTFileSystem_Android()
0026C6B8 CFTTFileSystem_Android::~CFTTFileSystem_Android()
0026C480 CFTTFileSystem_Android::ErrorInternal(int,CFTTFile_Android *,char const*)
0026C520 CFTTFileSystem_Android::AndroidSetAssetManager(void *)
0026C52C CFTTFileSystem_Android::AndroidSetExternalFilesDir(char const*)
0026C548 CFTTFileSystem_Android::AndroidGetExpansionPath()
0026C554 CFTTFileSystem_Android::AndroidSetExpansionPath(char const*)
0026C574 CFTTFileSystem_Android::InitExpansionFilesystem()
0026C6C6 CFTTFileSystem_Android::GetAbsoluteFilename(char const*,char *,uint)
0026C708 CFTTFileSystem_Android::Open_Common(char const*,uint,EFTTMemHeapID)
0026C7E0 CFTTFileSystem_Android::OpenAsset(char const*)
0026C818 CFTTFileSystem_Android::CloseAsset(AAsset *)
0026C81E CFTTFileSystem_Android::Open(char const*,uint,EFTTMemHeapID)
0026C852 CFTTFileSystem_Android::Delete(char const*)
0026C898 CFTTFileSystem_Android::Rename(char const*,char const*,CFTTFileSystem *)
0026C90C CFTTFileSystem_Android::Copy(char const*,char const*,bool)
0026C9D0 CFTTFileSystem_Android::OpenDir(char const*,CFTTFileIterator **)
0026CAAC CFTTFileSystem_Android::FileExistsFS(char const*)
0026CB00 CFTTFileSystem_Android::GetAttributesFS(char const*,TFTTFileAttributes *)
0026CB74 CFTTFileSystem_Android::Shutdown()

vtable_CFTTFileSystem_Android:
  CFTTFileSystem_Android::~CFTTFileSystem_Android()
  CFTTFileSystem_Android::~CFTTFileSystem_Android()
  CFTTFileSystem_Android::GetAbsoluteFilename(char const*,char *,uint)
  CFTTFileSystem_Android::Open(char const*,uint,EFTTMemHeapID)
  CFTTFileSystem_Android::Delete(char const*)
  CFTTFileSystem_Android::Rename(char const*,char const*,CFTTFileSystem *)
  CFTTFileSystem_Android::Copy(char const*,char const*,bool)
  CFTTFileSystem_Android::OpenDir(char const*,CFTTFileIterator **)
  CFTTFileSystem_Android::FileExistsFS(char const*)
  CFTTFileSystem_Android::GetAttributesFS(char const*,TFTTFileAttributes *)

CFTTFileSystem_Android 0x10
*/

class CFTTFile_Android;
class CFTTFileSystem_APKX;

class CFTTFileSystem_Android : public CFTTFileSystem {
public:
  CFTTFileSystem_Android(const char *a2, const char *ptype);  //0026C608
  virtual ~CFTTFileSystem_Android();                          //0026C694  0026C6B8

  virtual bool GetAbsoluteFilename(char const *filepath,
                                   char *pOutputName,
                                   uint outpue_len);                             //0026C6C6
  virtual CFTTFile *Open(char const *filepath, uint a3, EFTTMemHeapID eHeapId);  //0026C81E
  virtual EFTTError Delete(char const *filepath);                                //0026C852
  virtual EFTTError Rename(char const *oldpath,
                           char const *newpath,
                           CFTTFileSystem *a4);                              //0026C898
  virtual EFTTError Copy(char const *, char const *, bool);                  //0026C90C
  virtual EFTTError OpenDir(char const *pDir, CFTTFileIterator **ppFileIt);  //0026C9D0
  virtual bool FileExistsFS(char const *filepath);                           //0026C90C
  virtual EFTTError GetAttributesFS(char const *filepath,
                                    TFTTFileAttributes *pAttr);  //0026CB00

  char *AndroidGetExpansionPath();                               //0026C548
  static void AndroidSetAssetManager(void *arg_pAAssetManager);  //0026C520
  static void AndroidSetExpansionPath(char const *filepath);     //0026C554
  static int AndroidSetExternalFilesDir(char const *dirpath);    //0026C52C
  void CloseAsset(AAsset *);                                     //0026C818
  EFTTError ErrorInternal(int errid,
                          CFTTFile_Android *pFile,
                          char const *name);  //0026C480
  void InitExpansionFilesystem();             //0026C574
  AAsset *OpenAsset(char const *a2);          //0026C7E0
  CFTTFile *Open_Common(char const *filepath,
                        uint a3,
                        EFTTMemHeapID eHeapId);  //0026C708
  static void Shutdown();                        //0026CB74

  bool isDocSupport_8;  //is DOCS SUPPORT
  char *ptype_C;

  static CFTTFile_AsyncQueue *ms_pAsyncQueue;
  static bool s_bHaveExpansionFile;
};

#endif  //_CFTTFILESYSTEM_ANDROID_H_