private:
//internal function to process AppControl request.
void ProcessAppControlRequest(RequestId reqId, const Tizen::Base::String& operationId,const Tizen::Base::Collection::IMap* pArgsMap);
+ //internal function to process AppControl request.
+ void ProcessWebAppControlRequest(RequestId reqId, const Tizen::Base::String& operationId,const Tizen::Base::String* pUriData);
+
//internal function to handle AppControl Request for Incoming call.
void HandleIncomingCallAppControlRequest(RequestId reqId,const Tizen::Base::Collection::IMap* pArgsMap);
//internal function to handle AppControl Request for dial call.
*/
#include <FUi.h>
+#include <FShell.h>
#include "CallApp.h"
#include "CallAppFrame.h"
#include "CallPresentationModel.h"
using namespace Tizen::Base::Utility;
using namespace Tizen::Base::Collection;
using namespace Tizen::Base::Utility;
+using namespace Tizen::Shell;
CallApp::CallApp(void):__initialSceneId(L""), __pLaunchArgs(null)
CallApp::OnAppControlRequestReceived(RequestId reqId, const String& operationId, const String* pUriData,
const String* pMimeType, const IMap* pExtraData)
{
- AppLogDebug("ENTER");
- //process AppControl parameters
- ProcessAppControlRequest(reqId, operationId, pExtraData);
+ if(pExtraData == null && pUriData != null)
+ {
+ //The request is from web app
+ AppLogDebug("%ls",pUriData->GetPointer());
+ ProcessWebAppControlRequest(reqId, operationId, pUriData);
+ }
+ else
+ {
+ //process AppControl parameters
+ ProcessAppControlRequest(reqId, operationId, pExtraData);
+ }
AppLogDebug("EXIT");
}
void
+CallApp::ProcessWebAppControlRequest(RequestId reqId, const String& operationId,const String* pUriData)
+{
+ //Construct map from string
+ String delim(DELIMITER);
+ StringTokenizer st(*pUriData,delim);
+ String token;
+ HashMap extraData;
+ extraData.Construct();
+ while(st.HasMoreTokens())
+ {
+ String key=L"";
+ String value=L"";
+ st.GetNextToken(token);
+ token.Trim();
+ key.Append(token);
+ if(st.HasMoreTokens())
+ {
+ token.Clear();
+ st.GetNextToken(token);
+ token.Trim();
+ value.Append(token);
+ }
+ extraData.Add(new (std::nothrow) String(key), new (std::nothrow) String(value));
+ }
+
+ //Adding this explicitly as there no other way to invoke call from webapp
+ extraData.Add(new (std::nothrow) String(PARAM_CALL_TYPE), new (std::nothrow) String(PARAM_CALL_VALUE_VOICE));
+
+ ProcessAppControlRequest(reqId,operationId,&extraData);
+
+ extraData.RemoveAll(true);
+}
+
+void
CallApp::ProcessAppControlRequest(RequestId reqId, const String& operationId,const IMap* pArgsMap)
{
AppLogDebug("Enter %ls",operationId.GetPointer());
//this case
if(bTopMost == true)
{
- GetAppFrame()->GetFrame()->SetZOrderGroup(WINDOW_Z_ORDER_GROUP_HIGH);
+ GetAppFrame()->GetFrame()->SetZOrderGroup(WINDOW_Z_ORDER_GROUP_HIGHEST);
if(PowerManager::IsScreenOn() == false)
{
res = PowerManager::TurnScreenOn();