Remove async-input from clients

This commit is contained in:
Armin Novak
2022-03-08 13:24:37 +01:00
committed by akallabeth
parent d337ea9c16
commit 71aac852d6
34 changed files with 9 additions and 496 deletions

View File

@@ -282,7 +282,6 @@ public class BookmarkBase implements Parcelable, Cloneable
editor.putBoolean("bookmark.console_mode", advancedSettings.getConsoleMode());
editor.putBoolean("bookmark.async_channel", debugSettings.getAsyncChannel());
editor.putBoolean("bookmark.async_input", debugSettings.getAsyncInput());
editor.putBoolean("bookmark.async_update", debugSettings.getAsyncUpdate());
editor.putString("bookmark.debug_level", debugSettings.getDebugLevel());
@@ -355,7 +354,6 @@ public class BookmarkBase implements Parcelable, Cloneable
advancedSettings.setConsoleMode(sharedPrefs.getBoolean("bookmark.console_mode", false));
debugSettings.setAsyncChannel(sharedPrefs.getBoolean("bookmark.async_channel", true));
debugSettings.setAsyncInput(sharedPrefs.getBoolean("bookmark.async_input", true));
debugSettings.setAsyncUpdate(sharedPrefs.getBoolean("bookmark.async_update", true));
debugSettings.setDebugLevel(sharedPrefs.getString("bookmark.debug_level", "INFO"));
}
@@ -756,7 +754,6 @@ public class BookmarkBase implements Parcelable, Cloneable
private String debug;
private boolean asyncChannel;
private boolean asyncTransport;
private boolean asyncInput;
private boolean asyncUpdate;
public DebugSettings()
@@ -769,7 +766,6 @@ public class BookmarkBase implements Parcelable, Cloneable
{
asyncChannel = parcel.readInt() == 1;
asyncTransport = parcel.readInt() == 1;
asyncInput = parcel.readInt() == 1;
asyncUpdate = parcel.readInt() == 1;
debug = parcel.readString();
}
@@ -779,7 +775,6 @@ public class BookmarkBase implements Parcelable, Cloneable
debug = "INFO";
asyncChannel = true;
asyncTransport = false;
asyncInput = true;
asyncUpdate = true;
}
@@ -819,16 +814,6 @@ public class BookmarkBase implements Parcelable, Cloneable
asyncUpdate = enabled;
}
public boolean getAsyncInput()
{
return asyncInput;
}
public void setAsyncInput(boolean enabled)
{
asyncInput = enabled;
}
public boolean getAsyncChannel()
{
return asyncChannel;
@@ -848,7 +833,6 @@ public class BookmarkBase implements Parcelable, Cloneable
{
out.writeInt(asyncChannel ? 1 : 0);
out.writeInt(asyncTransport ? 1 : 0);
out.writeInt(asyncInput ? 1 : 0);
out.writeInt(asyncUpdate ? 1 : 0);
out.writeString(debug);
}

View File

@@ -546,7 +546,6 @@ public class BookmarkActivity extends PreferenceActivity implements OnSharedPref
debugSettingsChanged(sharedPreferences, "bookmark.debug_level");
debugSettingsChanged(sharedPreferences, "bookmark.async_channel");
debugSettingsChanged(sharedPreferences, "bookmark.async_update");
debugSettingsChanged(sharedPreferences, "bookmark.async_input");
}
private void initGatewaySettings(SharedPreferences sharedPreferences)
@@ -578,12 +577,6 @@ public class BookmarkActivity extends PreferenceActivity implements OnSharedPref
Preference pref = findPreference("bookmark.async_update");
pref.setDefaultValue(enabled);
}
else if (key.equals("bookmark.async_input"))
{
boolean enabled = sharedPreferences.getBoolean(key, false);
Preference pref = findPreference("bookmark.async_input");
pref.setDefaultValue(enabled);
}
}
private void gatewaySettingsChanged(SharedPreferences sharedPreferences, String key)

View File

