From 64535f9763c432bbb46be2769560bfd6a2202d72 Mon Sep 17 00:00:00 2001
From: Andrei Karas <akaras@inbox.ru>
Date: Thu, 7 Nov 2013 16:32:18 +0300
Subject: add progress bar while loading in SDL2 in Android.

---
 src/utils/files.cpp | 19 +++++++++++++++++++
 src/utils/files.h   |  4 ++++
 2 files changed, 23 insertions(+)

(limited to 'src/utils')

diff --git a/src/utils/files.cpp b/src/utils/files.cpp
index 6f57d3062..bfaed472a 100644
--- a/src/utils/files.cpp
+++ b/src/utils/files.cpp
@@ -63,6 +63,18 @@ void Files::extractLocale()
 #endif // ANDROID
 
 #if defined(ANDROID) || defined(__native_client__)
+
+namespace
+{
+    int mFilesCount = 0;
+    Files::CopyFileCallbackPtr mCallbackPtr = nullptr;
+}  // namespace
+
+void Files::setCopyCallBack(Files::CopyFileCallbackPtr callback)
+{
+    mCallbackPtr = callback;
+}
+
 void Files::copyPhysFsFile(const std::string &inFile,
                            const std::string &outFile)
 {
@@ -72,6 +84,13 @@ void Files::copyPhysFsFile(const std::string &inFile,
     fwrite(buf, 1, size, file);
     fclose(file);
     free(buf);
+#ifdef ANDROID
+    if (mCallbackPtr)
+    {
+        mCallbackPtr(mFilesCount);
+        mFilesCount ++;
+    }
+#endif
 }
 
 void Files::copyPhysFsDir(const std::string &inDir, const std::string &outDir)
diff --git a/src/utils/files.h b/src/utils/files.h
index 735812563..f356d7688 100644
--- a/src/utils/files.h
+++ b/src/utils/files.h
@@ -30,6 +30,10 @@ namespace Files
 #endif
 
 #if defined(ANDROID) || defined(__native_client__)
+    typedef void (*CopyFileCallbackPtr) (int cnt);
+
+    void setCopyCallBack(CopyFileCallbackPtr callback);
+
     void copyPhysFsFile(const std::string &inFile, const std::string &outFile);
 
     void copyPhysFsDir(const std::string &inDir, const std::string &outDir);
-- 
cgit v1.2.3-70-g09d2