diff -r d5e927d5853b -r 7cee158cb8cd javauis/coreui_akn/src/coreuijni.cpp --- a/javauis/coreui_akn/src/coreuijni.cpp Tue Sep 14 21:06:50 2010 +0300 +++ b/javauis/coreui_akn/src/coreuijni.cpp Wed Sep 15 12:05:25 2010 +0300 @@ -17,6 +17,8 @@ #include "com_nokia_mj_impl_coreuiavkon_CoreUiImpl.h" +#include + #include "logger.h" #include "coreuiavkonimpl.h" #include "javauiavkonimpl.h" @@ -143,6 +145,17 @@ return success; } +void hideFromTaskManager(TBool aHide) +{ + CApaWindowGroupName* wgName = java::ui::CoreUiAvkonLcdui::getInstance().getWindowGroupName(); + if (wgName) + { + wgName->SetHidden(aHide); + // Refresh displayed name in tasklist + wgName->SetWindowGroupName(CCoeEnv::Static()->RootWin()); + } +} + void bringToForeGround() { CCoeEnv::Static()->RootWin().SetOrdinalPosition(0); @@ -219,3 +232,36 @@ } return fg; } + + +JNIEXPORT void JNICALL Java_com_nokia_mj_impl_coreuiavkon_CoreUiImpl__1hideApplication +(JNIEnv* env, jobject peer, jboolean hide) +{ + try + { + if (CoreUiAvkonImpl::isCoreUiCreated()) + { + int esHandle = CoreUiAvkonImpl::getInstanceImpl().getLcduiSupport().getEventServerHandle(); + if (esHandle > 0) + { + int handle = CoreUiEventSource::New(*env, peer, esHandle); + if (handle > 0) + { + CoreUiEventSource* es = JavaUnhand(handle); + es->ExecuteV(&hideFromTaskManager, (TBool)hide); + es->Dispose(*env); + } + } + } + } + catch (ExceptionBase& ex) + { + ELOG1(EJavaUI,"ERROR in core UI to hideApplication. ExceptionBase: %s", + ex.toString().c_str()); + } + catch (std::exception& e) + { + ELOG1(EJavaUI,"ERROR in core UI to hideApplication. std::exception: %s", + e.what()); + } +}