mirror of
https://github.com/openharmony/miscservices_inputmethod.git
synced 2026-07-16 07:44:28 -04:00
@@ -45,6 +45,9 @@ namespace MiscServices {
|
||||
napi_ref thisVarRef_;
|
||||
EventListener *first_;
|
||||
EventListener *last_;
|
||||
|
||||
private:
|
||||
static const int LISTENER_TYPTE_MAX_LENGTH = 64;
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
@@ -19,10 +19,10 @@
|
||||
|
||||
#include "utils/log.h"
|
||||
#include "input_method_ability.h"
|
||||
#define LISTENER_TYPTE_MAX_LENGTH 64
|
||||
namespace OHOS {
|
||||
namespace MiscServices {
|
||||
struct EventListener {
|
||||
static const int LISTENER_TYPTE_MAX_LENGTH = 64;
|
||||
char type[LISTENER_TYPTE_MAX_LENGTH] = { 0 };
|
||||
bool isOnce = false;
|
||||
napi_ref handlerRef = nullptr;
|
||||
@@ -181,6 +181,7 @@ namespace MiscServices {
|
||||
uv_work_t *work = new (std::nothrow) uv_work_t;
|
||||
if (work == nullptr) {
|
||||
IMSA_HILOGI("EventTarget::Emit No memory work == nullptr");
|
||||
delete work;
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -190,7 +191,7 @@ namespace MiscServices {
|
||||
work->data = (void *)eventTargetCB;
|
||||
|
||||
int ret = uv_queue_work(loop, work, [](uv_work_t *work) {}, [](uv_work_t *work, int status) {
|
||||
//Js Thread
|
||||
// Js Thread
|
||||
if (work == nullptr) {
|
||||
IMSA_HILOGI("EventTarget::Emit work == nullptr");
|
||||
return;
|
||||
@@ -202,13 +203,15 @@ namespace MiscServices {
|
||||
|
||||
napi_value thisVar = nullptr;
|
||||
napi_get_reference_value(eventTargetCB->env, eventTargetCB->thisVarRef, &thisVar);
|
||||
for (EventListener *eventListener = eventTargetCB->first; eventListener != nullptr; eventListener = eventListener->next) {
|
||||
for (EventListener *eventListener = eventTargetCB->first; eventListener != nullptr;
|
||||
eventListener = eventListener->next) {
|
||||
if (strcmp(eventListener->type, eventTargetCB->type) == 0) {
|
||||
napi_value jsEvent = eventTargetCB->event ? eventTargetCB->event->ToJsObject() : nullptr;
|
||||
napi_value handler = nullptr;
|
||||
napi_value result = nullptr;
|
||||
napi_get_reference_value(eventTargetCB->env, eventListener->handlerRef, &handler);
|
||||
napi_call_function(eventTargetCB->env, thisVar, handler, jsEvent ? 1 : 0, jsEvent ? &jsEvent : nullptr, &result);
|
||||
napi_call_function(eventTargetCB->env, thisVar, handler,
|
||||
jsEvent ? 1 : 0, jsEvent ? &jsEvent : nullptr, &result);
|
||||
if (eventListener->isOnce) {
|
||||
eventTargetCB->eventTarget->Off(eventTargetCB->type, handler);
|
||||
}
|
||||
@@ -219,12 +222,11 @@ namespace MiscServices {
|
||||
if (eventTargetCB) {
|
||||
delete eventTargetCB;
|
||||
}
|
||||
delete work;
|
||||
});
|
||||
if (ret != 0) {
|
||||
IMSA_HILOGI("EventTarget::Emit failed to execute libuv work queue");
|
||||
delete work;
|
||||
}
|
||||
delete work;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -32,6 +32,7 @@ namespace MiscServices {
|
||||
InputMethodAbility::InputMethodAbility() : stop_(false)
|
||||
{
|
||||
writeInputChannel = nullptr;
|
||||
editorAttribute = nullptr;
|
||||
Initialize();
|
||||
OnConnect();
|
||||
}
|
||||
@@ -89,8 +90,9 @@ namespace MiscServices {
|
||||
sptr<IInputMethodCore> stub2 = stub;
|
||||
if (mImms != nullptr) {
|
||||
mImms->setInputMethodCore(stub2);
|
||||
} else {
|
||||
IMSA_HILOGI("InputMethodAbility::OnConnect() mImms is nullptr");
|
||||
}
|
||||
IMSA_HILOGI("InputMethodAbility::OnConnect() mImms is nullptr");
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
|
||||
@@ -19,7 +19,7 @@ namespace OHOS {
|
||||
namespace MiscServices {
|
||||
using namespace ErrorCode;
|
||||
InputMethodAgentProxy::InputMethodAgentProxy(const sptr<IRemoteObject> &object)
|
||||
: IRemoteProxy<IInputMethodAgent>(object)
|
||||
: IRemoteProxy<IInputMethodAgent>(object)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
namespace OHOS {
|
||||
namespace MiscServices {
|
||||
InputMethodCoreProxy::InputMethodCoreProxy(const OHOS::sptr<OHOS::IRemoteObject> &impl)
|
||||
: IRemoteProxy<IInputMethodCore>(impl)
|
||||
: IRemoteProxy<IInputMethodCore>(impl)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
@@ -12,8 +12,6 @@
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
#include <chrono>
|
||||
#include <cstdint>
|
||||
#include "message_handler.h"
|
||||
#include "i_input_data_channel.h"
|
||||
#include "input_method_core_stub.h"
|
||||
|
||||
@@ -22,13 +22,14 @@
|
||||
|
||||
namespace OHOS {
|
||||
namespace MiscServices {
|
||||
class InputClientProxy : public IRemoteProxy<IInputClient> {
|
||||
class InputClientProxy : public IRemoteProxy<IInputClient> {
|
||||
public:
|
||||
explicit InputClientProxy(const sptr<IRemoteObject> &object);
|
||||
~InputClientProxy() = default;
|
||||
DISALLOW_COPY_AND_MOVE(InputClientProxy);
|
||||
|
||||
int32_t onInputReady(int32_t retValue, const sptr<IInputMethodAgent>& agent, const InputChannel *channel) override;
|
||||
int32_t onInputReady(int32_t retValue, const sptr<IInputMethodAgent>& agent,
|
||||
const InputChannel *channel) override;
|
||||
int32_t onInputReleased(int32_t retValue) override;
|
||||
int32_t setDisplayMode(int32_t mode) override;
|
||||
|
||||
|
||||
@@ -159,7 +159,7 @@ using namespace MessageID;
|
||||
void InputMethodController::Attach(sptr<OnTextChangedListener> &listener)
|
||||
{
|
||||
PrepareInput(0, mClient, mInputDataChannel, mAttribute);
|
||||
textListener=listener;
|
||||
textListener = listener;
|
||||
}
|
||||
|
||||
void InputMethodController::ShowTextInput()
|
||||
|
||||
@@ -34,7 +34,7 @@ declare namespace inputMethodEngine {
|
||||
function DeleteBackward(length: number, callback: () => void): void;
|
||||
function DeleteBackward(length: number): Promise<void>;
|
||||
|
||||
function HideKeyboardSelf(callback: callback: () => void): void;
|
||||
function HideKeyboardSelf(callback: () => void): void;
|
||||
function HideKeyboardSelf(): Promise<void>;
|
||||
}
|
||||
|
||||
|
||||
@@ -56,7 +56,6 @@ namespace OHOS {
|
||||
InputMethodProperty *inputMethodProperty) = 0;
|
||||
virtual int32_t getInputMethodSetting(int userId, InputMethodSetting *inputMethodSetting) = 0;
|
||||
virtual int32_t setInputMethodSetting(int userId, const InputMethodSetting& inputMethodSetting) = 0;
|
||||
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
@@ -32,7 +32,6 @@ namespace MiscServices {
|
||||
const static std::u16string CURRENT_SYS_KEYBOARD_TYPE_TAG; // default keyboard type for security IME
|
||||
const static std::u16string SYSTEM_LOCALE_TAG; // locale list supported in the system
|
||||
|
||||
|
||||
InputMethodSetting();
|
||||
~InputMethodSetting();
|
||||
InputMethodSetting(const InputMethodSetting& inputMethodSetting);
|
||||
|
||||
@@ -26,7 +26,8 @@ namespace OHOS {
|
||||
namespace MiscServices {
|
||||
class InputMethodSystemAbilityStub : public IRemoteStub<IInputMethodSystemAbility> {
|
||||
public:
|
||||
int32_t OnRemoteRequest(uint32_t code, MessageParcel &data, MessageParcel &reply, MessageOption &option) override;
|
||||
int32_t OnRemoteRequest(uint32_t code, MessageParcel &data, MessageParcel &reply,
|
||||
MessageOption &option) override;
|
||||
|
||||
virtual void prepareInput(MessageParcel& data) override;
|
||||
virtual void releaseInput(MessageParcel& data) override;
|
||||
|
||||
@@ -58,7 +58,7 @@ namespace MessageID {
|
||||
MSG_ID_SHELL_COMMAND, // shell command
|
||||
MSG_ID_EXIT_SERVICE, // exit service
|
||||
|
||||
//the request from IMSA to IMC
|
||||
// the request from IMSA to IMC
|
||||
MSG_ID_INSERT_CHAR,
|
||||
MSG_ID_DELETE_BACKWARD,
|
||||
MSG_ID_CLOSE,
|
||||
|
||||
@@ -125,6 +125,7 @@ namespace MiscServices {
|
||||
int IME_ERROR_CODE = 3;
|
||||
int COMMON_COUNT_THREE_HUNDRED = 300;
|
||||
int SLEEP_TIME = 300000;
|
||||
int SLEEP_TIME_MORE = 1600000;
|
||||
|
||||
InputMethodProperty *currentIme[MAX_IME]; // 0 - the default ime. 1 - security ime
|
||||
|
||||
|
||||
@@ -19,7 +19,6 @@
|
||||
#define FM_IMMS_PROJECT_UTILS_H
|
||||
|
||||
#include <string>
|
||||
#include <codecvt>
|
||||
#include <locale>
|
||||
#include <iostream>
|
||||
|
||||
@@ -27,10 +26,12 @@ namespace OHOS {
|
||||
namespace MiscServices {
|
||||
class Utils {
|
||||
public:
|
||||
static std::string to_utf8(std::u16string str16) {
|
||||
static std::string to_utf8(std::u16string str16)
|
||||
{
|
||||
return std::wstring_convert<std::codecvt_utf8_utf16<char16_t>, char16_t> {}.to_bytes(str16);
|
||||
}
|
||||
static std::u16string to_utf16(std::string str) {
|
||||
static std::u16string to_utf16(std::string str)
|
||||
{
|
||||
return std::wstring_convert<std::codecvt_utf8_utf16<char16_t>, char16_t> {}.from_bytes(str);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -21,6 +21,7 @@ namespace MiscServices {
|
||||
*/
|
||||
InputAttribute::InputAttribute() : enterKeyType(0), inputOption(0)
|
||||
{
|
||||
inputPattern = PATTERN_TEXT;
|
||||
}
|
||||
|
||||
/*! Constructor
|
||||
|
||||
@@ -22,6 +22,7 @@ namespace MiscServices {
|
||||
InputMethodAbilityConnectionStub::InputMethodAbilityConnectionStub(const int index)
|
||||
{
|
||||
mIndex = index;
|
||||
messageHandler = nullptr;
|
||||
}
|
||||
|
||||
InputMethodAbilityConnectionStub::~InputMethodAbilityConnectionStub()
|
||||
|
||||
@@ -22,6 +22,7 @@ namespace MiscServices {
|
||||
*/
|
||||
InputMethodProperty::InputMethodProperty()
|
||||
{
|
||||
mDefaultImeId = 0;
|
||||
}
|
||||
|
||||
/*! Destructor
|
||||
|
||||
@@ -58,7 +58,7 @@ namespace MiscServices {
|
||||
}
|
||||
|
||||
std::map<int32_t, PerUserSession*>::const_iterator it;
|
||||
for (it = userSessions.cbegin(); it != userSessions.cend();) {
|
||||
for (it = userSessions.cbegin(); it != userSessions.cend(); ) {
|
||||
PerUserSession *session = it->second;
|
||||
it = userSessions.erase(it);
|
||||
delete session;
|
||||
@@ -66,7 +66,7 @@ namespace MiscServices {
|
||||
}
|
||||
userSessions.clear();
|
||||
std::map<int32_t, PerUserSetting*>::const_iterator it1;
|
||||
for (it1 = userSettings.cbegin(); it1 != userSettings.cend();) {
|
||||
for (it1 = userSettings.cbegin(); it1 != userSettings.cend(); ) {
|
||||
PerUserSetting *setting = it1->second;
|
||||
it1 = userSettings.erase(it1);
|
||||
delete setting;
|
||||
@@ -74,7 +74,7 @@ namespace MiscServices {
|
||||
}
|
||||
userSettings.clear();
|
||||
std::map<int32_t, MessageHandler*>::const_iterator it2;
|
||||
for (it2 = msgHandlers.cbegin(); it2 != msgHandlers.cend();) {
|
||||
for (it2 = msgHandlers.cbegin(); it2 != msgHandlers.cend(); ) {
|
||||
MessageHandler *handler = it2->second;
|
||||
it2 = msgHandlers.erase(it2);
|
||||
delete handler;
|
||||
|
||||
@@ -110,7 +110,6 @@ namespace MiscServices {
|
||||
} else {
|
||||
mHashCode = ID_NONE;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void KeyboardType::setLabelId(int32_t labelId)
|
||||
|
||||
@@ -12,15 +12,13 @@
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
#include "unistd.h"
|
||||
#include "unistd.h" // usleep
|
||||
#include "platform.h"
|
||||
#include "parcel.h"
|
||||
#include "message_parcel.h"
|
||||
#include "utils.h"
|
||||
#include "want.h"
|
||||
#include "input_method_ability_connection_stub.h"
|
||||
#include <vector>
|
||||
#include "peruser_session.h"
|
||||
#include "ability_connect_callback_proxy.h"
|
||||
#include "ability_manager_interface.h"
|
||||
@@ -713,7 +711,7 @@ namespace MiscServices {
|
||||
parcel->WriteInt32(index);
|
||||
parcel->WriteString16(currentIme[index]->mImeId);
|
||||
Message *msg = new Message(MSG_ID_RESTART_IMS, parcel);
|
||||
usleep(1600*1000); // wait that PACKAGE_REMOVED message is received if this ime has been removed
|
||||
usleep(SLEEP_TIME_MORE); // wait that PACKAGE_REMOVED message is received if this ime has been removed
|
||||
MessageHandler::Instance()->SendMessage(msg);
|
||||
}
|
||||
IMSA_HILOGI("End...[%{public}d]\n", userId_);
|
||||
@@ -995,7 +993,7 @@ namespace MiscServices {
|
||||
time_t now = time(0);
|
||||
double diffSeconds = difftime(now, past[imeIndex]);
|
||||
|
||||
//time difference is more than 5 minutes, reset time and error num;
|
||||
// time difference is more than 5 minutes, reset time and error num;
|
||||
if (diffSeconds > COMMON_COUNT_THREE_HUNDRED) {
|
||||
past[imeIndex] = now;
|
||||
errorNum[imeIndex] = 1;
|
||||
|
||||
@@ -12,8 +12,8 @@
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
#include "unistd.h"
|
||||
|
||||
#include "unistd.h" // usleep
|
||||
#include "peruser_setting.h"
|
||||
#include "platform.h"
|
||||
#include "utils.h"
|
||||
|
||||
@@ -76,7 +76,7 @@ namespace MiscServices {
|
||||
return nullptr;
|
||||
}
|
||||
int code = reply.ReadException();
|
||||
if (code != 0) {// code = 0, means no exception.
|
||||
if (code != 0) { // code = 0, means no exception.
|
||||
LOG_DEBUG("exception code : %d\n", code);
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user