diff --git a/Source/Android/Bridge/JavaBridge.cpp b/Source/Android/Bridge/JavaBridge.cpp index 28eb30e60..13d390d29 100644 --- a/Source/Android/Bridge/JavaBridge.cpp +++ b/Source/Android/Bridge/JavaBridge.cpp @@ -134,18 +134,6 @@ void JavaBridge::DisplayMessage(const char * Message) } } -void JavaBridge::DisplayMessage2(const char * Message) -{ - JNIEnv *env = Android_JNI_GetEnv(); - if (env) - { - jstring j_Message = env->NewStringUTF(Message); - jmethodID midShowToast = env->GetStaticMethodID(m_NotifierClass, "showToast", "(Landroid/app/Activity;Ljava/lang/String;)V"); - env->CallStaticVoidMethod(m_NotifierClass, midShowToast,g_Activity,j_Message); - env->DeleteLocalRef(j_Message); - } -} - void JavaBridge::EmulationStopped(void) { JNIEnv *env = Android_JNI_GetEnv(); diff --git a/Source/Android/Bridge/JavaBridge.h b/Source/Android/Bridge/JavaBridge.h index 333d1dea1..52f07b80f 100644 --- a/Source/Android/Bridge/JavaBridge.h +++ b/Source/Android/Bridge/JavaBridge.h @@ -24,7 +24,6 @@ public: //Notification void DisplayError(const char * Message); void DisplayMessage(const char * Message); - void DisplayMessage2(const char * Message); void EmulationStopped(void); private: diff --git a/Source/Android/Bridge/NotificationClass.cpp b/Source/Android/Bridge/NotificationClass.cpp index 8dce6ab3c..07d776385 100644 --- a/Source/Android/Bridge/NotificationClass.cpp +++ b/Source/Android/Bridge/NotificationClass.cpp @@ -28,7 +28,7 @@ CNotificationImp & Notify(void) } CNotificationImp::CNotificationImp() : - m_NextMsg(0) +m_NextMsg(0) { } @@ -82,24 +82,25 @@ void CNotificationImp::DisplayMessage(int DisplayTime, const char * Message) con #ifdef ANDROID if (g_JavaBridge == NULL) { return; } - /*if (m_NextMsg > 0 || DisplayTime > 0) + if (m_NextMsg > 0 || DisplayTime > 0) { - time_t Now = time(NULL); - if (DisplayTime == 0 && Now < m_NextMsg) - { - return; + time_t Now = time(NULL); + if (DisplayTime == 0 && Now < m_NextMsg) + { + return; + } + if (DisplayTime > 0) + { + m_NextMsg = Now + DisplayTime; + } + if (m_NextMsg == 0) + { + m_NextMsg = 0; + } } - if (DisplayTime > 0) - { - m_NextMsg = Now + DisplayTime; - } - if (m_NextMsg == 0) - { - m_NextMsg = 0; - } - }*/ + m_Message[0] = Message; + UpdateMessage(); - g_JavaBridge->DisplayMessage(Message); #else // ignore warning usage DisplayTime = DisplayTime; @@ -111,8 +112,9 @@ void CNotificationImp::DisplayMessage2(const char * Message) const { #ifdef ANDROID if (g_JavaBridge == NULL) { return; } + m_Message[1] = Message; - g_JavaBridge->DisplayMessage2(Message); + UpdateMessage(); #else // ignore warning usage Message = Message; @@ -148,4 +150,20 @@ bool CNotificationImp::ProcessGuiMessages(void) const void CNotificationImp::ChangeFullScreen(void) const { +} + +void CNotificationImp::UpdateMessage(void) const +{ +#ifdef ANDROID + std::string message = m_Message[0]; + if (message.length() > 0 && m_Message[1].length()) + { + message += " "; + } + message += m_Message[1]; + if (message.length() > 0) + { + g_JavaBridge->DisplayMessage(message.c_str()); + } +#endif } \ No newline at end of file diff --git a/Source/Android/Bridge/NotificationClass.h b/Source/Android/Bridge/NotificationClass.h index f51b51584..e11eb647e 100644 --- a/Source/Android/Bridge/NotificationClass.h +++ b/Source/Android/Bridge/NotificationClass.h @@ -17,7 +17,7 @@ class CNotificationImp : { public: CNotificationImp(void); - virtual ~CNotificationImp(); + virtual ~CNotificationImp(); //Error Messages void DisplayError(const char * Message) const; @@ -44,7 +44,10 @@ private: CNotificationImp(const CNotificationImp&); // Disable copy constructor CNotificationImp& operator=(const CNotificationImp&); // Disable assignment + void UpdateMessage(void) const; + mutable time_t m_NextMsg; + mutable std::string m_Message[2]; }; CNotificationImp & Notify(void); \ No newline at end of file