changing writing directory for Android 40/247840/8
authorCheng-Shiun Tsai <cheng.tsai@samsung.com>
Tue, 17 Nov 2020 10:07:03 +0000 (10:07 +0000)
committerAdeel Kazmi <adeel.kazmi@samsung.com>
Fri, 20 Nov 2020 15:32:55 +0000 (15:32 +0000)
/tmp doesn't exist for Android, need to use internal data directory

Change-Id: I08d8855baa97e175a2874915076d4fd22ff83d6f

README.md
build/android/dali/build_demo.sh
build/tizen/CMakeLists.txt
examples/native-image-source/native-image-source-example.cpp

index 6792332..1e2ec74 100644 (file)
--- a/README.md
+++ b/README.md
@@ -110,6 +110,10 @@ To install apks:
          $ adb install -r ./app/build/outputs/apk/debug/dali-demo-debug.apk
          $ adb install -r ./app/build/outputs/apk/release/dali-demo-release.apk
 
+Manually granting permission for accessing Storage before running the demo
+         1. Long press the DALi demo app icon => App Info
+         2. Permissions => Storage => Enable
+
 ## 4. Building for MS Windows
 
 Third party dependencies are built using vcpkg. Instructions on how to install vcpkg can be found in the
index cf5f98e..5d56b08 100755 (executable)
@@ -21,8 +21,10 @@ else
   export DALI_APP_RES_DIR=${PREFIX}/files
   export DALI_APP_DIR=${PREFIX}/lib/${ANDROID_ABI}
   export DALI_DEMO_RES_DIR=assets
+  #NOTE: keep app id consistent with dali-demo/build/android/app/src/main/AndroidManifest.xml
+  export DALI_DEMO_APP_ID=com.sec.dalidemo
 
-  ${ANDROID_SDK}/cmake/3.10.2.4988404/bin/cmake ${DALI_DIR}/dali-demo/build/tizen -DCMAKE_C_COMPILER=${ANDROID_NDK}/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -DCMAKE_CXX_COMPILER=${ANDROID_NDK}/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ -DCMAKE_INSTALL_PREFIX=${PREFIX} -DCMAKE_TOOLCHAIN_FILE=${ANDROID_NDK}/build/cmake/android.toolchain.cmake -DANDROID_PLATFORM=${ANDROID_PLATFORM} -DANDROID_ABI=${ANDROID_ABI} -DANDROID_NDK=${ANDROID_NDK} -DANDROID_STL=c++_shared -DCMAKE_CXX_FLAGS='-fexceptions -frtti -w -Wall -std=c++17' -DINCLUDE_DIR=${PREFIX}/include -DLIB_DIR=${PREFIX}/lib/${ANDROID_ABI} -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -DENABLE_TRACE=${ENABLE_TRACE} -DINTERNATIONALIZATION=OFF -DSHARED=ON -DDALI_APP_RES_DIR=${DALI_APP_RES_DIR} -DDALI_APP_DIR=${DALI_APP_DIR} -DDALI_DEMO_RES_DIR=${DALI_DEMO_RES_DIR}
+  ${ANDROID_SDK}/cmake/3.10.2.4988404/bin/cmake ${DALI_DIR}/dali-demo/build/tizen -DCMAKE_C_COMPILER=${ANDROID_NDK}/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -DCMAKE_CXX_COMPILER=${ANDROID_NDK}/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ -DCMAKE_INSTALL_PREFIX=${PREFIX} -DCMAKE_TOOLCHAIN_FILE=${ANDROID_NDK}/build/cmake/android.toolchain.cmake -DANDROID_PLATFORM=${ANDROID_PLATFORM} -DANDROID_ABI=${ANDROID_ABI} -DANDROID_NDK=${ANDROID_NDK} -DANDROID_STL=c++_shared -DCMAKE_CXX_FLAGS='-fexceptions -frtti -w -Wall -std=c++17' -DINCLUDE_DIR=${PREFIX}/include -DLIB_DIR=${PREFIX}/lib/${ANDROID_ABI} -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -DENABLE_TRACE=${ENABLE_TRACE} -DINTERNATIONALIZATION=OFF -DSHARED=ON -DDALI_APP_RES_DIR=${DALI_APP_RES_DIR} -DDALI_APP_DIR=${DALI_APP_DIR} -DDALI_DEMO_RES_DIR=${DALI_DEMO_RES_DIR} -DDALI_DEMO_APP_ID=${DALI_DEMO_APP_ID}
 fi
 
 make -j8 || exit 1