@@ -117,8 +117,6 @@ public abstract class BookmarkBaseGateway
values.put(BookmarkDB.DB_KEY_BOOKMARK_ASYNC_CHANNEL,
bookmark.getDebugSettings().getAsyncChannel());
values.put(BookmarkDB.DB_KEY_BOOKMARK_ASYNC_INPUT,
bookmark.getDebugSettings().getAsyncInput());
values.put(BookmarkDB.DB_KEY_BOOKMARK_ASYNC_UPDATE,
bookmark.getDebugSettings().getAsyncUpdate());
values.put(BookmarkDB.DB_KEY_BOOKMARK_DEBUG_LEVEL,
@@ -172,8 +170,6 @@ public abstract class BookmarkBaseGateway
values.put(BookmarkDB.DB_KEY_BOOKMARK_ASYNC_CHANNEL,
bookmark.getDebugSettings().getAsyncChannel());
values.put(BookmarkDB.DB_KEY_BOOKMARK_ASYNC_INPUT,
bookmark.getDebugSettings().getAsyncInput());
values.put(BookmarkDB.DB_KEY_BOOKMARK_ASYNC_UPDATE,
bookmark.getDebugSettings().getAsyncUpdate());
values.put(BookmarkDB.DB_KEY_BOOKMARK_DEBUG_LEVEL,
@@ -327,7 +323,6 @@ public abstract class BookmarkBaseGateway
columns.add(BookmarkDB.DB_KEY_BOOKMARK_DEBUG_LEVEL);
columns.add(BookmarkDB.DB_KEY_BOOKMARK_ASYNC_CHANNEL);
columns.add(BookmarkDB.DB_KEY_BOOKMARK_ASYNC_UPDATE);
columns.add(BookmarkDB.DB_KEY_BOOKMARK_ASYNC_INPUT);
addBookmarkSpecificColumns(columns);
}
@@ -442,8 +437,6 @@ public abstract class BookmarkBaseGateway
bookmark.getDebugSettings().setAsyncChannel(
cursor.getInt(cursor.getColumnIndex(BookmarkDB.DB_KEY_BOOKMARK_ASYNC_CHANNEL)) == 1);
bookmark.getDebugSettings().setAsyncInput(
cursor.getInt(cursor.getColumnIndex(BookmarkDB.DB_KEY_BOOKMARK_ASYNC_INPUT)) == 1);
bookmark.getDebugSettings().setAsyncUpdate(
cursor.getInt(cursor.getColumnIndex(BookmarkDB.DB_KEY_BOOKMARK_ASYNC_UPDATE)) == 1);
bookmark.getDebugSettings().setDebugLevel(

View File

@@ -25,7 +25,7 @@ import java.util.List;
public class BookmarkDB extends SQLiteOpenHelper
{
public static final String ID = BaseColumns._ID;
private static final int DB_VERSION = 9;
private static final int DB_VERSION = 10;
private static final String DB_BACKUP_PREFIX = "temp_";
private static final String DB_NAME = "bookmarks.db";
static final String DB_TABLE_BOOKMARK = "tbl_manual_bookmarks";
@@ -68,7 +68,6 @@ public class BookmarkDB extends SQLiteOpenHelper
static final String DB_KEY_BOOKMARK_REMOTE_PROGRAM = "remote_program";
static final String DB_KEY_BOOKMARK_WORK_DIR = "work_dir";
static final String DB_KEY_BOOKMARK_ASYNC_CHANNEL = "async_channel";
static final String DB_KEY_BOOKMARK_ASYNC_INPUT = "async_input";
static final String DB_KEY_BOOKMARK_ASYNC_UPDATE = "async_update";
static final String DB_KEY_BOOKMARK_CONSOLE_MODE = "console_mode";
static final String DB_KEY_BOOKMARK_DEBUG_LEVEL = "debug_level";
@@ -282,7 +281,6 @@ public class BookmarkDB extends SQLiteOpenHelper
bookmarkValues.put(DB_KEY_BOOKMARK_REMOTE_PROGRAM, "");
bookmarkValues.put(DB_KEY_BOOKMARK_WORK_DIR, "");
bookmarkValues.put(DB_KEY_BOOKMARK_ASYNC_CHANNEL, 1);
bookmarkValues.put(DB_KEY_BOOKMARK_ASYNC_INPUT, 1);
bookmarkValues.put(DB_KEY_BOOKMARK_ASYNC_UPDATE, 1);
bookmarkValues.put(DB_KEY_BOOKMARK_CONSOLE_MODE, 0);
bookmarkValues.put(DB_KEY_BOOKMARK_DEBUG_LEVEL, "INFO");
@@ -317,8 +315,7 @@ public class BookmarkDB extends SQLiteOpenHelper
DB_KEY_BOOKMARK_REDIRECT_MICROPHONE + " INTEGER DEFAULT 0, " +
DB_KEY_BOOKMARK_SECURITY + " INTEGER, " + DB_KEY_BOOKMARK_REMOTE_PROGRAM +
" TEXT, " + DB_KEY_BOOKMARK_WORK_DIR + " TEXT, " + DB_KEY_BOOKMARK_ASYNC_CHANNEL +
" INTEGER DEFAULT 0, " + DB_KEY_BOOKMARK_ASYNC_INPUT + " INTEGER DEFAULT 0, " +
DB_KEY_BOOKMARK_ASYNC_UPDATE + " INTEGER DEFAULT 0, " +
" INTEGER DEFAULT 0, " + DB_KEY_BOOKMARK_ASYNC_UPDATE + " INTEGER DEFAULT 0, " +
DB_KEY_BOOKMARK_CONSOLE_MODE + " INTEGER, " + DB_KEY_BOOKMARK_DEBUG_LEVEL +
" TEXT DEFAULT 'INFO', "

View File

@@ -333,7 +333,6 @@ public class LibFreeRDP
}
args.add(addFlag("async-channels", debug.getAsyncChannel()));
args.add(addFlag("async-input", debug.getAsyncInput()));
args.add(addFlag("async-update", debug.getAsyncUpdate()));
if (advanced.getRedirectSDCard())

View File

@@ -113,7 +113,6 @@
<string name="settings_remote_program">Remote Program</string>
<string name="settings_work_dir">Arbeitsverzeichnis</string>
<string name="settings_async_channel">Async channel</string>
<string name="settings_async_input">Async input</string>
<string name="settings_async_update">Async update</string>
<string name="settings_console_mode">Konsolenmodus</string>
<!-- App settings strings -->

View File

@@ -114,7 +114,6 @@
<string name="settings_remote_program">Programa Remoto</string>
<string name="settings_work_dir">Directorio de trabajo</string>
<string name="settings_async_channel">Async channel</string>
<string name="settings_async_input">Async input</string>
<string name="settings_async_update">Async update</string>
<string name="settings_console_mode">Modo Consola</string>
<!-- App settings strings -->

View File

@@ -113,7 +113,6 @@
<string name="settings_remote_program">"Lancement de programme"</string>
<string name="settings_work_dir">"Répertoire de travail"</string>
<string name="settings_async_channel">Async channel</string>
<string name="settings_async_input">Async input</string>
<string name="settings_async_update">Async update</string>
<string name="settings_console_mode">"Mode console"</string>
<!-- App settings strings -->

View File

@@ -115,7 +115,6 @@
<string name="settings_remote_program">遠隔実行するプログラム</string>
<string name="settings_work_dir">作業フォルダ</string>
<string name="settings_async_channel">Async channel</string>
<string name="settings_async_input">Async input</string>
<string name="settings_async_update">Async update</string>
<string name="settings_console_mode">コンソールモード</string>
<!-- App settings strings -->

View File

@@ -154,7 +154,6 @@
<string name="settings_remote_program">리모트 프로그램</string>
<string name="settings_work_dir">작업 디렉터리</string>
<string name="settings_async_channel">비동기 채널</string>
<string name="settings_async_input">비동기 입력</string>
<string name="settings_async_update">비동기 갱신</string>
<string name="settings_console_mode">콘솔 모드</string>
<!-- App settings strings -->

View File

@@ -154,7 +154,6 @@
<string name="settings_remote_program">Fjernprogram</string>
<string name="settings_work_dir">Arbeidsmappe</string>
<string name="settings_async_channel">Asynk-kanal</string>
<string name="settings_async_input">Asynk-inndata</string>
<string name="settings_async_update">Asynk-oppdatering</string>
<string name="settings_console_mode">Konsollmodus</string>
<!-- App settings strings -->

View File

@@ -114,7 +114,6 @@
<string name="settings_remote_program">Extern programma</string>
<string name="settings_work_dir">Werkmap</string>
<string name="settings_async_channel">Async channel</string>
<string name="settings_async_input">Async input</string>
<string name="settings_async_update">Async update</string>
<string name="settings_console_mode">Console modus</string>
<!-- App settings strings -->

View File

@@ -154,7 +154,6 @@
<string name="settings_remote_program">Programa remoto</string>
<string name="settings_work_dir">Pasta de trabalho</string>
<string name="settings_async_channel">Canal Async</string>
<string name="settings_async_input">Async input</string>
<string name="settings_async_update">Atualização Async</string>
<string name="settings_console_mode">Modo Console</string>
<!-- App settings strings -->

View File

@@ -119,7 +119,6 @@
<string name="settings_remote_program">远程程序</string>
<string name="settings_work_dir">工作目录</string>
<string name="settings_async_channel">异步通道</string>
<string name="settings_async_input">异步输入</string>
<string name="settings_async_update">异步更新</string>
<string name="settings_console_mode">控制台模式</string>
<!-- App settings strings -->

View File

@@ -154,7 +154,6 @@
<string name="settings_remote_program">Remote Program</string>
<string name="settings_work_dir">Working Directory</string>
<string name="settings_async_channel">Async channel</string>
<string name="settings_async_input">Async input</string>
<string name="settings_async_update">Async update</string>
<string name="settings_console_mode">Console Mode</string>
<!-- App settings strings -->

View File

@@ -31,8 +31,5 @@
<CheckBoxPreference
android:key="bookmark.async_update"
android:title="@string/settings_async_update" />
<CheckBoxPreference
android:key="bookmark.async_input"
android:title="@string/settings_async_input" />
</PreferenceCategory>
</PreferenceScreen>

View File

@@ -419,80 +419,22 @@ static DWORD android_verify_changed_certificate_ex(freerdp* instance, const char
return res;
}
static DWORD WINAPI jni_input_thread(LPVOID arg)
{
HANDLE event[2];
wMessageQueue* queue;
freerdp* instance = (freerdp*)arg;
WLog_DBG(TAG, "input_thread Start.");
if (!(queue = freerdp_get_message_queue(instance, FREERDP_INPUT_MESSAGE_QUEUE)))
goto disconnect;
if (!(event[0] = android_get_handle(instance)))
goto disconnect;
if (!(event[1] = freerdp_get_message_queue_event_handle(instance, FREERDP_INPUT_MESSAGE_QUEUE)))
goto disconnect;
do
{
DWORD rc = WaitForMultipleObjects(2, event, FALSE, INFINITE);
if ((rc < WAIT_OBJECT_0) || (rc > WAIT_OBJECT_0 + 1))
continue;
if (rc == WAIT_OBJECT_0 + 1)
{
wMessage msg;
MessageQueue_Peek(queue, &msg, FALSE);
if (msg.id == WMQ_QUIT)
break;
}
if (android_check_handle(instance) != TRUE)
break;
} while (1);
WLog_DBG(TAG, "input_thread Quit.");
disconnect:
MessageQueue_PostQuit(queue, 0);
ExitThread(0);
return 0;
}
static int android_freerdp_run(freerdp* instance)
{
DWORD count;
DWORD status = WAIT_FAILED;
HANDLE handles[64];
HANDLE handles[MAXIMUM_WAIT_OBJECTS];
HANDLE inputEvent = NULL;
HANDLE inputThread = NULL;
const rdpSettings* settings = instance->context->settings;
rdpContext* context = instance->context;
BOOL async_input = settings->AsyncInput;
WLog_DBG(TAG, "AsyncInput=%" PRIu8 "", settings->AsyncInput);
if (async_input)
{
if (!(inputThread = CreateThread(NULL, 0, jni_input_thread, instance, 0, NULL)))
{
WLog_ERR(TAG, "async input: failed to create input thread");
goto disconnect;
}
}
else
inputEvent = android_get_handle(instance);
inputEvent = android_get_handle(instance);
while (!freerdp_shall_disconnect(instance))
{
DWORD tmp;
count = 0;
if (inputThread)
handles[count++] = inputThread;
else
handles[count++] = inputEvent;
tmp = freerdp_get_event_handles(context, &handles[count], 64 - count);
@@ -527,29 +469,17 @@ static int android_freerdp_run(freerdp* instance)
if (freerdp_shall_disconnect(instance))
break;
if (!async_input)
{
if (android_check_handle(instance) != TRUE)
{
WLog_ERR(TAG, "Failed to check android file descriptor");
status = GetLastError();
break;
}
}
}
disconnect:
WLog_INFO(TAG, "Prepare shutdown...");
if (async_input && inputThread)
{
wMessageQueue* input_queue =
freerdp_get_message_queue(instance, FREERDP_INPUT_MESSAGE_QUEUE);
MessageQueue_PostQuit(input_queue, 0);
WaitForSingleObject(inputThread, INFINITE);
CloseHandle(inputThread);
}
return status;
}