[Android] Update handling of Display Message

This commit is contained in:
zilmar 2016-08-12 23:46:23 +10:00
parent a4eaa6bbcf
commit 0b909905d0
4 changed files with 39 additions and 31 deletions

View File

@ -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();

View File

@ -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:

View File

@ -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
}

View File

@ -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);