index 8a1c59f..aea3cd2 100644 (file)
@@ -104,6 +104,15 @@ ENDIF()
 SET(DEMO_EXAMPLE_BIN \\"${BINDIR}/\\")
 SET(DEMO_LANG \\"${LANG}\\")
 
+#For run-time read/write directory
+IF(ANDROID)
+  SET(DEMO_DATA_RW_DIR \\"/data/data/${DALI_DEMO_APP_ID}/\\")
+  SET(DEMO_DATA_PUBLIC_RW_DIR \\"/sdcard/\\")
+ELSE()
+  SET(DEMO_DATA_RW_DIR \\"/tmp/\\")
+  SET(DEMO_DATA_PUBLIC_RW_DIR \\"/tmp/\\")
+ENDIF()
+
 FILE(GLOB LOCAL_IMAGES_PNG RELATIVE   "${LOCAL_IMAGES_DIR}" "${LOCAL_IMAGES_DIR}/*.png")
 FILE(GLOB LOCAL_IMAGES_JPG RELATIVE   "${LOCAL_IMAGES_DIR}" "${LOCAL_IMAGES_DIR}/*.jpg")
 FILE(GLOB LOCAL_IMAGES_GIF RELATIVE   "${LOCAL_IMAGES_DIR}" "${LOCAL_IMAGES_DIR}/*.gif")
@@ -257,7 +266,7 @@ ELSEIF( UNIX )
   )
 ENDIF()
 
-SET(DALI_DEMO_CFLAGS "-DDEMO_GAME_DIR=${DEMO_GAME_DIR} -DDEMO_IMAGE_DIR=${DEMO_IMAGE_DIR} -DDEMO_VIDEO_DIR=${DEMO_VIDEO_DIR} -DDEMO_MODEL_DIR=${DEMO_MODEL_DIR} -DDEMO_SCRIPT_DIR=${DEMO_SCRIPT_DIR} -DDEMO_SHADER_DIR=${DEMO_SHADER_DIR}  -DDEMO_STYLE_DIR=${DEMO_STYLE_DIR} -DDEMO_THEME_PATH=${DEMO_THEME_PATH} -DDEMO_EXAMPLE_BIN=${DEMO_EXAMPLE_BIN} -DDEMO_LOCALE_DIR=${DEMO_LOCALE_DIR} -DDEMO_LANG=${DEMO_LANG}")
+SET(DALI_DEMO_CFLAGS "-DDEMO_GAME_DIR=${DEMO_GAME_DIR} -DDEMO_IMAGE_DIR=${DEMO_IMAGE_DIR} -DDEMO_VIDEO_DIR=${DEMO_VIDEO_DIR} -DDEMO_MODEL_DIR=${DEMO_MODEL_DIR} -DDEMO_SCRIPT_DIR=${DEMO_SCRIPT_DIR} -DDEMO_SHADER_DIR=${DEMO_SHADER_DIR}  -DDEMO_STYLE_DIR=${DEMO_STYLE_DIR} -DDEMO_THEME_PATH=${DEMO_THEME_PATH} -DDEMO_EXAMPLE_BIN=${DEMO_EXAMPLE_BIN} -DDEMO_LOCALE_DIR=${DEMO_LOCALE_DIR} -DDEMO_LANG=${DEMO_LANG} -DDEMO_DATA_RW_DIR=${DEMO_DATA_RW_DIR} -DDEMO_DATA_PUBLIC_RW_DIR=${DEMO_DATA_PUBLIC_RW_DIR} ")
 
 IF( ENABLE_DEBUG )
   SET(DALI_DEMO_CFLAGS "${DALI_DEMO_CFLAGS} -DDEBUG_ENABLED")
index 4183352..f08c142 100644 (file)
@@ -32,7 +32,7 @@ const float BUTTON_HEIGHT = 100.0f;
 const float BUTTON_COUNT  = 5.0f;
 
 const std::string JPG_FILENAME     = DEMO_IMAGE_DIR "gallery-medium-4.jpg";
-const std::string CAPTURE_FILENAME = "/tmp/native-image-capture.png";
+const std::string CAPTURE_FILENAME = DEMO_DATA_PUBLIC_RW_DIR "native-image-capture.png";
 
 /**
  * @brief Creates a shader used to render a native image