From: seolheui kim Date: Thu, 5 Jul 2018 06:20:07 +0000 (+0900) Subject: Add ode-external-lock.service to launch external-lock interface X-Git-Tag: submit/tizen/20190816.084956~1^2~1 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=c0e92b7ef4c75b9efaecaf9226dfc1547cd54bfa;p=platform%2Fcore%2Fsecurity%2Fode-ui.git Add ode-external-lock.service to launch external-lock interface Change-Id: I9cceeaf401c97377a5ef758ce5094c30069d263c Signed-off-by: seolheui kim --- diff --git a/ode/CMakeLists.txt b/ode/CMakeLists.txt index 42f8b3e..6dfec3e 100755 --- a/ode/CMakeLists.txt +++ b/ode/CMakeLists.txt @@ -84,4 +84,7 @@ INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${PKG_NAME}.xml DESTINATION ${APP_SHAR CONFIGURE_FILE(service/ode-progress-ui@.service.in service/ode-progress-ui@.service) INSTALL(FILES service/ode-progress-ui@.service DESTINATION ${SYSTEMD_UNIT_DIR}) +CONFIGURE_FILE(service/ode-external-lock.service.in service/ode-external-lock.service) +INSTALL(FILES service/ode-external-lock.service DESTINATION ${SYSTEMD_UNIT_DIR}) + ADD_SUBDIRECTORY(po) diff --git a/ode/service/ode-external-lock.service.in b/ode/service/ode-external-lock.service.in new file mode 100644 index 0000000..b05bcb4 --- /dev/null +++ b/ode/service/ode-external-lock.service.in @@ -0,0 +1,10 @@ +[Unit] +Description=ODE external storage lock interface + +[Service] +User=application +Group=application +SmackProcessLabel=System +EnvironmentFile=/run/tizen-system-env +EnvironmentFile=/run/xdg-root-env +ExecStart=/usr/bin/ode lock diff --git a/ode/src/interface/external/password-sdcard.cpp b/ode/src/interface/external/password-sdcard.cpp index e999f33..e511054 100644 --- a/ode/src/interface/external/password-sdcard.cpp +++ b/ode/src/interface/external/password-sdcard.cpp @@ -41,7 +41,7 @@ void PasswordSDCard::create() void PasswordSDCard::dispose() { - ::ui_app_exit(); + ::elm_exit(); } void PasswordSDCard::retryCrypto(const std::string &data) diff --git a/ode/src/ode.cpp b/ode/src/ode.cpp index 4551ec4..2a72153 100644 --- a/ode/src/ode.cpp +++ b/ode/src/ode.cpp @@ -56,30 +56,30 @@ void ODELaunchPad::onAppControl() switch (mode) { case Type::ENCRYPT_DEVICE: - interface = new EncryptDeviceInterface{}; + interface.reset(new EncryptDeviceInterface{}); break; case Type::DECRYPT_DEVICE: - interface = new DecryptDeviceInterface{}; + interface.reset(new DecryptDeviceInterface{}); break; case Type::ENCRYPT_SD_CARD: - interface = new EncryptSDCardInterface{}; + interface.reset(new EncryptSDCardInterface{}); break; case Type::DECRYPT_SD_CARD: - interface = new DecryptSDCardInterface{}; + interface.reset(new DecryptSDCardInterface{}); break; case Type::INSERT_SD_CARD: - interface = new InsertSDCardInterface{appControl.get()}; + interface.reset(new InsertSDCardInterface{appControl.get()}); break; case Type::SD_CARD_PASSWORD: - interface = new PasswordSDCard{}; + interface.reset(new PasswordSDCard{}); break; case Type::ENCRYPT_EXTENSION: dlog_print(DLOG_INFO, "ODE-UI", "Device Path : %s / Mapping Node : %s", appControl->getData("dev_path").c_str(), appControl->getData("mapping_node").c_str()); - interface = new EncryptExtensionInterface{appControl.get()}; + interface.reset(new EncryptExtensionInterface{appControl.get()}); break; case Type::SD_CARD_EXTENDED_PASSWORD: dlog_print(DLOG_INFO, "ODE-UI", "Device Path : %s / Mapping Node : %s", appControl->getData("dev_path").c_str(), appControl->getData("mapping_node").c_str()); - interface = new PasswordSDCardExtended{appControl->getData("dev_path"), appControl->getData("mapping_node")}; + interface.reset(new PasswordSDCardExtended{appControl->getData("dev_path"), appControl->getData("mapping_node")}); break; default: throw runtime::Exception("Do not supported viewtype"); @@ -92,9 +92,6 @@ void ODELaunchPad::onAppControl() void ODELaunchPad::onTerminate() { - if (interface) { - delete interface; - } } ODEStandAlone::ODEStandAlone() @@ -104,16 +101,11 @@ ODEStandAlone::ODEStandAlone() ODEStandAlone::~ODEStandAlone() { - if (interface) { - delete interface; - } } void ODEStandAlone::createProgressInterface(const std::string &type, const std::string &target) { - if (interface == nullptr) { - interface = new ODEInterface{}; - } + interface.reset(new ODEInterface{}); interface->setBaseLayout(); if ((!type.compare("encrypt") || !type.compare("Encrypting")) @@ -137,6 +129,14 @@ void ODEStandAlone::createProgressInterface(const std::string &type, const std:: } } +void ODEStandAlone::createPasswordInterface() +{ + interface.reset(new PasswordSDCard{}); + + if (interface) + interface->create(); +} + int ODEStandAlone::run(int argc, char *argv[]) { char *lang = nullptr; @@ -154,11 +154,14 @@ int ODEStandAlone::run(int argc, char *argv[]) ::elm_init(argc, argv); ::elm_scale_set(1.8); + if (!strncmp(argv[1], "progress", sizeof("progress"))) { if (argc < 4) { return -1; } createProgressInterface(argv[2], argv[3]); + } else if (!strncmp(argv[1], "lock", sizeof("lock"))) { + createPasswordInterface(); } ::elm_run(); diff --git a/ode/src/ode.h b/ode/src/ode.h index 734604e..8fb3d0e 100644 --- a/ode/src/ode.h +++ b/ode/src/ode.h @@ -57,7 +57,7 @@ private: int getMode(const std::string &type); std::string viewtype; int mode; - ODEInterface *interface; + std::unique_ptr interface; }; class ODEStandAlone : public Application { @@ -67,8 +67,9 @@ public: int run(int argc, char *argv[]); void createProgressInterface(const std::string &type, const std::string &target); + void createPasswordInterface(); private: - ODEInterface *interface; + std::unique_ptr interface; std::unique_ptr progress; }; diff --git a/packaging/ode-ui.spec b/packaging/ode-ui.spec index 496ae3c..e7fd1a6 100755 --- a/packaging/ode-ui.spec +++ b/packaging/ode-ui.spec @@ -86,6 +86,7 @@ ln -sf %{odeapp_home}/bin/org.tizen.ode /usr/bin/ode %{odeapp_home}/res/* %{TZ_SYS_RO_PACKAGES}/org.tizen.ode.xml %{_unitdir}/ode-progress-ui@.service +%{_unitdir}/ode-external-lock.service ## Secure Erase Application Package ################################ %package -n org.tizen.secure-erase