X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=src%2Fapp%2FFApp_AppArg.cpp;h=67ffb4651f84a15ed1051d0214866cccb989cc88;hb=bd37086481f239c8e4c0d2c54bc0683e022c178c;hp=918376083e31d42d073aa8a05be5b5267d3ae083;hpb=27f1388665067f69d5eb64e0cae6bb5f4250beec;p=platform%2Fframework%2Fnative%2Fappfw.git diff --git a/src/app/FApp_AppArg.cpp b/src/app/FApp_AppArg.cpp old mode 100755 new mode 100644 index 9183760..67ffb46 --- a/src/app/FApp_AppArg.cpp +++ b/src/app/FApp_AppArg.cpp @@ -21,22 +21,23 @@ #include #include -#include #include #include #include #include #include +#include #include #include #include #include #include +#include #include - #include + #include #include "FApp_MapDataControlImpl.h" @@ -45,12 +46,11 @@ #include "FApp_AppControlEventArg.h" #include "FApp_AppArg.h" #include "FApp_AppMessageImpl.h" -#include "FAppPkg_PackageManagerImpl.h" +#include "FApp_Aul.h" using namespace Tizen::Base; using namespace Tizen::Base::Collection; using namespace Tizen::Base::Utility; -using namespace Tizen::App::Package; extern "C" int appsvc_allow_transient_app(bundle*, Ecore_X_Window); @@ -70,18 +70,18 @@ static const char OSP_V_REQUEST_TYPE_MAP_QEURY[] = "map_query"; static const char OSP_V_REQUEST_TYPE_MAP_INSERT[] = "map_insert"; static const char OSP_V_REQUEST_TYPE_MAP_UPDATE[] = "map_update"; static const char OSP_V_REQUEST_TYPE_MAP_DELETE[] = "map_delete"; -static const char OSP_V_VERSION_2_1_0_2[] = "ver_2.1.0.2"; +static const char OSP_V_VERSION_2_1_0_3[] = "ver_2.1.0.3"; + static const char BUNDLE_KEY_PREFIX_AUL[] = "__AUL_"; static const char BUNDLE_KEY_PREFIX_SERVICE[] = "__APP_SVC_"; static const char BUNDLE_KEY_PREFIX_OSP[] = "__OSP_"; -const char TIZEN_NOTIFICATION_DATA[] = "http://tizen.org/appcontrol/data/notification"; +static const char BUNDLE_KEY_PREFIX_UG[] = "__UG_"; -static const char SAMSUNG_ACCOUNT_KEY_CLIENT_ID[] = "client_id"; -static const char SAMSUNG_ACCOUNT_KEY_CLIENT_SECRET[] = "client_secret"; -static const char SAMSUNG_ACCOUNT_KEY_SERVICE_CATEGORY[] = "service_category"; +static const char OSP_K_SUBMODE_CALLEE[] = "__OSP_SUB_CALLEE__"; +static const char OSP_K_SERVICE_CALLEE[] = "__OSP_SERVICE_CALLEE__"; -static const char SMS_KEY_SERVICE_CALLER[] = "service_caller"; -static const char SMS_KEY_SERVICE_DATA[] = "service_data"; +const char TIZEN_NOTIFICATION_DATA[] = "http://tizen.org/appcontrol/data/notification"; +const wchar_t LEGACY_OPERATION_MAIN[] = L"osp.operation.MAIN"; _AppArg::_AppArg(void) @@ -105,7 +105,7 @@ _AppArg::Construct(const String& argText) __pBundle = bundle_create(); SysTryReturnResult(NID_APP, __pBundle != null, E_OUT_OF_MEMORY, "Bundle creation failure."); - return CreateLaunchArg(__pBundle, argText); + return CreateNotificationArg(__pBundle, argText); } @@ -293,7 +293,7 @@ _AppArg::GetArgListN(int num) const case _APP_HANDLER_LAUNCH_NORMAL: pList->Add(*new (std::nothrow) String(LEGACY_LAUNCH_REASON_NORMAL)); - pList->Add(*new (std::nothrow) String(L"osp.operation.MAIN")); + pList->Add(*new (std::nothrow) String(LEGACY_OPERATION_MAIN)); break; default: @@ -328,6 +328,8 @@ _AppArg::GetArgMapN(void) const { SysTryReturn(NID_APP, __pBundle != null, null, E_INVALID_STATE, "[E_INVALID_STATE] Improper bundle state."); + //Print(); + HashMap* pHashMap = new (std::nothrow) HashMap(SingleObjectDeleter); SysTryReturn(NID_APP, pHashMap != null, null, E_OUT_OF_MEMORY, "HashMap creation failure."); @@ -341,11 +343,6 @@ _AppArg::GetArgMapN(void) const return null; } - ArrayList* pList = _AppMessageImpl::GetValueArrayN(__pBundle, OSP_K_ARG); - if (pList) - { - pHashMap->Add(new (std::nothrow) String(TIZEN_APPCONTROL_DATA_LEGACY), pList); - } return pHashMap; } @@ -367,6 +364,11 @@ IsInternalKey(const char* pKey) return true; } + if (strncmp(BUNDLE_KEY_PREFIX_UG, pKey, strlen(BUNDLE_KEY_PREFIX_UG)) == 0) + { + return true; + } + return false; } @@ -490,47 +492,6 @@ _AppArg::SetArgList(bundle* pBundle, ArrayList* pList) SysLog(NID_APP, "argument is %s", p); } - String tmp; - p = appsvc_get_data(pBundle, SMS_KEY_SERVICE_CALLER); - if (p) - { - tmp.Format(60, L"%s:%s", SMS_KEY_SERVICE_CALLER, p); - pList->Add(*new (std::nothrow) String(tmp)); - SysLog(NID_APP, "service_caller is %s", p); - } - - p = appsvc_get_data(pBundle, SMS_KEY_SERVICE_DATA); - if (p) - { - tmp.Format(60, L"%s:%s", SMS_KEY_SERVICE_DATA, p); - pList->Add(*new (std::nothrow) String(tmp)); - SysLog(NID_APP, "service_data is set"); - } - - p = appsvc_get_data(pBundle, SAMSUNG_ACCOUNT_KEY_CLIENT_ID); - if (p) - { - tmp.Format(60, L"%s:%s", SAMSUNG_ACCOUNT_KEY_CLIENT_ID, p); - pList->Add(*new (std::nothrow) String(tmp)); - SysLog(NID_APP, "client_id is %s", p); - } - - p = appsvc_get_data(pBundle, SAMSUNG_ACCOUNT_KEY_CLIENT_SECRET); - if (p) - { - tmp.Format(60, L"%s:%s", SAMSUNG_ACCOUNT_KEY_CLIENT_SECRET, p); - pList->Add(*new (std::nothrow) String(tmp)); - SysLog(NID_APP, "client_secret is %s", p); - } - - p = appsvc_get_data(pBundle, SAMSUNG_ACCOUNT_KEY_SERVICE_CATEGORY); - if (p) - { - tmp.Format(60, L"%s:%s", SAMSUNG_ACCOUNT_KEY_SERVICE_CATEGORY, p); - pList->Add(*new (std::nothrow) String(tmp)); - SysLog(NID_APP, "service_category is %s", p); - } - return E_SUCCESS; } @@ -616,22 +577,9 @@ _AppArg::GetCalleeAppId(void) const { const char* pBundleValue = bundle_get_val(__pBundle, AUL_K_CALLEE_APPID); - String retVal = pBundleValue; - - String temp; - // [INFO] ugly code for submode callee - retVal.SubString(11, temp); - if (temp == L"_AppControl") - { - String id; - retVal.SubString(0, 10, id); - const String& name = _PackageManagerImpl::GetInstance()->GetDefaultAppExecutableName(id); - - retVal = id + L'.' + name; - SysLog(NID_APP, "Converted caller Id is %ls", retVal.GetPointer()); - } + const AppId retVal = pBundleValue; - return retVal; + return _Aul::GetRealAppId(retVal); } @@ -886,7 +834,7 @@ _AppArg::GetListN(bundle* b, const char* key) result -_AppArg::CreateLaunchArg(bundle* b, const String& arg) +_AppArg::CreateNotificationArg(bundle* b, const String& arg) { SysAssertf(b != null, "Valid bundle should be supplied"); @@ -894,15 +842,8 @@ _AppArg::CreateLaunchArg(bundle* b, const String& arg) if (!arg.IsEmpty()) { - const char** pSa = new (std::nothrow) const char*[1]; - SysTryReturnResult(NID_APP, pSa != null, E_OUT_OF_MEMORY, "Insufficient memory."); - pSa[0] = _StringConverter::CopyToCharArrayN(arg); - bundle_add_str_array(pb, OSP_K_ARG, pSa, 1); - - bundle_add(pb, TIZEN_NOTIFICATION_DATA, pSa[0]); - - delete[] pSa[0]; - delete[] pSa; + std::unique_ptr pStr(_StringConverter::CopyToCharArrayN(arg)); + bundle_add(pb, TIZEN_NOTIFICATION_DATA, pStr.get()); } bundle_add(pb, OSP_K_LAUNCH_TYPE, OSP_V_LAUNCH_TYPE_LAUNCH); @@ -1030,7 +971,8 @@ _AppArg::CreateSqlDataControlArg(bundle* b, const _SqlDataControlImpl& dc, _Data char dataControlRequestType[MAX_LEN_DATA_CONTROL_REQ_TYPE] = {0, }; snprintf(dataControlRequestType, MAX_LEN_DATA_CONTROL_REQ_TYPE, "%d", static_cast(requestType)); bundle_add(b, OSP_K_DATACONTROL_REQUEST_TYPE, dataControlRequestType); - bundle_add(b, OSP_K_DATACONTROL_PROTOCOL_VERSION, OSP_V_VERSION_2_1_0_2); + bundle_add(b, OSP_K_DATACONTROL_PROTOCOL_VERSION, OSP_V_VERSION_2_1_0_3); + bundle_add(b, AUL_K_NO_CANCEL, "1"); std::unique_ptr pProvider(_StringConverter::CopyToCharArrayN(dc.__providerId)); if (pProvider) @@ -1055,7 +997,8 @@ _AppArg::CreateMapDataControlArg(bundle* b, const _MapDataControlImpl& dc, _Data char dataControlRequestType[MAX_LEN_DATA_CONTROL_REQ_TYPE] = {0, }; snprintf(dataControlRequestType, MAX_LEN_DATA_CONTROL_REQ_TYPE, "%d", static_cast < int >(requestType)); bundle_add(b, OSP_K_DATACONTROL_REQUEST_TYPE, dataControlRequestType); - bundle_add(b, OSP_K_DATACONTROL_PROTOCOL_VERSION, OSP_V_VERSION_2_1_0_2); + bundle_add(b, OSP_K_DATACONTROL_PROTOCOL_VERSION, OSP_V_VERSION_2_1_0_3); + bundle_add(b, AUL_K_NO_CANCEL, "1"); std::unique_ptr pProvider(_StringConverter::CopyToCharArrayN(dc.__providerId)); if (pProvider) @@ -1113,21 +1056,10 @@ _AppArg::CreateBundleFromSvc(void* svc) bundle* _AppArg::GetBundleFromSvc(void* svc) { - struct DummyS - { - int dummy1; - int dummy2; - bundle* pData; - }; + bundle* pBundle = NULL; + int ret = service_to_bundle(static_cast(svc), &pBundle); - DummyS* pDummy = static_cast(svc); - - if (pDummy && pDummy->pData) - { - return pDummy->pData; - } - - return NULL; + return (ret == SERVICE_ERROR_NONE) ? pBundle : NULL; } @@ -1211,6 +1143,37 @@ _AppArg::UpdateKeyValue(bundle* pBundle, const char* pKey, const String& value) } } + +void +_AppArg::UpdateSubMode(bundle* pBundle) +{ + appsvc_add_data(pBundle, OSP_K_SUBMODE_CALLEE, "1"); +} + + +bool +_AppArg::IsSubMode(bundle* pBundle) +{ + const char* p = appsvc_get_data(pBundle, OSP_K_SUBMODE_CALLEE); + return (p && (strncmp(p, "1", sizeof(char)) == 0)); +} + + +void +_AppArg::UpdateServiceApp(bundle* pBundle) +{ + appsvc_add_data(pBundle, OSP_K_SERVICE_CALLEE, "1"); +} + + +bool +_AppArg::IsServiceApp(bundle* pBundle) +{ + const char* p = appsvc_get_data(pBundle, OSP_K_SERVICE_CALLEE); + return (p && (strncmp(p, "1", sizeof(char)) == 0)); +} + + int _AppArg::GetRequestIdFromBundle(bundle* pBundle) { @@ -1281,49 +1244,6 @@ _AppArg::Print(bundle* b) return; } - const char* p = null; - p = appsvc_get_data(b, AUL_K_CALLER_PID); - if (p) - { - SysLog(NID_APP, "CallerPId[%s]", p); - } - - p = appsvc_get_data(b, AUL_K_WAIT_RESULT); - if (p) - { - SysLog(NID_APP, "WaitResult[%s]", p); - } - - p = appsvc_get_data(b, OSP_K_COND); - if (p) - { - SysLog(NID_APP, "Condition[%s]", p); - } - - p = appsvc_get_operation(b); - if (p) - { - SysLog(NID_APP, "operation[%s]", p); - } - - p = appsvc_get_uri(b); - if (p) - { - SysLog(NID_APP, "uri[%s]", p); - } - - p = appsvc_get_mime(b); - if (p) - { - SysLog(NID_APP, "mime[%s]", p); - } - - p = appsvc_get_category(b); - if (p) - { - SysLog(NID_APP, "Category[%s]", p); - } - bundle_foreach(b, BundlePrintIterFnCb, NULL); int len = 0;