Как начать рефакторинг сервера активности Android и интерфейса пользовательского интерфейса, используя шаблон проектирования? - PullRequest
0 голосов
/ 10 ноября 2019

Я делаю приложение, в котором есть два модуля. 1. Модуль пользовательского интерфейса (Зарегистрируйте слушателя) 2. Серверный модуль (Сделайте слушателя)

Эти два модуля взаимодействуют с обратными вызовами.

Например,: Когда я нажимаю кнопку в пользовательском интерфейсе, я вызываю API серверного модуля, а затем, когда он успешно выполняет свою работу, сервер отправляет обратный вызов, который слушал пользовательский интерфейс. Код пользовательского интерфейса: server.updatePhoneNumber (newNumber) // Я отключаю здесь кнопку, чтобы избежать более одного нажатия на код обратного вызова пользовательского интерфейса:

@override

onUpdatePhoneNumber(int result) {

       // using runOnUiThread()

       // do or update UI accordingly, generally I enable the button here again

}

Я сделал это, но весь код находится в моем MainActivity.javaМне нужно кодировать весь модуль пользовательского интерфейса в соответствии с MVVM или другим шаблоном. Но я не могу этого сделать.

РЕГИСТРАЦИЯ ЛИСТЕНЕРА

ServerImpl.getInstance(this).registerEventListener(this);

ВЫЗОВ СЕРВЕРА

@Override
    public boolean onPreferenceClick(Preference preference) {
     ServerImpl.getInstance(this).setDeviceServiceMode(pref.getDeviceId(), isChecked);
// DISABLE BUTTON
}

ЭТО ЗВОНОК

@Override
    public void onSetDeviceServiceMode(String deviceId, boolean result, ServerInterface.Reason errorCode, boolean currServiceMode) {
        MdecLogger.d(LOG_TAG, "onSetDeviceServiceMode: deviceId = " + deviceId + " result = " + result + " errorCode = " + errorCode + " currServiceMode = " + currServiceMode);
        int switchState = 0;
        if (currServiceMode)
            switchState = 1;
        runOnUiThread(new Runnable() {
            @Override
            public void run() {
                if (result) {

                    // ENABLE BUTTON
                } else {
                    Toast.makeText(mContext, R.string.server_connect_failed_msg, Toast.LENGTH_LONG).show();
                }
            }
        });
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...