From 38839e03977580634da1447ae5f7cd5b4bf1d2e3 Mon Sep 17 00:00:00 2001 From: Salvador Cipolla Date: Sun, 26 Jul 2026 18:31:06 -0300 Subject: [PATCH 1/2] Migrate to SDL3 --- .../Resources/values-v31/styles.xml | 6 +- .../Resources/values/styles.xml | 17 +- .../knossosnet/knossosnet/GameActivity.java | 42 +- .../java/org/libsdl/app/HIDDevice.java | 5 +- .../app/HIDDeviceBLESteamController.java | 311 ++++-- .../java/org/libsdl/app/HIDDeviceManager.java | 102 +- .../java/org/libsdl/app/HIDDeviceUSB.java | 159 +-- .../java/org/libsdl/app/SDL.java | 24 +- .../java/org/libsdl/app/SDLActivity.java | 944 ++++++++++-------- .../java/org/libsdl/app/SDLAudioManager.java | 487 +-------- .../org/libsdl/app/SDLClipboardHandler.java | 38 +- .../org/libsdl/app/SDLControllerManager.java | 258 ++--- .../app/{DummyEdit.java => SDLDummyEdit.java} | 68 +- .../app/SDLGenericMotionListener_API12.java | 83 -- .../app/SDLGenericMotionListener_API14.java | 128 +++ .../app/SDLGenericMotionListener_API24.java | 76 ++ .../app/SDLGenericMotionListener_API26.java | 96 ++ .../app/SDLGenericMotionListener_API29.java | 38 + .../java/org/libsdl/app/SDLHaptic.java | 33 + .../java/org/libsdl/app/SDLHapticHandler.java | 69 +- .../libsdl/app/SDLHapticHandler_API26.java | 20 +- .../libsdl/app/SDLHapticHandler_API31.java | 88 ++ .../org/libsdl/app/SDLInputConnection.java | 136 +++ .../org/libsdl/app/SDLJoySensorListener.java | 42 + .../org/libsdl/app/SDLJoystickHandler.java | 418 +++++++- .../libsdl/app/SDLJoystickHandler_API16.java | 198 ---- .../libsdl/app/SDLJoystickHandler_API19.java | 161 --- .../java/org/libsdl/app/SDLSensorManager.java | 73 ++ .../java/org/libsdl/app/SDLSurface.java | 337 ++++--- .../natives/arm64-v8a/libtouchcontrols.so | Bin 194080 -> 376256 bytes .../natives/armeabi-v7a/libtouchcontrols.so | Bin 118836 -> 230028 bytes .../natives/x86/libtouchcontrols.so | Bin 168840 -> 324088 bytes .../natives/x86_64/libtouchcontrols.so | Bin 182296 -> 367560 bytes Knossos.NET/Classes/AndroidHelper.cs | 2 +- 34 files changed, 2494 insertions(+), 1965 deletions(-) rename Knossos.NET.Android/java/org/libsdl/app/{DummyEdit.java => SDLDummyEdit.java} (53%) delete mode 100644 Knossos.NET.Android/java/org/libsdl/app/SDLGenericMotionListener_API12.java create mode 100644 Knossos.NET.Android/java/org/libsdl/app/SDLGenericMotionListener_API14.java create mode 100644 Knossos.NET.Android/java/org/libsdl/app/SDLGenericMotionListener_API24.java create mode 100644 Knossos.NET.Android/java/org/libsdl/app/SDLGenericMotionListener_API26.java create mode 100644 Knossos.NET.Android/java/org/libsdl/app/SDLGenericMotionListener_API29.java create mode 100644 Knossos.NET.Android/java/org/libsdl/app/SDLHaptic.java create mode 100644 Knossos.NET.Android/java/org/libsdl/app/SDLHapticHandler_API31.java create mode 100644 Knossos.NET.Android/java/org/libsdl/app/SDLInputConnection.java create mode 100644 Knossos.NET.Android/java/org/libsdl/app/SDLJoySensorListener.java delete mode 100644 Knossos.NET.Android/java/org/libsdl/app/SDLJoystickHandler_API16.java delete mode 100644 Knossos.NET.Android/java/org/libsdl/app/SDLJoystickHandler_API19.java create mode 100644 Knossos.NET.Android/java/org/libsdl/app/SDLSensorManager.java diff --git a/Knossos.NET.Android/Resources/values-v31/styles.xml b/Knossos.NET.Android/Resources/values-v31/styles.xml index d5ecec43..5198169f 100644 --- a/Knossos.NET.Android/Resources/values-v31/styles.xml +++ b/Knossos.NET.Android/Resources/values-v31/styles.xml @@ -4,7 +4,7 @@ - + shortEdges + + - + + + diff --git a/Knossos.NET.Android/java/com/knossosnet/knossosnet/GameActivity.java b/Knossos.NET.Android/java/com/knossosnet/knossosnet/GameActivity.java index e9765ce7..feb7e4a2 100644 --- a/Knossos.NET.Android/java/com/knossosnet/knossosnet/GameActivity.java +++ b/Knossos.NET.Android/java/com/knossosnet/knossosnet/GameActivity.java @@ -90,14 +90,26 @@ protected String getMainFunction() { } private void hideSystemUI() { - View decorView = getWindow().getDecorView(); - decorView.setSystemUiVisibility( - View.SYSTEM_UI_FLAG_LAYOUT_STABLE - | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION - | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN - | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION - | View.SYSTEM_UI_FLAG_FULLSCREEN - | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY); + Window window = getWindow(); + View decorView = window.getDecorView(); + + if (Build.VERSION.SDK_INT >= 30) { + window.setDecorFitsSystemWindows(false); + WindowInsetsController c = window.getInsetsController(); + if (c != null) { + c.hide(WindowInsets.Type.systemBars()); + c.setSystemBarsBehavior( + WindowInsetsController.BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE); + } + } else { + decorView.setSystemUiVisibility( + View.SYSTEM_UI_FLAG_LAYOUT_STABLE + | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION + | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN + | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION + | View.SYSTEM_UI_FLAG_FULLSCREEN + | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY); + } } @Override @@ -140,6 +152,12 @@ protected void onCreate(Bundle savedInstanceState) { getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); } catch (Throwable ignored) { } + + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) + { // API 28+ + getWindow().getAttributes().layoutInDisplayCutoutMode = + WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES; + } hideSystemUI(); @@ -162,8 +180,8 @@ protected void onCreate(Bundle savedInstanceState) { } private static final String[] PREFERRED_ORDER = new String[] { - "libSDL2.so", - "libshaderc.so", + "libSDL3.so", + "libshaderc_shared.so", "libopenal.so", "libavutil.so", "libswresample.so", @@ -215,6 +233,10 @@ private static List orderForLoad(File dir) { private boolean tryLoad(File so) { try { + String name = so.getName(); + if (name.equals("libSDL2.so")) { + return true; + } if (so != null && so.isFile()) { System.load(so.getAbsolutePath()); return true; diff --git a/Knossos.NET.Android/java/org/libsdl/app/HIDDevice.java b/Knossos.NET.Android/java/org/libsdl/app/HIDDevice.java index 955df5d1..f9609532 100644 --- a/Knossos.NET.Android/java/org/libsdl/app/HIDDevice.java +++ b/Knossos.NET.Android/java/org/libsdl/app/HIDDevice.java @@ -13,9 +13,8 @@ interface HIDDevice public String getProductName(); public UsbDevice getDevice(); public boolean open(); - public int sendFeatureReport(byte[] report); - public int sendOutputReport(byte[] report); - public boolean getFeatureReport(byte[] report); + public int writeReport(byte[] report, boolean feature); + public boolean readReport(byte[] report, boolean feature); public void setFrozen(boolean frozen); public void close(); public void shutdown(); diff --git a/Knossos.NET.Android/java/org/libsdl/app/HIDDeviceBLESteamController.java b/Knossos.NET.Android/java/org/libsdl/app/HIDDeviceBLESteamController.java index ee5521fd..bcd8806c 100644 --- a/Knossos.NET.Android/java/org/libsdl/app/HIDDeviceBLESteamController.java +++ b/Knossos.NET.Android/java/org/libsdl/app/HIDDeviceBLESteamController.java @@ -19,9 +19,13 @@ import java.lang.Runnable; import java.util.Arrays; +import java.util.HashMap; import java.util.LinkedList; import java.util.UUID; +import java.util.regex.Pattern; +import java.util.regex.Matcher; + class HIDDeviceBLESteamController extends BluetoothGattCallback implements HIDDevice { private static final String TAG = "hidapi"; @@ -33,10 +37,19 @@ class HIDDeviceBLESteamController extends BluetoothGattCallback implements HIDDe private boolean mIsConnected = false; private boolean mIsChromebook = false; private boolean mIsReconnecting = false; + private boolean mHasEnabledNotifications = false; + private boolean mHasSeenInputUpdate = false; private boolean mFrozen = false; private LinkedList mOperations; GattOperation mCurrentOperation = null; private Handler mHandler; + private int mProductId = -1; + private int mReportId = 0; + private UUID mInputCharacteristic; + + private static final int D0G_BLE2_PID = 0x1106; + private static final int TRITON_BLE_PID = 0x1303; + private static final int TRANSPORT_AUTO = 0; private static final int TRANSPORT_BREDR = 1; @@ -44,11 +57,15 @@ class HIDDeviceBLESteamController extends BluetoothGattCallback implements HIDDe private static final int CHROMEBOOK_CONNECTION_CHECK_INTERVAL = 10000; - static public final UUID steamControllerService = UUID.fromString("100F6C32-1735-4313-B402-38567131E5F3"); - static public final UUID inputCharacteristic = UUID.fromString("100F6C33-1735-4313-B402-38567131E5F3"); - static public final UUID reportCharacteristic = UUID.fromString("100F6C34-1735-4313-B402-38567131E5F3"); + static final UUID steamControllerService = UUID.fromString("100F6C32-1735-4313-B402-38567131E5F3"); + static final UUID inputCharacteristicD0G = UUID.fromString("100F6C33-1735-4313-B402-38567131E5F3"); + static final UUID inputCharacteristicTriton_0x45 = UUID.fromString("100F6C7A-1735-4313-B402-38567131E5F3"); + static final UUID inputCharacteristicTriton_0x47 = UUID.fromString("100F6C7C-1735-4313-B402-38567131E5F3"); + static final UUID reportCharacteristic = UUID.fromString("100F6C34-1735-4313-B402-38567131E5F3"); static private final byte[] enterValveMode = new byte[] { (byte)0xC0, (byte)0x87, 0x03, 0x08, 0x07, 0x00 }; + private HashMap mOutputReportChars = new HashMap(); + static class GattOperation { private enum Operation { CHR_READ, @@ -61,6 +78,7 @@ private enum Operation { byte[] mValue; BluetoothGatt mGatt; boolean mResult = true; + int mDelayMs = 0; private GattOperation(BluetoothGatt gatt, GattOperation.Operation operation, UUID uuid) { mGatt = gatt; @@ -68,6 +86,13 @@ private GattOperation(BluetoothGatt gatt, GattOperation.Operation operation, UUI mUuid = uuid; } + private GattOperation(BluetoothGatt gatt, GattOperation.Operation operation, UUID uuid, int delayMs) { + mGatt = gatt; + mOp = operation; + mUuid = uuid; + mDelayMs = delayMs; + } + private GattOperation(BluetoothGatt gatt, GattOperation.Operation operation, UUID uuid, byte[] value) { mGatt = gatt; mOp = operation; @@ -75,6 +100,14 @@ private GattOperation(BluetoothGatt gatt, GattOperation.Operation operation, UUI mValue = value; } + private GattOperation(BluetoothGatt gatt, GattOperation.Operation operation, UUID uuid, byte[] value, int delayMs) { + mGatt = gatt; + mOp = operation; + mUuid = uuid; + mValue = value; + mDelayMs = delayMs; + } + public void run() { // This is executed in main thread BluetoothGattCharacteristic chr; @@ -136,6 +169,8 @@ public boolean finish() { return mResult; } + public int getDelayMs() { return mDelayMs; } + private BluetoothGattCharacteristic getCharacteristic(UUID uuid) { BluetoothGattService valveService = mGatt.getService(steamControllerService); if (valveService == null) @@ -154,32 +189,38 @@ static public GattOperation writeCharacteristic(BluetoothGatt gatt, UUID uuid, b static public GattOperation enableNotification(BluetoothGatt gatt, UUID uuid) { return new GattOperation(gatt, Operation.ENABLE_NOTIFICATION, uuid); } + + static public GattOperation enableNotification(BluetoothGatt gatt, UUID uuid, int delayMs) { + return new GattOperation(gatt, Operation.ENABLE_NOTIFICATION, uuid, delayMs); + } } - public HIDDeviceBLESteamController(HIDDeviceManager manager, BluetoothDevice device) { + HIDDeviceBLESteamController(HIDDeviceManager manager, BluetoothDevice device) { mManager = manager; mDevice = device; mDeviceId = mManager.getDeviceIDForIdentifier(getIdentifier()); mIsRegistered = false; - mIsChromebook = mManager.getContext().getPackageManager().hasSystemFeature("org.chromium.arc.device_management"); + mIsChromebook = SDLActivity.isChromebook(); mOperations = new LinkedList(); mHandler = new Handler(Looper.getMainLooper()); mGatt = connectGatt(); + mHasEnabledNotifications = false; + mHasSeenInputUpdate = false; // final HIDDeviceBLESteamController finalThis = this; // mHandler.postDelayed(new Runnable() { // @Override - // public void run() { + // void run() { // finalThis.checkConnectionForChromebookIssue(); // } // }, CHROMEBOOK_CONNECTION_CHECK_INTERVAL); } - public String getIdentifier() { + String getIdentifier() { return String.format("SteamController.%s", mDevice.getAddress()); } - public BluetoothGatt getGatt() { + BluetoothGatt getGatt() { return mGatt; } @@ -219,7 +260,7 @@ protected int getConnectionState() { return btManager.getConnectionState(mDevice, BluetoothProfile.GATT); } - public void reconnect() { + void reconnect() { if (getConnectionState() != BluetoothProfile.STATE_CONNECTED) { mGatt.disconnect(); @@ -314,8 +355,45 @@ private boolean probeService(HIDDeviceBLESteamController controller) { Log.v(TAG, "Found Valve steam controller service " + service.getUuid()); for (BluetoothGattCharacteristic chr : service.getCharacteristics()) { - if (chr.getUuid().equals(inputCharacteristic)) { - Log.v(TAG, "Found input characteristic"); + if (chr.getUuid().equals(inputCharacteristicTriton_0x45)) { + Log.v(TAG, "Found Triton input characteristic 0x45"); + mProductId = TRITON_BLE_PID; + mReportId = 0x45; + mInputCharacteristic = chr.getUuid(); + } else if (chr.getUuid().equals(inputCharacteristicTriton_0x47)) { + Log.v(TAG, "Found Triton input characteristic 0x47"); + mProductId = TRITON_BLE_PID; + mReportId = 0x47; + mInputCharacteristic = chr.getUuid(); + } else if (chr.getUuid().equals(inputCharacteristicD0G)) { + Log.v(TAG, "Found D0G input characteristic"); + mProductId = D0G_BLE2_PID; + mReportId = 0x03; + mInputCharacteristic = chr.getUuid(); + } else { + Pattern reportPattern = Pattern.compile("100F6C([0-9A-Z]{2})", Pattern.CASE_INSENSITIVE); + Matcher matcher = reportPattern.matcher(chr.getUuid().toString()); + + if (matcher.find()) { + try { + int reportId = Integer.parseInt(matcher.group(1), 16); + + reportId -= 0x35; + if (reportId >= 0x80) { + // This is a Triton output report characteristic that we need to care about. + Log.v(TAG, "Found Triton output report 0x" + Integer.toString(reportId, 16)); + mOutputReportChars.put(reportId, chr); + } + } + catch (NumberFormatException nfe) { + Log.w(TAG, "Could not parse report characteristic " + chr.getUuid().toString() + ": " + nfe.toString()); + } + } + } + } + + for (BluetoothGattCharacteristic chr : service.getCharacteristics()) { + if (chr.getUuid().equals(mInputCharacteristic)) { // Start notifications BluetoothGattDescriptor cccd = chr.getDescriptor(UUID.fromString("00002902-0000-1000-8000-00805f9b34fb")); if (cccd != null) { @@ -372,21 +450,30 @@ private void executeNextGattOperation() { mCurrentOperation = mOperations.removeFirst(); } - // Run in main thread - mHandler.post(new Runnable() { - @Override - public void run() { - synchronized (mOperations) { - if (mCurrentOperation == null) { - Log.e(TAG, "Current operation null in executor?"); - return; - } + Runnable gattOperationRunnable = new Runnable() { + @Override + public void run() { + synchronized (mOperations) { + if (mCurrentOperation == null) { + Log.e(TAG, "Current operation null in executor?"); + return; + } - mCurrentOperation.run(); - // now wait for the GATT callback and when it comes, finish this operation + mCurrentOperation.run(); + // now wait for the GATT callback and when it comes, finish this operation + } } - } - }); + }; + + if (mCurrentOperation.getDelayMs() == 0) { + // Run in main thread + mHandler.post(gattOperationRunnable); + } + else { + // If we have a delay on this operation, wait before we post it. + mHandler.postDelayed(gattOperationRunnable, mCurrentOperation.getDelayMs()); + } + } private void queueGattOperation(GattOperation op) { @@ -397,16 +484,47 @@ private void queueGattOperation(GattOperation op) { } private void enableNotification(UUID chrUuid) { - GattOperation op = HIDDeviceBLESteamController.GattOperation.enableNotification(mGatt, chrUuid); + // Add a 500ms delay to notification write for Amazon Fire TV devices, as otherwise if we do this too quickly after connecting + // it will return success and then silently drop the operation on the floor. + GattOperation op = HIDDeviceBLESteamController.GattOperation.enableNotification(mGatt, chrUuid, 500); queueGattOperation(op); + + // Amazon Fire devices can also silently timeout on writeDescriptor, so + // set up a little delayed check that will attempt to write a second time. + // + // While this only seems to be needed on Amazon Fire TV devices at present, it + // doesn't hurt to have a retry on other devices as well. + // + final HIDDeviceBLESteamController finalThis = this; + final UUID finalUuid = chrUuid; + mHandler.postDelayed(new Runnable() { + @Override + public void run() { + if (!finalThis.mHasEnabledNotifications) { + + if (finalThis.mHasSeenInputUpdate) { + // Amazon Five devices may have enabled notifications on the input characteristic and not given us a callback. If we've seen + // input reports, though, somewhat by definition notifications are enabled. + Log.w(TAG, "WriteDescriptor has never returned, but we've seen input reports. Moving on with controller initialization."); + finalThis.mHasEnabledNotifications = true; + finalThis.enableValveMode(); + return; + } + + // Give one more try. + GattOperation retry = HIDDeviceBLESteamController.GattOperation.enableNotification(finalThis.mGatt, finalUuid, 500); + finalThis.queueGattOperation(retry); + } + } + }, 1000); } - public void writeCharacteristic(UUID uuid, byte[] value) { + void writeCharacteristic(UUID uuid, byte[] value) { GattOperation op = HIDDeviceBLESteamController.GattOperation.writeCharacteristic(mGatt, uuid, value); queueGattOperation(op); } - public void readCharacteristic(UUID uuid) { + void readCharacteristic(UUID uuid) { GattOperation op = HIDDeviceBLESteamController.GattOperation.readCharacteristic(mGatt, uuid); queueGattOperation(op); } @@ -415,6 +533,7 @@ public void readCharacteristic(UUID uuid) { ////////////// BluetoothGattCallback overridden methods ////////////////////////////////////////////////////////////////////////////////////////////////////// + @Override public void onConnectionStateChange(BluetoothGatt g, int status, int newState) { //Log.v(TAG, "onConnectionStateChange status=" + status + " newState=" + newState); mIsReconnecting = false; @@ -437,6 +556,7 @@ else if (newState == 0) { // Disconnection is handled in SteamLink using the ACTION_ACL_DISCONNECTED Intent. } + @Override public void onServicesDiscovered(BluetoothGatt gatt, int status) { //Log.v(TAG, "onServicesDiscovered status=" + status); if (status == 0) { @@ -446,23 +566,33 @@ public void onServicesDiscovered(BluetoothGatt gatt, int status) { mIsConnected = false; gatt.disconnect(); mGatt = connectGatt(false); - } - else { + } else { + if (getProductId() == TRITON_BLE_PID) { + // Android will not properly play well with Data Length Extensions without manually requesting a large MTU, + // and Triton controllers require DLE support. + // + // 517 is basically a "magic number" as far as Android's bluetooth code is concerned, so do not change + // this value. It is functionally "please enable data length extensions" on some Android builds. + mGatt.requestMtu(517); + } + probeService(this); } } } + @Override public void onCharacteristicRead(BluetoothGatt gatt, BluetoothGattCharacteristic characteristic, int status) { //Log.v(TAG, "onCharacteristicRead status=" + status + " uuid=" + characteristic.getUuid()); if (characteristic.getUuid().equals(reportCharacteristic) && !mFrozen) { - mManager.HIDDeviceFeatureReport(getId(), characteristic.getValue()); + mManager.HIDDeviceReportResponse(getId(), characteristic.getValue()); } finishCurrentGattOperation(); } + @Override public void onCharacteristicWrite(BluetoothGatt gatt, BluetoothGattCharacteristic characteristic, int status) { //Log.v(TAG, "onCharacteristicWrite status=" + status + " uuid=" + characteristic.getUuid()); @@ -470,7 +600,7 @@ public void onCharacteristicWrite(BluetoothGatt gatt, BluetoothGattCharacteristi // Only register controller with the native side once it has been fully configured if (!isRegistered()) { Log.v(TAG, "Registering Steam Controller with ID: " + getId()); - mManager.HIDDeviceConnected(getId(), getIdentifier(), getVendorId(), getProductId(), getSerialNumber(), getVersion(), getManufacturerName(), getProductName(), 0, 0, 0, 0); + mManager.HIDDeviceConnected(getId(), getIdentifier(), getVendorId(), getProductId(), getSerialNumber(), getVersion(), getManufacturerName(), getProductName(), 0, 0, 0, 0, true, mReportId); setRegistered(); } } @@ -478,44 +608,68 @@ public void onCharacteristicWrite(BluetoothGatt gatt, BluetoothGattCharacteristi finishCurrentGattOperation(); } + @Override public void onCharacteristicChanged(BluetoothGatt gatt, BluetoothGattCharacteristic characteristic) { // Enable this for verbose logging of controller input reports //Log.v(TAG, "onCharacteristicChanged uuid=" + characteristic.getUuid() + " data=" + HexDump.dumpHexString(characteristic.getValue())); - if (characteristic.getUuid().equals(inputCharacteristic) && !mFrozen) { + if (characteristic.getUuid().equals(mInputCharacteristic) && !mFrozen) { + mHasSeenInputUpdate = true; mManager.HIDDeviceInputReport(getId(), characteristic.getValue()); } } + @Override public void onDescriptorRead(BluetoothGatt gatt, BluetoothGattDescriptor descriptor, int status) { //Log.v(TAG, "onDescriptorRead status=" + status); } - public void onDescriptorWrite(BluetoothGatt gatt, BluetoothGattDescriptor descriptor, int status) { - BluetoothGattCharacteristic chr = descriptor.getCharacteristic(); - //Log.v(TAG, "onDescriptorWrite status=" + status + " uuid=" + chr.getUuid() + " descriptor=" + descriptor.getUuid()); + private void enableValveMode() + { + BluetoothGattService valveService = mGatt.getService(steamControllerService); + if (valveService == null) + return; - if (chr.getUuid().equals(inputCharacteristic)) { - boolean hasWrittenInputDescriptor = true; - BluetoothGattCharacteristic reportChr = chr.getService().getCharacteristic(reportCharacteristic); - if (reportChr != null) { + BluetoothGattCharacteristic reportChr = valveService.getCharacteristic(reportCharacteristic); + if (reportChr != null) { + if (getProductId() == TRITON_BLE_PID) { + // For Triton we just mark things registered. + Log.v(TAG, "Registering Triton Steam Controller with ID: " + getId()); + mManager.HIDDeviceConnected(getId(), getIdentifier(), getVendorId(), getProductId(), getSerialNumber(), getVersion(), getManufacturerName(), getProductName(), 0, 0, 0, 0, true, mReportId); + setRegistered(); + } else { + // For the original controller, we need to manually enter Valve mode. Log.v(TAG, "Writing report characteristic to enter valve mode"); reportChr.setValue(enterValveMode); - gatt.writeCharacteristic(reportChr); + mGatt.writeCharacteristic(reportChr); } } + } + + @Override + public void onDescriptorWrite(BluetoothGatt gatt, BluetoothGattDescriptor descriptor, int status) { + BluetoothGattCharacteristic chr = descriptor.getCharacteristic(); + //Log.v(TAG, "onDescriptorWrite status=" + status + " uuid=" + chr.getUuid() + " descriptor=" + descriptor.getUuid()); + + if (chr.getUuid().equals(mInputCharacteristic)) { + mHasEnabledNotifications = true; + enableValveMode(); + } finishCurrentGattOperation(); } + @Override public void onReliableWriteCompleted(BluetoothGatt gatt, int status) { //Log.v(TAG, "onReliableWriteCompleted status=" + status); } + @Override public void onReadRemoteRssi(BluetoothGatt gatt, int rssi, int status) { //Log.v(TAG, "onReadRemoteRssi status=" + status); } + @Override public void onMtuChanged(BluetoothGatt gatt, int mtu, int status) { //Log.v(TAG, "onMtuChanged status=" + status); } @@ -538,9 +692,20 @@ public int getVendorId() { @Override public int getProductId() { - // We don't have an easy way to query from the Bluetooth device, but we know what it is - final int D0G_BLE2_PID = 0x1106; - return D0G_BLE2_PID; + if (mProductId > 0) { + // We've already set a product ID. + return mProductId; + } + + if (mDevice.getName().startsWith("Steam Ctrl")) { + // We're a newer Triton device + mProductId = TRITON_BLE_PID; + } else { + // We're an OG Steam Controller + mProductId = D0G_BLE2_PID; + } + + return mProductId; } @Override @@ -575,50 +740,64 @@ public boolean open() { } @Override - public int sendFeatureReport(byte[] report) { + public int writeReport(byte[] report, boolean feature) { if (!isRegistered()) { - Log.e(TAG, "Attempted sendFeatureReport before Steam Controller is registered!"); + Log.e(TAG, "Attempted writeReport before Steam Controller is registered!"); if (mIsConnected) { probeService(this); } return -1; } - // We need to skip the first byte, as that doesn't go over the air - byte[] actual_report = Arrays.copyOfRange(report, 1, report.length - 1); - //Log.v(TAG, "sendFeatureReport " + HexDump.dumpHexString(actual_report)); - writeCharacteristic(reportCharacteristic, actual_report); - return report.length; - } + if (feature) { + // We need to skip the first byte, as that doesn't go over the air + byte[] actual_report = Arrays.copyOfRange(report, 1, report.length - 1); + //Log.v(TAG, "writeFeatureReport " + HexDump.dumpHexString(actual_report)); + writeCharacteristic(reportCharacteristic, actual_report); + return report.length; + } else { + // If we're an original-recipe Steam Controller we just write to the characteristic directly. + if (getProductId() == D0G_BLE2_PID) { + //Log.v(TAG, "writeOutputReport " + HexDump.dumpHexString(report)); + writeCharacteristic(reportCharacteristic, report); + return report.length; + } - @Override - public int sendOutputReport(byte[] report) { - if (!isRegistered()) { - Log.e(TAG, "Attempted sendOutputReport before Steam Controller is registered!"); - if (mIsConnected) { - probeService(this); + // If we're a Triton, we need to find the correct report characteristic. + if (report.length > 0) { + int reportId = report[0] & 0xFF; + BluetoothGattCharacteristic targetedReportCharacteristic = mOutputReportChars.get(reportId); + if (targetedReportCharacteristic != null) { + byte[] actual_report = Arrays.copyOfRange(report, 1, report.length - 1); + //Log.v(TAG, "writeOutputReport 0x" + Integer.toString(reportId, 16) + " " + HexDump.dumpHexString(report)); + writeCharacteristic(targetedReportCharacteristic.getUuid(), actual_report); + return report.length; + } else { + Log.w(TAG, "Got report write request for unknown report type 0x" + Integer.toString(reportId, 16)); + } } - return -1; } - //Log.v(TAG, "sendFeatureReport " + HexDump.dumpHexString(report)); - writeCharacteristic(reportCharacteristic, report); - return report.length; + return -1; } @Override - public boolean getFeatureReport(byte[] report) { + public boolean readReport(byte[] report, boolean feature) { if (!isRegistered()) { - Log.e(TAG, "Attempted getFeatureReport before Steam Controller is registered!"); + Log.e(TAG, "Attempted readReport before Steam Controller is registered!"); if (mIsConnected) { probeService(this); } return false; } - //Log.v(TAG, "getFeatureReport"); - readCharacteristic(reportCharacteristic); - return true; + if (feature) { + readCharacteristic(reportCharacteristic); + return true; + } else { + // Not implemented + return false; + } } @Override diff --git a/Knossos.NET.Android/java/org/libsdl/app/HIDDeviceManager.java b/Knossos.NET.Android/java/org/libsdl/app/HIDDeviceManager.java index 21a1c1d1..691416c1 100644 --- a/Knossos.NET.Android/java/org/libsdl/app/HIDDeviceManager.java +++ b/Knossos.NET.Android/java/org/libsdl/app/HIDDeviceManager.java @@ -32,7 +32,7 @@ public class HIDDeviceManager { private static HIDDeviceManager sManager; private static int sManagerRefCount = 0; - public static HIDDeviceManager acquire(Context context) { + static public HIDDeviceManager acquire(Context context) { if (sManagerRefCount == 0) { sManager = new HIDDeviceManager(context); } @@ -40,7 +40,7 @@ public static HIDDeviceManager acquire(Context context) { return sManager; } - public static void release(HIDDeviceManager manager) { + static public void release(HIDDeviceManager manager) { if (manager == sManager) { --sManagerRefCount; if (sManagerRefCount == 0) { @@ -108,12 +108,12 @@ private HIDDeviceManager(final Context context) { HIDDeviceRegisterCallback(); mSharedPreferences = mContext.getSharedPreferences("hidapi", Context.MODE_PRIVATE); - mIsChromebook = mContext.getPackageManager().hasSystemFeature("org.chromium.arc.device_management"); + mIsChromebook = SDLActivity.isChromebook(); // if (shouldClear) { // SharedPreferences.Editor spedit = mSharedPreferences.edit(); // spedit.clear(); -// spedit.commit(); +// spedit.apply(); // } // else { @@ -121,11 +121,11 @@ private HIDDeviceManager(final Context context) { } } - public Context getContext() { + Context getContext() { return mContext; } - public int getDeviceIDForIdentifier(String identifier) { + int getDeviceIDForIdentifier(String identifier) { SharedPreferences.Editor spedit = mSharedPreferences.edit(); int result = mSharedPreferences.getInt(identifier, 0); @@ -135,7 +135,7 @@ public int getDeviceIDForIdentifier(String identifier) { } spedit.putInt(identifier, result); - spedit.commit(); + spedit.apply(); return result; } @@ -193,7 +193,11 @@ private void initializeUSB() { filter.addAction(UsbManager.ACTION_USB_DEVICE_ATTACHED); filter.addAction(UsbManager.ACTION_USB_DEVICE_DETACHED); filter.addAction(HIDDeviceManager.ACTION_USB_PERMISSION); - mContext.registerReceiver(mUsbBroadcast, filter); + if (Build.VERSION.SDK_INT >= 33) { /* Android 13.0 (TIRAMISU) */ + mContext.registerReceiver(mUsbBroadcast, filter, Context.RECEIVER_EXPORTED); + } else { + mContext.registerReceiver(mUsbBroadcast, filter); + } for (UsbDevice usbDevice : mUsbManager.getDeviceList().values()) { handleUsbDeviceAttached(usbDevice); @@ -252,6 +256,8 @@ private boolean isXbox360Controller(UsbDevice usbDevice, UsbInterface usbInterfa 0x24c6, // PowerA 0x2c22, // Qanba 0x2dc8, // 8BitDo + 0x3537, // GameSir + 0x37d7, // Flydigi 0x9886, // ASTRO Gaming }; @@ -284,9 +290,13 @@ private boolean isXboxOneController(UsbDevice usbDevice, UsbInterface usbInterfa 0x1532, // Razer Wildcat 0x20d6, // PowerA 0x24c6, // PowerA + 0x294b, // Snakebyte 0x2dc8, // 8BitDo 0x2e24, // Hyperkin + 0x2e95, // SCUF + 0x3285, // Nacon 0x3537, // GameSir + 0x366c, // ByoWave }; if (usbInterface.getId() == 0 && @@ -351,7 +361,7 @@ private void connectHIDDeviceUSB(UsbDevice usbDevice) { HIDDeviceUSB device = new HIDDeviceUSB(this, usbDevice, interface_index); int id = device.getId(); mDevicesById.put(id, device); - HIDDeviceConnected(id, device.getIdentifier(), device.getVendorId(), device.getProductId(), device.getSerialNumber(), device.getVersion(), device.getManufacturerName(), device.getProductName(), usbInterface.getId(), usbInterface.getInterfaceClass(), usbInterface.getInterfaceSubclass(), usbInterface.getInterfaceProtocol()); + HIDDeviceConnected(id, device.getIdentifier(), device.getVendorId(), device.getProductId(), device.getSerialNumber(), device.getVersion(), device.getManufacturerName(), device.getProductName(), usbInterface.getId(), usbInterface.getInterfaceClass(), usbInterface.getInterfaceSubclass(), usbInterface.getInterfaceProtocol(), false, 0); } } } @@ -372,7 +382,7 @@ private void initializeBluetooth() { return; } - if (!mContext.getPackageManager().hasSystemFeature(PackageManager.FEATURE_BLUETOOTH_LE) || (Build.VERSION.SDK_INT < 18 /* Android 4.3 (JELLY_BEAN_MR2) */)) { + if (!mContext.getPackageManager().hasSystemFeature(PackageManager.FEATURE_BLUETOOTH_LE)) { Log.d(TAG, "Couldn't initialize Bluetooth, this version of Android does not support Bluetooth LE"); return; } @@ -404,7 +414,11 @@ private void initializeBluetooth() { IntentFilter filter = new IntentFilter(); filter.addAction(BluetoothDevice.ACTION_ACL_CONNECTED); filter.addAction(BluetoothDevice.ACTION_ACL_DISCONNECTED); - mContext.registerReceiver(mBluetoothBroadcast, filter); + if (Build.VERSION.SDK_INT >= 33) { /* Android 13.0 (TIRAMISU) */ + mContext.registerReceiver(mBluetoothBroadcast, filter, Context.RECEIVER_EXPORTED); + } else { + mContext.registerReceiver(mBluetoothBroadcast, filter); + } if (mIsChromebook) { mHandler = new Handler(Looper.getMainLooper()); @@ -431,7 +445,7 @@ private void shutdownBluetooth() { // Chromebooks do not pass along ACTION_ACL_CONNECTED / ACTION_ACL_DISCONNECTED properly. // This function provides a sort of dummy version of that, watching for changes in the // connected devices and attempting to add controllers as things change. - public void chromebookConnectionHandler() { + void chromebookConnectionHandler() { if (!mIsChromebook) { return; } @@ -470,7 +484,7 @@ public void run() { }, 10000); } - public boolean connectBluetoothDevice(BluetoothDevice bluetoothDevice) { + boolean connectBluetoothDevice(BluetoothDevice bluetoothDevice) { Log.v(TAG, "connectBluetoothDevice device=" + bluetoothDevice); synchronized (this) { if (mBluetoothDevices.containsKey(bluetoothDevice)) { @@ -491,7 +505,7 @@ public boolean connectBluetoothDevice(BluetoothDevice bluetoothDevice) { return true; } - public void disconnectBluetoothDevice(BluetoothDevice bluetoothDevice) { + void disconnectBluetoothDevice(BluetoothDevice bluetoothDevice) { synchronized (this) { HIDDeviceBLESteamController device = mBluetoothDevices.get(bluetoothDevice); if (device == null) @@ -505,7 +519,7 @@ public void disconnectBluetoothDevice(BluetoothDevice bluetoothDevice) { } } - public boolean isSteamController(BluetoothDevice bluetoothDevice) { + boolean isSteamController(BluetoothDevice bluetoothDevice) { // Sanity check. If you pass in a null device, by definition it is never a Steam Controller. if (bluetoothDevice == null) { return false; @@ -516,7 +530,13 @@ public boolean isSteamController(BluetoothDevice bluetoothDevice) { return false; } - return bluetoothDevice.getName().equals("SteamController") && ((bluetoothDevice.getType() & BluetoothDevice.DEVICE_TYPE_LE) != 0); + // Steam Controllers will always support Bluetooth Low Energy + if ((bluetoothDevice.getType() & BluetoothDevice.DEVICE_TYPE_LE) == 0) { + return false; + } + + // Match on the name either the original Steam Controller or the new second-generation one advertise with. + return bluetoothDevice.getName().equals("SteamController") || bluetoothDevice.getName().startsWith("Steam Ctrl"); } private void close() { @@ -559,7 +579,7 @@ private HIDDevice getDevice(int id) { ////////// JNI interface functions ////////////////////////////////////////////////////////////////////////////////////////////////////// - public boolean initialize(boolean usb, boolean bluetooth) { + boolean initialize(boolean usb, boolean bluetooth) { Log.v(TAG, "initialize(" + usb + ", " + bluetooth + ")"); if (usb) { @@ -571,7 +591,7 @@ public boolean initialize(boolean usb, boolean bluetooth) { return true; } - public boolean openDevice(int deviceID) { + boolean openDevice(int deviceID) { Log.v(TAG, "openDevice deviceID=" + deviceID); HIDDevice device = getDevice(deviceID); if (device == null) { @@ -591,13 +611,10 @@ public boolean openDevice(int deviceID) { } else { flags = 0; } - if (Build.VERSION.SDK_INT >= 33 /* Android 14.0 (U) */) { - Intent intent = new Intent(HIDDeviceManager.ACTION_USB_PERMISSION); - intent.setPackage(mContext.getPackageName()); - mUsbManager.requestPermission(usbDevice, PendingIntent.getBroadcast(mContext, 0, intent, flags)); - } else { - mUsbManager.requestPermission(usbDevice, PendingIntent.getBroadcast(mContext, 0, new Intent(HIDDeviceManager.ACTION_USB_PERMISSION), flags)); - } + + Intent intent = new Intent(HIDDeviceManager.ACTION_USB_PERMISSION); + intent.setPackage(mContext.getPackageName()); + mUsbManager.requestPermission(usbDevice, PendingIntent.getBroadcast(mContext, 0, intent, flags)); } catch (Exception e) { Log.v(TAG, "Couldn't request permission for USB device " + usbDevice); HIDDeviceOpenResult(deviceID, false); @@ -613,26 +630,9 @@ public boolean openDevice(int deviceID) { return false; } - public int sendOutputReport(int deviceID, byte[] report) { - try { - //Log.v(TAG, "sendOutputReport deviceID=" + deviceID + " length=" + report.length); - HIDDevice device; - device = getDevice(deviceID); - if (device == null) { - HIDDeviceDisconnected(deviceID); - return -1; - } - - return device.sendOutputReport(report); - } catch (Exception e) { - Log.e(TAG, "Got exception: " + Log.getStackTraceString(e)); - } - return -1; - } - - public int sendFeatureReport(int deviceID, byte[] report) { + int writeReport(int deviceID, byte[] report, boolean feature) { try { - //Log.v(TAG, "sendFeatureReport deviceID=" + deviceID + " length=" + report.length); + //Log.v(TAG, "writeReport deviceID=" + deviceID + " length=" + report.length); HIDDevice device; device = getDevice(deviceID); if (device == null) { @@ -640,16 +640,16 @@ public int sendFeatureReport(int deviceID, byte[] report) { return -1; } - return device.sendFeatureReport(report); + return device.writeReport(report, feature); } catch (Exception e) { Log.e(TAG, "Got exception: " + Log.getStackTraceString(e)); } return -1; } - public boolean getFeatureReport(int deviceID, byte[] report) { + boolean readReport(int deviceID, byte[] report, boolean feature) { try { - //Log.v(TAG, "getFeatureReport deviceID=" + deviceID); + //Log.v(TAG, "readReport deviceID=" + deviceID); HIDDevice device; device = getDevice(deviceID); if (device == null) { @@ -657,14 +657,14 @@ public boolean getFeatureReport(int deviceID, byte[] report) { return false; } - return device.getFeatureReport(report); + return device.readReport(report, feature); } catch (Exception e) { Log.e(TAG, "Got exception: " + Log.getStackTraceString(e)); } return false; } - public void closeDevice(int deviceID) { + void closeDevice(int deviceID) { try { Log.v(TAG, "closeDevice deviceID=" + deviceID); HIDDevice device; @@ -688,11 +688,11 @@ public void closeDevice(int deviceID) { private native void HIDDeviceRegisterCallback(); private native void HIDDeviceReleaseCallback(); - native void HIDDeviceConnected(int deviceID, String identifier, int vendorId, int productId, String serial_number, int release_number, String manufacturer_string, String product_string, int interface_number, int interface_class, int interface_subclass, int interface_protocol); + native void HIDDeviceConnected(int deviceID, String identifier, int vendorId, int productId, String serial_number, int release_number, String manufacturer_string, String product_string, int interface_number, int interface_class, int interface_subclass, int interface_protocol, boolean bBluetooth, int reportID); native void HIDDeviceOpenPending(int deviceID); native void HIDDeviceOpenResult(int deviceID, boolean opened); native void HIDDeviceDisconnected(int deviceID); native void HIDDeviceInputReport(int deviceID, byte[] report); - native void HIDDeviceFeatureReport(int deviceID, byte[] report); + native void HIDDeviceReportResponse(int deviceID, byte[] report); } diff --git a/Knossos.NET.Android/java/org/libsdl/app/HIDDeviceUSB.java b/Knossos.NET.Android/java/org/libsdl/app/HIDDeviceUSB.java index bfe0cf95..08875d2b 100644 --- a/Knossos.NET.Android/java/org/libsdl/app/HIDDeviceUSB.java +++ b/Knossos.NET.Android/java/org/libsdl/app/HIDDeviceUSB.java @@ -4,6 +4,7 @@ import android.os.Build; import android.util.Log; import java.util.Arrays; +import java.util.Locale; class HIDDeviceUSB implements HIDDevice { @@ -20,6 +21,7 @@ class HIDDeviceUSB implements HIDDevice { protected InputThread mInputThread; protected boolean mRunning; protected boolean mFrozen; + protected boolean mClaimed; public HIDDeviceUSB(HIDDeviceManager manager, UsbDevice usbDevice, int interface_index) { mManager = manager; @@ -28,10 +30,11 @@ public HIDDeviceUSB(HIDDeviceManager manager, UsbDevice usbDevice, int interface mInterface = mDevice.getInterface(mInterfaceIndex).getId(); mDeviceId = manager.getDeviceIDForIdentifier(getIdentifier()); mRunning = false; + mClaimed = false; } - public String getIdentifier() { - return String.format("%s/%x/%x/%d", mDevice.getDeviceName(), mDevice.getVendorId(), mDevice.getProductId(), mInterfaceIndex); + String getIdentifier() { + return String.format(Locale.ENGLISH, "%s/%x/%x/%d", mDevice.getDeviceName(), mDevice.getVendorId(), mDevice.getProductId(), mInterfaceIndex); } @Override @@ -52,13 +55,11 @@ public int getProductId() { @Override public String getSerialNumber() { String result = null; - if (Build.VERSION.SDK_INT >= 21 /* Android 5.0 (LOLLIPOP) */) { - try { - result = mDevice.getSerialNumber(); - } - catch (SecurityException exception) { - //Log.w(TAG, "App permissions mean we cannot get serial number for device " + getDeviceName() + " message: " + exception.getMessage()); - } + try { + result = mDevice.getSerialNumber(); + } + catch (Exception exception) { + //Log.w(TAG, "App permissions mean we cannot get serial number for device " + getDeviceName() + " message: " + exception.getMessage()); } if (result == null) { result = ""; @@ -73,10 +74,8 @@ public int getVersion() { @Override public String getManufacturerName() { - String result = null; - if (Build.VERSION.SDK_INT >= 21 /* Android 5.0 (LOLLIPOP) */) { - result = mDevice.getManufacturerName(); - } + String result; + result = mDevice.getManufacturerName(); if (result == null) { result = String.format("%x", getVendorId()); } @@ -85,10 +84,8 @@ public String getManufacturerName() { @Override public String getProductName() { - String result = null; - if (Build.VERSION.SDK_INT >= 21 /* Android 5.0 (LOLLIPOP) */) { - result = mDevice.getProductName(); - } + String result; + result = mDevice.getProductName(); if (result == null) { result = String.format("%x", getProductId()); } @@ -100,7 +97,7 @@ public UsbDevice getDevice() { return mDevice; } - public String getDeviceName() { + String getDeviceName() { return getManufacturerName() + " " + getProductName() + "(0x" + String.format("%x", getVendorId()) + "/0x" + String.format("%x", getProductId()) + ")"; } @@ -119,6 +116,7 @@ public boolean open() { close(); return false; } + mClaimed = true; // Find the endpoints for (int j = 0; j < iface.getEndpointCount(); j++) { @@ -137,9 +135,12 @@ public boolean open() { } } - // Make sure the required endpoints were present - if (mInputEndpoint == null || mOutputEndpoint == null) { + // Make sure the required endpoints were present. The original Steam Controller and the wireless dongle for it do NOT + // actually have -- or require -- output endpoints, so we need to accept only an input one for them or else we'll fall + // back to the Android system gamepad functionality (and lose our paddles et al). + if (mInputEndpoint == null) { Log.w(TAG, "Missing required endpoint on USB device " + getDeviceName()); + mConnection.releaseInterface(iface); close(); return false; } @@ -153,55 +154,80 @@ public boolean open() { } @Override - public int sendFeatureReport(byte[] report) { - int res = -1; - int offset = 0; - int length = report.length; - boolean skipped_report_id = false; - byte report_number = report[0]; - - if (report_number == 0x0) { - ++offset; - --length; - skipped_report_id = true; + public int writeReport(byte[] report, boolean feature) { + if (mConnection == null) { + Log.w(TAG, "writeReport() called with no device connection"); + return -1; } - res = mConnection.controlTransfer( - UsbConstants.USB_TYPE_CLASS | 0x01 /*RECIPIENT_INTERFACE*/ | UsbConstants.USB_DIR_OUT, - 0x09/*HID set_report*/, - (3/*HID feature*/ << 8) | report_number, - mInterface, - report, offset, length, - 1000/*timeout millis*/); - - if (res < 0) { - Log.w(TAG, "sendFeatureReport() returned " + res + " on device " + getDeviceName()); + if (!mClaimed) { + Log.w(TAG, "writeReport() called but some other process currently owns the USB device"); return -1; } - if (skipped_report_id) { - ++length; - } - return length; - } + if (feature) { + int res = -1; + int offset = 0; + int length = report.length; + boolean skipped_report_id = false; + byte report_number = report[0]; + + if (report_number == 0x0) { + ++offset; + --length; + skipped_report_id = true; + } - @Override - public int sendOutputReport(byte[] report) { - int r = mConnection.bulkTransfer(mOutputEndpoint, report, report.length, 1000); - if (r != report.length) { - Log.w(TAG, "sendOutputReport() returned " + r + " on device " + getDeviceName()); + res = mConnection.controlTransfer( + UsbConstants.USB_TYPE_CLASS | 0x01 /*RECIPIENT_INTERFACE*/ | UsbConstants.USB_DIR_OUT, + 0x09/*HID set_report*/, + (3/*HID feature*/ << 8) | report_number, + mInterface, + report, offset, length, + 1000/*timeout millis*/); + + if (res < 0) { + Log.w(TAG, "writeFeatureReport() returned " + res + " on device " + getDeviceName()); + return -1; + } + + if (skipped_report_id) { + ++length; + } + return length; + } else { + if (mOutputEndpoint == null) + { + Log.e(TAG, "Tried to write an output report to an interface with no output endpoint!"); + return -1; + } + int res = mConnection.bulkTransfer(mOutputEndpoint, report, report.length, 1000); + if (res != report.length) { + Log.w(TAG, "writeOutputReport() returned " + res + " on device " + getDeviceName()); + } + return res; } - return r; } @Override - public boolean getFeatureReport(byte[] report) { + public boolean readReport(byte[] report, boolean feature) { int res = -1; int offset = 0; int length = report.length; boolean skipped_report_id = false; byte report_number = report[0]; + if (mConnection == null) { + Log.w(TAG, "readReport() called with no device connection"); + return false; + } + if (!mClaimed) { + if (feature) { + return false; + } + return true; + } + if (report_number == 0x0) { /* Offset the return buffer by 1, so that the report ID will remain in byte 0. */ @@ -213,7 +239,7 @@ public boolean getFeatureReport(byte[] report) { res = mConnection.controlTransfer( UsbConstants.USB_TYPE_CLASS | 0x01 /*RECIPIENT_INTERFACE*/ | UsbConstants.USB_DIR_IN, 0x01/*HID get_report*/, - (3/*HID feature*/ << 8) | report_number, + ((feature ? 3/*HID feature*/ : 1/*HID Input*/) << 8) | report_number, mInterface, report, offset, length, 1000/*timeout millis*/); @@ -234,7 +260,7 @@ public boolean getFeatureReport(byte[] report) { } else { data = Arrays.copyOfRange(report, 0, res); } - mManager.HIDDeviceFeatureReport(mDeviceId, data); + mManager.HIDDeviceReportResponse(mDeviceId, data); return true; } @@ -254,10 +280,13 @@ public void close() { mInputThread = null; } if (mConnection != null) { - UsbInterface iface = mDevice.getInterface(mInterfaceIndex); - mConnection.releaseInterface(iface); + if (mClaimed) { + UsbInterface iface = mDevice.getInterface(mInterfaceIndex); + mConnection.releaseInterface(iface); + } mConnection.close(); mConnection = null; + mClaimed = false; } } @@ -270,6 +299,22 @@ public void shutdown() { @Override public void setFrozen(boolean frozen) { mFrozen = frozen; + + /* If we have a valid device connection and the claim state doesn't match what we want, try to correct that. */ + if (mConnection != null && mClaimed == mFrozen) { + UsbInterface iface = mDevice.getInterface(mInterfaceIndex); + if (frozen) { + mClaimed = !mConnection.releaseInterface(iface); + if (mClaimed) { + Log.e(TAG, "Tried to release claim on USB device, but failed!"); + } + } else { + mClaimed = mConnection.claimInterface(iface, true); + if (!mClaimed) { + Log.e(TAG, "Tried to regain claim on USB device, but failed!"); + } + } + } } protected class InputThread extends Thread { diff --git a/Knossos.NET.Android/java/org/libsdl/app/SDL.java b/Knossos.NET.Android/java/org/libsdl/app/SDL.java index 139be9d1..d9650a72 100644 --- a/Knossos.NET.Android/java/org/libsdl/app/SDL.java +++ b/Knossos.NET.Android/java/org/libsdl/app/SDL.java @@ -1,8 +1,8 @@ package org.libsdl.app; +import android.app.Activity; import android.content.Context; -import java.lang.Class; import java.lang.reflect.Method; /** @@ -12,14 +12,14 @@ public class SDL { // This function should be called first and sets up the native code // so it can call into the Java classes - public static void setupJNI() { + static public void setupJNI() { SDLActivity.nativeSetupJNI(); SDLAudioManager.nativeSetupJNI(); SDLControllerManager.nativeSetupJNI(); } // This function should be called each time the activity is started - public static void initialize() { + static public void initialize() { setContext(null); SDLActivity.initialize(); @@ -28,33 +28,33 @@ public static void initialize() { } // This function stores the current activity (SDL or not) - public static void setContext(Context context) { + static public void setContext(Activity context) { SDLAudioManager.setContext(context); mContext = context; } - public static Context getContext() { + static public Activity getContext() { return mContext; } - public static void loadLibrary(String libraryName) throws UnsatisfiedLinkError, SecurityException, NullPointerException { + static void loadLibrary(String libraryName) throws UnsatisfiedLinkError, SecurityException, NullPointerException { loadLibrary(libraryName, mContext); } - public static void loadLibrary(String libraryName, Context context) throws UnsatisfiedLinkError, SecurityException, NullPointerException { + static void loadLibrary(String libraryName, Context context) throws UnsatisfiedLinkError, SecurityException, NullPointerException { if (libraryName == null) { throw new NullPointerException("No library name provided."); } try { - // Let's see if we have ReLinker available in the project. This is necessary for - // some projects that have huge numbers of local libraries bundled, and thus may + // Let's see if we have ReLinker available in the project. This is necessary for + // some projects that have huge numbers of local libraries bundled, and thus may // trip a bug in Android's native library loader which ReLinker works around. (If // loadLibrary works properly, ReLinker will simply use the normal Android method // internally.) // - // To use ReLinker, just add it as a dependency. For more information, see + // To use ReLinker, just add it as a dependency. For more information, see // https://github.com/KeepSafe/ReLinker for ReLinker's repository. // Class relinkClass = context.getClassLoader().loadClass("com.getkeepsafe.relinker.ReLinker"); @@ -62,7 +62,7 @@ public static void loadLibrary(String libraryName, Context context) throws Unsat Class contextClass = context.getClassLoader().loadClass("android.content.Context"); Class stringClass = context.getClassLoader().loadClass("java.lang.String"); - // Get a 'force' instance of the ReLinker, so we can ensure libraries are reinstalled if + // Get a 'force' instance of the ReLinker, so we can ensure libraries are reinstalled if // they've changed during updates. Method forceMethod = relinkClass.getDeclaredMethod("force"); Object relinkInstance = forceMethod.invoke(null); @@ -86,5 +86,5 @@ public static void loadLibrary(String libraryName, Context context) throws Unsat } } - protected static Context mContext; + protected static Activity mContext; } diff --git a/Knossos.NET.Android/java/org/libsdl/app/SDLActivity.java b/Knossos.NET.Android/java/org/libsdl/app/SDLActivity.java index c1a5422c..4672a0bd 100644 --- a/Knossos.NET.Android/java/org/libsdl/app/SDLActivity.java +++ b/Knossos.NET.Android/java/org/libsdl/app/SDLActivity.java @@ -4,6 +4,7 @@ import android.app.AlertDialog; import android.app.Dialog; import android.app.UiModeManager; +import android.content.ActivityNotFoundException; import android.content.ClipboardManager; import android.content.ClipData; import android.content.Context; @@ -22,10 +23,9 @@ import android.os.Build; import android.os.Bundle; import android.os.Handler; +import android.os.LocaleList; import android.os.Message; -import android.text.Editable; -import android.text.InputType; -import android.text.Selection; +import android.os.ParcelFileDescriptor; import android.util.DisplayMetrics; import android.util.Log; import android.util.SparseArray; @@ -39,17 +39,17 @@ import android.view.ViewGroup; import android.view.Window; import android.view.WindowManager; -import android.view.inputmethod.BaseInputConnection; -import android.view.inputmethod.EditorInfo; import android.view.inputmethod.InputConnection; import android.view.inputmethod.InputMethodManager; +import android.webkit.MimeTypeMap; import android.widget.Button; -import android.widget.EditText; import android.widget.LinearLayout; import android.widget.RelativeLayout; import android.widget.TextView; import android.widget.Toast; +import java.io.FileNotFoundException; +import java.util.ArrayList; import java.util.Hashtable; import java.util.Locale; @@ -59,9 +59,9 @@ */ public class SDLActivity extends Activity implements View.OnSystemUiVisibilityChangeListener { private static final String TAG = "SDL"; - private static final int SDL_MAJOR_VERSION = 2; - private static final int SDL_MINOR_VERSION = 33; - private static final int SDL_MICRO_VERSION = 0; + private static final int SDL_MAJOR_VERSION = 3; + private static final int SDL_MINOR_VERSION = 4; + private static final int SDL_MICRO_VERSION = 13; /* // Display InputType.SOURCE/CLASS of events and devices // @@ -107,11 +107,9 @@ public static void debugSource(int sources, String prefix) { if ((s & tst) == tst) src += " GAMEPAD"; s2 &= ~tst; - if (Build.VERSION.SDK_INT >= 21) { - tst = InputDevice.SOURCE_HDMI; - if ((s & tst) == tst) src += " HDMI"; - s2 &= ~tst; - } + tst = InputDevice.SOURCE_HDMI; + if ((s & tst) == tst) src += " HDMI"; + s2 &= ~tst; tst = InputDevice.SOURCE_JOYSTICK; if ((s & tst) == tst) src += " JOYSTICK"; @@ -146,11 +144,9 @@ public static void debugSource(int sources, String prefix) { if ((s & tst) == tst) src += " TOUCHSCREEN"; s2 &= ~tst; - if (Build.VERSION.SDK_INT >= 18) { - tst = InputDevice.SOURCE_TOUCH_NAVIGATION; - if ((s & tst) == tst) src += " TOUCH_NAVIGATION"; - s2 &= ~tst; - } + tst = InputDevice.SOURCE_TOUCH_NAVIGATION; + if ((s & tst) == tst) src += " TOUCH_NAVIGATION"; + s2 &= ~tst; tst = InputDevice.SOURCE_TRACKBALL; if ((s & tst) == tst) src += " TRACKBALL"; @@ -186,6 +182,14 @@ public static void debugSource(int sources, String prefix) { private static final int SDL_SYSTEM_CURSOR_SIZEALL = 9; private static final int SDL_SYSTEM_CURSOR_NO = 10; private static final int SDL_SYSTEM_CURSOR_HAND = 11; + private static final int SDL_SYSTEM_CURSOR_WINDOW_TOPLEFT = 12; + private static final int SDL_SYSTEM_CURSOR_WINDOW_TOP = 13; + private static final int SDL_SYSTEM_CURSOR_WINDOW_TOPRIGHT = 14; + private static final int SDL_SYSTEM_CURSOR_WINDOW_RIGHT = 15; + private static final int SDL_SYSTEM_CURSOR_WINDOW_BOTTOMRIGHT = 16; + private static final int SDL_SYSTEM_CURSOR_WINDOW_BOTTOM = 17; + private static final int SDL_SYSTEM_CURSOR_WINDOW_BOTTOMLEFT = 18; + private static final int SDL_SYSTEM_CURSOR_WINDOW_LEFT = 19; protected static final int SDL_ORIENTATION_UNKNOWN = 0; protected static final int SDL_ORIENTATION_LANDSCAPE = 1; @@ -193,7 +197,7 @@ public static void debugSource(int sources, String prefix) { protected static final int SDL_ORIENTATION_PORTRAIT = 3; protected static final int SDL_ORIENTATION_PORTRAIT_FLIPPED = 4; - protected static int mCurrentOrientation; + protected static int mCurrentRotation; protected static Locale mCurrentLocale; // Handle the state of the native layer @@ -210,32 +214,53 @@ public enum NativeState { // Main components protected static SDLActivity mSingleton; protected static SDLSurface mSurface; - protected static DummyEdit mTextEdit; - protected static boolean mScreenKeyboardShown; + protected static SDLDummyEdit mTextEdit; protected static ViewGroup mLayout; protected static SDLClipboardHandler mClipboardHandler; protected static Hashtable mCursors; protected static int mLastCursorID; - protected static SDLGenericMotionListener_API12 mMotionListener; + protected static SDLGenericMotionListener_API14 mMotionListener; protected static HIDDeviceManager mHIDDeviceManager; // This is what SDL runs in. It invokes SDL_main(), eventually protected static Thread mSDLThread; + protected static boolean mSDLMainFinished = false; + protected static boolean mActivityCreated = false; + private static SDLFileDialogState mFileDialogState = null; + protected static boolean mDispatchingKeyEvent = false; - protected static SDLGenericMotionListener_API12 getMotionListener() { + public static SDLGenericMotionListener_API14 getMotionListener() { if (mMotionListener == null) { - if (Build.VERSION.SDK_INT >= 26 /* Android 8.0 (O) */) { + if (Build.VERSION.SDK_INT >= 29 /* Android 10 (Q) */) { + mMotionListener = new SDLGenericMotionListener_API29(); + } else if (Build.VERSION.SDK_INT >= 26 /* Android 8.0 (O) */) { mMotionListener = new SDLGenericMotionListener_API26(); } else if (Build.VERSION.SDK_INT >= 24 /* Android 7.0 (N) */) { mMotionListener = new SDLGenericMotionListener_API24(); } else { - mMotionListener = new SDLGenericMotionListener_API12(); + mMotionListener = new SDLGenericMotionListener_API14(); } } return mMotionListener; } + /** + * The application entry point, called on a dedicated thread (SDLThread). + * The default implementation uses the getMainSharedObject() and getMainFunction() methods + * to invoke native code from the specified shared library. + * It can be overridden by derived classes. + */ + protected void main() { + String library = SDLActivity.mSingleton.getMainSharedObject(); + String function = SDLActivity.mSingleton.getMainFunction(); + String[] arguments = SDLActivity.mSingleton.getArguments(); + + Log.v("SDL", "Running main function " + function + " from library " + library); + SDLActivity.nativeRunMain(library, function, arguments); + Log.v("SDL", "Finished main function"); + } + /** * This method returns the name of the shared object with the application entry point * It can be overridden by derived classes. @@ -263,17 +288,17 @@ protected String getMainFunction() { * This method is called by SDL before loading the native shared libraries. * It can be overridden to provide names of shared libraries to be loaded. * The default implementation returns the defaults. It never returns null. - * An array returned by a new implementation must at least contain "SDL2". + * An array returned by a new implementation must at least contain "SDL3". * Also keep in mind that the order the libraries are loaded may matter. - * @return names of shared libraries to be loaded (e.g. "SDL2", "main"). + * @return names of shared libraries to be loaded (e.g. "SDL3", "main"). */ protected String[] getLibraries() { return new String[] { - "SDL2", - // "SDL2_image", - // "SDL2_mixer", - // "SDL2_net", - // "SDL2_ttf", + "SDL3", + // "SDL3_image", + // "SDL3_mixer", + // "SDL3_net", + // "SDL3_ttf", "main" }; } @@ -311,7 +336,7 @@ public static void initialize() { mNextNativeState = NativeState.INIT; mCurrentNativeState = NativeState.INIT; } - + protected SDLSurface createSDLSurface(Context context) { return new SDLSurface(context); } @@ -319,11 +344,30 @@ protected SDLSurface createSDLSurface(Context context) { // Setup @Override protected void onCreate(Bundle savedInstanceState) { + Log.v(TAG, "Manufacturer: " + Build.MANUFACTURER); Log.v(TAG, "Device: " + Build.DEVICE); Log.v(TAG, "Model: " + Build.MODEL); Log.v(TAG, "onCreate()"); super.onCreate(savedInstanceState); + + /* Control activity re-creation */ + if (mSDLMainFinished || mActivityCreated) { + boolean allow_recreate = SDLActivity.nativeAllowRecreateActivity(); + if (mSDLMainFinished) { + Log.v(TAG, "SDL main() finished"); + } + if (allow_recreate) { + Log.v(TAG, "activity re-created"); + } else { + Log.v(TAG, "activity finished"); + System.exit(0); + return; + } + } + + mActivityCreated = true; + try { Thread.currentThread().setName("SDLActivity"); } catch (Exception e) { @@ -378,6 +422,24 @@ public void onClick(DialogInterface dialog,int id) { return; } + + /* Control activity re-creation */ + /* Robustness: check that the native code is run for the first time. + * (Maybe Activity was reset, but not the native code.) */ + { + int run_count = SDLActivity.nativeCheckSDLThreadCounter(); /* get and increment a native counter */ + if (run_count != 0) { + boolean allow_recreate = SDLActivity.nativeAllowRecreateActivity(); + if (allow_recreate) { + Log.v(TAG, "activity re-created // run_count: " + run_count); + } else { + Log.v(TAG, "activity finished // run_count: " + run_count); + System.exit(0); + return; + } + } + } + // Set up JNI SDL.setupJNI(); @@ -399,9 +461,9 @@ public void onClick(DialogInterface dialog,int id) { mLayout.addView(mSurface); // Get our current screen orientation and pass it down. - mCurrentOrientation = SDLActivity.getCurrentOrientation(); - // Only record current orientation - SDLActivity.onNativeOrientationChanged(mCurrentOrientation); + SDLActivity.nativeSetNaturalOrientation(SDLActivity.getNaturalOrientation()); + mCurrentRotation = SDLActivity.getCurrentRotation(); + SDLActivity.onNativeRotationChanged(mCurrentRotation); try { if (Build.VERSION.SDK_INT < 24 /* Android 7.0 (N) */) { @@ -412,6 +474,15 @@ public void onClick(DialogInterface dialog,int id) { } catch(Exception ignored) { } + switch (getContext().getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK) { + case Configuration.UI_MODE_NIGHT_NO: + SDLActivity.onNativeDarkModeChanged(false); + break; + case Configuration.UI_MODE_NIGHT_YES: + SDLActivity.onNativeDarkModeChanged(true); + break; + } + setContentView(mLayout); setWindowStyle(false); @@ -459,7 +530,8 @@ protected void onPause() { if (mHIDDeviceManager != null) { mHIDDeviceManager.setFrozen(true); - } + } + if (!mHasMultiWindow) { pauseNativeThread(); } @@ -472,7 +544,8 @@ protected void onResume() { if (mHIDDeviceManager != null) { mHIDDeviceManager.setFrozen(false); - } + } + if (!mHasMultiWindow) { resumeNativeThread(); } @@ -496,33 +569,47 @@ protected void onStart() { } } - public static int getCurrentOrientation() { + public static int getNaturalOrientation() { int result = SDL_ORIENTATION_UNKNOWN; - Activity activity = (Activity)getContext(); - if (activity == null) { - return result; - } - Display display = activity.getWindowManager().getDefaultDisplay(); - - switch (display.getRotation()) { - case Surface.ROTATION_0: - result = SDL_ORIENTATION_PORTRAIT; - break; - - case Surface.ROTATION_90: + Activity activity = getContext(); + if (activity != null) { + Configuration config = activity.getResources().getConfiguration(); + Display display = activity.getWindowManager().getDefaultDisplay(); + int rotation = display.getRotation(); + if (((rotation == Surface.ROTATION_0 || rotation == Surface.ROTATION_180) && + config.orientation == Configuration.ORIENTATION_LANDSCAPE) || + ((rotation == Surface.ROTATION_90 || rotation == Surface.ROTATION_270) && + config.orientation == Configuration.ORIENTATION_PORTRAIT)) { result = SDL_ORIENTATION_LANDSCAPE; - break; - - case Surface.ROTATION_180: - result = SDL_ORIENTATION_PORTRAIT_FLIPPED; - break; - - case Surface.ROTATION_270: - result = SDL_ORIENTATION_LANDSCAPE_FLIPPED; - break; + } else { + result = SDL_ORIENTATION_PORTRAIT; + } } + return result; + } + public static int getCurrentRotation() { + int result = 0; + + Activity activity = getContext(); + if (activity != null) { + Display display = activity.getWindowManager().getDefaultDisplay(); + switch (display.getRotation()) { + case Surface.ROTATION_0: + result = 0; + break; + case Surface.ROTATION_90: + result = 90; + break; + case Surface.ROTATION_180: + result = 180; + break; + case Surface.ROTATION_270: + result = 270; + break; + } + } return result; } @@ -531,6 +618,14 @@ public void onWindowFocusChanged(boolean hasFocus) { super.onWindowFocusChanged(hasFocus); Log.v(TAG, "onWindowFocusChanged(): " + hasFocus); + // If we are gaining focus, we can always try to restore our USB devices. If we are losing focus, + // only try to relinquish them if we don't have background events allowed (for multi-window Android setups). + if (hasFocus || !SDLActivity.nativeGetHintBoolean("SDL_JOYSTICK_ALLOW_BACKGROUND_EVENTS", false)) { + if (mHIDDeviceManager != null) { + mHIDDeviceManager.setFrozen(!hasFocus); + } + } + if (SDLActivity.mBrokenLibraries) { return; } @@ -553,9 +648,9 @@ public void onWindowFocusChanged(boolean hasFocus) { } @Override - public void onLowMemory() { - Log.v(TAG, "onLowMemory()"); - super.onLowMemory(); + public void onTrimMemory(int level) { + Log.v(TAG, "onTrimMemory()"); + super.onTrimMemory(level); if (SDLActivity.mBrokenLibraries) { return; @@ -577,6 +672,15 @@ public void onConfigurationChanged(Configuration newConfig) { mCurrentLocale = newConfig.locale; SDLActivity.onNativeLocaleChanged(); } + + switch (newConfig.uiMode & Configuration.UI_MODE_NIGHT_MASK) { + case Configuration.UI_MODE_NIGHT_NO: + SDLActivity.onNativeDarkModeChanged(false); + break; + case Configuration.UI_MODE_NIGHT_YES: + SDLActivity.onNativeDarkModeChanged(true); + break; + } } @Override @@ -602,7 +706,11 @@ protected void onDestroy() { // Wait for "SDLThread" thread to end try { - SDLActivity.mSDLThread.join(); + // Use a timeout because: + // C SDLmain() thread might have started (mSDLThread.start() called) + // while the SDL_Init() might not have been called yet, + // and so the previous QUIT event will be discarded by SDL_Init() and app is running, not exiting. + SDLActivity.mSDLThread.join(1000); } catch(Exception e) { Log.v(TAG, "Problem stopping SDLThread: " + e); } @@ -632,6 +740,43 @@ public void onBackPressed() { } } + @Override + protected void onActivityResult(int requestCode, int resultCode, Intent data) { + super.onActivityResult(requestCode, resultCode, data); + + if (mFileDialogState != null && mFileDialogState.requestCode == requestCode) { + /* This is our file dialog */ + String[] filelist = null; + + if (data != null) { + Uri singleFileUri = data.getData(); + + if (singleFileUri == null) { + /* Use Intent.getClipData to get multiple choices */ + ClipData clipData = data.getClipData(); + assert clipData != null; + + filelist = new String[clipData.getItemCount()]; + + for (int i = 0; i < filelist.length; i++) { + String uri = clipData.getItemAt(i).getUri().toString(); + filelist[i] = uri; + } + } else { + /* Only one file is selected. */ + filelist = new String[]{singleFileUri.toString()}; + } + } else { + /* User cancelled the request. */ + filelist = new String[0]; + } + + // TODO: Detect the file MIME type and pass the filter value accordingly. + SDLActivity.onNativeFileDialog(requestCode, filelist, -1); + mFileDialogState = null; + } + } + // Called by JNI from SDL. public static void manualBackButton() { mSingleton.pressBackButton(); @@ -671,7 +816,14 @@ public boolean dispatchKeyEvent(KeyEvent event) { ) { return false; } - return super.dispatchKeyEvent(event); + mDispatchingKeyEvent = true; + boolean result = super.dispatchKeyEvent(event); + mDispatchingKeyEvent = false; + return result; + } + + public static boolean dispatchingKeyEvent() { + return mDispatchingKeyEvent; } /* Transition to next state */ @@ -703,7 +855,7 @@ public static void handleNativeState() { // Try a transition to resumed state if (mNextNativeState == NativeState.RESUMED) { - if (mSurface.mIsSurfaceReady && mHasFocus && mIsResumedCalled) { + if (mSurface.mIsSurfaceReady && (mHasFocus || mHasMultiWindow) && mIsResumedCalled) { if (mSDLThread == null) { // This is the entry point to the C app. // Start up the C app thread and enable sensor input for the first time @@ -725,11 +877,10 @@ public static void handleNativeState() { } // Messages from the SDLMain thread - static final int COMMAND_CHANGE_TITLE = 1; - static final int COMMAND_CHANGE_WINDOW_STYLE = 2; - static final int COMMAND_TEXTEDIT_HIDE = 3; - static final int COMMAND_SET_KEEP_SCREEN_ON = 5; - + protected static final int COMMAND_CHANGE_TITLE = 1; + protected static final int COMMAND_CHANGE_WINDOW_STYLE = 2; + protected static final int COMMAND_TEXTEDIT_HIDE = 3; + protected static final int COMMAND_SET_KEEP_SCREEN_ON = 5; protected static final int COMMAND_USER = 0x8000; protected static boolean mFullscreenModeActive; @@ -738,6 +889,8 @@ public static void handleNativeState() { * This method is called by SDL if SDL did not handle a message itself. * This happens if a received message contains an unsupported command. * Method can be overwritten to handle Messages in a different class. + * @param command the command of the message. + * @param param the parameter of the message. May be null. * @return if the message was handled in overridden method. */ protected boolean onUnhandledMessage(int command, Object param) { @@ -752,7 +905,7 @@ protected boolean onUnhandledMessage(int command, Object param) { protected static class SDLCommandHandler extends Handler { @Override public void handleMessage(Message msg) { - Context context = SDL.getContext(); + Context context = getContext(); if (context == null) { Log.e(TAG, "error handling message, getContext() returned null"); return; @@ -766,35 +919,37 @@ public void handleMessage(Message msg) { } break; case COMMAND_CHANGE_WINDOW_STYLE: - if (Build.VERSION.SDK_INT >= 19 /* Android 4.4 (KITKAT) */) { - if (context instanceof Activity) { - Window window = ((Activity) context).getWindow(); - if (window != null) { - if ((msg.obj instanceof Integer) && ((Integer) msg.obj != 0)) { - int flags = View.SYSTEM_UI_FLAG_FULLSCREEN | - View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | - View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY | - View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | - View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION | - View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.INVISIBLE; - window.getDecorView().setSystemUiVisibility(flags); - window.addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); - window.clearFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN); - SDLActivity.mFullscreenModeActive = true; - } else { - int flags = View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_VISIBLE; - window.getDecorView().setSystemUiVisibility(flags); - window.addFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN); - window.clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); - SDLActivity.mFullscreenModeActive = false; - } - if (Build.VERSION.SDK_INT >= 28 /* Android 9 (Pie) */) { - window.getAttributes().layoutInDisplayCutoutMode = WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES; - } + if (context instanceof Activity) { + Window window = ((Activity) context).getWindow(); + if (window != null) { + if ((msg.obj instanceof Integer) && ((Integer) msg.obj != 0)) { + int flags = View.SYSTEM_UI_FLAG_FULLSCREEN | + View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | + View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY | + View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | + View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION | + View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.INVISIBLE; + window.getDecorView().setSystemUiVisibility(flags); + window.addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); + window.clearFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN); + SDLActivity.mFullscreenModeActive = true; + } else { + int flags = View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_VISIBLE; + window.getDecorView().setSystemUiVisibility(flags); + window.addFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN); + window.clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); + SDLActivity.mFullscreenModeActive = false; + } + if (Build.VERSION.SDK_INT >= 30 /* Android 11 (R) */) { + window.getAttributes().layoutInDisplayCutoutMode = WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_ALWAYS; + } + if (Build.VERSION.SDK_INT >= 30 /* Android 11 (R) */ && + Build.VERSION.SDK_INT < 35 /* Android 15 */) { + SDLActivity.onNativeInsetsChanged(0, 0, 0, 0); } - } else { - Log.e(TAG, "error handling message, getContext() returned no Activity"); } + } else { + Log.e(TAG, "error handling message, getContext() returned no Activity"); } break; case COMMAND_TEXTEDIT_HIDE: @@ -807,7 +962,7 @@ public void handleMessage(Message msg) { InputMethodManager imm = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(mTextEdit.getWindowToken(), 0); - mScreenKeyboardShown = false; + onNativeScreenKeyboardHidden(); mSurface.requestFocus(); } @@ -838,59 +993,57 @@ public void handleMessage(Message msg) { Handler commandHandler = new SDLCommandHandler(); // Send a message from the SDLMain thread - boolean sendCommand(int command, Object data) { + protected boolean sendCommand(int command, Object data) { Message msg = commandHandler.obtainMessage(); msg.arg1 = command; msg.obj = data; boolean result = commandHandler.sendMessage(msg); - if (Build.VERSION.SDK_INT >= 19 /* Android 4.4 (KITKAT) */) { - if (command == COMMAND_CHANGE_WINDOW_STYLE) { - // Ensure we don't return until the resize has actually happened, - // or 500ms have passed. - - boolean bShouldWait = false; - - if (data instanceof Integer) { - // Let's figure out if we're already laid out fullscreen or not. - Display display = ((WindowManager) getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay(); - DisplayMetrics realMetrics = new DisplayMetrics(); - display.getRealMetrics(realMetrics); - - boolean bFullscreenLayout = ((realMetrics.widthPixels == mSurface.getWidth()) && - (realMetrics.heightPixels == mSurface.getHeight())); - - if ((Integer) data == 1) { - // If we aren't laid out fullscreen or actively in fullscreen mode already, we're going - // to change size and should wait for surfaceChanged() before we return, so the size - // is right back in native code. If we're already laid out fullscreen, though, we're - // not going to change size even if we change decor modes, so we shouldn't wait for - // surfaceChanged() -- which may not even happen -- and should return immediately. - bShouldWait = !bFullscreenLayout; - } else { - // If we're laid out fullscreen (even if the status bar and nav bar are present), - // or are actively in fullscreen, we're going to change size and should wait for - // surfaceChanged before we return, so the size is right back in native code. - bShouldWait = bFullscreenLayout; - } + if (command == COMMAND_CHANGE_WINDOW_STYLE) { + // Ensure we don't return until the resize has actually happened, + // or 500ms have passed. + + boolean bShouldWait = false; + + if (data instanceof Integer) { + // Let's figure out if we're already laid out fullscreen or not. + Display display = ((WindowManager) getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay(); + DisplayMetrics realMetrics = new DisplayMetrics(); + display.getRealMetrics(realMetrics); + + boolean bFullscreenLayout = ((realMetrics.widthPixels == mSurface.getWidth()) && + (realMetrics.heightPixels == mSurface.getHeight())); + + if ((Integer) data == 1) { + // If we aren't laid out fullscreen or actively in fullscreen mode already, we're going + // to change size and should wait for surfaceChanged() before we return, so the size + // is right back in native code. If we're already laid out fullscreen, though, we're + // not going to change size even if we change decor modes, so we shouldn't wait for + // surfaceChanged() -- which may not even happen -- and should return immediately. + bShouldWait = !bFullscreenLayout; + } else { + // If we're laid out fullscreen (even if the status bar and nav bar are present), + // or are actively in fullscreen, we're going to change size and should wait for + // surfaceChanged before we return, so the size is right back in native code. + bShouldWait = bFullscreenLayout; } + } - if (bShouldWait && (SDLActivity.getContext() != null)) { - // We'll wait for the surfaceChanged() method, which will notify us - // when called. That way, we know our current size is really the - // size we need, instead of grabbing a size that's still got - // the navigation and/or status bars before they're hidden. - // - // We'll wait for up to half a second, because some devices - // take a surprisingly long time for the surface resize, but - // then we'll just give up and return. - // - synchronized (SDLActivity.getContext()) { - try { - SDLActivity.getContext().wait(500); - } catch (InterruptedException ie) { - ie.printStackTrace(); - } + if (bShouldWait && (getContext() != null)) { + // We'll wait for the surfaceChanged() method, which will notify us + // when called. That way, we know our current size is really the + // size we need, instead of grabbing a size that's still got + // the navigation and/or status bars before they're hidden. + // + // We'll wait for up to half a second, because some devices + // take a surprisingly long time for the surface resize, but + // then we'll just give up and return. + // + synchronized (getContext()) { + try { + getContext().wait(500); + } catch (InterruptedException ie) { + ie.printStackTrace(); } } } @@ -901,7 +1054,9 @@ boolean sendCommand(int command, Object data) { // C functions we call public static native String nativeGetVersion(); - public static native int nativeSetupJNI(); + public static native void nativeSetupJNI(); + public static native void nativeInitMainThread(); + public static native void nativeCleanupMainThread(); public static native int nativeRunMain(String library, String function, Object arguments); public static native void nativeLowMemory(); public static native void nativeSendQuit(); @@ -910,7 +1065,7 @@ boolean sendCommand(int command, Object data) { public static native void nativeResume(); public static native void nativeFocusChanged(boolean hasFocus); public static native void onNativeDropFile(String filename); - public static native void nativeSetScreenResolution(int surfaceWidth, int surfaceHeight, int deviceWidth, int deviceHeight, float rate); + public static native void nativeSetScreenResolution(int surfaceWidth, int surfaceHeight, int deviceWidth, int deviceHeight, float density, float rate); public static native void onNativeResize(); public static native void onNativeKeyDown(int keycode); public static native void onNativeKeyUp(int keycode); @@ -920,18 +1075,30 @@ boolean sendCommand(int command, Object data) { public static native void onNativeTouch(int touchDevId, int pointerFingerId, int action, float x, float y, float p); + public static native void onNativePen(int penId, int device_type, int button, int action, float x, float y, float p); public static native void onNativeAccel(float x, float y, float z); public static native void onNativeClipboardChanged(); public static native void onNativeSurfaceCreated(); public static native void onNativeSurfaceChanged(); public static native void onNativeSurfaceDestroyed(); + public static native void onNativeScreenKeyboardShown(); + public static native void onNativeScreenKeyboardHidden(); public static native String nativeGetHint(String name); public static native boolean nativeGetHintBoolean(String name, boolean default_value); public static native void nativeSetenv(String name, String value); - public static native void onNativeOrientationChanged(int orientation); + public static native void nativeSetNaturalOrientation(int orientation); + public static native void onNativeRotationChanged(int rotation); + public static native void onNativeInsetsChanged(int left, int right, int top, int bottom); public static native void nativeAddTouch(int touchId, String name); public static native void nativePermissionResult(int requestCode, boolean result); public static native void onNativeLocaleChanged(); + public static native void onNativeDarkModeChanged(boolean enabled); + public static native boolean nativeAllowRecreateActivity(); + public static native int nativeCheckSDLThreadCounter(); + public static native void onNativeFileDialog(int requestCode, String[] filelist, int filter); + public static native void onNativePinchStart(); + public static native void onNativePinchUpdate(float scale); + public static native void onNativePinchEnd(); /** * This method is called by SDL using JNI. @@ -969,9 +1136,14 @@ public void setOrientationBis(int w, int h, boolean resizable, String hint) int orientation_landscape = -1; int orientation_portrait = -1; + if (w <= 1 || h <= 1) { + // Invalid width/height, ignore this request + return; + } + /* If set, hint "explicitly controls which UI orientations are allowed". */ if (hint.contains("LandscapeRight") && hint.contains("LandscapeLeft")) { - orientation_landscape = ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE; + orientation_landscape = ActivityInfo.SCREEN_ORIENTATION_USER_LANDSCAPE; } else if (hint.contains("LandscapeLeft")) { orientation_landscape = ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE; } else if (hint.contains("LandscapeRight")) { @@ -982,7 +1154,7 @@ public void setOrientationBis(int w, int h, boolean resizable, String hint) boolean contains_Portrait = hint.contains("Portrait ") || hint.endsWith("Portrait"); if (contains_Portrait && hint.contains("PortraitUpsideDown")) { - orientation_portrait = ActivityInfo.SCREEN_ORIENTATION_SENSOR_PORTRAIT; + orientation_portrait = ActivityInfo.SCREEN_ORIENTATION_USER_PORTRAIT; } else if (contains_Portrait) { orientation_portrait = ActivityInfo.SCREEN_ORIENTATION_PORTRAIT; } else if (hint.contains("PortraitUpsideDown")) { @@ -1046,44 +1218,9 @@ public static void minimizeWindow() { * This method is called by SDL using JNI. */ public static boolean shouldMinimizeOnFocusLoss() { -/* - if (Build.VERSION.SDK_INT >= 24) { - if (mSingleton == null) { - return true; - } - - if (mSingleton.isInMultiWindowMode()) { - return false; - } - - if (mSingleton.isInPictureInPictureMode()) { - return false; - } - } - - return true; -*/ return false; } - /** - * This method is called by SDL using JNI. - */ - public static boolean isScreenKeyboardShown() - { - if (mTextEdit == null) { - return false; - } - - if (!mScreenKeyboardShown) { - return false; - } - - InputMethodManager imm = (InputMethodManager) SDL.getContext().getSystemService(Context.INPUT_METHOD_SERVICE); - return imm.isAcceptingText(); - - } - /** * This method is called by SDL using JNI. */ @@ -1128,7 +1265,7 @@ public static boolean sendMessage(int command, int param) { /** * This method is called by SDL using JNI. */ - public static Context getContext() { + public static Activity getContext() { return SDL.getContext(); } @@ -1143,16 +1280,29 @@ public static boolean isAndroidTV() { if (Build.MANUFACTURER.equals("MINIX") && Build.MODEL.equals("NEO-U1")) { return true; } - if (Build.MANUFACTURER.equals("Amlogic") && Build.MODEL.equals("X96-W")) { + if (Build.MANUFACTURER.equals("Amlogic") && + (Build.MODEL.startsWith("TV") || + Build.MODEL.equals("X96-W") || + Build.MODEL.equals("A95X-R1"))) { return true; } - return Build.MANUFACTURER.equals("Amlogic") && Build.MODEL.startsWith("TV"); + return false; + } + + public static boolean isVRHeadset() { + if (Build.MANUFACTURER.equals("Oculus") && Build.MODEL.startsWith("Quest")) { + return true; + } + if (Build.MANUFACTURER.equals("Pico")) { + return true; + } + return false; } public static double getDiagonal() { DisplayMetrics metrics = new DisplayMetrics(); - Activity activity = (Activity)getContext(); + Activity activity = getContext(); if (activity == null) { return 0.0; } @@ -1176,10 +1326,17 @@ public static boolean isTablet() { * This method is called by SDL using JNI. */ public static boolean isChromebook() { - if (getContext() == null) { - return false; + // https://stackoverflow.com/questions/39784415/how-to-detect-programmatically-if-android-app-is-running-in-chrome-book-or-in + if (getContext() != null) { + if (getContext().getPackageManager().hasSystemFeature("org.chromium.arc") + || getContext().getPackageManager().hasSystemFeature("org.chromium.arc.device_management")) { + return true; + } } - return getContext().getPackageManager().hasSystemFeature("org.chromium.arc.device_management"); + + // Running on AVD emulator + boolean isChromebookEmulator = (Build.MODEL != null && Build.MODEL.startsWith("sdk_gpc_")); + return isChromebookEmulator; } /** @@ -1199,13 +1356,6 @@ public static boolean isDeXMode() { } } - /** - * This method is called by SDL using JNI. - */ - public static DisplayMetrics getDisplayDPI() { - return getContext().getResources().getDisplayMetrics(); - } - /** * This method is called by SDL using JNI. */ @@ -1250,9 +1400,11 @@ static class ShowTextInputTask implements Runnable { */ static final int HEIGHT_PADDING = 15; + public int input_type; public int x, y, w, h; - public ShowTextInputTask(int x, int y, int w, int h) { + public ShowTextInputTask(int input_type, int x, int y, int w, int h) { + this.input_type = input_type; this.x = x; this.y = y; this.w = w; @@ -1274,29 +1426,32 @@ public void run() { params.topMargin = y; if (mTextEdit == null) { - mTextEdit = new DummyEdit(SDL.getContext()); + mTextEdit = new SDLDummyEdit(getContext()); mLayout.addView(mTextEdit, params); } else { mTextEdit.setLayoutParams(params); } + mTextEdit.setInputType(input_type); mTextEdit.setVisibility(View.VISIBLE); mTextEdit.requestFocus(); - InputMethodManager imm = (InputMethodManager) SDL.getContext().getSystemService(Context.INPUT_METHOD_SERVICE); + InputMethodManager imm = (InputMethodManager) getContext().getSystemService(Context.INPUT_METHOD_SERVICE); imm.showSoftInput(mTextEdit, 0); - mScreenKeyboardShown = true; + if (imm.isAcceptingText()) { + onNativeScreenKeyboardShown(); + } } } /** * This method is called by SDL using JNI. */ - public static boolean showTextInput(int x, int y, int w, int h) { + public static boolean showTextInput(int input_type, int x, int y, int w, int h) { // Transfer the task to the main thread as a Runnable - return mSingleton.commandHandler.post(new ShowTextInputTask(x, y, w, h)); + return mSingleton.commandHandler.post(new ShowTextInputTask(input_type, x, y, w, h)); } public static boolean isTextInputEvent(KeyEvent event) { @@ -1336,31 +1491,37 @@ public static boolean handleKeyEvent(View v, int keyCode, KeyEvent event, InputC if (SDLControllerManager.isDeviceSDLJoystick(deviceId)) { // Note that we process events with specific key codes here if (event.getAction() == KeyEvent.ACTION_DOWN) { - if (SDLControllerManager.onNativePadDown(deviceId, keyCode) == 0) { + if (SDLControllerManager.onNativePadDown(deviceId, keyCode, event.getScanCode())) { return true; } } else if (event.getAction() == KeyEvent.ACTION_UP) { - if (SDLControllerManager.onNativePadUp(deviceId, keyCode) == 0) { + if (SDLControllerManager.onNativePadUp(deviceId, keyCode, event.getScanCode())) { return true; } } } if ((source & InputDevice.SOURCE_MOUSE) == InputDevice.SOURCE_MOUSE) { - // on some devices key events are sent for mouse BUTTON_BACK/FORWARD presses - // they are ignored here because sending them as mouse input to SDL is messy - if ((keyCode == KeyEvent.KEYCODE_BACK) || (keyCode == KeyEvent.KEYCODE_FORWARD)) { - switch (event.getAction()) { - case KeyEvent.ACTION_DOWN: - case KeyEvent.ACTION_UP: - // mark the event as handled or it will be handled by system - // handling KEYCODE_BACK by system will call onBackPressed() - return true; + if (SDLActivity.isVRHeadset()) { + // The Oculus Quest controller back button comes in as source mouse, so accept that + } else { + // on some devices key events are sent for mouse BUTTON_BACK/FORWARD presses + // they are ignored here because sending them as mouse input to SDL is messy + if ((keyCode == KeyEvent.KEYCODE_BACK) || (keyCode == KeyEvent.KEYCODE_FORWARD)) { + switch (event.getAction()) { + case KeyEvent.ACTION_DOWN: + case KeyEvent.ACTION_UP: + // mark the event as handled or it will be handled by system + // handling KEYCODE_BACK by system will call onBackPressed() + return true; + } } } } if (event.getAction() == KeyEvent.ACTION_DOWN) { + onNativeKeyDown(keyCode); + if (isTextInputEvent(event)) { if (ic != null) { ic.commitText(String.valueOf((char) event.getUnicodeChar()), 1); @@ -1368,7 +1529,6 @@ public static boolean handleKeyEvent(View v, int keyCode, KeyEvent event, InputC SDLInputConnection.nativeCommitText(String.valueOf((char) event.getUnicodeChar()), 1); } } - onNativeKeyDown(keyCode); return true; } else if (event.getAction() == KeyEvent.ACTION_UP) { onNativeKeyUp(keyCode); @@ -1402,17 +1562,7 @@ public static void initTouch() { if (device != null && ((device.getSources() & InputDevice.SOURCE_TOUCHSCREEN) == InputDevice.SOURCE_TOUCHSCREEN || device.isVirtual())) { - int touchDevId = device.getId(); - /* - * Prevent id to be -1, since it's used in SDL internal for synthetic events - * Appears when using Android emulator, eg: - * adb shell input mouse tap 100 100 - * adb shell input touchscreen tap 100 100 - */ - if (touchDevId < 0) { - touchDevId -= 1; - } - nativeAddTouch(touchDevId, device.getName()); + nativeAddTouch(device.getId(), device.getName()); } } } @@ -1426,6 +1576,10 @@ public static void initTouch() { * This method is called by SDL using JNI. * Shows the messagebox from UI thread and block calling thread. * buttonFlags, buttonIds and buttonTexts must have same length. + * @param buttonFlags array containing flags for every button. + * @param buttonIds array containing id for every button. + * @param buttonTexts array containing text for every button. + * @param colors null for default or array of length 5 containing colors. * @return button id or -1. */ public int messageboxShowMessageBox( @@ -1617,16 +1771,14 @@ public boolean onKey(DialogInterface d, int keyCode, KeyEvent event) { private final Runnable rehideSystemUi = new Runnable() { @Override public void run() { - if (Build.VERSION.SDK_INT >= 19 /* Android 4.4 (KITKAT) */) { - int flags = View.SYSTEM_UI_FLAG_FULLSCREEN | - View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | - View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY | - View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | - View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION | - View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.INVISIBLE; - - SDLActivity.this.getWindow().getDecorView().setSystemUiVisibility(flags); - } + int flags = View.SYSTEM_UI_FLAG_FULLSCREEN | + View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | + View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY | + View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | + View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION | + View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.INVISIBLE; + + SDLActivity.this.getWindow().getDecorView().setSystemUiVisibility(flags); } }; @@ -1754,10 +1906,34 @@ public static boolean setSystemCursor(int cursorID) { case SDL_SYSTEM_CURSOR_HAND: cursor_type = 1002; //PointerIcon.TYPE_HAND; break; + case SDL_SYSTEM_CURSOR_WINDOW_TOPLEFT: + cursor_type = 1017; //PointerIcon.TYPE_TOP_LEFT_DIAGONAL_DOUBLE_ARROW; + break; + case SDL_SYSTEM_CURSOR_WINDOW_TOP: + cursor_type = 1015; //PointerIcon.TYPE_VERTICAL_DOUBLE_ARROW; + break; + case SDL_SYSTEM_CURSOR_WINDOW_TOPRIGHT: + cursor_type = 1016; //PointerIcon.TYPE_TOP_RIGHT_DIAGONAL_DOUBLE_ARROW; + break; + case SDL_SYSTEM_CURSOR_WINDOW_RIGHT: + cursor_type = 1014; //PointerIcon.TYPE_HORIZONTAL_DOUBLE_ARROW; + break; + case SDL_SYSTEM_CURSOR_WINDOW_BOTTOMRIGHT: + cursor_type = 1017; //PointerIcon.TYPE_TOP_LEFT_DIAGONAL_DOUBLE_ARROW; + break; + case SDL_SYSTEM_CURSOR_WINDOW_BOTTOM: + cursor_type = 1015; //PointerIcon.TYPE_VERTICAL_DOUBLE_ARROW; + break; + case SDL_SYSTEM_CURSOR_WINDOW_BOTTOMLEFT: + cursor_type = 1016; //PointerIcon.TYPE_TOP_RIGHT_DIAGONAL_DOUBLE_ARROW; + break; + case SDL_SYSTEM_CURSOR_WINDOW_LEFT: + cursor_type = 1014; //PointerIcon.TYPE_HORIZONTAL_DOUBLE_ARROW; + break; } if (Build.VERSION.SDK_INT >= 24 /* Android 7.0 (N) */) { try { - mSurface.setPointerIcon(PointerIcon.getSystemIcon(SDL.getContext(), cursor_type)); + mSurface.setPointerIcon(PointerIcon.getSystemIcon(getContext(), cursor_type)); } catch (Exception e) { return false; } @@ -1774,7 +1950,7 @@ public static void requestPermission(String permission, int requestCode) { return; } - Activity activity = (Activity)getContext(); + Activity activity = getContext(); if (activity.checkSelfPermission(permission) != PackageManager.PERMISSION_GRANTED) { activity.requestPermissions(new String[]{permission}, requestCode); } else { @@ -1791,44 +1967,41 @@ public void onRequestPermissionsResult(int requestCode, String[] permissions, in /** * This method is called by SDL using JNI. */ - public static int openURL(String url) + public static boolean openURL(String url) { try { Intent i = new Intent(Intent.ACTION_VIEW); i.setData(Uri.parse(url)); - int flags = Intent.FLAG_ACTIVITY_NO_HISTORY | Intent.FLAG_ACTIVITY_MULTIPLE_TASK; - if (Build.VERSION.SDK_INT >= 21 /* Android 5.0 (LOLLIPOP) */) { - flags |= Intent.FLAG_ACTIVITY_NEW_DOCUMENT; - } else { - flags |= Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET; - } + int flags = Intent.FLAG_ACTIVITY_NO_HISTORY + | Intent.FLAG_ACTIVITY_MULTIPLE_TASK + | Intent.FLAG_ACTIVITY_NEW_DOCUMENT; i.addFlags(flags); mSingleton.startActivity(i); } catch (Exception ex) { - return -1; + return false; } - return 0; + return true; } /** * This method is called by SDL using JNI. */ - public static int showToast(String message, int duration, int gravity, int xOffset, int yOffset) + public static boolean showToast(String message, int duration, int gravity, int xOffset, int yOffset) { if(null == mSingleton) { - return - 1; + return false; } try { class OneShotTask implements Runnable { - String mMessage; - int mDuration; - int mGravity; - int mXOffset; - int mYOffset; + private final String mMessage; + private final int mDuration; + private final int mGravity; + private final int mXOffset; + private final int mYOffset; OneShotTask(String message, int duration, int gravity, int xOffset, int yOffset) { mMessage = message; @@ -1853,167 +2026,160 @@ public void run() { } mSingleton.runOnUiThread(new OneShotTask(message, duration, gravity, xOffset, yOffset)); } catch(Exception ex) { - return -1; + return false; } - return 0; + return true; } -} -/** - Simple runnable to start the SDL application -*/ -class SDLMain implements Runnable { - @Override - public void run() { - // Runs SDL_main() - String library = SDLActivity.mSingleton.getMainSharedObject(); - String function = SDLActivity.mSingleton.getMainFunction(); - String[] arguments = SDLActivity.mSingleton.getArguments(); + /** + * This method is called by SDL using JNI. + */ + public static int openFileDescriptor(String uri, String mode) throws Exception { + if (mSingleton == null) { + return -1; + } try { - android.os.Process.setThreadPriority(android.os.Process.THREAD_PRIORITY_DISPLAY); - } catch (Exception e) { - Log.v("SDL", "modify thread properties failed " + e.toString()); + ParcelFileDescriptor pfd = mSingleton.getContentResolver().openFileDescriptor(Uri.parse(uri), mode); + return pfd != null ? pfd.detachFd() : -1; + } catch (FileNotFoundException e) { + e.printStackTrace(); + return -1; } + } - Log.v("SDL", "Running main function " + function + " from library " + library); - - SDLActivity.nativeRunMain(library, function, arguments); + /** + * This method is called by SDL using JNI. + */ + public static boolean showFileDialog(String[] filters, boolean allowMultiple, boolean forWrite, int requestCode) { + if (mSingleton == null) { + return false; + } - Log.v("SDL", "Finished main function"); + if (forWrite) { + allowMultiple = false; + } - if (SDLActivity.mSingleton != null && !SDLActivity.mSingleton.isFinishing()) { - // Let's finish the Activity - SDLActivity.mSDLThread = null; - SDLActivity.mSingleton.finish(); - } // else: Activity is already being destroyed + /* Convert string list of extensions to their respective MIME types */ + ArrayList mimes = new ArrayList<>(); + MimeTypeMap mimeTypeMap = MimeTypeMap.getSingleton(); + if (filters != null) { + for (String pattern : filters) { + String[] extensions = pattern.split(";"); - } -} + if (extensions.length == 1 && extensions[0].equals("*")) { + /* Handle "*" special case */ + mimes.add("*/*"); + } else { + for (String ext : extensions) { + String mime = mimeTypeMap.getMimeTypeFromExtension(ext); + if (mime != null) { + mimes.add(mime); + } + } + } + } + } -class SDLInputConnection extends BaseInputConnection { + /* Display the file dialog */ + Intent intent = new Intent(forWrite ? Intent.ACTION_CREATE_DOCUMENT : Intent.ACTION_OPEN_DOCUMENT); + intent.addCategory(Intent.CATEGORY_OPENABLE); + intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, allowMultiple); + switch (mimes.size()) { + case 0: + intent.setType("*/*"); + break; + case 1: + intent.setType(mimes.get(0)); + break; + default: + intent.setType("*/*"); + intent.putExtra(Intent.EXTRA_MIME_TYPES, mimes.toArray(new String[]{})); + } - protected EditText mEditText; - protected String mCommittedText = ""; + try { + mSingleton.startActivityForResult(intent, requestCode); + } catch (ActivityNotFoundException e) { + Log.e(TAG, "Unable to open file dialog.", e); + return false; + } - public SDLInputConnection(View targetView, boolean fullEditor) { - super(targetView, fullEditor); - mEditText = new EditText(SDL.getContext()); + /* Save current dialog state */ + mFileDialogState = new SDLFileDialogState(); + mFileDialogState.requestCode = requestCode; + mFileDialogState.multipleChoice = allowMultiple; + return true; } - @Override - public Editable getEditable() { - return mEditText.getEditableText(); + /* Internal class used to track active open file dialog */ + static class SDLFileDialogState { + int requestCode; + boolean multipleChoice; } - @Override - public boolean sendKeyEvent(KeyEvent event) { - /* - * This used to handle the keycodes from soft keyboard (and IME-translated input from hardkeyboard) - * However, as of Ice Cream Sandwich and later, almost all soft keyboard doesn't generate key presses - * and so we need to generate them ourselves in commitText. To avoid duplicates on the handful of keys - * that still do, we empty this out. - */ - - /* - * Return DOES still generate a key event, however. So rather than using it as the 'click a button' key - * as we do with physical keyboards, let's just use it to hide the keyboard. - */ - - if (event.getKeyCode() == KeyEvent.KEYCODE_ENTER) { - if (SDLActivity.onNativeSoftReturnKey()) { - return true; + /** + * This method is called by SDL using JNI. + */ + public static String getPreferredLocales() { + String result = ""; + if (Build.VERSION.SDK_INT >= 24 /* Android 7 (N) */) { + LocaleList locales = LocaleList.getAdjustedDefault(); + for (int i = 0; i < locales.size(); i++) { + if (i != 0) result += ","; + result += formatLocale(locales.get(i)); } + } else if (mCurrentLocale != null) { + result = formatLocale(mCurrentLocale); } - - return super.sendKeyEvent(event); + return result; } - @Override - public boolean commitText(CharSequence text, int newCursorPosition) { - if (!super.commitText(text, newCursorPosition)) { - return false; + public static String formatLocale(Locale locale) { + String result = ""; + String lang = ""; + if (locale.getLanguage() == "in") { + // Indonesian is "id" according to ISO 639.2, but on Android is "in" because of Java backwards compatibility + lang = "id"; + } else if (locale.getLanguage() == "") { + // Make sure language is never empty + lang = "und"; + } else { + lang = locale.getLanguage(); } - updateText(); - return true; - } - @Override - public boolean setComposingText(CharSequence text, int newCursorPosition) { - if (!super.setComposingText(text, newCursorPosition)) { - return false; + if (locale.getCountry() == "") { + result = lang; + } else { + result = lang + "_" + locale.getCountry(); } - updateText(); - return true; + return result; } +} +/** + Simple runnable to start the SDL application +*/ +class SDLMain implements Runnable { @Override - public boolean deleteSurroundingText(int beforeLength, int afterLength) { - if (Build.VERSION.SDK_INT <= 29 /* Android 10.0 (Q) */) { - // Workaround to capture backspace key. Ref: http://stackoverflow.com/questions>/14560344/android-backspace-in-webview-baseinputconnection - // and https://bugzilla.libsdl.org/show_bug.cgi?id=2265 - if (beforeLength > 0 && afterLength == 0) { - // backspace(s) - while (beforeLength-- > 0) { - nativeGenerateScancodeForUnichar('\b'); - } - return true; - } - } + public void run() { + // Runs SDLActivity.main() - if (!super.deleteSurroundingText(beforeLength, afterLength)) { - return false; + try { + android.os.Process.setThreadPriority(android.os.Process.THREAD_PRIORITY_DISPLAY); + } catch (Exception e) { + Log.v("SDL", "modify thread properties failed " + e.toString()); } - updateText(); - return true; - } - protected void updateText() { - final Editable content = getEditable(); - if (content == null) { - return; - } + SDLActivity.nativeInitMainThread(); + SDLActivity.mSingleton.main(); + SDLActivity.nativeCleanupMainThread(); - String text = content.toString(); - int compareLength = Math.min(text.length(), mCommittedText.length()); - int matchLength, offset; + if (SDLActivity.mSingleton != null && !SDLActivity.mSingleton.isFinishing()) { + // Let's finish the Activity + SDLActivity.mSDLThread = null; + SDLActivity.mSDLMainFinished = true; + SDLActivity.mSingleton.finish(); + } // else: Activity is already being destroyed - /* Backspace over characters that are no longer in the string */ - for (matchLength = 0; matchLength < compareLength; ) { - int codePoint = mCommittedText.codePointAt(matchLength); - if (codePoint != text.codePointAt(matchLength)) { - break; - } - matchLength += Character.charCount(codePoint); - } - /* FIXME: This doesn't handle graphemes, like '🌬️' */ - for (offset = matchLength; offset < mCommittedText.length(); ) { - int codePoint = mCommittedText.codePointAt(offset); - nativeGenerateScancodeForUnichar('\b'); - offset += Character.charCount(codePoint); - } - - if (matchLength < text.length()) { - String pendingText = text.subSequence(matchLength, text.length()).toString(); - for (offset = 0; offset < pendingText.length(); ) { - int codePoint = pendingText.codePointAt(offset); - if (codePoint == '\n') { - if (SDLActivity.onNativeSoftReturnKey()) { - return; - } - } - /* Higher code points don't generate simulated scancodes */ - if (codePoint < 128) { - nativeGenerateScancodeForUnichar((char)codePoint); - } - offset += Character.charCount(codePoint); - } - SDLInputConnection.nativeCommitText(pendingText, 0); - } - mCommittedText = text; } - - public static native void nativeCommitText(String text, int newCursorPosition); - - public static native void nativeGenerateScancodeForUnichar(char c); -} +} \ No newline at end of file diff --git a/Knossos.NET.Android/java/org/libsdl/app/SDLAudioManager.java b/Knossos.NET.Android/java/org/libsdl/app/SDLAudioManager.java index 03cd4aa7..43706fa4 100644 --- a/Knossos.NET.Android/java/org/libsdl/app/SDLAudioManager.java +++ b/Knossos.NET.Android/java/org/libsdl/app/SDLAudioManager.java @@ -3,31 +3,21 @@ import android.content.Context; import android.media.AudioDeviceCallback; import android.media.AudioDeviceInfo; -import android.media.AudioFormat; import android.media.AudioManager; -import android.media.AudioRecord; -import android.media.AudioTrack; -import android.media.MediaRecorder; import android.os.Build; import android.util.Log; import java.util.Arrays; import java.util.ArrayList; -public class SDLAudioManager { +class SDLAudioManager { protected static final String TAG = "SDLAudio"; - protected static AudioTrack mAudioTrack; - protected static AudioRecord mAudioRecord; protected static Context mContext; - private static final int[] NO_DEVICES = {}; - private static AudioDeviceCallback mAudioDeviceCallback; - public static void initialize() { - mAudioTrack = null; - mAudioRecord = null; + static void initialize() { mAudioDeviceCallback = null; if(Build.VERSION.SDK_INT >= 24 /* Android 7.0 (N) */) @@ -35,478 +25,85 @@ public static void initialize() { mAudioDeviceCallback = new AudioDeviceCallback() { @Override public void onAudioDevicesAdded(AudioDeviceInfo[] addedDevices) { - if (addedDevices != null) { - for (AudioDeviceInfo deviceInfo : addedDevices) { - if (deviceInfo != null) { - addAudioDevice(deviceInfo.isSink(), deviceInfo.getId()); - } - } - } + for (AudioDeviceInfo deviceInfo : addedDevices) { + nativeAddAudioDevice(deviceInfo.isSink(), deviceInfo.getProductName().toString(), deviceInfo.getId()); + } } @Override public void onAudioDevicesRemoved(AudioDeviceInfo[] removedDevices) { - if (removedDevices != null) { - for (AudioDeviceInfo deviceInfo : removedDevices) { - if (deviceInfo != null) { - removeAudioDevice(deviceInfo.isSink(), deviceInfo.getId()); - } - } - } + for (AudioDeviceInfo deviceInfo : removedDevices) { + nativeRemoveAudioDevice(deviceInfo.isSink(), deviceInfo.getId()); + } } }; } } - public static void setContext(Context context) { + static void setContext(Context context) { mContext = context; - if (context != null) { - registerAudioDeviceCallback(); - } } - public static void release(Context context) { - unregisterAudioDeviceCallback(context); + static void release(Context context) { + // no-op atm } // Audio - protected static String getAudioFormatString(int audioFormat) { - switch (audioFormat) { - case AudioFormat.ENCODING_PCM_8BIT: - return "8-bit"; - case AudioFormat.ENCODING_PCM_16BIT: - return "16-bit"; - case AudioFormat.ENCODING_PCM_FLOAT: - return "float"; - default: - return Integer.toString(audioFormat); - } - } - - protected static int[] open(boolean isCapture, int sampleRate, int audioFormat, int desiredChannels, int desiredFrames, int deviceId) { - int channelConfig; - int sampleSize; - int frameSize; - - Log.v(TAG, "Opening " + (isCapture ? "capture" : "playback") + ", requested " + desiredFrames + " frames of " + desiredChannels + " channel " + getAudioFormatString(audioFormat) + " audio at " + sampleRate + " Hz"); - - /* On older devices let's use known good settings */ - if (Build.VERSION.SDK_INT < 21 /* Android 5.0 (LOLLIPOP) */) { - if (desiredChannels > 2) { - desiredChannels = 2; - } - } - - /* AudioTrack has sample rate limitation of 48000 (fixed in 5.0.2) */ - if (Build.VERSION.SDK_INT < 22 /* Android 5.1 (LOLLIPOP_MR1) */) { - if (sampleRate < 8000) { - sampleRate = 8000; - } else if (sampleRate > 48000) { - sampleRate = 48000; - } - } - - if (audioFormat == AudioFormat.ENCODING_PCM_FLOAT) { - int minSDKVersion = (isCapture ? 23 /* Android 6.0 (M) */ : 21 /* Android 5.0 (LOLLIPOP) */); - if (Build.VERSION.SDK_INT < minSDKVersion) { - audioFormat = AudioFormat.ENCODING_PCM_16BIT; - } - } - switch (audioFormat) - { - case AudioFormat.ENCODING_PCM_8BIT: - sampleSize = 1; - break; - case AudioFormat.ENCODING_PCM_16BIT: - sampleSize = 2; - break; - case AudioFormat.ENCODING_PCM_FLOAT: - sampleSize = 4; - break; - default: - Log.v(TAG, "Requested format " + audioFormat + ", getting ENCODING_PCM_16BIT"); - audioFormat = AudioFormat.ENCODING_PCM_16BIT; - sampleSize = 2; - break; - } - - if (isCapture) { - switch (desiredChannels) { - case 1: - channelConfig = AudioFormat.CHANNEL_IN_MONO; - break; - case 2: - channelConfig = AudioFormat.CHANNEL_IN_STEREO; - break; - default: - Log.v(TAG, "Requested " + desiredChannels + " channels, getting stereo"); - desiredChannels = 2; - channelConfig = AudioFormat.CHANNEL_IN_STEREO; - break; - } - } else { - switch (desiredChannels) { - case 1: - channelConfig = AudioFormat.CHANNEL_OUT_MONO; - break; - case 2: - channelConfig = AudioFormat.CHANNEL_OUT_STEREO; - break; - case 3: - channelConfig = AudioFormat.CHANNEL_OUT_STEREO | AudioFormat.CHANNEL_OUT_FRONT_CENTER; - break; - case 4: - channelConfig = AudioFormat.CHANNEL_OUT_QUAD; - break; - case 5: - channelConfig = AudioFormat.CHANNEL_OUT_QUAD | AudioFormat.CHANNEL_OUT_FRONT_CENTER; - break; - case 6: - channelConfig = AudioFormat.CHANNEL_OUT_5POINT1; - break; - case 7: - channelConfig = AudioFormat.CHANNEL_OUT_5POINT1 | AudioFormat.CHANNEL_OUT_BACK_CENTER; - break; - case 8: - if (Build.VERSION.SDK_INT >= 23 /* Android 6.0 (M) */) { - channelConfig = AudioFormat.CHANNEL_OUT_7POINT1_SURROUND; - } else { - Log.v(TAG, "Requested " + desiredChannels + " channels, getting 5.1 surround"); - desiredChannels = 6; - channelConfig = AudioFormat.CHANNEL_OUT_5POINT1; - } - break; - default: - Log.v(TAG, "Requested " + desiredChannels + " channels, getting stereo"); - desiredChannels = 2; - channelConfig = AudioFormat.CHANNEL_OUT_STEREO; - break; - } - -/* - Log.v(TAG, "Speaker configuration (and order of channels):"); - - if ((channelConfig & 0x00000004) != 0) { - Log.v(TAG, " CHANNEL_OUT_FRONT_LEFT"); - } - if ((channelConfig & 0x00000008) != 0) { - Log.v(TAG, " CHANNEL_OUT_FRONT_RIGHT"); - } - if ((channelConfig & 0x00000010) != 0) { - Log.v(TAG, " CHANNEL_OUT_FRONT_CENTER"); - } - if ((channelConfig & 0x00000020) != 0) { - Log.v(TAG, " CHANNEL_OUT_LOW_FREQUENCY"); - } - if ((channelConfig & 0x00000040) != 0) { - Log.v(TAG, " CHANNEL_OUT_BACK_LEFT"); - } - if ((channelConfig & 0x00000080) != 0) { - Log.v(TAG, " CHANNEL_OUT_BACK_RIGHT"); - } - if ((channelConfig & 0x00000100) != 0) { - Log.v(TAG, " CHANNEL_OUT_FRONT_LEFT_OF_CENTER"); - } - if ((channelConfig & 0x00000200) != 0) { - Log.v(TAG, " CHANNEL_OUT_FRONT_RIGHT_OF_CENTER"); - } - if ((channelConfig & 0x00000400) != 0) { - Log.v(TAG, " CHANNEL_OUT_BACK_CENTER"); - } - if ((channelConfig & 0x00000800) != 0) { - Log.v(TAG, " CHANNEL_OUT_SIDE_LEFT"); - } - if ((channelConfig & 0x00001000) != 0) { - Log.v(TAG, " CHANNEL_OUT_SIDE_RIGHT"); - } -*/ - } - frameSize = (sampleSize * desiredChannels); - - // Let the user pick a larger buffer if they really want -- but ye - // gods they probably shouldn't, the minimums are horrifyingly high - // latency already - int minBufferSize; - if (isCapture) { - minBufferSize = AudioRecord.getMinBufferSize(sampleRate, channelConfig, audioFormat); - } else { - minBufferSize = AudioTrack.getMinBufferSize(sampleRate, channelConfig, audioFormat); - } - desiredFrames = Math.max(desiredFrames, (minBufferSize + frameSize - 1) / frameSize); - - int[] results = new int[4]; - - if (isCapture) { - if (mAudioRecord == null) { - mAudioRecord = new AudioRecord(MediaRecorder.AudioSource.DEFAULT, sampleRate, - channelConfig, audioFormat, desiredFrames * frameSize); - - // see notes about AudioTrack state in audioOpen(), above. Probably also applies here. - if (mAudioRecord.getState() != AudioRecord.STATE_INITIALIZED) { - Log.e(TAG, "Failed during initialization of AudioRecord"); - mAudioRecord.release(); - mAudioRecord = null; - return null; - } - - if (Build.VERSION.SDK_INT >= 24 /* Android 7.0 (N) */ && deviceId != 0) { - mAudioRecord.setPreferredDevice(getOutputAudioDeviceInfo(deviceId)); - } - - mAudioRecord.startRecording(); - } - - results[0] = mAudioRecord.getSampleRate(); - results[1] = mAudioRecord.getAudioFormat(); - results[2] = mAudioRecord.getChannelCount(); - - } else { - if (mAudioTrack == null) { - mAudioTrack = new AudioTrack(AudioManager.STREAM_MUSIC, sampleRate, channelConfig, audioFormat, desiredFrames * frameSize, AudioTrack.MODE_STREAM); - - // Instantiating AudioTrack can "succeed" without an exception and the track may still be invalid - // Ref: https://android.googlesource.com/platform/frameworks/base/+/refs/heads/master/media/java/android/media/AudioTrack.java - // Ref: http://developer.android.com/reference/android/media/AudioTrack.html#getState() - if (mAudioTrack.getState() != AudioTrack.STATE_INITIALIZED) { - /* Try again, with safer values */ - - Log.e(TAG, "Failed during initialization of Audio Track"); - mAudioTrack.release(); - mAudioTrack = null; - return null; - } - - if (Build.VERSION.SDK_INT >= 24 /* Android 7.0 (N) */ && deviceId != 0) { - mAudioTrack.setPreferredDevice(getInputAudioDeviceInfo(deviceId)); - } - - mAudioTrack.play(); - } - - results[0] = mAudioTrack.getSampleRate(); - results[1] = mAudioTrack.getAudioFormat(); - results[2] = mAudioTrack.getChannelCount(); - } - results[3] = desiredFrames; - - Log.v(TAG, "Opening " + (isCapture ? "capture" : "playback") + ", got " + results[3] + " frames of " + results[2] + " channel " + getAudioFormatString(results[1]) + " audio at " + results[0] + " Hz"); - - return results; - } - private static AudioDeviceInfo getInputAudioDeviceInfo(int deviceId) { if (Build.VERSION.SDK_INT >= 24 /* Android 7.0 (N) */) { AudioManager audioManager = (AudioManager) mContext.getSystemService(Context.AUDIO_SERVICE); - return Arrays.stream(audioManager.getDevices(AudioManager.GET_DEVICES_INPUTS)) - //.filter(deviceInfo -> deviceInfo.getId() == deviceId) - .findFirst() - .orElse(null); - } else { - return null; - } - } - - private static AudioDeviceInfo getOutputAudioDeviceInfo(int deviceId) { - if (Build.VERSION.SDK_INT >= 24 /* Android 7.0 (N) */) { - AudioManager audioManager = (AudioManager) mContext.getSystemService(Context.AUDIO_SERVICE); - return Arrays.stream(audioManager.getDevices(AudioManager.GET_DEVICES_OUTPUTS)) - //.filter(deviceInfo -> deviceInfo.getId() == deviceId) - .findFirst() - .orElse(null); - } else { - return null; - } - } - - private static void registerAudioDeviceCallback() { - if (Build.VERSION.SDK_INT >= 24 /* Android 7.0 (N) */) { - AudioManager audioManager = (AudioManager) mContext.getSystemService(Context.AUDIO_SERVICE); - audioManager.registerAudioDeviceCallback(mAudioDeviceCallback, null); - } - } - - private static void unregisterAudioDeviceCallback(Context context) { - if (Build.VERSION.SDK_INT >= 24 /* Android 7.0 (N) */) { - AudioManager audioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE); - audioManager.unregisterAudioDeviceCallback(mAudioDeviceCallback); - } - } - - /** - * This method is called by SDL using JNI. - */ - public static int[] getAudioOutputDevices() { - if (Build.VERSION.SDK_INT >= 24 /* Android 7.0 (N) */) { - AudioManager audioManager = (AudioManager) mContext.getSystemService(Context.AUDIO_SERVICE); - //return Arrays.stream(audioManager.getDevices(AudioManager.GET_DEVICES_OUTPUTS)).mapToInt(AudioDeviceInfo::getId).toArray(); - return NO_DEVICES; - } else { - return NO_DEVICES; + for (AudioDeviceInfo deviceInfo : audioManager.getDevices(AudioManager.GET_DEVICES_INPUTS)) { + if (deviceInfo.getId() == deviceId) { + return deviceInfo; + } + } } + return null; } - /** - * This method is called by SDL using JNI. - */ - public static int[] getAudioInputDevices() { + private static AudioDeviceInfo getPlaybackAudioDeviceInfo(int deviceId) { if (Build.VERSION.SDK_INT >= 24 /* Android 7.0 (N) */) { AudioManager audioManager = (AudioManager) mContext.getSystemService(Context.AUDIO_SERVICE); - //return Arrays.stream(audioManager.getDevices(AudioManager.GET_DEVICES_INPUTS)).mapToInt(AudioDeviceInfo::getId).toArray(); - return NO_DEVICES; - } else { - return NO_DEVICES; - } - } - - /** - * This method is called by SDL using JNI. - */ - public static int[] audioOpen(int sampleRate, int audioFormat, int desiredChannels, int desiredFrames, int deviceId) { - return open(false, sampleRate, audioFormat, desiredChannels, desiredFrames, deviceId); - } - - /** - * This method is called by SDL using JNI. - */ - public static void audioWriteFloatBuffer(float[] buffer) { - if (mAudioTrack == null) { - Log.e(TAG, "Attempted to make audio call with uninitialized audio!"); - return; - } - - if (android.os.Build.VERSION.SDK_INT < 21 /* Android 5.0 (LOLLIPOP) */) { - Log.e(TAG, "Attempted to make an incompatible audio call with uninitialized audio! (floating-point output is supported since Android 5.0 Lollipop)"); - return; - } - - for (int i = 0; i < buffer.length;) { - int result = mAudioTrack.write(buffer, i, buffer.length - i, AudioTrack.WRITE_BLOCKING); - if (result > 0) { - i += result; - } else if (result == 0) { - try { - Thread.sleep(1); - } catch(InterruptedException e) { - // Nom nom + for (AudioDeviceInfo deviceInfo : audioManager.getDevices(AudioManager.GET_DEVICES_OUTPUTS)) { + if (deviceInfo.getId() == deviceId) { + return deviceInfo; } - } else { - Log.w(TAG, "SDL audio: error return from write(float)"); - return; } } + return null; } - /** - * This method is called by SDL using JNI. - */ - public static void audioWriteShortBuffer(short[] buffer) { - if (mAudioTrack == null) { - Log.e(TAG, "Attempted to make audio call with uninitialized audio!"); - return; - } - - for (int i = 0; i < buffer.length;) { - int result = mAudioTrack.write(buffer, i, buffer.length - i); - if (result > 0) { - i += result; - } else if (result == 0) { - try { - Thread.sleep(1); - } catch(InterruptedException e) { - // Nom nom + static void registerAudioDeviceCallback() { + if (Build.VERSION.SDK_INT >= 24 /* Android 7.0 (N) */) { + AudioManager audioManager = (AudioManager) mContext.getSystemService(Context.AUDIO_SERVICE); + // get an initial list now, before hotplug callbacks fire. + for (AudioDeviceInfo dev : audioManager.getDevices(AudioManager.GET_DEVICES_OUTPUTS)) { + if (dev.getType() == AudioDeviceInfo.TYPE_TELEPHONY) { + continue; // Device cannot be opened } - } else { - Log.w(TAG, "SDL audio: error return from write(short)"); - return; + nativeAddAudioDevice(dev.isSink(), dev.getProductName().toString(), dev.getId()); } - } - } - - /** - * This method is called by SDL using JNI. - */ - public static void audioWriteByteBuffer(byte[] buffer) { - if (mAudioTrack == null) { - Log.e(TAG, "Attempted to make audio call with uninitialized audio!"); - return; - } - - for (int i = 0; i < buffer.length; ) { - int result = mAudioTrack.write(buffer, i, buffer.length - i); - if (result > 0) { - i += result; - } else if (result == 0) { - try { - Thread.sleep(1); - } catch(InterruptedException e) { - // Nom nom - } - } else { - Log.w(TAG, "SDL audio: error return from write(byte)"); - return; + for (AudioDeviceInfo dev : audioManager.getDevices(AudioManager.GET_DEVICES_INPUTS)) { + nativeAddAudioDevice(dev.isSink(), dev.getProductName().toString(), dev.getId()); } + audioManager.registerAudioDeviceCallback(mAudioDeviceCallback, null); } } - /** - * This method is called by SDL using JNI. - */ - public static int[] captureOpen(int sampleRate, int audioFormat, int desiredChannels, int desiredFrames, int deviceId) { - return open(true, sampleRate, audioFormat, desiredChannels, desiredFrames, deviceId); - } - - /** This method is called by SDL using JNI. */ - public static int captureReadFloatBuffer(float[] buffer, boolean blocking) { - if (Build.VERSION.SDK_INT < 23 /* Android 6.0 (M) */) { - return 0; - } else { - return mAudioRecord.read(buffer, 0, buffer.length, blocking ? AudioRecord.READ_BLOCKING : AudioRecord.READ_NON_BLOCKING); - } - } - - /** This method is called by SDL using JNI. */ - public static int captureReadShortBuffer(short[] buffer, boolean blocking) { - if (Build.VERSION.SDK_INT < 23 /* Android 6.0 (M) */) { - return mAudioRecord.read(buffer, 0, buffer.length); - } else { - return mAudioRecord.read(buffer, 0, buffer.length, blocking ? AudioRecord.READ_BLOCKING : AudioRecord.READ_NON_BLOCKING); - } - } - - /** This method is called by SDL using JNI. */ - public static int captureReadByteBuffer(byte[] buffer, boolean blocking) { - if (Build.VERSION.SDK_INT < 23 /* Android 6.0 (M) */) { - return mAudioRecord.read(buffer, 0, buffer.length); - } else { - return mAudioRecord.read(buffer, 0, buffer.length, blocking ? AudioRecord.READ_BLOCKING : AudioRecord.READ_NON_BLOCKING); - } - } - - /** This method is called by SDL using JNI. */ - public static void audioClose() { - if (mAudioTrack != null) { - mAudioTrack.stop(); - mAudioTrack.release(); - mAudioTrack = null; - } - } - - /** This method is called by SDL using JNI. */ - public static void captureClose() { - if (mAudioRecord != null) { - mAudioRecord.stop(); - mAudioRecord.release(); - mAudioRecord = null; + static void unregisterAudioDeviceCallback() { + if (Build.VERSION.SDK_INT >= 24 /* Android 7.0 (N) */) { + AudioManager audioManager = (AudioManager) mContext.getSystemService(Context.AUDIO_SERVICE); + audioManager.unregisterAudioDeviceCallback(mAudioDeviceCallback); } } /** This method is called by SDL using JNI. */ - public static void audioSetThreadPriority(boolean iscapture, int device_id) { + static void audioSetThreadPriority(boolean recording, int device_id) { try { /* Set thread name */ - if (iscapture) { + if (recording) { Thread.currentThread().setName("SDLAudioC" + device_id); } else { Thread.currentThread().setName("SDLAudioP" + device_id); @@ -520,10 +117,10 @@ public static void audioSetThreadPriority(boolean iscapture, int device_id) { } } - public static native int nativeSetupJNI(); + static native void nativeSetupJNI(); - public static native void removeAudioDevice(boolean isCapture, int deviceId); + static native void nativeRemoveAudioDevice(boolean recording, int deviceId); - public static native void addAudioDevice(boolean isCapture, int deviceId); + static native void nativeAddAudioDevice(boolean recording, String name, int deviceId); } diff --git a/Knossos.NET.Android/java/org/libsdl/app/SDLClipboardHandler.java b/Knossos.NET.Android/java/org/libsdl/app/SDLClipboardHandler.java index aa20686d..a32be9af 100644 --- a/Knossos.NET.Android/java/org/libsdl/app/SDLClipboardHandler.java +++ b/Knossos.NET.Android/java/org/libsdl/app/SDLClipboardHandler.java @@ -4,6 +4,7 @@ import android.app.AlertDialog; import android.app.Dialog; import android.app.UiModeManager; +import android.content.ActivityNotFoundException; import android.content.ClipboardManager; import android.content.ClipData; import android.content.Context; @@ -22,10 +23,9 @@ import android.os.Build; import android.os.Bundle; import android.os.Handler; +import android.os.LocaleList; import android.os.Message; -import android.text.Editable; -import android.text.InputType; -import android.text.Selection; +import android.os.ParcelFileDescriptor; import android.util.DisplayMetrics; import android.util.Log; import android.util.SparseArray; @@ -39,22 +39,21 @@ import android.view.ViewGroup; import android.view.Window; import android.view.WindowManager; -import android.view.inputmethod.BaseInputConnection; -import android.view.inputmethod.EditorInfo; import android.view.inputmethod.InputConnection; import android.view.inputmethod.InputMethodManager; +import android.webkit.MimeTypeMap; import android.widget.Button; -import android.widget.EditText; import android.widget.LinearLayout; import android.widget.RelativeLayout; import android.widget.TextView; import android.widget.Toast; +import java.io.FileNotFoundException; +import java.util.ArrayList; import java.util.Hashtable; import java.util.Locale; - public class SDLClipboardHandler implements ClipboardManager.OnPrimaryClipChangedListener { @@ -66,7 +65,11 @@ public class SDLClipboardHandler implements } public boolean clipboardHasText() { - return mClipMgr.hasPrimaryClip(); + if (Build.VERSION.SDK_INT >= 28 /* Android 9 (P) */) { + return mClipMgr.hasPrimaryClip(); + } else { + return mClipMgr.hasText(); + } } public String clipboardGetText() { @@ -84,14 +87,23 @@ public String clipboardGetText() { } public void clipboardSetText(String string) { - mClipMgr.removePrimaryClipChangedListener(this); - ClipData clip = ClipData.newPlainText(null, string); - mClipMgr.setPrimaryClip(clip); - mClipMgr.addPrimaryClipChangedListener(this); + mClipMgr.removePrimaryClipChangedListener(this); + if (string.isEmpty()) { + if (Build.VERSION.SDK_INT >= 28 /* Android 9 (P) */) { + mClipMgr.clearPrimaryClip(); + } else { + ClipData clip = ClipData.newPlainText(null, ""); + mClipMgr.setPrimaryClip(clip); + } + } else { + ClipData clip = ClipData.newPlainText(null, string); + mClipMgr.setPrimaryClip(clip); + } + mClipMgr.addPrimaryClipChangedListener(this); } @Override public void onPrimaryClipChanged() { SDLActivity.onNativeClipboardChanged(); } -} +} \ No newline at end of file diff --git a/Knossos.NET.Android/java/org/libsdl/app/SDLControllerManager.java b/Knossos.NET.Android/java/org/libsdl/app/SDLControllerManager.java index 81511c56..a9b4f418 100644 --- a/Knossos.NET.Android/java/org/libsdl/app/SDLControllerManager.java +++ b/Knossos.NET.Android/java/org/libsdl/app/SDLControllerManager.java @@ -1,12 +1,24 @@ package org.libsdl.app; + import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.List; + import android.content.Context; +import android.hardware.lights.Light; +import android.hardware.lights.LightsRequest; +import android.hardware.lights.LightsManager; +import android.hardware.lights.LightState; +import android.hardware.Sensor; +import android.hardware.SensorEvent; +import android.hardware.SensorEventListener; +import android.hardware.SensorManager; +import android.graphics.Color; import android.os.Build; import android.os.VibrationEffect; import android.os.Vibrator; +import android.os.VibratorManager; import android.util.Log; import android.view.InputDevice; import android.view.KeyEvent; @@ -17,38 +29,38 @@ public class SDLControllerManager { - public static native int nativeSetupJNI(); - - public static native int nativeAddJoystick(int device_id, String name, String desc, - int vendor_id, int product_id, - boolean is_accelerometer, int button_mask, - int naxes, int axis_mask, int nhats, int nballs); - public static native int nativeRemoveJoystick(int device_id); - public static native int nativeAddHaptic(int device_id, String name); - public static native int nativeRemoveHaptic(int device_id); - public static native int onNativePadDown(int device_id, int keycode); - public static native int onNativePadUp(int device_id, int keycode); - public static native void onNativeJoy(int device_id, int axis, + static native void nativeSetupJNI(); + + static native void nativeAddJoystick(int device_id, String name, String desc, + int vendor_id, int product_id, + int button_mask, + int naxes, int axis_mask, int nhats, boolean can_rumble, boolean has_rgb_led, + boolean has_accelerometer, boolean has_gyroscope); + static native void nativeRemoveJoystick(int device_id); + static native void nativeAddHaptic(int device_id, String name); + static native void nativeRemoveHaptic(int device_id); + static public native boolean onNativePadDown(int device_id, int keycode, int scancode); + static public native boolean onNativePadUp(int device_id, int keycode, int scancode); + static native void onNativeJoy(int device_id, int axis, float value); - public static native void onNativeHat(int device_id, int hat_id, + static native void onNativeHat(int device_id, int hat_id, int x, int y); + static native void onNativeJoySensor(int device_id, int sensor_type, long sensor_timestamp, float x, float y, float z); protected static SDLJoystickHandler mJoystickHandler; protected static SDLHapticHandler mHapticHandler; private static final String TAG = "SDLControllerManager"; - public static void initialize() { + static void initialize() { if (mJoystickHandler == null) { - if (Build.VERSION.SDK_INT >= 19 /* Android 4.4 (KITKAT) */) { - mJoystickHandler = new SDLJoystickHandler_API19(); - } else { - mJoystickHandler = new SDLJoystickHandler_API16(); - } + mJoystickHandler = new SDLJoystickHandler(); } if (mHapticHandler == null) { - if (Build.VERSION.SDK_INT >= 26 /* Android 8.0 (O) */) { + if (Build.VERSION.SDK_INT >= 31 /* Android 12.0 (S) */) { + mHapticHandler = new SDLHapticHandler_API31(); + } else if (Build.VERSION.SDK_INT >= 26 /* Android 8.0 (O) */) { mHapticHandler = new SDLHapticHandler_API26(); } else { mHapticHandler = new SDLHapticHandler(); @@ -57,41 +69,62 @@ public static void initialize() { } // Joystick glue code, just a series of stubs that redirect to the SDLJoystickHandler instance - public static boolean handleJoystickMotionEvent(MotionEvent event) { + static public boolean handleJoystickMotionEvent(MotionEvent event) { return mJoystickHandler.handleMotionEvent(event); } /** * This method is called by SDL using JNI. */ - public static void pollInputDevices() { + static void pollInputDevices() { mJoystickHandler.pollInputDevices(); } /** * This method is called by SDL using JNI. */ - public static void pollHapticDevices() { + static void joystickSetLED(int device_id, int red, int green, int blue) { + mJoystickHandler.setLED(device_id, red, green, blue); + } + + /** + * This method is called by SDL using JNI. + */ + static void joystickSetSensorsEnabled(int device_id, boolean enabled) { + mJoystickHandler.setSensorsEnabled(device_id, enabled); + } + + /** + * This method is called by SDL using JNI. + */ + static void pollHapticDevices() { mHapticHandler.pollHapticDevices(); } /** * This method is called by SDL using JNI. */ - public static void hapticRun(int device_id, float intensity, int length) { + static void hapticRun(int device_id, float intensity, int length) { mHapticHandler.run(device_id, intensity, length); } /** * This method is called by SDL using JNI. */ - public static void hapticStop(int device_id) + static void hapticRumble(int device_id, float low_frequency_intensity, float high_frequency_intensity, int length) { + mHapticHandler.rumble(device_id, low_frequency_intensity, high_frequency_intensity, length); + } + + /** + * This method is called by SDL using JNI. + */ + static void hapticStop(int device_id) { mHapticHandler.stop(device_id); } // Check if a given device is considered a possible SDL joystick - public static boolean isDeviceSDLJoystick(int deviceId) { + static public boolean isDeviceSDLJoystick(int deviceId) { InputDevice device = InputDevice.getDevice(deviceId); // We cannot use InputDevice.isVirtual before API 16, so let's accept // only nonnegative device ids (VIRTUAL_KEYBOARD equals -1) @@ -119,175 +152,4 @@ public static boolean isDeviceSDLJoystick(int deviceId) { ); } -} - - - -class SDLGenericMotionListener_API24 extends SDLGenericMotionListener_API12 { - // Generic Motion (mouse hover, joystick...) events go here - - private boolean mRelativeModeEnabled; - - @Override - public boolean onGenericMotion(View v, MotionEvent event) { - - // Handle relative mouse mode - if (mRelativeModeEnabled) { - if (event.getSource() == InputDevice.SOURCE_MOUSE) { - int action = event.getActionMasked(); - if (action == MotionEvent.ACTION_HOVER_MOVE) { - float x = event.getAxisValue(MotionEvent.AXIS_RELATIVE_X); - float y = event.getAxisValue(MotionEvent.AXIS_RELATIVE_Y); - SDLActivity.onNativeMouse(0, action, x, y, true); - return true; - } - } - } - - // Event was not managed, call SDLGenericMotionListener_API12 method - return super.onGenericMotion(v, event); - } - - @Override - public boolean supportsRelativeMouse() { - return true; - } - - @Override - public boolean inRelativeMode() { - return mRelativeModeEnabled; - } - - @Override - public boolean setRelativeMouseEnabled(boolean enabled) { - mRelativeModeEnabled = enabled; - return true; - } - - @Override - public float getEventX(MotionEvent event) { - if (mRelativeModeEnabled) { - return event.getAxisValue(MotionEvent.AXIS_RELATIVE_X); - } else { - return event.getX(0); - } - } - - @Override - public float getEventY(MotionEvent event) { - if (mRelativeModeEnabled) { - return event.getAxisValue(MotionEvent.AXIS_RELATIVE_Y); - } else { - return event.getY(0); - } - } -} - -class SDLGenericMotionListener_API26 extends SDLGenericMotionListener_API24 { - // Generic Motion (mouse hover, joystick...) events go here - private boolean mRelativeModeEnabled; - - @Override - public boolean onGenericMotion(View v, MotionEvent event) { - float x, y; - int action; - - switch ( event.getSource() ) { - case InputDevice.SOURCE_JOYSTICK: - return SDLControllerManager.handleJoystickMotionEvent(event); - - case InputDevice.SOURCE_MOUSE: - // DeX desktop mouse cursor is a separate non-standard input type. - case InputDevice.SOURCE_MOUSE | InputDevice.SOURCE_TOUCHSCREEN: - action = event.getActionMasked(); - switch (action) { - case MotionEvent.ACTION_SCROLL: - x = event.getAxisValue(MotionEvent.AXIS_HSCROLL, 0); - y = event.getAxisValue(MotionEvent.AXIS_VSCROLL, 0); - SDLActivity.onNativeMouse(0, action, x, y, false); - return true; - - case MotionEvent.ACTION_HOVER_MOVE: - x = event.getX(0); - y = event.getY(0); - SDLActivity.onNativeMouse(0, action, x, y, false); - return true; - - default: - break; - } - break; - - case InputDevice.SOURCE_MOUSE_RELATIVE: - action = event.getActionMasked(); - switch (action) { - case MotionEvent.ACTION_SCROLL: - x = event.getAxisValue(MotionEvent.AXIS_HSCROLL, 0); - y = event.getAxisValue(MotionEvent.AXIS_VSCROLL, 0); - SDLActivity.onNativeMouse(0, action, x, y, false); - return true; - - case MotionEvent.ACTION_HOVER_MOVE: - x = event.getX(0); - y = event.getY(0); - SDLActivity.onNativeMouse(0, action, x, y, true); - return true; - - default: - break; - } - break; - - default: - break; - } - - // Event was not managed - return false; - } - - @Override - public boolean supportsRelativeMouse() { - return (!SDLActivity.isDeXMode() || Build.VERSION.SDK_INT >= 27 /* Android 8.1 (O_MR1) */); - } - - @Override - public boolean inRelativeMode() { - return mRelativeModeEnabled; - } - - @Override - public boolean setRelativeMouseEnabled(boolean enabled) { - if (!SDLActivity.isDeXMode() || Build.VERSION.SDK_INT >= 27 /* Android 8.1 (O_MR1) */) { - if (enabled) { - SDLActivity.getContentView().requestPointerCapture(); - } else { - SDLActivity.getContentView().releasePointerCapture(); - } - mRelativeModeEnabled = enabled; - return true; - } else { - return false; - } - } - - @Override - public void reclaimRelativeMouseModeIfNeeded() - { - if (mRelativeModeEnabled && !SDLActivity.isDeXMode()) { - SDLActivity.getContentView().requestPointerCapture(); - } - } - - @Override - public float getEventX(MotionEvent event) { - // Relative mouse in capture mode will only have relative for X/Y - return event.getX(0); - } - - @Override - public float getEventY(MotionEvent event) { - // Relative mouse in capture mode will only have relative for X/Y - return event.getY(0); - } -} +} \ No newline at end of file diff --git a/Knossos.NET.Android/java/org/libsdl/app/DummyEdit.java b/Knossos.NET.Android/java/org/libsdl/app/SDLDummyEdit.java similarity index 53% rename from Knossos.NET.Android/java/org/libsdl/app/DummyEdit.java rename to Knossos.NET.Android/java/org/libsdl/app/SDLDummyEdit.java index 69b18c64..61d8fe85 100644 --- a/Knossos.NET.Android/java/org/libsdl/app/DummyEdit.java +++ b/Knossos.NET.Android/java/org/libsdl/app/SDLDummyEdit.java @@ -1,72 +1,30 @@ package org.libsdl.app; -import android.app.Activity; -import android.app.AlertDialog; -import android.app.Dialog; -import android.app.UiModeManager; -import android.content.ClipboardManager; -import android.content.ClipData; -import android.content.Context; -import android.content.DialogInterface; -import android.content.Intent; -import android.content.pm.ActivityInfo; -import android.content.pm.ApplicationInfo; -import android.content.pm.PackageManager; -import android.content.res.Configuration; -import android.graphics.Bitmap; -import android.graphics.Color; -import android.graphics.PorterDuff; -import android.graphics.drawable.Drawable; -import android.hardware.Sensor; -import android.net.Uri; -import android.os.Build; -import android.os.Bundle; -import android.os.Handler; -import android.os.Message; -import android.text.Editable; +import android.content.*; import android.text.InputType; -import android.text.Selection; -import android.util.DisplayMetrics; -import android.util.Log; -import android.util.SparseArray; -import android.view.Display; -import android.view.Gravity; -import android.view.InputDevice; -import android.view.KeyEvent; -import android.view.PointerIcon; -import android.view.Surface; -import android.view.View; -import android.view.ViewGroup; -import android.view.Window; -import android.view.WindowManager; -import android.view.inputmethod.BaseInputConnection; +import android.view.*; import android.view.inputmethod.EditorInfo; import android.view.inputmethod.InputConnection; -import android.view.inputmethod.InputMethodManager; -import android.widget.Button; -import android.widget.EditText; -import android.widget.LinearLayout; -import android.widget.RelativeLayout; -import android.widget.TextView; -import android.widget.Toast; - -import java.util.Hashtable; -import java.util.Locale; - /* This is a fake invisible editor view that receives the input and defines the * pan&scan region */ -public class DummyEdit extends View implements View.OnKeyListener { +public class SDLDummyEdit extends View implements View.OnKeyListener +{ InputConnection ic; + int input_type; - public DummyEdit(Context context) { + SDLDummyEdit(Context context) { super(context); setFocusableInTouchMode(true); setFocusable(true); setOnKeyListener(this); } + void setInputType(int input_type) { + this.input_type = input_type; + } + @Override public boolean onCheckIsTextEditor() { return true; @@ -98,11 +56,11 @@ public boolean onKeyPreIme (int keyCode, KeyEvent event) { public InputConnection onCreateInputConnection(EditorInfo outAttrs) { ic = new SDLInputConnection(this, true); - outAttrs.inputType = InputType.TYPE_CLASS_TEXT | - InputType.TYPE_TEXT_FLAG_MULTI_LINE; + outAttrs.inputType = input_type; outAttrs.imeOptions = EditorInfo.IME_FLAG_NO_EXTRACT_UI | EditorInfo.IME_FLAG_NO_FULLSCREEN /* API 11 */; return ic; } -} \ No newline at end of file +} + diff --git a/Knossos.NET.Android/java/org/libsdl/app/SDLGenericMotionListener_API12.java b/Knossos.NET.Android/java/org/libsdl/app/SDLGenericMotionListener_API12.java deleted file mode 100644 index 92792183..00000000 --- a/Knossos.NET.Android/java/org/libsdl/app/SDLGenericMotionListener_API12.java +++ /dev/null @@ -1,83 +0,0 @@ -package org.libsdl.app; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.Comparator; -import java.util.List; - -import android.content.Context; -import android.os.Build; -import android.os.VibrationEffect; -import android.os.Vibrator; -import android.util.Log; -import android.view.InputDevice; -import android.view.KeyEvent; -import android.view.MotionEvent; -import android.view.View; - -public class SDLGenericMotionListener_API12 implements View.OnGenericMotionListener { - // Generic Motion (mouse hover, joystick...) events go here - @Override - public boolean onGenericMotion(View v, MotionEvent event) { - float x, y; - int action; - - switch ( event.getSource() ) { - case InputDevice.SOURCE_JOYSTICK: - return SDLControllerManager.handleJoystickMotionEvent(event); - - case InputDevice.SOURCE_MOUSE: - action = event.getActionMasked(); - switch (action) { - case MotionEvent.ACTION_SCROLL: - x = event.getAxisValue(MotionEvent.AXIS_HSCROLL, 0); - y = event.getAxisValue(MotionEvent.AXIS_VSCROLL, 0); - SDLActivity.onNativeMouse(0, action, x, y, false); - return true; - - case MotionEvent.ACTION_HOVER_MOVE: - x = event.getX(0); - y = event.getY(0); - - SDLActivity.onNativeMouse(0, action, x, y, false); - return true; - - default: - break; - } - break; - - default: - break; - } - - // Event was not managed - return false; - } - - public boolean supportsRelativeMouse() { - return false; - } - - public boolean inRelativeMode() { - return false; - } - - public boolean setRelativeMouseEnabled(boolean enabled) { - return false; - } - - public void reclaimRelativeMouseModeIfNeeded() - { - - } - - public float getEventX(MotionEvent event) { - return event.getX(0); - } - - public float getEventY(MotionEvent event) { - return event.getY(0); - } - -} \ No newline at end of file diff --git a/Knossos.NET.Android/java/org/libsdl/app/SDLGenericMotionListener_API14.java b/Knossos.NET.Android/java/org/libsdl/app/SDLGenericMotionListener_API14.java new file mode 100644 index 00000000..0adefea6 --- /dev/null +++ b/Knossos.NET.Android/java/org/libsdl/app/SDLGenericMotionListener_API14.java @@ -0,0 +1,128 @@ +package org.libsdl.app; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.Comparator; +import java.util.List; + +import android.content.Context; +import android.hardware.lights.Light; +import android.hardware.lights.LightsRequest; +import android.hardware.lights.LightsManager; +import android.hardware.lights.LightState; +import android.hardware.Sensor; +import android.hardware.SensorEvent; +import android.hardware.SensorEventListener; +import android.hardware.SensorManager; +import android.graphics.Color; +import android.os.Build; +import android.os.VibrationEffect; +import android.os.Vibrator; +import android.os.VibratorManager; +import android.util.Log; +import android.view.InputDevice; +import android.view.KeyEvent; +import android.view.MotionEvent; +import android.view.View; + +public class SDLGenericMotionListener_API14 implements View.OnGenericMotionListener { + protected static final int SDL_PEN_DEVICE_TYPE_UNKNOWN = 0; + protected static final int SDL_PEN_DEVICE_TYPE_DIRECT = 1; + protected static final int SDL_PEN_DEVICE_TYPE_INDIRECT = 2; + + // Generic Motion (mouse hover, joystick...) events go here + @Override + public boolean onGenericMotion(View v, MotionEvent event) { + if (event.getSource() == InputDevice.SOURCE_JOYSTICK) + return SDLControllerManager.handleJoystickMotionEvent(event); + + float x, y; + int action = event.getActionMasked(); + int pointerCount = event.getPointerCount(); + boolean consumed = false; + + for (int i = 0; i < pointerCount; i++) { + int toolType = event.getToolType(i); + + if (toolType == MotionEvent.TOOL_TYPE_MOUSE) { + switch (action) { + case MotionEvent.ACTION_SCROLL: + x = event.getAxisValue(MotionEvent.AXIS_HSCROLL, i); + y = event.getAxisValue(MotionEvent.AXIS_VSCROLL, i); + SDLActivity.onNativeMouse(0, action, x, y, false); + consumed = true; + break; + + case MotionEvent.ACTION_HOVER_MOVE: + x = getEventX(event, i); + y = getEventY(event, i); + + SDLActivity.onNativeMouse(0, action, x, y, checkRelativeEvent(event)); + consumed = true; + break; + + default: + break; + } + } else if (toolType == MotionEvent.TOOL_TYPE_STYLUS || toolType == MotionEvent.TOOL_TYPE_ERASER) { + switch (action) { + case MotionEvent.ACTION_HOVER_ENTER: + case MotionEvent.ACTION_HOVER_MOVE: + case MotionEvent.ACTION_HOVER_EXIT: + x = event.getX(i); + y = event.getY(i); + float p = event.getPressure(i); + if (p > 1.0f) { + // may be larger than 1.0f on some devices + // see the documentation of getPressure(i) + p = 1.0f; + } + + // BUTTON_STYLUS_PRIMARY is 2^5, so shift by 4, and apply SDL_PEN_INPUT_DOWN/SDL_PEN_INPUT_ERASER_TIP + int buttons = (event.getButtonState() >> 4) | (1 << (toolType == MotionEvent.TOOL_TYPE_STYLUS ? 0 : 30)); + if ((event.getButtonState() & MotionEvent.BUTTON_TERTIARY) != 0) { + buttons |= 0x08; + } + + SDLActivity.onNativePen(event.getPointerId(i), getPenDeviceType(event.getDevice()), buttons, action, x, y, p); + consumed = true; + break; + } + } + } + + return consumed; + } + + boolean supportsRelativeMouse() { + return false; + } + + boolean inRelativeMode() { + return false; + } + + boolean setRelativeMouseEnabled(boolean enabled) { + return false; + } + + void reclaimRelativeMouseModeIfNeeded() { + + } + + boolean checkRelativeEvent(MotionEvent event) { + return inRelativeMode(); + } + + float getEventX(MotionEvent event, int pointerIndex) { + return event.getX(pointerIndex); + } + + float getEventY(MotionEvent event, int pointerIndex) { + return event.getY(pointerIndex); + } + + int getPenDeviceType(InputDevice penDevice) { + return SDL_PEN_DEVICE_TYPE_UNKNOWN; + } +} \ No newline at end of file diff --git a/Knossos.NET.Android/java/org/libsdl/app/SDLGenericMotionListener_API24.java b/Knossos.NET.Android/java/org/libsdl/app/SDLGenericMotionListener_API24.java new file mode 100644 index 00000000..f0ba90f5 --- /dev/null +++ b/Knossos.NET.Android/java/org/libsdl/app/SDLGenericMotionListener_API24.java @@ -0,0 +1,76 @@ +package org.libsdl.app; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.Comparator; +import java.util.List; + +import android.content.Context; +import android.hardware.lights.Light; +import android.hardware.lights.LightsRequest; +import android.hardware.lights.LightsManager; +import android.hardware.lights.LightState; +import android.hardware.Sensor; +import android.hardware.SensorEvent; +import android.hardware.SensorEventListener; +import android.hardware.SensorManager; +import android.graphics.Color; +import android.os.Build; +import android.os.VibrationEffect; +import android.os.Vibrator; +import android.os.VibratorManager; +import android.util.Log; +import android.view.InputDevice; +import android.view.KeyEvent; +import android.view.MotionEvent; +import android.view.View; + +public class SDLGenericMotionListener_API24 extends SDLGenericMotionListener_API14 { + // Generic Motion (mouse hover, joystick...) events go here + + private boolean mRelativeModeEnabled; + + @Override + boolean supportsRelativeMouse() { + return true; + } + + @Override + boolean inRelativeMode() { + return mRelativeModeEnabled; + } + + @Override + boolean setRelativeMouseEnabled(boolean enabled) { + mRelativeModeEnabled = enabled; + return true; + } + + @Override + float getEventX(MotionEvent event, int pointerIndex) { + if (Build.VERSION.SDK_INT < 24 /* Android 7.0 (N) */) { + /* Silence 'lint' warning */ + return 0; + } + + if (mRelativeModeEnabled && event.getToolType(pointerIndex) == MotionEvent.TOOL_TYPE_MOUSE) { + return event.getAxisValue(MotionEvent.AXIS_RELATIVE_X, pointerIndex); + } else { + return event.getX(pointerIndex); + } + } + + @Override + float getEventY(MotionEvent event, int pointerIndex) { + if (Build.VERSION.SDK_INT < 24 /* Android 7.0 (N) */) { + /* Silence 'lint' warning */ + return 0; + } + + if (mRelativeModeEnabled && event.getToolType(pointerIndex) == MotionEvent.TOOL_TYPE_MOUSE) { + return event.getAxisValue(MotionEvent.AXIS_RELATIVE_Y, pointerIndex); + } else { + return event.getY(pointerIndex); + } + } +} \ No newline at end of file diff --git a/Knossos.NET.Android/java/org/libsdl/app/SDLGenericMotionListener_API26.java b/Knossos.NET.Android/java/org/libsdl/app/SDLGenericMotionListener_API26.java new file mode 100644 index 00000000..8ea13716 --- /dev/null +++ b/Knossos.NET.Android/java/org/libsdl/app/SDLGenericMotionListener_API26.java @@ -0,0 +1,96 @@ +package org.libsdl.app; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.Comparator; +import java.util.List; + +import android.content.Context; +import android.hardware.lights.Light; +import android.hardware.lights.LightsRequest; +import android.hardware.lights.LightsManager; +import android.hardware.lights.LightState; +import android.hardware.Sensor; +import android.hardware.SensorEvent; +import android.hardware.SensorEventListener; +import android.hardware.SensorManager; +import android.graphics.Color; +import android.os.Build; +import android.os.VibrationEffect; +import android.os.Vibrator; +import android.os.VibratorManager; +import android.util.Log; +import android.view.InputDevice; +import android.view.KeyEvent; +import android.view.MotionEvent; +import android.view.View; + +public class SDLGenericMotionListener_API26 extends SDLGenericMotionListener_API24 { + // Generic Motion (mouse hover, joystick...) events go here + private boolean mRelativeModeEnabled; + + @Override + boolean supportsRelativeMouse() { + return (!SDLActivity.isDeXMode() || Build.VERSION.SDK_INT >= 27 /* Android 8.1 (O_MR1) */); + } + + @Override + boolean inRelativeMode() { + return mRelativeModeEnabled; + } + + @Override + boolean setRelativeMouseEnabled(boolean enabled) { + + if (Build.VERSION.SDK_INT < 26 /* Android 8.0 (O) */) { + /* Silence 'lint' warning */ + return false; + } + + if (!SDLActivity.isDeXMode() || Build.VERSION.SDK_INT >= 27 /* Android 8.1 (O_MR1) */) { + if (enabled) { + SDLActivity.getContentView().requestPointerCapture(); + } else { + SDLActivity.getContentView().releasePointerCapture(); + } + mRelativeModeEnabled = enabled; + return true; + } else { + return false; + } + } + + @Override + void reclaimRelativeMouseModeIfNeeded() { + + if (Build.VERSION.SDK_INT < 26 /* Android 8.0 (O) */) { + /* Silence 'lint' warning */ + return; + } + + if (mRelativeModeEnabled && !SDLActivity.isDeXMode()) { + SDLActivity.getContentView().requestPointerCapture(); + } + } + + @Override + boolean checkRelativeEvent(MotionEvent event) { + if (Build.VERSION.SDK_INT < 26 /* Android 8.0 (O) */) { + /* Silence 'lint' warning */ + return false; + } + return event.getSource() == InputDevice.SOURCE_MOUSE_RELATIVE; + } + + @Override + float getEventX(MotionEvent event, int pointerIndex) { + // Relative mouse in capture mode will only have relative for X/Y + return event.getX(pointerIndex); + } + + @Override + float getEventY(MotionEvent event, int pointerIndex) { + // Relative mouse in capture mode will only have relative for X/Y + return event.getY(pointerIndex); + } +} \ No newline at end of file diff --git a/Knossos.NET.Android/java/org/libsdl/app/SDLGenericMotionListener_API29.java b/Knossos.NET.Android/java/org/libsdl/app/SDLGenericMotionListener_API29.java new file mode 100644 index 00000000..142540e7 --- /dev/null +++ b/Knossos.NET.Android/java/org/libsdl/app/SDLGenericMotionListener_API29.java @@ -0,0 +1,38 @@ +package org.libsdl.app; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.Comparator; +import java.util.List; + +import android.content.Context; +import android.hardware.lights.Light; +import android.hardware.lights.LightsRequest; +import android.hardware.lights.LightsManager; +import android.hardware.lights.LightState; +import android.hardware.Sensor; +import android.hardware.SensorEvent; +import android.hardware.SensorEventListener; +import android.hardware.SensorManager; +import android.graphics.Color; +import android.os.Build; +import android.os.VibrationEffect; +import android.os.Vibrator; +import android.os.VibratorManager; +import android.util.Log; +import android.view.InputDevice; +import android.view.KeyEvent; +import android.view.MotionEvent; +import android.view.View; + +public class SDLGenericMotionListener_API29 extends SDLGenericMotionListener_API26 { + @Override + int getPenDeviceType(InputDevice penDevice) + { + if (penDevice == null) { + return SDL_PEN_DEVICE_TYPE_UNKNOWN; + } + + return penDevice.isExternal() ? SDL_PEN_DEVICE_TYPE_INDIRECT : SDL_PEN_DEVICE_TYPE_DIRECT; + } +} \ No newline at end of file diff --git a/Knossos.NET.Android/java/org/libsdl/app/SDLHaptic.java b/Knossos.NET.Android/java/org/libsdl/app/SDLHaptic.java new file mode 100644 index 00000000..459772bd --- /dev/null +++ b/Knossos.NET.Android/java/org/libsdl/app/SDLHaptic.java @@ -0,0 +1,33 @@ +package org.libsdl.app; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.Comparator; +import java.util.List; + +import android.content.Context; +import android.hardware.lights.Light; +import android.hardware.lights.LightsRequest; +import android.hardware.lights.LightsManager; +import android.hardware.lights.LightState; +import android.hardware.Sensor; +import android.hardware.SensorEvent; +import android.hardware.SensorEventListener; +import android.hardware.SensorManager; +import android.graphics.Color; +import android.os.Build; +import android.os.VibrationEffect; +import android.os.Vibrator; +import android.os.VibratorManager; +import android.util.Log; +import android.view.InputDevice; +import android.view.KeyEvent; +import android.view.MotionEvent; +import android.view.View; + + +public class SDLHaptic { + int device_id; + String name; + Vibrator vib; +} \ No newline at end of file diff --git a/Knossos.NET.Android/java/org/libsdl/app/SDLHapticHandler.java b/Knossos.NET.Android/java/org/libsdl/app/SDLHapticHandler.java index a3ce10f3..f18d4d79 100644 --- a/Knossos.NET.Android/java/org/libsdl/app/SDLHapticHandler.java +++ b/Knossos.NET.Android/java/org/libsdl/app/SDLHapticHandler.java @@ -6,9 +6,19 @@ import java.util.List; import android.content.Context; +import android.hardware.lights.Light; +import android.hardware.lights.LightsRequest; +import android.hardware.lights.LightsManager; +import android.hardware.lights.LightState; +import android.hardware.Sensor; +import android.hardware.SensorEvent; +import android.hardware.SensorEventListener; +import android.hardware.SensorManager; +import android.graphics.Color; import android.os.Build; import android.os.VibrationEffect; import android.os.Vibrator; +import android.os.VibratorManager; import android.util.Log; import android.view.InputDevice; import android.view.KeyEvent; @@ -17,61 +27,35 @@ public class SDLHapticHandler { - public static class SDLHaptic { - public int device_id; - public String name; - public Vibrator vib; - } - private final ArrayList mHaptics; - public SDLHapticHandler() { + SDLHapticHandler() { mHaptics = new ArrayList(); } - public void run(int device_id, float intensity, int length) { + void run(int device_id, float intensity, int length) { SDLHaptic haptic = getHaptic(device_id); if (haptic != null) { haptic.vib.vibrate(length); } } - public void stop(int device_id) { + void rumble(int device_id, float low_frequency_intensity, float high_frequency_intensity, int length) { + // Not supported in older APIs + } + + void stop(int device_id) { SDLHaptic haptic = getHaptic(device_id); if (haptic != null) { haptic.vib.cancel(); } } - public void pollHapticDevices() { + synchronized void pollHapticDevices() { final int deviceId_VIBRATOR_SERVICE = 999999; boolean hasVibratorService = false; - int[] deviceIds = InputDevice.getDeviceIds(); - // It helps processing the device ids in reverse order - // For example, in the case of the XBox 360 wireless dongle, - // so the first controller seen by SDL matches what the receiver - // considers to be the first controller - - for (int i = deviceIds.length - 1; i > -1; i--) { - SDLHaptic haptic = getHaptic(deviceIds[i]); - if (haptic == null) { - InputDevice device = InputDevice.getDevice(deviceIds[i]); - Vibrator vib = device.getVibrator(); - if (vib != null) { - if (vib.hasVibrator()) { - haptic = new SDLHaptic(); - haptic.device_id = deviceIds[i]; - haptic.name = device.getName(); - haptic.vib = vib; - mHaptics.add(haptic); - SDLControllerManager.nativeAddHaptic(haptic.device_id, haptic.name); - } - } - } - } - /* Check VIBRATOR_SERVICE */ Vibrator vib = (Vibrator) SDL.getContext().getSystemService(Context.VIBRATOR_SERVICE); if (vib != null) { @@ -94,18 +78,11 @@ public void pollHapticDevices() { ArrayList removedDevices = null; for (SDLHaptic haptic : mHaptics) { int device_id = haptic.device_id; - int i; - for (i = 0; i < deviceIds.length; i++) { - if (device_id == deviceIds[i]) break; - } - if (device_id != deviceId_VIBRATOR_SERVICE || !hasVibratorService) { - if (i == deviceIds.length) { - if (removedDevices == null) { - removedDevices = new ArrayList(); - } - removedDevices.add(device_id); + if (removedDevices == null) { + removedDevices = new ArrayList(); } + removedDevices.add(device_id); } // else: don't remove the vibrator if it is still present } @@ -122,7 +99,7 @@ public void pollHapticDevices() { } } - protected SDLHaptic getHaptic(int device_id) { + synchronized protected SDLHaptic getHaptic(int device_id) { for (SDLHaptic haptic : mHaptics) { if (haptic.device_id == device_id) { return haptic; @@ -130,4 +107,4 @@ protected SDLHaptic getHaptic(int device_id) { } return null; } -} \ No newline at end of file +} diff --git a/Knossos.NET.Android/java/org/libsdl/app/SDLHapticHandler_API26.java b/Knossos.NET.Android/java/org/libsdl/app/SDLHapticHandler_API26.java index f07e1ba8..f53e37b3 100644 --- a/Knossos.NET.Android/java/org/libsdl/app/SDLHapticHandler_API26.java +++ b/Knossos.NET.Android/java/org/libsdl/app/SDLHapticHandler_API26.java @@ -6,21 +6,35 @@ import java.util.List; import android.content.Context; +import android.hardware.lights.Light; +import android.hardware.lights.LightsRequest; +import android.hardware.lights.LightsManager; +import android.hardware.lights.LightState; +import android.hardware.Sensor; +import android.hardware.SensorEvent; +import android.hardware.SensorEventListener; +import android.hardware.SensorManager; +import android.graphics.Color; import android.os.Build; import android.os.VibrationEffect; import android.os.Vibrator; +import android.os.VibratorManager; import android.util.Log; import android.view.InputDevice; import android.view.KeyEvent; import android.view.MotionEvent; import android.view.View; - public class SDLHapticHandler_API26 extends SDLHapticHandler { @Override - public void run(int device_id, float intensity, int length) { + void run(int device_id, float intensity, int length) { + + if (Build.VERSION.SDK_INT < 26 /* Android 8.0 (O) */) { + /* Silence 'lint' warning */ + return; + } + SDLHaptic haptic = getHaptic(device_id); if (haptic != null) { - Log.d("SDL", "Rtest: Vibe with intensity " + intensity + " for " + length); if (intensity == 0.0f) { stop(device_id); return; diff --git a/Knossos.NET.Android/java/org/libsdl/app/SDLHapticHandler_API31.java b/Knossos.NET.Android/java/org/libsdl/app/SDLHapticHandler_API31.java new file mode 100644 index 00000000..268f72dd --- /dev/null +++ b/Knossos.NET.Android/java/org/libsdl/app/SDLHapticHandler_API31.java @@ -0,0 +1,88 @@ +package org.libsdl.app; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.Comparator; +import java.util.List; + +import android.content.Context; +import android.hardware.lights.Light; +import android.hardware.lights.LightsRequest; +import android.hardware.lights.LightsManager; +import android.hardware.lights.LightState; +import android.hardware.Sensor; +import android.hardware.SensorEvent; +import android.hardware.SensorEventListener; +import android.hardware.SensorManager; +import android.graphics.Color; +import android.os.Build; +import android.os.VibrationEffect; +import android.os.Vibrator; +import android.os.VibratorManager; +import android.util.Log; +import android.view.InputDevice; +import android.view.KeyEvent; +import android.view.MotionEvent; +import android.view.View; +public class SDLHapticHandler_API31 extends SDLHapticHandler { + @Override + void run(int device_id, float intensity, int length) { + SDLHaptic haptic = getHaptic(device_id); + if (haptic != null) { + vibrate(haptic.vib, intensity, length); + } + } + + @Override + void rumble(int device_id, float low_frequency_intensity, float high_frequency_intensity, int length) { + InputDevice device = InputDevice.getDevice(device_id); + if (device == null) { + return; + } + + if (Build.VERSION.SDK_INT < 31 /* Android 12.0 (S) */) { + /* Silence 'lint' warning */ + return; + } + + VibratorManager manager = device.getVibratorManager(); + int[] vibrators = manager.getVibratorIds(); + if (vibrators.length >= 2) { + vibrate(manager.getVibrator(vibrators[0]), low_frequency_intensity, length); + vibrate(manager.getVibrator(vibrators[1]), high_frequency_intensity, length); + } else if (vibrators.length == 1) { + float intensity = (low_frequency_intensity * 0.6f) + (high_frequency_intensity * 0.4f); + vibrate(manager.getVibrator(vibrators[0]), intensity, length); + } + } + + private void vibrate(Vibrator vibrator, float intensity, int length) { + + if (Build.VERSION.SDK_INT < 31 /* Android 12.0 (S) */) { + /* Silence 'lint' warning */ + return; + } + + if (intensity == 0.0f) { + vibrator.cancel(); + return; + } + + int value = Math.round(intensity * 255); + if (value > 255) { + value = 255; + } + if (value < 1) { + vibrator.cancel(); + return; + } + try { + vibrator.vibrate(VibrationEffect.createOneShot(length, value)); + } + catch (Exception e) { + // Fall back to the generic method, which uses DEFAULT_AMPLITUDE, but works even if + // something went horribly wrong with the Android 8.0 APIs. + vibrator.vibrate(length); + } + } +} \ No newline at end of file diff --git a/Knossos.NET.Android/java/org/libsdl/app/SDLInputConnection.java b/Knossos.NET.Android/java/org/libsdl/app/SDLInputConnection.java new file mode 100644 index 00000000..fdc2994c --- /dev/null +++ b/Knossos.NET.Android/java/org/libsdl/app/SDLInputConnection.java @@ -0,0 +1,136 @@ +package org.libsdl.app; + +import android.content.*; +import android.os.Build; +import android.text.Editable; +import android.view.*; +import android.view.inputmethod.BaseInputConnection; +import android.widget.EditText; + +class SDLInputConnection extends BaseInputConnection +{ + protected EditText mEditText; + protected String mCommittedText = ""; + + SDLInputConnection(View targetView, boolean fullEditor) { + super(targetView, fullEditor); + mEditText = new EditText(SDL.getContext()); + } + + @Override + public Editable getEditable() { + return mEditText.getEditableText(); + } + + @Override + public boolean sendKeyEvent(KeyEvent event) { + /* + * This used to handle the keycodes from soft keyboard (and IME-translated input from hardkeyboard) + * However, as of Ice Cream Sandwich and later, almost all soft keyboard doesn't generate key presses + * and so we need to generate them ourselves in commitText. To avoid duplicates on the handful of keys + * that still do, we empty this out. + */ + + /* + * Return DOES still generate a key event, however. So rather than using it as the 'click a button' key + * as we do with physical keyboards, let's just use it to hide the keyboard. + */ + + if (event.getKeyCode() == KeyEvent.KEYCODE_ENTER) { + if (SDLActivity.onNativeSoftReturnKey()) { + return true; + } + } + + return super.sendKeyEvent(event); + } + + @Override + public boolean commitText(CharSequence text, int newCursorPosition) { + if (!super.commitText(text, newCursorPosition)) { + return false; + } + updateText(); + return true; + } + + @Override + public boolean setComposingText(CharSequence text, int newCursorPosition) { + if (!super.setComposingText(text, newCursorPosition)) { + return false; + } + updateText(); + return true; + } + + @Override + public boolean deleteSurroundingText(int beforeLength, int afterLength) { + // Workaround to capture backspace key. Ref: http://stackoverflow.com/questions>/14560344/android-backspace-in-webview-baseinputconnection + // and https://bugzilla.libsdl.org/show_bug.cgi?id=2265 + if (beforeLength > 0 && afterLength == 0) { + // backspace(s) + while (beforeLength-- > 0) { + nativeGenerateScancodeForUnichar('\b'); + } + return true; + } + + if (!super.deleteSurroundingText(beforeLength, afterLength)) { + return false; + } + updateText(); + return true; + } + + protected void updateText() { + final Editable content = getEditable(); + if (content == null) { + return; + } + + String text = content.toString(); + int compareLength = Math.min(text.length(), mCommittedText.length()); + int matchLength, offset; + + /* Backspace over characters that are no longer in the string */ + for (matchLength = 0; matchLength < compareLength; ) { + int codePoint = mCommittedText.codePointAt(matchLength); + if (codePoint != text.codePointAt(matchLength)) { + break; + } + matchLength += Character.charCount(codePoint); + } + /* FIXME: This doesn't handle graphemes, like '🌬️' */ + for (offset = matchLength; offset < mCommittedText.length(); ) { + int codePoint = mCommittedText.codePointAt(offset); + nativeGenerateScancodeForUnichar('\b'); + offset += Character.charCount(codePoint); + } + + if (matchLength < text.length()) { + String pendingText = text.subSequence(matchLength, text.length()).toString(); + if (!SDLActivity.dispatchingKeyEvent()) { + for (offset = 0; offset < pendingText.length(); ) { + int codePoint = pendingText.codePointAt(offset); + if (codePoint == '\n') { + if (SDLActivity.onNativeSoftReturnKey()) { + return; + } + } + /* Higher code points don't generate simulated scancodes */ + if (codePoint > 0 && codePoint < 128) { + nativeGenerateScancodeForUnichar((char)codePoint); + } + offset += Character.charCount(codePoint); + } + } + SDLInputConnection.nativeCommitText(pendingText, 0); + } + mCommittedText = text; + } + + public static native void nativeCommitText(String text, int newCursorPosition); + + public static native void nativeGenerateScancodeForUnichar(char c); +} + diff --git a/Knossos.NET.Android/java/org/libsdl/app/SDLJoySensorListener.java b/Knossos.NET.Android/java/org/libsdl/app/SDLJoySensorListener.java new file mode 100644 index 00000000..0490f031 --- /dev/null +++ b/Knossos.NET.Android/java/org/libsdl/app/SDLJoySensorListener.java @@ -0,0 +1,42 @@ +package org.libsdl.app; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.Comparator; +import java.util.List; + +import android.content.Context; +import android.hardware.lights.Light; +import android.hardware.lights.LightsRequest; +import android.hardware.lights.LightsManager; +import android.hardware.lights.LightState; +import android.hardware.Sensor; +import android.hardware.SensorEvent; +import android.hardware.SensorEventListener; +import android.hardware.SensorManager; +import android.graphics.Color; +import android.os.Build; +import android.os.VibrationEffect; +import android.os.Vibrator; +import android.os.VibratorManager; +import android.util.Log; +import android.view.InputDevice; +import android.view.KeyEvent; +import android.view.MotionEvent; +import android.view.View; + +public class SDLJoySensorListener implements SensorEventListener { + int device_id; + + public SDLJoySensorListener(int device_id) { + this.device_id = device_id; + } + + @Override + public void onAccuracyChanged(Sensor sensor, int accuracy) {} + + @Override + public void onSensorChanged(SensorEvent event) { + SDLControllerManager.onNativeJoySensor(device_id, event.sensor.getType(), event.timestamp, event.values[0], event.values[1], event.values[2]); + } +} \ No newline at end of file diff --git a/Knossos.NET.Android/java/org/libsdl/app/SDLJoystickHandler.java b/Knossos.NET.Android/java/org/libsdl/app/SDLJoystickHandler.java index d6b5251d..46dc6e09 100644 --- a/Knossos.NET.Android/java/org/libsdl/app/SDLJoystickHandler.java +++ b/Knossos.NET.Android/java/org/libsdl/app/SDLJoystickHandler.java @@ -6,29 +6,435 @@ import java.util.List; import android.content.Context; +import android.hardware.lights.Light; +import android.hardware.lights.LightsRequest; +import android.hardware.lights.LightsManager; +import android.hardware.lights.LightState; +import android.hardware.Sensor; +import android.hardware.SensorEvent; +import android.hardware.SensorEventListener; +import android.hardware.SensorManager; +import android.graphics.Color; import android.os.Build; import android.os.VibrationEffect; import android.os.Vibrator; +import android.os.VibratorManager; import android.util.Log; import android.view.InputDevice; import android.view.KeyEvent; import android.view.MotionEvent; import android.view.View; +/* Actual joystick functionality available for API >= 19 devices */ public class SDLJoystickHandler { + public static class SDLJoystick { + int device_id; + String name; + String desc; + ArrayList axes; + ArrayList hats; + ArrayList lights; + LightsManager.LightsSession lightsSession; + SensorManager sensorManager; + SDLJoySensorListener sensorListener; + Sensor accelerometerSensor; + Sensor gyroscopeSensor; + } + static class RangeComparator implements Comparator { + @Override + public int compare(InputDevice.MotionRange arg0, InputDevice.MotionRange arg1) { + // Some controllers, like the Moga Pro 2, return AXIS_GAS (22) for right trigger and AXIS_BRAKE (23) for left trigger - swap them so they're sorted in the right order for SDL + int arg0Axis = arg0.getAxis(); + int arg1Axis = arg1.getAxis(); + if (arg0Axis == MotionEvent.AXIS_GAS) { + arg0Axis = MotionEvent.AXIS_BRAKE; + } else if (arg0Axis == MotionEvent.AXIS_BRAKE) { + arg0Axis = MotionEvent.AXIS_GAS; + } + if (arg1Axis == MotionEvent.AXIS_GAS) { + arg1Axis = MotionEvent.AXIS_BRAKE; + } else if (arg1Axis == MotionEvent.AXIS_BRAKE) { + arg1Axis = MotionEvent.AXIS_GAS; + } + + // Make sure the AXIS_Z is sorted between AXIS_RY and AXIS_RZ. + // This is because the usual pairing are: + // - AXIS_X + AXIS_Y (left stick). + // - AXIS_RX, AXIS_RY (sometimes the right stick, sometimes triggers). + // - AXIS_Z, AXIS_RZ (sometimes the right stick, sometimes triggers). + // This sorts the axes in the above order, which tends to be correct + // for Xbox-ish game pads that have the right stick on RX/RY and the + // triggers on Z/RZ. + // + // Gamepads that don't have AXIS_Z/AXIS_RZ but use + // AXIS_LTRIGGER/AXIS_RTRIGGER are unaffected by this. + // + // References: + // - https://developer.android.com/develop/ui/views/touch-and-input/game-controllers/controller-input + // - https://www.kernel.org/doc/html/latest/input/gamepad.html + if (arg0Axis == MotionEvent.AXIS_Z) { + arg0Axis = MotionEvent.AXIS_RZ - 1; + } else if (arg0Axis > MotionEvent.AXIS_Z && arg0Axis < MotionEvent.AXIS_RZ) { + --arg0Axis; + } + if (arg1Axis == MotionEvent.AXIS_Z) { + arg1Axis = MotionEvent.AXIS_RZ - 1; + } else if (arg1Axis > MotionEvent.AXIS_Z && arg1Axis < MotionEvent.AXIS_RZ) { + --arg1Axis; + } + + return arg0Axis - arg1Axis; + } + } + + private final ArrayList mJoysticks; + + SDLJoystickHandler() { + + mJoysticks = new ArrayList(); + } + + /** + * Handles adding and removing of input devices. + */ + synchronized void pollInputDevices() { + int[] deviceIds = InputDevice.getDeviceIds(); + + for (int device_id : deviceIds) { + if (SDLControllerManager.isDeviceSDLJoystick(device_id)) { + SDLJoystick joystick = getJoystick(device_id); + if (joystick == null) { + InputDevice joystickDevice = InputDevice.getDevice(device_id); + joystick = new SDLJoystick(); + joystick.device_id = device_id; + joystick.name = joystickDevice.getName(); + joystick.desc = getJoystickDescriptor(joystickDevice); + joystick.axes = new ArrayList(); + joystick.hats = new ArrayList(); + java.util.Set axisStrsSet = new java.util.HashSet(); + joystick.lights = new ArrayList(); + + List ranges = joystickDevice.getMotionRanges(); + Collections.sort(ranges, new RangeComparator()); + for (InputDevice.MotionRange range : ranges) { + if (((range.getSource() & InputDevice.SOURCE_CLASS_JOYSTICK) != 0) && axisStrsSet.add(range.getAxis())) { + if (range.getAxis() == MotionEvent.AXIS_HAT_X || range.getAxis() == MotionEvent.AXIS_HAT_Y) { + joystick.hats.add(range); + } else { + joystick.axes.add(range); + } + } + } + + boolean can_rumble = false; + boolean has_rgb_led = false; + boolean has_accelerometer = false; + boolean has_gyroscope = false; + if (Build.VERSION.SDK_INT >= 31 /* Android 12.0 (S) */) { + VibratorManager vibratorManager = joystickDevice.getVibratorManager(); + int[] vibrators = vibratorManager.getVibratorIds(); + if (vibrators.length > 0) { + can_rumble = true; + } + LightsManager lightsManager = joystickDevice.getLightsManager(); + List lights = lightsManager.getLights(); + for (Light light : lights) { + if (light.hasRgbControl()) { + joystick.lights.add(light); + } + } + if (!joystick.lights.isEmpty()) { + joystick.lightsSession = lightsManager.openSession(); + has_rgb_led = true; + } + SensorManager sensorManager = joystickDevice.getSensorManager(); + if (sensorManager != null) { + joystick.sensorManager = sensorManager; + joystick.sensorListener = new SDLJoySensorListener(joystick.device_id); + joystick.accelerometerSensor = sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER); + if (joystick.accelerometerSensor != null) { + has_accelerometer = true; + } + joystick.gyroscopeSensor = sensorManager.getDefaultSensor(Sensor.TYPE_GYROSCOPE); + if (joystick.gyroscopeSensor != null) { + has_gyroscope = true; + } + } + } + + mJoysticks.add(joystick); + SDLControllerManager.nativeAddJoystick(joystick.device_id, joystick.name, joystick.desc, + getVendorId(joystickDevice), getProductId(joystickDevice), + getButtonMask(joystickDevice), joystick.axes.size(), getAxisMask(joystick.axes), joystick.hats.size()/2, can_rumble, has_rgb_led, + has_accelerometer, has_gyroscope); + } + } + } + + /* Check removed devices */ + ArrayList removedDevices = null; + for (SDLJoystick joystick : mJoysticks) { + int device_id = joystick.device_id; + int i; + for (i = 0; i < deviceIds.length; i++) { + if (device_id == deviceIds[i]) break; + } + if (i == deviceIds.length) { + if (removedDevices == null) { + removedDevices = new ArrayList(); + } + removedDevices.add(device_id); + } + } + + if (removedDevices != null) { + for (int device_id : removedDevices) { + SDLControllerManager.nativeRemoveJoystick(device_id); + for (int i = 0; i < mJoysticks.size(); i++) { + if (mJoysticks.get(i).device_id == device_id) { + if (Build.VERSION.SDK_INT >= 31 /* Android 12.0 (S) */) { + if (mJoysticks.get(i).lightsSession != null) { + try { + mJoysticks.get(i).lightsSession.close(); + } catch (Exception e) { + // Session may already be unregistered when device disconnects + } + mJoysticks.get(i).lightsSession = null; + } + } + mJoysticks.remove(i); + break; + } + } + } + } + } + + synchronized protected SDLJoystick getJoystick(int device_id) { + for (SDLJoystick joystick : mJoysticks) { + if (joystick.device_id == device_id) { + return joystick; + } + } + return null; + } + /** * Handles given MotionEvent. * @param event the event to be handled. * @return if given event was processed. */ - public boolean handleMotionEvent(MotionEvent event) { - return false; + boolean handleMotionEvent(MotionEvent event) { + int actionPointerIndex = event.getActionIndex(); + int action = event.getActionMasked(); + if (action == MotionEvent.ACTION_MOVE) { + SDLJoystick joystick = getJoystick(event.getDeviceId()); + if (joystick != null) { + for (int i = 0; i < joystick.axes.size(); i++) { + InputDevice.MotionRange range = joystick.axes.get(i); + /* Normalize the value to -1...1 */ + float value = (event.getAxisValue(range.getAxis(), actionPointerIndex) - range.getMin()) / range.getRange() * 2.0f - 1.0f; + SDLControllerManager.onNativeJoy(joystick.device_id, i, value); + } + for (int i = 0; i < joystick.hats.size() / 2; i++) { + int hatX = Math.round(event.getAxisValue(joystick.hats.get(2 * i).getAxis(), actionPointerIndex)); + int hatY = Math.round(event.getAxisValue(joystick.hats.get(2 * i + 1).getAxis(), actionPointerIndex)); + SDLControllerManager.onNativeHat(joystick.device_id, i, hatX, hatY); + } + } + } + return true; } - /** - * Handles adding and removing of input devices. - */ - public void pollInputDevices() { + String getJoystickDescriptor(InputDevice joystickDevice) { + String desc = joystickDevice.getDescriptor(); + + if (desc != null && !desc.isEmpty()) { + return desc; + } + + return joystickDevice.getName(); + } + + int getProductId(InputDevice joystickDevice) { + return joystickDevice.getProductId(); + } + + int getVendorId(InputDevice joystickDevice) { + return joystickDevice.getVendorId(); + } + + int getAxisMask(List ranges) { + // For compatibility, keep computing the axis mask like before, + // only really distinguishing 2, 4 and 6 axes. + int axis_mask = 0; + if (ranges.size() >= 2) { + // ((1 << SDL_GAMEPAD_AXIS_LEFTX) | (1 << SDL_GAMEPAD_AXIS_LEFTY)) + axis_mask |= 0x0003; + } + if (ranges.size() >= 4) { + // ((1 << SDL_GAMEPAD_AXIS_RIGHTX) | (1 << SDL_GAMEPAD_AXIS_RIGHTY)) + axis_mask |= 0x000c; + } + if (ranges.size() >= 6) { + // ((1 << SDL_GAMEPAD_AXIS_LEFT_TRIGGER) | (1 << SDL_GAMEPAD_AXIS_RIGHT_TRIGGER)) + axis_mask |= 0x0030; + } + // Also add an indicator bit for whether the sorting order has changed. + // This serves to disable outdated gamecontrollerdb.txt mappings. + boolean have_z = false; + boolean have_past_z_before_rz = false; + for (InputDevice.MotionRange range : ranges) { + int axis = range.getAxis(); + if (axis == MotionEvent.AXIS_Z) { + have_z = true; + } else if (axis > MotionEvent.AXIS_Z && axis < MotionEvent.AXIS_RZ) { + have_past_z_before_rz = true; + } + } + if (have_z && have_past_z_before_rz) { + // If both these exist, the compare() function changed sorting order. + // Set a bit to indicate this fact. + axis_mask |= 0x8000; + } + return axis_mask; + } + + int getButtonMask(InputDevice joystickDevice) { + int button_mask = 0; + int[] keys = new int[] { + KeyEvent.KEYCODE_BUTTON_A, + KeyEvent.KEYCODE_BUTTON_B, + KeyEvent.KEYCODE_BUTTON_X, + KeyEvent.KEYCODE_BUTTON_Y, + KeyEvent.KEYCODE_BACK, + KeyEvent.KEYCODE_MENU, + KeyEvent.KEYCODE_BUTTON_MODE, + KeyEvent.KEYCODE_BUTTON_START, + KeyEvent.KEYCODE_BUTTON_THUMBL, + KeyEvent.KEYCODE_BUTTON_THUMBR, + KeyEvent.KEYCODE_BUTTON_L1, + KeyEvent.KEYCODE_BUTTON_R1, + KeyEvent.KEYCODE_DPAD_UP, + KeyEvent.KEYCODE_DPAD_DOWN, + KeyEvent.KEYCODE_DPAD_LEFT, + KeyEvent.KEYCODE_DPAD_RIGHT, + KeyEvent.KEYCODE_BUTTON_SELECT, + KeyEvent.KEYCODE_DPAD_CENTER, + + // These don't map into any SDL controller buttons directly + KeyEvent.KEYCODE_BUTTON_L2, + KeyEvent.KEYCODE_BUTTON_R2, + KeyEvent.KEYCODE_BUTTON_C, + KeyEvent.KEYCODE_BUTTON_Z, + KeyEvent.KEYCODE_BUTTON_1, + KeyEvent.KEYCODE_BUTTON_2, + KeyEvent.KEYCODE_BUTTON_3, + KeyEvent.KEYCODE_BUTTON_4, + KeyEvent.KEYCODE_BUTTON_5, + KeyEvent.KEYCODE_BUTTON_6, + KeyEvent.KEYCODE_BUTTON_7, + KeyEvent.KEYCODE_BUTTON_8, + KeyEvent.KEYCODE_BUTTON_9, + KeyEvent.KEYCODE_BUTTON_10, + KeyEvent.KEYCODE_BUTTON_11, + KeyEvent.KEYCODE_BUTTON_12, + KeyEvent.KEYCODE_BUTTON_13, + KeyEvent.KEYCODE_BUTTON_14, + KeyEvent.KEYCODE_BUTTON_15, + KeyEvent.KEYCODE_BUTTON_16, + }; + int[] masks = new int[] { + (1 << 0), // A -> A + (1 << 1), // B -> B + (1 << 2), // X -> X + (1 << 3), // Y -> Y + (1 << 4), // BACK -> BACK + (1 << 6), // MENU -> START + (1 << 5), // MODE -> GUIDE + (1 << 6), // START -> START + (1 << 7), // THUMBL -> LEFTSTICK + (1 << 8), // THUMBR -> RIGHTSTICK + (1 << 9), // L1 -> LEFTSHOULDER + (1 << 10), // R1 -> RIGHTSHOULDER + (1 << 11), // DPAD_UP -> DPAD_UP + (1 << 12), // DPAD_DOWN -> DPAD_DOWN + (1 << 13), // DPAD_LEFT -> DPAD_LEFT + (1 << 14), // DPAD_RIGHT -> DPAD_RIGHT + (1 << 4), // SELECT -> BACK + (1 << 0), // DPAD_CENTER -> A + (1 << 15), // L2 -> ?? + (1 << 16), // R2 -> ?? + (1 << 17), // C -> ?? + (1 << 18), // Z -> ?? + (1 << 20), // 1 -> ?? + (1 << 21), // 2 -> ?? + (1 << 22), // 3 -> ?? + (1 << 23), // 4 -> ?? + (1 << 24), // 5 -> ?? + (1 << 25), // 6 -> ?? + (1 << 26), // 7 -> ?? + (1 << 27), // 8 -> ?? + (1 << 28), // 9 -> ?? + (1 << 29), // 10 -> ?? + (1 << 30), // 11 -> ?? + (1 << 31), // 12 -> ?? + // We're out of room... + 0xFFFFFFFF, // 13 -> ?? + 0xFFFFFFFF, // 14 -> ?? + 0xFFFFFFFF, // 15 -> ?? + 0xFFFFFFFF, // 16 -> ?? + }; + boolean[] has_keys = joystickDevice.hasKeys(keys); + for (int i = 0; i < keys.length; ++i) { + if (has_keys[i]) { + button_mask |= masks[i]; + } + } + return button_mask; + } + + void setLED(int device_id, int red, int green, int blue) { + if (Build.VERSION.SDK_INT < 31 /* Android 12.0 (S) */) { + return; + } + SDLJoystick joystick = getJoystick(device_id); + if (joystick == null || joystick.lights.isEmpty()) { + return; + } + LightsRequest.Builder lightsRequest = new LightsRequest.Builder(); + LightState lightState = new LightState.Builder().setColor(Color.rgb(red, green, blue)).build(); + for (Light light : joystick.lights) { + if (light.hasRgbControl()) { + lightsRequest.addLight(light, lightState); + } + } + joystick.lightsSession.requestLights(lightsRequest.build()); + } + + void setSensorsEnabled(int device_id, boolean enabled) { + if (Build.VERSION.SDK_INT < 31 /* Android 12.0 (S) */) { + return; + } + SDLJoystick joystick = getJoystick(device_id); + if (joystick == null || joystick.sensorManager == null) { + return; + } + if (enabled) { + if (joystick.accelerometerSensor != null) { + SDLSensorManager.registerListener(joystick.sensorManager, joystick.sensorListener, joystick.accelerometerSensor, SensorManager.SENSOR_DELAY_GAME); + } + if (joystick.gyroscopeSensor != null) { + SDLSensorManager.registerListener(joystick.sensorManager, joystick.sensorListener, joystick.gyroscopeSensor, SensorManager.SENSOR_DELAY_GAME); + } + } else { + if (joystick.accelerometerSensor != null) { + SDLSensorManager.unregisterListener(joystick.sensorManager, joystick.sensorListener, joystick.accelerometerSensor); + } + if (joystick.gyroscopeSensor != null) { + SDLSensorManager.unregisterListener(joystick.sensorManager, joystick.sensorListener, joystick.gyroscopeSensor); + } + } } } \ No newline at end of file diff --git a/Knossos.NET.Android/java/org/libsdl/app/SDLJoystickHandler_API16.java b/Knossos.NET.Android/java/org/libsdl/app/SDLJoystickHandler_API16.java deleted file mode 100644 index 71949447..00000000 --- a/Knossos.NET.Android/java/org/libsdl/app/SDLJoystickHandler_API16.java +++ /dev/null @@ -1,198 +0,0 @@ -package org.libsdl.app; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.Comparator; -import java.util.List; - -import android.content.Context; -import android.os.Build; -import android.os.VibrationEffect; -import android.os.Vibrator; -import android.util.Log; -import android.view.InputDevice; -import android.view.KeyEvent; -import android.view.MotionEvent; -import android.view.View; - -public class SDLJoystickHandler_API16 extends SDLJoystickHandler { - public static class SDLJoystick { - public int device_id; - public String name; - public String desc; - public ArrayList axes; - public ArrayList hats; - } - static class RangeComparator implements Comparator { - @Override - public int compare(InputDevice.MotionRange arg0, InputDevice.MotionRange arg1) { - // Some controllers, like the Moga Pro 2, return AXIS_GAS (22) for right trigger and AXIS_BRAKE (23) for left trigger - swap them so they're sorted in the right order for SDL - int arg0Axis = arg0.getAxis(); - int arg1Axis = arg1.getAxis(); - if (arg0Axis == MotionEvent.AXIS_GAS) { - arg0Axis = MotionEvent.AXIS_BRAKE; - } else if (arg0Axis == MotionEvent.AXIS_BRAKE) { - arg0Axis = MotionEvent.AXIS_GAS; - } - if (arg1Axis == MotionEvent.AXIS_GAS) { - arg1Axis = MotionEvent.AXIS_BRAKE; - } else if (arg1Axis == MotionEvent.AXIS_BRAKE) { - arg1Axis = MotionEvent.AXIS_GAS; - } - - // Make sure the AXIS_Z is sorted between AXIS_RY and AXIS_RZ. - // This is because the usual pairing are: - // - AXIS_X + AXIS_Y (left stick). - // - AXIS_RX, AXIS_RY (sometimes the right stick, sometimes triggers). - // - AXIS_Z, AXIS_RZ (sometimes the right stick, sometimes triggers). - // This sorts the axes in the above order, which tends to be correct - // for Xbox-ish game pads that have the right stick on RX/RY and the - // triggers on Z/RZ. - // - // Gamepads that don't have AXIS_Z/AXIS_RZ but use - // AXIS_LTRIGGER/AXIS_RTRIGGER are unaffected by this. - // - // References: - // - https://developer.android.com/develop/ui/views/touch-and-input/game-controllers/controller-input - // - https://www.kernel.org/doc/html/latest/input/gamepad.html - if (arg0Axis == MotionEvent.AXIS_Z) { - arg0Axis = MotionEvent.AXIS_RZ - 1; - } else if (arg0Axis > MotionEvent.AXIS_Z && arg0Axis < MotionEvent.AXIS_RZ) { - --arg0Axis; - } - if (arg1Axis == MotionEvent.AXIS_Z) { - arg1Axis = MotionEvent.AXIS_RZ - 1; - } else if (arg1Axis > MotionEvent.AXIS_Z && arg1Axis < MotionEvent.AXIS_RZ) { - --arg1Axis; - } - - return arg0Axis - arg1Axis; - } - } - - private final ArrayList mJoysticks; - - public SDLJoystickHandler_API16() { - - mJoysticks = new ArrayList(); - } - - @Override - public void pollInputDevices() { - int[] deviceIds = InputDevice.getDeviceIds(); - - for (int device_id : deviceIds) { - if (SDLControllerManager.isDeviceSDLJoystick(device_id)) { - SDLJoystick joystick = getJoystick(device_id); - if (joystick == null) { - InputDevice joystickDevice = InputDevice.getDevice(device_id); - joystick = new SDLJoystick(); - joystick.device_id = device_id; - joystick.name = joystickDevice.getName(); - joystick.desc = getJoystickDescriptor(joystickDevice); - joystick.axes = new ArrayList(); - joystick.hats = new ArrayList(); - - List ranges = joystickDevice.getMotionRanges(); - Collections.sort(ranges, new RangeComparator()); - for (InputDevice.MotionRange range : ranges) { - if ((range.getSource() & InputDevice.SOURCE_CLASS_JOYSTICK) != 0) { - if (range.getAxis() == MotionEvent.AXIS_HAT_X || range.getAxis() == MotionEvent.AXIS_HAT_Y) { - joystick.hats.add(range); - } else { - joystick.axes.add(range); - } - } - } - - mJoysticks.add(joystick); - SDLControllerManager.nativeAddJoystick(joystick.device_id, joystick.name, joystick.desc, - getVendorId(joystickDevice), getProductId(joystickDevice), false, - getButtonMask(joystickDevice), joystick.axes.size(), getAxisMask(joystick.axes), joystick.hats.size()/2, 0); - } - } - } - - /* Check removed devices */ - ArrayList removedDevices = null; - for (SDLJoystick joystick : mJoysticks) { - int device_id = joystick.device_id; - int i; - for (i = 0; i < deviceIds.length; i++) { - if (device_id == deviceIds[i]) break; - } - if (i == deviceIds.length) { - if (removedDevices == null) { - removedDevices = new ArrayList(); - } - removedDevices.add(device_id); - } - } - - if (removedDevices != null) { - for (int device_id : removedDevices) { - SDLControllerManager.nativeRemoveJoystick(device_id); - for (int i = 0; i < mJoysticks.size(); i++) { - if (mJoysticks.get(i).device_id == device_id) { - mJoysticks.remove(i); - break; - } - } - } - } - } - - protected SDLJoystick getJoystick(int device_id) { - for (SDLJoystick joystick : mJoysticks) { - if (joystick.device_id == device_id) { - return joystick; - } - } - return null; - } - - @Override - public boolean handleMotionEvent(MotionEvent event) { - int actionPointerIndex = event.getActionIndex(); - int action = event.getActionMasked(); - if (action == MotionEvent.ACTION_MOVE) { - SDLJoystick joystick = getJoystick(event.getDeviceId()); - if (joystick != null) { - for (int i = 0; i < joystick.axes.size(); i++) { - InputDevice.MotionRange range = joystick.axes.get(i); - /* Normalize the value to -1...1 */ - float value = (event.getAxisValue(range.getAxis(), actionPointerIndex) - range.getMin()) / range.getRange() * 2.0f - 1.0f; - SDLControllerManager.onNativeJoy(joystick.device_id, i, value); - } - for (int i = 0; i < joystick.hats.size() / 2; i++) { - int hatX = Math.round(event.getAxisValue(joystick.hats.get(2 * i).getAxis(), actionPointerIndex)); - int hatY = Math.round(event.getAxisValue(joystick.hats.get(2 * i + 1).getAxis(), actionPointerIndex)); - SDLControllerManager.onNativeHat(joystick.device_id, i, hatX, hatY); - } - } - } - return true; - } - - public String getJoystickDescriptor(InputDevice joystickDevice) { - String desc = joystickDevice.getDescriptor(); - - if (desc != null && !desc.isEmpty()) { - return desc; - } - - return joystickDevice.getName(); - } - public int getProductId(InputDevice joystickDevice) { - return 0; - } - public int getVendorId(InputDevice joystickDevice) { - return 0; - } - public int getAxisMask(List ranges) { - return -1; - } - public int getButtonMask(InputDevice joystickDevice) { - return -1; - } -} \ No newline at end of file diff --git a/Knossos.NET.Android/java/org/libsdl/app/SDLJoystickHandler_API19.java b/Knossos.NET.Android/java/org/libsdl/app/SDLJoystickHandler_API19.java deleted file mode 100644 index dbf3553f..00000000 --- a/Knossos.NET.Android/java/org/libsdl/app/SDLJoystickHandler_API19.java +++ /dev/null @@ -1,161 +0,0 @@ -package org.libsdl.app; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.Comparator; -import java.util.List; - -import android.content.Context; -import android.os.Build; -import android.os.VibrationEffect; -import android.os.Vibrator; -import android.util.Log; -import android.view.InputDevice; -import android.view.KeyEvent; -import android.view.MotionEvent; -import android.view.View; - -public class SDLJoystickHandler_API19 extends SDLJoystickHandler_API16 { - - @Override - public int getProductId(InputDevice joystickDevice) { - return joystickDevice.getProductId(); - } - - @Override - public int getVendorId(InputDevice joystickDevice) { - return joystickDevice.getVendorId(); - } - - @Override - public int getAxisMask(List ranges) { - // For compatibility, keep computing the axis mask like before, - // only really distinguishing 2, 4 and 6 axes. - int axis_mask = 0; - if (ranges.size() >= 2) { - // ((1 << SDL_GAMEPAD_AXIS_LEFTX) | (1 << SDL_GAMEPAD_AXIS_LEFTY)) - axis_mask |= 0x0003; - } - if (ranges.size() >= 4) { - // ((1 << SDL_GAMEPAD_AXIS_RIGHTX) | (1 << SDL_GAMEPAD_AXIS_RIGHTY)) - axis_mask |= 0x000c; - } - if (ranges.size() >= 6) { - // ((1 << SDL_GAMEPAD_AXIS_LEFT_TRIGGER) | (1 << SDL_GAMEPAD_AXIS_RIGHT_TRIGGER)) - axis_mask |= 0x0030; - } - // Also add an indicator bit for whether the sorting order has changed. - // This serves to disable outdated gamecontrollerdb.txt mappings. - boolean have_z = false; - boolean have_past_z_before_rz = false; - for (InputDevice.MotionRange range : ranges) { - int axis = range.getAxis(); - if (axis == MotionEvent.AXIS_Z) { - have_z = true; - } else if (axis > MotionEvent.AXIS_Z && axis < MotionEvent.AXIS_RZ) { - have_past_z_before_rz = true; - } - } - if (have_z && have_past_z_before_rz) { - // If both these exist, the compare() function changed sorting order. - // Set a bit to indicate this fact. - axis_mask |= 0x8000; - } - return axis_mask; - } - - @Override - public int getButtonMask(InputDevice joystickDevice) { - int button_mask = 0; - int[] keys = new int[] { - KeyEvent.KEYCODE_BUTTON_A, - KeyEvent.KEYCODE_BUTTON_B, - KeyEvent.KEYCODE_BUTTON_X, - KeyEvent.KEYCODE_BUTTON_Y, - KeyEvent.KEYCODE_BACK, - KeyEvent.KEYCODE_MENU, - KeyEvent.KEYCODE_BUTTON_MODE, - KeyEvent.KEYCODE_BUTTON_START, - KeyEvent.KEYCODE_BUTTON_THUMBL, - KeyEvent.KEYCODE_BUTTON_THUMBR, - KeyEvent.KEYCODE_BUTTON_L1, - KeyEvent.KEYCODE_BUTTON_R1, - KeyEvent.KEYCODE_DPAD_UP, - KeyEvent.KEYCODE_DPAD_DOWN, - KeyEvent.KEYCODE_DPAD_LEFT, - KeyEvent.KEYCODE_DPAD_RIGHT, - KeyEvent.KEYCODE_BUTTON_SELECT, - KeyEvent.KEYCODE_DPAD_CENTER, - - // These don't map into any SDL controller buttons directly - KeyEvent.KEYCODE_BUTTON_L2, - KeyEvent.KEYCODE_BUTTON_R2, - KeyEvent.KEYCODE_BUTTON_C, - KeyEvent.KEYCODE_BUTTON_Z, - KeyEvent.KEYCODE_BUTTON_1, - KeyEvent.KEYCODE_BUTTON_2, - KeyEvent.KEYCODE_BUTTON_3, - KeyEvent.KEYCODE_BUTTON_4, - KeyEvent.KEYCODE_BUTTON_5, - KeyEvent.KEYCODE_BUTTON_6, - KeyEvent.KEYCODE_BUTTON_7, - KeyEvent.KEYCODE_BUTTON_8, - KeyEvent.KEYCODE_BUTTON_9, - KeyEvent.KEYCODE_BUTTON_10, - KeyEvent.KEYCODE_BUTTON_11, - KeyEvent.KEYCODE_BUTTON_12, - KeyEvent.KEYCODE_BUTTON_13, - KeyEvent.KEYCODE_BUTTON_14, - KeyEvent.KEYCODE_BUTTON_15, - KeyEvent.KEYCODE_BUTTON_16, - }; - int[] masks = new int[] { - (1 << 0), // A -> A - (1 << 1), // B -> B - (1 << 2), // X -> X - (1 << 3), // Y -> Y - (1 << 4), // BACK -> BACK - (1 << 6), // MENU -> START - (1 << 5), // MODE -> GUIDE - (1 << 6), // START -> START - (1 << 7), // THUMBL -> LEFTSTICK - (1 << 8), // THUMBR -> RIGHTSTICK - (1 << 9), // L1 -> LEFTSHOULDER - (1 << 10), // R1 -> RIGHTSHOULDER - (1 << 11), // DPAD_UP -> DPAD_UP - (1 << 12), // DPAD_DOWN -> DPAD_DOWN - (1 << 13), // DPAD_LEFT -> DPAD_LEFT - (1 << 14), // DPAD_RIGHT -> DPAD_RIGHT - (1 << 4), // SELECT -> BACK - (1 << 0), // DPAD_CENTER -> A - (1 << 15), // L2 -> ?? - (1 << 16), // R2 -> ?? - (1 << 17), // C -> ?? - (1 << 18), // Z -> ?? - (1 << 20), // 1 -> ?? - (1 << 21), // 2 -> ?? - (1 << 22), // 3 -> ?? - (1 << 23), // 4 -> ?? - (1 << 24), // 5 -> ?? - (1 << 25), // 6 -> ?? - (1 << 26), // 7 -> ?? - (1 << 27), // 8 -> ?? - (1 << 28), // 9 -> ?? - (1 << 29), // 10 -> ?? - (1 << 30), // 11 -> ?? - (1 << 31), // 12 -> ?? - // We're out of room... - 0xFFFFFFFF, // 13 -> ?? - 0xFFFFFFFF, // 14 -> ?? - 0xFFFFFFFF, // 15 -> ?? - 0xFFFFFFFF, // 16 -> ?? - }; - boolean[] has_keys = joystickDevice.hasKeys(keys); - for (int i = 0; i < keys.length; ++i) { - if (has_keys[i]) { - button_mask |= masks[i]; - } - } - return button_mask; - } -} \ No newline at end of file diff --git a/Knossos.NET.Android/java/org/libsdl/app/SDLSensorManager.java b/Knossos.NET.Android/java/org/libsdl/app/SDLSensorManager.java new file mode 100644 index 00000000..4ed4f012 --- /dev/null +++ b/Knossos.NET.Android/java/org/libsdl/app/SDLSensorManager.java @@ -0,0 +1,73 @@ +package org.libsdl.app; + +import android.hardware.Sensor; +import android.hardware.SensorEventListener; +import android.hardware.SensorManager; +import android.util.Log; + +// This class coordinates synchronized access to sensor manager registration +// +// This prevents a java.util.ConcurrentModificationException exception on +// Android 16, specifically on the Samsung Tab S9 Ultra. + +class SDLSensorManager +{ + static private SDLSensorManager mManager = new SDLSensorManager(); + + static final int RETRY_COUNT = 3; + + public static void registerListener(SensorManager manager, SensorEventListener listener, Sensor sensor, int samplingPeriodUs) { + mManager.RegisterListener(manager, listener, sensor, samplingPeriodUs); + } + + public static void unregisterListener(SensorManager manager, SensorEventListener listener, Sensor sensor) { + mManager.UnregisterListener(manager, listener, sensor); + } + + private synchronized void RegisterListener(SensorManager manager, SensorEventListener listener, Sensor sensor, int samplingPeriodUs) { + int retries = 0; + boolean complete = false; + while (!complete) { + try { + manager.registerListener(listener, sensor, samplingPeriodUs, null); + complete = true; + } catch (java.util.ConcurrentModificationException e) { + ++retries; + if (retries <= RETRY_COUNT) { + // Sleep a bit and try again + try { + Thread.sleep(1); + } catch (Exception e2) { + } + } else { + Log.v("SDL", "Multiple ConcurrentModificationException caught while registering sensor listener, canceling operation"); + complete = true; + } + } + } + } + + private synchronized void UnregisterListener(SensorManager manager, SensorEventListener listener, Sensor sensor) { + int retries = 0; + boolean complete = false; + while (!complete) { + try { + manager.unregisterListener(listener, sensor); + complete = true; + } catch (java.util.ConcurrentModificationException e) { + ++retries; + if (retries <= RETRY_COUNT) { + // Sleep a bit and try again + try { + Thread.sleep(1); + } catch (Exception e2) { + } + } else { + Log.v("SDL", "Multiple ConcurrentModificationException caught while unregistering sensor listener, canceling operation"); + complete = true; + } + } + } + } +} + diff --git a/Knossos.NET.Android/java/org/libsdl/app/SDLSurface.java b/Knossos.NET.Android/java/org/libsdl/app/SDLSurface.java index 0857e4b6..e28870fa 100644 --- a/Knossos.NET.Android/java/org/libsdl/app/SDLSurface.java +++ b/Knossos.NET.Android/java/org/libsdl/app/SDLSurface.java @@ -3,6 +3,7 @@ import android.content.Context; import android.content.pm.ActivityInfo; +import android.graphics.Insets; import android.hardware.Sensor; import android.hardware.SensorEvent; import android.hardware.SensorEventListener; @@ -14,12 +15,15 @@ import android.view.InputDevice; import android.view.KeyEvent; import android.view.MotionEvent; +import android.view.PointerIcon; import android.view.Surface; import android.view.SurfaceHolder; import android.view.SurfaceView; import android.view.View; +import android.view.WindowInsets; import android.view.WindowManager; +import android.view.ScaleGestureDetector; /** SDLSurface. This is what we draw on, so we need to know when it's created @@ -28,7 +32,8 @@ Because of this, that's where we set up the SDL thread */ public class SDLSurface extends SurfaceView implements SurfaceHolder.Callback, - View.OnKeyListener, View.OnTouchListener, SensorEventListener { + View.OnApplyWindowInsetsListener, View.OnKeyListener, View.OnTouchListener, + SensorEventListener, ScaleGestureDetector.OnScaleGestureListener { // Sensors protected SensorManager mSensorManager; @@ -38,16 +43,25 @@ public class SDLSurface extends SurfaceView implements SurfaceHolder.Callback, protected float mWidth, mHeight; // Is SurfaceView ready for rendering - public boolean mIsSurfaceReady; + protected boolean mIsSurfaceReady; + + // Is on-screen keyboard visible + protected boolean mKeyboardVisible; + + // Pinch events + private final ScaleGestureDetector scaleGestureDetector; // Startup - public SDLSurface(Context context) { + protected SDLSurface(Context context) { super(context); getHolder().addCallback(this); + scaleGestureDetector = new ScaleGestureDetector(context, this); + setFocusable(true); setFocusableInTouchMode(true); requestFocus(); + setOnApplyWindowInsetsListener(this); setOnKeyListener(this); setOnTouchListener(this); @@ -63,20 +77,21 @@ public SDLSurface(Context context) { mIsSurfaceReady = false; } - public void handlePause() { + protected void handlePause() { enableSensor(Sensor.TYPE_ACCELEROMETER, false); } - public void handleResume() { + protected void handleResume() { setFocusable(true); setFocusableInTouchMode(true); requestFocus(); + setOnApplyWindowInsetsListener(this); setOnKeyListener(this); setOnTouchListener(this); enableSensor(Sensor.TYPE_ACCELEROMETER, true); } - public Surface getNativeSurface() { + protected Surface getNativeSurface() { return getHolder().getSurface(); } @@ -114,14 +129,15 @@ public void surfaceChanged(SurfaceHolder holder, mHeight = height; int nDeviceWidth = width; int nDeviceHeight = height; + float density = 1.0f; try { - if (Build.VERSION.SDK_INT >= 17 /* Android 4.2 (JELLY_BEAN_MR1) */) { - DisplayMetrics realMetrics = new DisplayMetrics(); - mDisplay.getRealMetrics( realMetrics ); - nDeviceWidth = realMetrics.widthPixels; - nDeviceHeight = realMetrics.heightPixels; - } + DisplayMetrics realMetrics = new DisplayMetrics(); + mDisplay.getRealMetrics( realMetrics ); + nDeviceWidth = realMetrics.widthPixels; + nDeviceHeight = realMetrics.heightPixels; + // Use densityDpi instead of density to more closely match what the UI scale is + density = (float)realMetrics.densityDpi / 160.0f; } catch(Exception ignored) { } @@ -132,7 +148,7 @@ public void surfaceChanged(SurfaceHolder holder, Log.v("SDL", "Window size: " + width + "x" + height); Log.v("SDL", "Device size: " + nDeviceWidth + "x" + nDeviceHeight); - SDLActivity.nativeSetScreenResolution(width, height, nDeviceWidth, nDeviceHeight, mDisplay.getRefreshRate()); + SDLActivity.nativeSetScreenResolution(width, height, nDeviceWidth, nDeviceHeight, density, mDisplay.getRefreshRate()); SDLActivity.onNativeResize(); // Prevent a screen distortion glitch, @@ -161,13 +177,10 @@ public void surfaceChanged(SurfaceHolder holder, } } - // Don't skip in MultiWindow. + // Don't skip if we might be multi-window or have popup dialogs if (skip) { if (Build.VERSION.SDK_INT >= 24 /* Android 7.0 (N) */) { - if (SDLActivity.mSingleton.isInMultiWindowMode()) { - Log.v("SDL", "Don't skip in Multi-Window"); - skip = false; - } + skip = false; } } @@ -187,12 +200,59 @@ public void surfaceChanged(SurfaceHolder holder, SDLActivity.handleNativeState(); } + // Window inset + @Override + public WindowInsets onApplyWindowInsets(View v, WindowInsets insets) { + if (Build.VERSION.SDK_INT >= 30 /* Android 11 (R) */) { + Insets combined = insets.getInsets(WindowInsets.Type.systemBars() | + WindowInsets.Type.systemGestures() | + WindowInsets.Type.mandatorySystemGestures() | + WindowInsets.Type.tappableElement() | + WindowInsets.Type.displayCutout()); + + SDLActivity.onNativeInsetsChanged(combined.left, combined.right, combined.top, combined.bottom); + + if (insets.isVisible(WindowInsets.Type.ime())) { + if (!mKeyboardVisible) { + mKeyboardVisible = true; + SDLActivity.onNativeScreenKeyboardShown(); + } + } else { + if (mKeyboardVisible) { + mKeyboardVisible = false; + SDLActivity.onNativeScreenKeyboardHidden(); + } + } + } + + // Pass these to any child views in case they need them + return insets; + } + // Key events @Override public boolean onKey(View v, int keyCode, KeyEvent event) { return SDLActivity.handleKeyEvent(v, keyCode, event, null); } + private float getNormalizedX(float x) + { + if (mWidth <= 1) { + return 0.5f; + } else { + return (x / (mWidth - 1)); + } + } + + private float getNormalizedY(float y) + { + if (mHeight <= 1) { + return 0.5f; + } else { + return (y / (mHeight - 1)); + } + } + // Touch events @Override public boolean onTouch(View v, MotionEvent event) { @@ -200,113 +260,79 @@ public boolean onTouch(View v, MotionEvent event) { int touchDevId = event.getDeviceId(); final int pointerCount = event.getPointerCount(); int action = event.getActionMasked(); - int pointerFingerId; - int i = -1; + int pointerId; + int i = 0; float x,y,p; - /* - * Prevent id to be -1, since it's used in SDL internal for synthetic events - * Appears when using Android emulator, eg: - * adb shell input mouse tap 100 100 - * adb shell input touchscreen tap 100 100 - */ - if (touchDevId < 0) { - touchDevId -= 1; - } - - // 12290 = Samsung DeX mode desktop mouse - // 12290 = 0x3002 = 0x2002 | 0x1002 = SOURCE_MOUSE | SOURCE_TOUCHSCREEN - // 0x2 = SOURCE_CLASS_POINTER - if (event.getSource() == InputDevice.SOURCE_MOUSE || event.getSource() == (InputDevice.SOURCE_MOUSE | InputDevice.SOURCE_TOUCHSCREEN)) { - int mouseButton = 1; - try { - Object object = event.getClass().getMethod("getButtonState").invoke(event); - if (object != null) { - mouseButton = (Integer) object; + if (action == MotionEvent.ACTION_POINTER_UP || action == MotionEvent.ACTION_POINTER_DOWN) + i = event.getActionIndex(); + + do { + int toolType = event.getToolType(i); + + if (toolType == MotionEvent.TOOL_TYPE_MOUSE) { + int buttonState = event.getButtonState(); + boolean relative = false; + + // We need to check if we're in relative mouse mode and get the axis offset rather than the x/y values + // if we are. We'll leverage our existing mouse motion listener + SDLGenericMotionListener_API14 motionListener = SDLActivity.getMotionListener(); + x = motionListener.getEventX(event, i); + y = motionListener.getEventY(event, i); + relative = motionListener.inRelativeMode(); + + SDLActivity.onNativeMouse(buttonState, action, x, y, relative); + } else if (toolType == MotionEvent.TOOL_TYPE_STYLUS || toolType == MotionEvent.TOOL_TYPE_ERASER) { + pointerId = event.getPointerId(i); + x = event.getX(i); + y = event.getY(i); + p = event.getPressure(i); + if (p > 1.0f) { + // may be larger than 1.0f on some devices + // see the documentation of getPressure(i) + p = 1.0f; } - } catch(Exception ignored) { - } - // We need to check if we're in relative mouse mode and get the axis offset rather than the x/y values - // if we are. We'll leverage our existing mouse motion listener - SDLGenericMotionListener_API12 motionListener = SDLActivity.getMotionListener(); - x = motionListener.getEventX(event); - y = motionListener.getEventY(event); + // BUTTON_STYLUS_PRIMARY is 2^5, so shift by 4, and apply SDL_PEN_INPUT_DOWN/SDL_PEN_INPUT_ERASER_TIP + int buttonState = (event.getButtonState() >> 4) | (1 << (toolType == MotionEvent.TOOL_TYPE_STYLUS ? 0 : 30)); + if ((event.getButtonState() & MotionEvent.BUTTON_TERTIARY) != 0) { + buttonState |= 0x08; + } - SDLActivity.onNativeMouse(mouseButton, action, x, y, motionListener.inRelativeMode()); - } else { - switch(action) { - case MotionEvent.ACTION_MOVE: - for (i = 0; i < pointerCount; i++) { - pointerFingerId = event.getPointerId(i); - x = event.getX(i) / mWidth; - y = event.getY(i) / mHeight; - p = event.getPressure(i); - if (p > 1.0f) { - // may be larger than 1.0f on some devices - // see the documentation of getPressure(i) - p = 1.0f; - } - SDLActivity.onNativeTouch(touchDevId, pointerFingerId, action, x, y, p); - } - break; + SDLActivity.onNativePen(pointerId, SDLActivity.getMotionListener().getPenDeviceType(event.getDevice()), buttonState, action, x, y, p); + } else { // MotionEvent.TOOL_TYPE_FINGER or MotionEvent.TOOL_TYPE_UNKNOWN + pointerId = event.getPointerId(i); + x = getNormalizedX(event.getX(i)); + y = getNormalizedY(event.getY(i)); + p = event.getPressure(i); + if (p > 1.0f) { + // may be larger than 1.0f on some devices + // see the documentation of getPressure(i) + p = 1.0f; + } - case MotionEvent.ACTION_UP: - case MotionEvent.ACTION_DOWN: - // Primary pointer up/down, the index is always zero - i = 0; - /* fallthrough */ - case MotionEvent.ACTION_POINTER_UP: - case MotionEvent.ACTION_POINTER_DOWN: - // Non primary pointer up/down - if (i == -1) { - i = event.getActionIndex(); - } - - pointerFingerId = event.getPointerId(i); - x = event.getX(i) / mWidth; - y = event.getY(i) / mHeight; - p = event.getPressure(i); - if (p > 1.0f) { - // may be larger than 1.0f on some devices - // see the documentation of getPressure(i) - p = 1.0f; - } - SDLActivity.onNativeTouch(touchDevId, pointerFingerId, action, x, y, p); - break; + SDLActivity.onNativeTouch(touchDevId, pointerId, action, x, y, p); + } - case MotionEvent.ACTION_CANCEL: - for (i = 0; i < pointerCount; i++) { - pointerFingerId = event.getPointerId(i); - x = event.getX(i) / mWidth; - y = event.getY(i) / mHeight; - p = event.getPressure(i); - if (p > 1.0f) { - // may be larger than 1.0f on some devices - // see the documentation of getPressure(i) - p = 1.0f; - } - SDLActivity.onNativeTouch(touchDevId, pointerFingerId, MotionEvent.ACTION_UP, x, y, p); - } - break; + // Non-primary up/down + if (action == MotionEvent.ACTION_POINTER_UP || action == MotionEvent.ACTION_POINTER_DOWN) + break; + } while (++i < pointerCount); - default: - break; - } - } + scaleGestureDetector.onTouchEvent(event); return true; - } + } // Sensor events - public void enableSensor(int sensortype, boolean enabled) { + protected void enableSensor(int sensortype, boolean enabled) { // TODO: This uses getDefaultSensor - what if we have >1 accels? if (enabled) { - mSensorManager.registerListener(this, + SDLSensorManager.registerListener(mSensorManager, this, mSensorManager.getDefaultSensor(sensortype), - SensorManager.SENSOR_DELAY_GAME, null); + SensorManager.SENSOR_DELAY_GAME); } else { - mSensorManager.unregisterListener(this, + SDLSensorManager.unregisterListener(mSensorManager, this, mSensorManager.getDefaultSensor(sensortype)); } } @@ -322,36 +348,36 @@ public void onSensorChanged(SensorEvent event) { // Since we may have an orientation set, we won't receive onConfigurationChanged events. // We thus should check here. - int newOrientation; + int newRotation; float x, y; switch (mDisplay.getRotation()) { + case Surface.ROTATION_0: + default: + x = event.values[0]; + y = event.values[1]; + newRotation = 0; + break; case Surface.ROTATION_90: x = -event.values[1]; y = event.values[0]; - newOrientation = SDLActivity.SDL_ORIENTATION_LANDSCAPE; - break; - case Surface.ROTATION_270: - x = event.values[1]; - y = -event.values[0]; - newOrientation = SDLActivity.SDL_ORIENTATION_LANDSCAPE_FLIPPED; + newRotation = 90; break; case Surface.ROTATION_180: x = -event.values[0]; y = -event.values[1]; - newOrientation = SDLActivity.SDL_ORIENTATION_PORTRAIT_FLIPPED; + newRotation = 180; break; - case Surface.ROTATION_0: - default: - x = event.values[0]; - y = event.values[1]; - newOrientation = SDLActivity.SDL_ORIENTATION_PORTRAIT; + case Surface.ROTATION_270: + x = event.values[1]; + y = -event.values[0]; + newRotation = 270; break; } - if (newOrientation != SDLActivity.mCurrentOrientation) { - SDLActivity.mCurrentOrientation = newOrientation; - SDLActivity.onNativeOrientationChanged(newOrientation); + if (newRotation != SDLActivity.mCurrentRotation) { + SDLActivity.mCurrentRotation = newRotation; + SDLActivity.onNativeRotationChanged(newRotation); } SDLActivity.onNativeAccel(-x / SensorManager.GRAVITY_EARTH, @@ -362,44 +388,39 @@ public void onSensorChanged(SensorEvent event) { } } + // Prevent android internal NullPointerException (https://github.com/libsdl-org/SDL/issues/13306) + @Override + public PointerIcon onResolvePointerIcon(MotionEvent event, int pointerIndex) { + try { + return super.onResolvePointerIcon(event, pointerIndex); + } catch (NullPointerException e) { + return null; + } + } + // Captured pointer events for API 26. + @Override public boolean onCapturedPointerEvent(MotionEvent event) { - int action = event.getActionMasked(); - - float x, y; - switch (action) { - case MotionEvent.ACTION_SCROLL: - x = event.getAxisValue(MotionEvent.AXIS_HSCROLL, 0); - y = event.getAxisValue(MotionEvent.AXIS_VSCROLL, 0); - SDLActivity.onNativeMouse(0, action, x, y, false); - return true; - - case MotionEvent.ACTION_HOVER_MOVE: - case MotionEvent.ACTION_MOVE: - x = event.getX(0); - y = event.getY(0); - SDLActivity.onNativeMouse(0, action, x, y, true); - return true; - - case MotionEvent.ACTION_BUTTON_PRESS: - case MotionEvent.ACTION_BUTTON_RELEASE: - - // Change our action value to what SDL's code expects. - if (action == MotionEvent.ACTION_BUTTON_PRESS) { - action = MotionEvent.ACTION_DOWN; - } else { /* MotionEvent.ACTION_BUTTON_RELEASE */ - action = MotionEvent.ACTION_UP; - } + return SDLActivity.getMotionListener().onGenericMotion(this, event); + } - x = event.getX(0); - y = event.getY(0); - int button = event.getButtonState(); + @Override + public boolean onScale(ScaleGestureDetector detector) { + float scale = detector.getScaleFactor(); + SDLActivity.onNativePinchUpdate(scale); + return true; + } - SDLActivity.onNativeMouse(button, action, x, y, true); - return true; - } + @Override + public boolean onScaleBegin(ScaleGestureDetector detector) { + SDLActivity.onNativePinchStart(); + return true; + } - return false; + @Override + public void onScaleEnd(ScaleGestureDetector detector) { + SDLActivity.onNativePinchEnd(); } + } diff --git a/Knossos.NET.Android/natives/arm64-v8a/libtouchcontrols.so b/Knossos.NET.Android/natives/arm64-v8a/libtouchcontrols.so index 8033be3a5bdb476aee52a28b8b0803ffe11af83d..73b07e79fe15b2f0b136a4a511a6de6d6cbff161 100644 GIT binary patch literal 376256 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

Wneb>Ge4EEz}L_NB9MDe!+ped(NG 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 z ptACzY-pT1_^`3z?Ln;dYQX@RGvoA7aFEu4T%-!S#dEv?Sb3BC%gs0Y}CQp-lc`|+7Y@U|G z$J4`Az4+(JntTX6i9Dad|LvRD1q$$iJCYGN_!Ryuzh+F7C*kwN_>t%NPR=lI+|oE- z-fis!^A2HzE+=L2=ANzc(31|@^_X})JVn$4y~e1Acb%F^YEnl*Wn=^ zevZJyI(U#VoKBhX@KCVj<@s^v;~xKvz9QxOukjp|`MU5rbe)fKM3I_wYuw{YxF1h>ag=M#)ih9*R4r(!ON)n^|d(srJ!E zTHz;^`pACS-ni2+&>B z7R~nv>ouC}Z(g3}TNce@g!e&{FV7`xJF<2<#d;~td3FwKOv9$lnsY`9>nv$wSu-wU zEhg(KxhMD#V=)JNH~LJ^EhOh1al!N`8k(m($ocUe=}_$%{4VKEfRAzma+5 zwDzS-<2^d-KGuh_r^(gwDf&nb_T@-gS@XR{U2+m!^^tLrHf6?^A?JO6-@8^hVA;+O z*z21dWF>2&C4@7OS!5oi$WQDgS?GUHGiS&y{THyQu=eiJ` zHu8QWtWB|H3RduNm9#f~pi$b0KF}y>q3MveqCFMu9a)yNX{+=LX;acmoA#GZ`b&TJ zrOncinQNHm5ox#n(nz1^_db1~zx#IE9@?a}?eo{mdiOxlZu7m!acsWQw!a~KnRj(I zP3lIC#$50A_J^NaG_Mk3Yq9!6_&GWL1U3A6v02mh%SC=yW6Pj^vfrRx_8CmW21B1P z_8agF{e{S!ev^QVdEYlnt{r?cyItOS)3z9VbKb{RK}{|?&C&Lg!@%j5jjW}p4@ zOv6Sq$;#sz!Xc6e^NfS>Ytv@u_n|#jbbp*dJJO;ZO?Z*_wl>YaulJ!jP_)^k;d_(@ z&+&w3G#bYpeQ1sq{dSm9&S%V%Qr`=N?`SlItNNkAUqjMb0;c7I7-*4riryzS%6{yE8Q zwBuH*O+>#a(b{qQl748O&M;^yESf69+j`sabL@eK6L?2~&4xXpjT6;z$F1`Hc+-by z8~%|kvIlXnl5gvB&JIAaaF;i?lS5{+{^ zc)t0+sm@9s2JKv)XUu)F|1=kwahBt)+ZH>kx^7f?4`Sn6e$Tqi53;{KVA=T64yjvD zTeb(;%O!K_ltYeNKj0bu3cNJVQF%YKY#zU+AO6wWHzvOAL$P^0gv~?t_eyzUANv3u z_!Mbc@mY~QURkr9RUgo{Sqq$1r)ayZOnBj$&`3X#dtKNIJzP&|IKOjhv3^xGo~d)$}nihwn%@GawUBM*P>%*WeXnL z(k?nqu3V3932?oQXSshC{&6=?G4!uo_N2+)v8ODV)PlV1=T8vZW?;rrV;^%ez8McqVvZGm zj%x_<=QxQBTCw}cy_3kRfa^JyeM@ZnrPy)eACmTu>wX{K5d7W^S@wzhhrLPf^%J*r z$m@GbgK>|)-A|m6C;P;HZ^h*d3vAA14!PID>;57CtbH#?osM>2dLAGCdg%{;XUVV+ zA9MF6{oJAtx3P`rE}+hTk&R80pKW8a_ac`v9_IH`Hg@+1p1fQgAKRO>H&n-$a+&WI z^^=x7j(p3y??>)A?_7G3XR#sgoB@H%L@h4K;=%4S_h01O)bKVk)VGXs(tGJWnYql} z*I4)-`dWM_ts!^OgJhgY*|J{n#~9xZH*9tVF>lY8`vp7p5+i}o?fLjbtQT6_2AG4LR`~H>;bLzYXS5^pcdhhNPFGA?i2V0ikOg{U={?gtX_qe=M?Nb*=+)-KU_jA7`LCc%-oQ?_~ zkM)zcF}~Qpg>A6sGv?fftu!*Gau`Q0#+t~Y&bn{c5xdP}GFN=S{3i3lROV2bD`dVb z_%-i7xhHe0;yMLhWW5*QnJ(u!dp^9B_fOnQ#xG3LwEvRy_=d^+7?5l7mANy8YdOC} z(#gEjD7qi%PLj?e*Q7g1x_0JXkwY@RW0FU~QS!idP3Bl7*WxpVebJTZdBo4V&971y zNh|p%;h(f8N!!SLY^0@)<4L=AXng$=hxGF}_WHT%Z-S0C&lFiMGOrKHHG6zUZ=?;y zKlRe#gfFyhaC`(^wxbW-fugC`7<5-#bk`CN)#|qIQiuIccbC`Z zvDMV8$5=E;gbt0yaZ#f&*SNj%7;MoDA;iz4SMG)9FHdt39{_191M~B;y zbR3;6-SGQnoh$w%6L~l88=4(_m-pj=fu5fCcn>Rn)Qdc`>t|!UN`ZUmB>M-NzV_ zF=_jC`55={jFEiD=hZTW%~ zEF6@02wr{%@BP*B9meZ<*7vRW9df1z%L>Lnb!f~Ul=x%l`lm^5`6DzcUd<6d<1N&i zvt*H(=}UHyb`UvG(I{eB$owzvoZG5%%;(JzyPg&Z4y-APZU-pmqnY}hZ&Gpkp zyeD{Jv(*lPFAZYcYE%@ZV z-)z0O@X=|cm$PBT&qVsi*Qt-lr0a%3iLbENxPZ2kIqDVq_0Cb_>+76X*4JF&Bwr_T zXk9Soc4h2i49p#rIC_ZcQE}>mv~${(&YnBTTk7dV&W3;F4)HJheBU1F)3WdQ!adGl z59b!0&5y+wXaGK;1343l^CPEwwtUQ9pB(o6;xlLL$Cv&sK1*KaWhqC_2k5~s=##H4 z#us`KzC+%yy^uTOIsczJ#ljal@0rORs=-5ln}UD+HlEkgC#TR4*EvSjCp!jr^WHFT z>PSz|Lyp1VA>F(~GR~Zg!&h%?%Xe4&PiI{H7}gN~`0&%!gJ-DV0P=ldpt==*?c>ci zs^R|6F3sw?&+~|sE3$Q6{nF#&%b(>KyAC}dFOISb(mC^&GQ@W=m2#a9M}2mx6CVrq zP+S-^r;BGrDg7*-b&JR}ZL%ZyDteYV2mB-`=RD~?owDC!p>iCRy@A^j)EPgr$>&Vq z0>&i9mjkKT=u)@FG>DB|+CIR%@*ZuR3h#dL$wv-{=rex&2RFuhGK&U!GG(uZ?3<8% zf1IUh?AMU}YIXR|kLJ9TS2&*~;KUD(=d8KEVzl9VbAtUnLNk;!SCYR~{;t&TxUKSC z>9UVfc=!c8Nchi$W?L?#ZqkMQ5Aj>fCT-ZINoP*~sJ=RRT__su+k^L{v z5}y?_rn`x=F~_U1^?SLN^Q4>EPa}J2{ISeWF$ zy)>pTmF(MjoP4o=Jinjxk>$#{J&zJEduc?cw8x}99?z}8$F#!Qqi{I1N8wY-ea)G4 z^sdzoqfPH-&&^i$J)E)nxp@Y7EVKh?$B47QV;l{)c_wm}lX(X4i5*fW@v$609~?vb z#p27PT4u2ZZXASvFMfJ{+N1r1C-Y;@3HLJ2KI5LqQT!ISaV}RW{eR=7?B8@Tmz*G7 zN0GFFd{1>u%a5IMhR^7ht@n+6+~pWw-^JKiNuB+i`N1cEyH`zobkF~C*X@yW4rTtk zW82urC7+&%d?XK{=j@<#$zw5j=;g?LNt4C>6TkKZJK#@v5Fb$)x7$Cu^jHe#D$Cin z$*kpHqtD5+L9TfoqeqA4U;X^=b8Buwj*FQa7loYzZq6s6y$>$z>;dxNT#u>*(R*3P z{1Ul{ec2-z9leoo1a%bK`v;<9&tT0XanqPX2zkz}hd-?EXtI9{@{ayK}JMJhSQ~dSvq_R89 z$JgYSPf*zxl4G+kByN>_Ji%nA>g7kps-QE$0Z&eNih-wCcp3mt1L0{+ORD3EEkU#6F7oNbMpq*#CQdw`x z`S5-E4E<;U?Ie2>eni@Ao@0#L1CmFoVqf{$#XS-)?eaDHqdE7R`+ki*B@6Liq+A#I zNZIVeI5R6yx5u3SOkdke%w6Y&59T7_X$#l%WrL?r;7Q&~82g0}tKPj;(!cTDGWgng z8NMW5_~ISkh|~AH61)Yzhk0-6Np#L^NMZk|^fmj>h`Wh6w;5;PC19_HZwC7`yaHUS z;g#Sf4X*;XY4}cXr-prC=k*3JMtQ5jZVj&mdo{cs?9*^HxK_iPz)c#y8{DSh`@o$V zt_3@1h06a1*sb9Qz+MeM4EAaG5pZoU-Zkvo;3f_40k>)R32>)|o50T5cKN%8JqdPe zxCQLh@DIU04L=92)$ohpCJny~ZqxA3z?~Xy13Tx0%6}E?*6w7otdHXuK~L?oDTMCI0Nj{ z@Jw*6hUb8rG<*ZNO~W^WJ2mVDJ8uY;e-qfP;U!?NhHnP@G`s>_tKpU4CJnCww`urJ zaHocSVCR=Y<*x?2HM|z=)$n?-Ps7#VS`BXkH);58aGQqj19xh;7VMlKD*qc`w}u}8 zdo}zp*r(w~z_l9wHn>T{d%$fPegfR7;U=(iL8$yE!EOz=fV~?2A=szk=fJfZei7WH z;g`W}8vYr$Q^Rdw=Z&HAUj@50d<5*(@UOr=4Zi`d)$p6(CJny@Zqx7|z?~ZI1Us`r z<-Z4ZYxpGCtKkp9J`H~auGR1-;3f^91Gj1TBDk{`9~g!mBN07Do`uHqhqZ2^Tf?lK z6TKQn-%a#s7@aqSxZCpKvqKhwlE4Nm}fYS;~SIzr`N19odT9qiR`2H2rdi{K^=zYK2E z@Xx@V8g2tS2ZqXj73|jV5wKUozXJO-{06vI!*7C{H2fC0O~ZcxcWSs3>>Ly-|2?o< z!zaOB4SxvsY4{^>t%g4VH);4BxJ|dZ^RQ^D)Tf^~SuZD+$eHtDPuGR1; zaFd3Uz-=0y0PfT<`$iI-aiQ|B0lPJv4)$u8edCEf4bKGEYIqK~Ny9gQ+cbP5xKqPk zuroeX{!L)FhL?c78on9q)9?y#t%g^En>4%%+@|3>!JQ^n(O*;oQ3?D_CE)m*<`&H? zDuJj3q7wMqO5krjM@94dueDE9eo^`TH4=#Sm%m0@ebYwe*H)2-7Lel-FYI>(2_7vp`S{R-DRId&rSE38StH8k`q zybBL!?N@krLKuBf(O_K1LcgN2LE*UEIVlvYR8d8E`9+&tY_|*jidTm7UtBmajGy9& z@`_8s^D8bJ7{*`mhFDi9ccqGJI5}MV6>kbJujDHcxWdU6mC&!G%846U=(ncC$rg>! zZ%s`&F5MgxR$f^|`;Zjxc`K z7Y+!M@A{JP`mJ9RF5mSv5%{hFVe+n65zbFVg_A9apjvMikc%JT5` ztE>#?zj8x3Kb1AH92Xk;Rc(w*2_dDbmxuFL9nl`u5&f&WJY0U&5$&@fBK?L9&P2Vu z4H4sML&W&0DPgz2_Nyty(=7UnN+2qMs05-Ch)N(Tfv5zc5{OD5DuJj3q7sNoAS!{V z1fmj%N+2qMs05-Ch)N(Tfv5zc5{OD5DuJj3q7sNoAS!{V1fmj%N+2qMs098$mVoVd zK5dOz2^$wi;ED*mFaqBafp534?PRyb!nTu|?JW4&rArl3vR&>VOO^+YnHP4tf~QOz zXT{sjf;|@f8Ou9vv=yJY)y&a$`r_MY#?N;8s^p+r`Poi}cDc5b3?DuP?5yC@oG&n{oY|nX~52nKd(``gDyiO3%KaIc8PhXnq@?+4YAQF}aNTuth`i1>$S%1hV_ld-;{rX<6bUTLv$j}#e|Wkgn&logs+z6~2x zM)8*Q8)~XmMu|Uvb#-BRNxr`rv}XOr469l4fyIS2g+iE7U14PaSy(DFqb=p;O@HAA zzmc%IBEPb*xVV%ZJG~{4q^KyrWOGqTWlerfp|7k&<>!|bZQh(;L6Oz)Yt=xQ@NFzD zE1p(bY~){9URtCwHuzx}Itr)|#!UA9;y(L138xV!Ya4qVG|#%Q!|z1UMy@0H-bEPw zF^k>~Cw&2Z6Y;W!vdg#ERd(2(Yi1xk%8Jb%ul9QDTila1j!kc`gX}QPTCmycIy;>m z%Hm1ZOg6UHO?DU{UVc)()IGBPE!^X*=U#eyU1x{i9Z3RycKJ5{=3S+3x8m&b?RBFa z+UrI;y}b^$aXlBplTB~0i|x=}7e|(F%WsKA@3k_t*Tr_IuZv}aqRqceKN5z7rvy5B?E(jOnKiM)clc<${)?>t+Y$7;zi#S1cE~yU zVZTWJzY;+osWOPC!?jO^iGRvR7&J2$&2q&=H-@Yr&a|M4ky|U~S z#+OaFA6Z@`y;M(ZKsLQ?2T7DKqwxD8dcHkm$lj(;vC2=e=-Vy%$@rC@UA~sp(mpM zN3f%=;)dMorJrdQXw!cY|9KJRPoHJdPk-JlztR?z#eW1;lejPCPq*Ujz@}dt!LSYO Ya4;7(?>4Q3dtNZh=NnXEzX+)Q6LLKOwg3PC literal 194080 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 diff --git a/Knossos.NET.Android/natives/armeabi-v7a/libtouchcontrols.so b/Knossos.NET.Android/natives/armeabi-v7a/libtouchcontrols.so index ff97a3edfbc11601e13af49537a8e94f34adbea1..8a9520cbea3a5db217b352044aacf610f7ca68cb 100644 GIT binary patch literal 230028 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�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 literal 118836 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 literal 168840 zcmeFae_WJR`u~6Kk!(^_{7vQ7WNKJe{07Ym6%5mql#qOzj0 zmMtqPYu&P1A-RE4_ zxz2U2bDis)`=0xr`|^w#Qw_sVfln{hO9gU?6jtBpGD(TbqYhIs>IikX>P?Bz0?9)K zNfDGu3e@M&{A^t5Qj!jlT$DvO%hpm(YC2S@tiH;W8=x1hajBvWR%)QyS}IGsLKlrZ zwJznUx6&^1l7uep&;F;sAe{VwZduUVUQsHL<_}UzQb7N+p(Cc#$84Wc;mf9zfwY;t zq(FT)$16!@u~U1FaE?OB&Q@NB&GgR0ixd!QZLdOGtW`Cyffj_ z6;ZdwKX>*sf3BFi5PHQzF@;`Ls50$~zAE6)a$d7g8 z%N+Sj9QhX<`HyV*fyn=_EidgId6;e-ko?>}q4_%IRp2A^t&xG8#lOimph9nPw&5<8)eklDIM?Te&pW(=R9r-Fpezhb2J4gOGNB%8GzSWWc$&v3n zKUDuhNB&E1kS_D(8(Uud{|86DS1yJ6BlN>^137Cx40hyCbmWs9`H7Bvh9iHLBcJWa zFLLB-9QkV;`8AIGI!C@aMyc}q4CPZwja2>B>-fvb2`=?}@`K2qhCN~vT`EK8N3nkG zjWyu4=)(sqwXv_uT>piC_+04GE+rcQ$-gskYjSM0NheX5VTm-VP7 z(xpae`bXqFXBh0nEPXDP^(fy^B|3k?aHVoja&@$y$pW2yyGunvAIR!`<}pfbyWUXO zX#PWwNB;eWlCUEEduBWbZyM@FoqzT$r5Xmi)P>|l-|1%)Lr1#QWSuX?e`@IeNjm@X zP}-+Iu{wVT8=vxOLtUlwi;u=0*BR)%)O?_dvYxHUT>%ypi4fU`J6k*rRcWFzx;ww zd2ZVK_mjc)3W?XTD}&>io5dP=YtWu4=fHcsOC@W0KasCP|A71_u}@Y~&^}|Z$F^mL zx=Hg7Phvb@GSsJ9zlUeTKPKo;Ui3+0{AAxI@E66Vy_zPHA&O=bFlF*kb|ns~mX?HNPvG_D^;xackk9HvxHX z8|p*yBL8^o_uP|8VHR_~y+_9z=~W`|p4I#h;)okxF_cUrp?}Z8M&gIeZ_)o5;z9G$;CwtG z5r25mP|Gxb0r9Pl`E-lszhENzY&R6s)~r9BKvGv|=`ZpxJr;Sl7%~OT_C6njyt@tc zjh5%fe`3-1I-Q?~{h~$$=f~IQB9C}Tv!?vR@zcHd(@34KVthR48<;Px)3E2|hB{f> zvxNGw!(EDI%=%X!j=Wfx8mIG*OhTVlL*;4y=cs>Wyh}Z*>Hj(#e;DObSL^&A7|#;h zeEU1`wT}6ps_D1lPc`@x)y(!jro9oi`B%aC+t-6r6Uc8i)aCGty#^7eb{!e)|J+$h zZDPIz=64+v$38xO0%^^YhPnX#rG5+g)!6*26}fe+Hz#O)s*o3TbTIz6pF%u%&rpZz z`gg$>H7?knOM7F_>4y4J>-RAJRDPGCN_Boa9j|%AP&0Ktfj|(|i}BL-ypH~qvpxjk z-D*ewpCvx;ol5-C^?!^1mj7g^dvyJo$SaQs%A1e8G@Cqwc(c(KKNp>jeLgajU)OI! zUX*fm$a{zUMk6Tizr^b()~g3-U;O`yIp{;YSfum2i5Izy$E7;|9{StYmz(kDjq40` zh1UPL7~8iLG9FjcUh{rKJ*M@!7suFptjk{cSDdpT_tT#!UW` zWxm_i%iWXF=WF&0THj}}NA6gcc`Zlu-6RbYTm$2obSnJp7bGw3&7^+p7p$+keiHqU zZ6iMD{Alz^wE5?kOzd3)U5c=4>T@{bxyv@57owkie&2!ontvPWAP7Jp8_ezA;iV7+;giM;Ium${yZ{Kt_OyEoXMgsJq$ zww_LA;%O zs-F7NelziQ+tA?rti*n~w((hcBJKY^7++@3XMaOHi=@7+->+l8O}6;*jF_f z3KuZ>bJO7eyP;UpOnu&E{*>F|=RM5dJ;djLJyHiNRX|?cPV6&`@y=y^9Zp{Cy@Uh% zd>xCtnxkCi^+2JwBWT+qLnXj3`tCfF`Bh`6`*i(7@XrPY6Sp(veZWR-Z-Zg3kHY^l z^MBXNh8m{z_lx0)CxQ6Cfq0)wybtvM2n5yq$54+VSK9v<17SZun06HPZS%bbf6e-r zp>S!Fe=+sTe?T9dugpOn;~DVxze%3{i#_iE*J_U;ejLX5#4>mHjG!O_4yO_tGgt)-^{^(?dJ!-#UF;yUpM^X&ym=#4*Lbxk7rqra-fgU^dB+w zwrz$wR`)MO^hvVn%lKz79t!_B9*}$z@n*=Bo8%+E5^TiRwk8SKX z*mjxYmC1P6*RRq;8P8exr>1|7f7#D3Cd@^i?R>&Z{j}s@e@38BJNCk?rant)KbHO; zOJ4N#u^yMRzmxSq@>izfkAGypqT5?>D($~-sIN8s48}K?{b9gf3Csuk`QKa*{jtUC z0obpZ^XoD#ujMojb{YzoGTVD1jd=VILtU%$tr_q?9*pf=C+W{WCSw0T1?@kC`cVX{-)MOs5?^EKy!2Q4S4_OgwVe+4=eeP)NWgDNjWPJY|TyHO!13&x4L@nQ~!r#V%q4>iT!Nyk3|1ns}1!s zY+|1UW9jdDL)GehpWeuu7Cc{TXMe4RxD->slz%<;+lBoW>HHhfC|>5)*wAO{Kqs$V-3s z;CS}yIVUr4S;UJQp-X@EMWEk;pgxls&moLwp#QPw!QU_FU*BAy)JF_XAYRUe-@cx{ z$9#-py=56Q^=V)}DCPrhVCHWlUf8b(97BBByTedyF--dJvA@UWPbv6={d_cKKJ__Y zpjngu=%I{1_6zv8KL-2V8{Dr};6L{Bn=kr7UuYd)()MeTpkK;I_P!6}`9Ho!?C*xhi`i+_<|NYc&X8tiP%zPgf z+BB{&Eg>)dJd6Hq<9cym{;Z>Zl&yXa1pE13-8}SVzt6Ck@;=7ie(Xh0#eePVWde-3w)NmN1f|`>^-IlvJ?qQ1hYT}biGKGmznh;i6d};mcRBX9?;oSk z$A11%jQ`};Gaj11kHl}=`g9)pW}&al2iYI>Pow?61*){A zq<_ToJ2d^A9Qwoj8K(35`XE0yI3IiASoZ6$?;_7WpYCRSJ@{`6^+n%Q9Ahu%PxtEl z;W$?AUxWLV-jlG$KZ$qPPxLz-$H^jI%lwyoK6!imewBE!{np_47f>%PF1Q~gl&fvF z{FE{DcU|!OU>NeEZ1SHVUf9n^Joux1eqP6Vw3qdWVKw`6B;&b?`2?8rX*mb>^R;jB z_g!57x%hHC}Y&TXY_>%J0X*s(PtsDU*+tk8tE& z9r+@7E)quKsl>XdQO9IO$hHA7BO4}pl-n~rsyQl3c{~thH;_g~$$|Nq91+!PV?>Qx zGEweyb!P6BHHdQ8)VMrmS=wr<7`amDs=1$m0o-XABPJr<{gK&OWUpkQNEe2cB#+x&0}QNna~K_E zM0gAY+del%dn6a(K^ytdr6Ex(qxdqtmq*NuK+(h^4Ur{W@@dKw5zAtVpG-Q8f;1_2 zMeV5JIAWzMYP3;9&kd`d&^%~I_Lwvd-5v_kW#FR7%2^ey^iRYn5fN@rRE;uduFfNR z4#BFu4O5tEyKa{DBGy2zp#ptQQv)Z-0jA`xhf!3M9E#P} zG^-(aGoL6GF^RpB>Qg61=tHlRJJS?ol51)*T!+!?}l*c?)Y=lrn zK89g-*@#NJZKTH}d$6oq&2YQY7=V$&!#qs`#Lk$+iUodf8EH9bCFwfSO{CjMcaqkT z8c6q%8c7e69wq&r#Fj}tO?r;>0_i1^d|oECkhYTEBE3WU6KMzOL(*SKACdk^`keF? z>08o|Bur#}FWDFDPZ~lRPCA-2k~D@S`+QD!%af*stjIm{zrQOxa-l1C|NY-bjrgkh^POA2nP2eA zg}b-^<<%`)o;m95yWhP1kNeM>w`u)dFFv}W;ohP9&v<@M`j3lxXI%AI_0oB7?z`-( z*S%0)_w>ROUZ|=+Eg|Z&eP`Vr`*BqC-kiOs zx6K{#((7N2diUbHzmJ;taQpTnU%CB{i*C9n#}&2kw9kt^yYc0dR_jK<&m*%{7 z<&U0*|7ln^{-*o0-4h=k9kcnv6PvdzJZ|i=A@5cs?R@0xFAwkaKQo6NJ@V^)3kTiY zIN*tbm)<_>x6__DDQ?G{eXkuKe_$z z7cc)IeO203w=6$w#9!Vl@9nAIRrK$B-|>I){^UQ5asLo|>EoZ*4{|>-Y+3#fy&rkx zgO!UOJE701AFS_lXwjy<7vH#Q%G)2VKW6VyXAK&3e@f}jo6lW!!-q3pKGt9Q%_WOV zpROMKWx^pFzdhsrtkZJ_)>nW2{It5y*1x)!GIi&DXUFwlmS6wSr=@|i)U$7hNP8-B zdfmsTZ!X?AefH4P~^_Wg{=^>?mSW3Id_@$f$;oOAh|b^T8Lp#Le$&Kxu4fe*Hv{PKTK>-*<-pS$h5 zi`{qql<@7+no+(vf8LU`?{DdI-W<2&*h$x~I&1Y8g^T+9^##`x&n(Tj_>|$Zhg|Z) zZ(beo{_J7z-FDLNb4t}0=k>qz{oP-_e2(|@OK&@O@1b*csoOtztLVbFjAKUMzp>`l zGrVIjJO1%O??2TrviX_v>0jplaOdIQN3C9V>xsP*581e3UB5RYdtH~d9$h2IuX$wB z^=tdbJbuAqSMJusF3*`*GwZ&BTXtL~^hn>}oFN~*y5;UaT$uC8Id2*Li!S-*+bixI zbi>m%{l=^)?0b!|xc3X|CS1_}Fa1w`p!bSDJayrl`=(w#t?II4$M$*f+wEC(Q(L2A zt}Z|M^}X9?WR3jvsCTBd9$)c~sOV=)DxN-mZNE1wqUOB+b#wC{ZvN@G+gQ)1-`Z;^tpJ(2G%#U?X?{Y1flIyR;UYVeOPZ@7E!R|RjM;n^3Pw|V*Wa>z|NF5&#tj^K`6un^b4Qf^ zLG`-kuDz3IR_z$|^uOb>K6|Zv(6ao!`PtL!51)VdJO90_{P^Ge;6 z<39N9^ij9WYPf3DOV@sJ>q%4g7mT><+sKB0AOHM<)R#V5J@CaZ%LYDjgX^`wUS0j| ztjF$|bIWUIul}Mb`@!4(w(6ouO_!CmRR6Ut^81Xx-M%Qw``EKh5BxN}A+6zvA8r`- z`R@6fZ+`26L+;%1*ypYVgZ7_r^rY*zd|KaL@ciL_UwhWt!hP>PiJg1T`z_D4yKa10dA<47dEUa}(!7%5i+wtq=l4|?`^i-J78Y0f zeHGq3e_>h0Vs&QT(mZc|*%EJMQSs8e(#rBmZ((KGvWmR&a+u1N`YKBDmV0OB`HPqO zCRY>}EcAIReg14;wSQV^d6hq-G;cwPuRzU7pW&V3&#MShbWvG(2k$RwtE_Z#mET`h zisqI6y!^%9{G!F)!o1>=Um~ocs`RY9{ED()Qa3-ZG~ZWZRTb#f6*R)Yq{)-iqrqvSP5{B5+CabElC}XLw)E|_%xU{UY zvaGVy=l9wU586>W{LNO`b{JMphZFpg%AE(@)|~AyY|G(C-B!zX7*>F7*nf%gy1IQt zZ7tdkyKdYZQkkB37G8!6`a3*rZgFWr*|Mn>WlN@|2fS~(Z~20N)V1*>&dn?KXPBiO&Bdh<0Lzw?SNJL`eFfg~yyA*! zS@ud9Gv|26=arO{<>&d!DyGee_hw{dOo^YITI!1%AIoQ2dg+`b3TI_|XJyBFX|r^h zqm3l5*Xk8fsiG?1KSk>w)FQU3wD_VbpSRp!F^vY}oHay?xWocqVO~{<-&^1-@%eqz z=EQZ68-wAkB417S_i_HA8Qp=L8OI}}T!L+RD49uKV?6EZ4%P52n zKzw|sLH1(8C61AvQ5>5wV?k`E;ms};AMlxLm$$fZT286IvLdCp(p#Cggi%QJR^dbi zzWlu9)3Rkml9uL`RQWQBGZOvF%Y7LlmOjr(ks%3oI4-%vtGxaSJhM_p-sWl{mOw)4 zlDukfC5yDp_h`J6c9j)ziC%9}UZposVcK-jE38_JW=}_kUiKHT+LwB9^!y@Jo#P+R z%D;r2f!~K4nfnB-vd`umpyHcKQ6w+SGv$&WOXkJEh2%zj#u`!pe;J z1g{sL5}85&E@r!gQ{mA#fYYH;y|deU_qthg>YzmgJ z$Q;;Qopqc2zo*tlngH8DU(q1OPt8+avCl*duJ&aggIm%;2Dem)S;H=?zhYsVjStI$!Y;v#uHG=q zNx5ER^VvYKYq3w&xbYoJu&m@I-hw=To?~+nAJ@TCS?~_KinlK?UG|>EvT~uJ6GXVn=)jXw0=M;H)=(PV|a`W_fN9^b{qs<*e zdD*f;RZ>w_Ra#KUc4uLAwU^5zm1T0R#lPIUG!|vE&z;FOfNfEA-h$$#aT0`oWeYv`T81 zlq_AswHj|habfqkEuH=}Dge0deigK{);epN*UC;8qmbZ2+W z6N&I$VZ+SK7C9YyGSv(7v6gJJoOZ!RmEp`H`>~)2tbsARP~kJTnc=k5UF^2~U?`7E zG|!U6KE8!z70cO>%2^c(2G8FdEDV=zpXe0O*?Sz-(_=07n%-pt@d<&`Dy>^tX+g1U z$1{qh>8>lr#riI);?f6(_n^eyB9iIgE4t8$X!R^5F!eerbt$dOt_3chgli?>cwuS!q6NOy zS-rT#z;v^E6$pqEqxg(E|jb%WYDQY$wAYEt)957D9;}-Nq~c$O=VGD1s-6Ayv`ap89M2}K1oY3 zyJ3mx#N`kZ$C8*=P@robKq=X7S8$~yuafKdrn1fo;dJP}iLf<@?xK|R{lBS{r}v0fmav#2L@#&_k!tjFY86F({RBET;*XXpS~j<2WMFB2Hhjae<>inD0b>P%&95HW1l!2=py%19U5|`wGFP4Wvdf$qJurz;52ss7 z*zN&g$#RpCj;1{#&gv=wCdq4s=U+R@iTP#a%QLciCfEl8AY1vK3W15{YSbgkXJF>` zjMv$wTTg_6xcFeG@4?B&eqQewh@$f80WTb1&OKA!1>CFFGXYi45o=g}tv~DSOV2or zjx0UmFiF0Oyh_;&_P_`P!b%UuffTu;h)X*XMtj1aJLCm-zrS{9Lq+z08GCH$4X!{v zVLB`1b!@E^usU`|D>^V1&Lh6kKkJKnEU%(lDex!wjgqVmlH=U{U0u(z1+ z(7A_;OBg+}t7O-~ZBiLM5^4hK$|@Y#Cv;`jWoDo3muZ%n-&5Oe>Y^aSX4b6f&U*zz zx8nyX@jxfD+-%j&3DiM0(s44otoyiokm3S62r)soar_|V1@=qb#j=AG6*@pYATXdC zK6HSS*@M(D?8$7;*ztfTvj?kU*pu0w(XnGvE;2p)SI)4`af zz*YJnyVo%QfdJO!!g`Pb<2s!n_l&35rgD$?O7H}^M*=tM9mEOpLE135`1gozfv(yX zzF#}a`UJUWhBgpX59S29gLx^vvJ}PG)o?^h~j+X?hsZv*?FFekH|>Gec(NDiFL z_K2{+IugzTw%JyA8EQOTAE(s&dr*^7MZ$&{dv$~mh2i&}1b;u(?B zY35T2!3Wdqj}ck70{v_eWmWR+p0^^ebfM32H&J4xzpR*BbEKc49XQyoXDu@CuoWOp9;iRKU1}^olRcoEA>@yGi~7c9mke1E=m6uLMT1B>x|zoK||{qo0KK|SVUf6 zZ)sz+Jq8oXV>7+|hZnelB^yy&wO_T#U}Qq?_O`d>oH%w`7(F_Ffp~xl4!3Y{>nDvI z&pG|t-UgSBxcGx>@POUwLeXw|7x=!Ui!ly9QloeJp{iODRqm)REt4CyEmx~hm8Cpg zSL!cRc?-%aM_SDF@9@k=Y-ynLSEsvx4;%Jf4TmYR;ckPo0BlhNsfmX$)E4Y1qS z^d(NOR)mykR6Lx!eXH|(s*uQ^leX3WC$xqI#|+~R*vy)GI&fd9q?9_e#VH1p>F zq6!n1l&fX=mGVTuGI=C`QWGgQcN=l>_VZ`^&FvusaaK-ZEU400(vjB(g%-U)a~DX< zQp*HtS=o-fJ}9)x1KiYJre}jhIQ%YD6H9F_#qd~TvHTLq!YX;L)UJ9bB7HR_g(KL) zN@_>Y=Vu2hisjeKI!~u?O!|qiU{DCd6c@{V$i;=ry=A4&>lAU_vGXG=&NVCyd*U+r zwWHbQ6&?NSLh?9~Jb9nQqes4K>v56pJ1fsM7nFJBsSlpcI

5C*x6NrDbgYk3Kl~s+T4(h*j6KXK7k6-$NGh!I%ahijTY}(V#%p@uK^QTzeHAyo%VyaS{?M-Q zRgBe^DXX({g_1ix-4{yka`f*Xde@%^(bF=rpj= zI@RmkyG|_Dg4@Y1y4cy6RUGcwV2hIK=SMlhJQ{3KyLfCkse&n6Q7J!4V6Og5(ab2)xQXdyqp)G@4P*@B9) zyn=il3=J)oEmdfVIk!WK*&%fN234RPGgO%Yx}&yLMBJ9J?I^W=<{`8&&+o4=pY;t> z%(hg1Rw9(r6|?^JK?k$5w9;2n*ui3&B*0;vTic%|4>*Bb|FM_buKviA@OF|p6F60~ zW={wyczGNE`)vpI@{nsG!8YQ| zn+rNM9a0=@IZ=LZxv+$X&7HbBDZx5P{AgGgl{%5ETGo{jyHU*j6Jrr#5h;|P&Iwx> zGHRN!lifNb*p1dvXt$UY%Jmw%U8Kx(5Ss}Dm7RQ|XXsA~1SC2P7Z4hzSY(7L7PXv) z3`hxAE@Hxzv$G7fWMFzw-pOz_TFB4k+RN?cvz6N|V=H!a%tmqQYLUE^Q&r)z3ZA!7 zOAGZiwL*TFKVL1)s|;LmE-k1i<2st0{+cU^SAXB3%6R^kU*?tREWm{v0tW{jk_tL~>ypyIaJk0+!>Q!M4aP?TuUmYOl{=7!1D5>CXLM+ zw`kn1ai_-J8e28)(b%SO2=BcVc_TE&YE0Fbr7>IMe2uvp*J@m+u|eZTjXO2&(zsuv z((f6cWKm$8YQ6-s4F{!-ovCV8+(_`zC@jT&R5KIQeoca>5FQhqIV6TFdk zqe*!k@1qlWyl^d6_`xR0^TN9v$%Dj!B6MEL7A55kyz5Nl-OKx`rF=d5 zXsi}GFKJ5^I`4L_6WqjW&!wD~wq=RDKl2`4DgS_1*a?27RJPFDl*$$SUa3~W|6&K> z2b)Fye%=KqlgigLj;|7guMNYb*)<~Y0 z#d#z@)liv&yg05&Fw0Pz1#@^IoAAvuRHC#4Zk7D`(4`$-EVoNzw3L&t*XWk|Ufxb9 zm}{s=DbF|5M#+O&(l2m@#&sH_1%2=f-$L|~Jnycr7F=SeHYqRVO^zb3l6O=K@*+Er z=y#=|S|xuSbjkA$^z~BjKI|s-9zdRygC&x0WSk`bdqd?2-{Xdg5PXV$OF6hh_?nO> z<-F`JLdwCd((h*twO3<|v`c=4#zu{4!vBJywn)C&Q0qh@>q?Vh5t1} zWlMc9M#|qcRI22`XhB}Gw^qt|(cWI+|BImtMBayn+9UX}p*9HqgLhL4eu94pA1~cY zlRUUmV~h0Td)_%Nbg)|EdX4j?z1}XBDE$3hDqV1ZOU;mS-eq169*Wugg1p18TCkT= zD+D8W_oCn-ykk+YH}OJ{H#)8nWC5-dJWQ#zg1i&5Ua&9kUlfewJ%ob&h&zJ3I<--7 z0PiCdD4!|D-dC}xJ!J~+ug1p2r zQIMBHrV8@%#fgGj7;iyd-k2_U9P>bs7cb5bJeqhY=pp_IzQTME9E0Bo9z#4797!A( zJdQXk7(+Z397`M(Jf86v9LM+z@}Be+f+sWng1q%}r66&lR`4a_kl=a5LBabOf5C;s z5y1x-f59?CH3+i)tQSl)RHNYQjK5$U<1ZM`_zUt9$|gZx;<;Jy2SYUr5~sHa-p%+6 zu3-EH|4sZ9+-j)pg3mDig1mHdr{DzQoZv}}zhE}wFK95&1fOO61tVN)pCId4n_vRt zFPO;q-vuTy{({Mjzu=L?IYC|$8f7BmFZf5sUoeGrPcT&}kKlO5UvPp_F@mQs{({7V zSiy;`?}DeY?g^g8x+uu|>C*($SjPk>v5pH)X8jbL!uSiOGyZ}ZtiOU&d4H(j8H~SR zCgU$Sjqw*elkpd1T`U)T(NKQDR>oiOAB?}?6^y^&Ys4GDZy0~U!7jB%a0KHocp33b z@L$Y-!7CYm!E+gZ!NJ6H!HtZ+;2(%@g1=#15uDEW3(jEv3!cUJ3(jQz3sx}xg0mQZ z!5i3z2>z4t7tCV*3!csR3(i(*r{EmszhE}+Fcmz9eSzS)%zweTjK5$G^Iz~h#$RwA z<1ctVo!1xPZ$ov{({Afzu+RqUvM$wFId9(3oc>&1xp!!!7|2Q zu$=zzNxkK#_W7h5(t1)0X%8vl_Me}k*8bF! zuhW2xEu>ab5(_>QO{rI(f6Zy%) zF0Si4Oaj+>Hgnta5$~$y7lM zMut`}mWPo$agSW~-R79$vb3ob-A)}=?wS?Gzp&gCR!cV6dRzuJ4P9!;1a-|YnY65_e~?n>>sNDO$O zr#dy6{#ozClv!}jjEu=~@u~LC+SyO?74cK>ydliXwJcAb-!rxNIf@c9^R90HD+_R9e9DQ*?A5~0HqE?vqWTy#GR#<4=>f-0;_0X=HiQp?JR#Ve6OqZ2gi1avg(x_u<1U<%bcEyC@ z{S@MTRVBU!*w5puHs8L7_t~}V+LYP~#FDCjS^I>E2xce<46)2Mo8t#&lgvDG#+hGt zFq2V>tDq=N43lYRt7A?UxOr?*qLVpYPYU_kEpQXAU3H$`v^MZ73m z?kUXRO62l6^8VGJdH7n-X&wUBtSoPNu`l0e&eGx~yun9qbtInn@aLl{|#KfvnUg5c{w37v;pL29DvRs63j#$*>N3hJu z@8MMk9?2hW^eg4%n73m(&Wb!UG;C^VXVpL`eHO*lEo~ z^hx&k5p;LG%p+m~&ewc-)!4sWS?|*9)*P1Wg%K9RI#o5+BfAA`ZhlGEhlysnUSP_zB-t5M zhrwha7K1U>^!?bD2j-dU8Mo3GQqcYblbr* zW}d_AAQxKiVR1~fFx~Fh>vcC0f$sm(`g*I$EuhvmqB}Xh%5wRljkmPQbmCt5km+Q( zjfZ&6_Kv99u_eIl?2HMv7n|$N1W!SkXL(r_EA~>BvyN$gqAW-y=G-clcxm0+?papE zS9%T+G$Oyd%O<6iDafuO5Gqc0>;k(T4*5EpUu8wrZnhV)6P=bG*o4Xk14j$9wojPQ z#XjG5d-sG1)>n+Od1AX|od<+$^@6v3NV|lY3gTHAyD_P-#C!`X&X9k?3A~w0`eq%W zPYenqkA$T!)-IK-Jt<8LPA1fLQ+CNeM}bNl8h`NhwLGN#m1aljD-(lM|8?larE@lT(sYlgFpTro^ShrzE5# zrX-~#r=+B$ri@RGO^r*9PfbWoOifBnPEAQoO&vcT701*3ctnq<+IWhjzk!eRTRzfv z`AGleBQ}ta*g-yG3;CG#kOQ%ae6Wj&yZdIl(i#FPW=0P@Tb-E2`kZC!X5HRrA(sBaVG-wcT?%J@{mpA9egy z?d`isr><;ozX_DQ-K~PVM{dTmIZT)b1MFmZX|KJi-Jj$R5a&C-LcQF+mf5AsTQBt; z)B0^XHdVvDRVG6jhVw=gMM22zJfe^D87W~3xfR7Mu-}7Xim~6SLk-6*Ig~i=Ly=0( z8&FV@5v=@ud;5G_x>X;q0&{HTcAoz~9AAcR-)(Gf@BN4N_M=JrIgSE{lBB#Zcm&BH zttQ<;dYp74={`~;Ny_gbJxW?j`s%6n_9;&zhvXu~l2S-gJ{CNUbQozTsidjB-A`IU z`V09r;9Am3QWGhe^gGf6q;;f?q$f#_kk0v^_Vx|WqWAOd?W138Z%+lwUZ5VwUy?p; zZf~z3{e5$L`}dUJ4gEomPoZoM>D-sw+Y?`EZ+{CJA3|#;fAe$g?O7aOgzW#V^hb0! z4gHq9h8{Y-2VO%upHxMiL{cm_}%vQiQr(;W27s|4~G9Da2@G$%5DVvk=pKq4*we@?qDwR8hZsUFtRCF@u|#{^P0=hW5J# z8t%~pyhb8l2I^YW8K}5dft0)6rS5dCwg@Kg#Gy-!vro439_AbLsG*iEv)a3>pAj*3 zK&H7!Y59kpHRxKy@bdkMmeX!TD!%(nh%8j6^POC~)EOChdazFC{2}>~wd_EGZNv0oZIs51t9VW{64bsaY9CmZG&18NO*J_=Ye1}na6oHLjkHwp)E_eoVi_HcDA z^{zDrH@MU~W59QYdc=}M8~qgD$4(mnYfgupNX2*I@xy&;n&^Dj;S9LtSpD8~8Jmnp z5T^Bzv03D<2-ky6~cClZzs+oS(`wGL&!0QsTzfM~X zQ)?lwHRAtjsMihmJBE74I7auiJK9Kf8})88BDcEKF2nu2OSPKEPq^IAF*96@h}qsq z#l1bG0j(~z*XaAcOa0e8e%;k~yGw0%jqBjk^Xf}xhS7JYOVzjraQwEb?*}gRfsN0S z7x|h??Ka#^F15#y+1Vgm-=gmJ;t0j>^qk#gLfld=TbizegElF z*Sh3*hpX>DTqzW*w{i9sZt*aNW6$ecGqrF1T6(17{*2SzXQ(pD(>ZUeKh%gE?)DnTy5|}hgS*BgH+<&Wnumjd=GQW744W9pzzUk7YvLiNHGz_m_roFH5J|Y(#IDndbh) zFg`M(L)tsqU24p67Y5}XZbS`tR~a$xCB}HS&zLi)Do8tkJ!DNhQK=Ini`95p6D806 z7z-mSRVDY0nKowyJ$3L6+#Jbpip|@N{$^~SaFwC1Vl4@jEmvxJB=LTgt&Dq6=1#cD zP&ajyMJeugBe|b9)bj?H1Ot%y8Fon!f$+vA?9V%R^l-!G#AF^gE`;|u%3Ht)(ain0=9v>!5HqjiQxXh zOmGxf4W@%Tz#`Diy*RaCBe(%<1Gj=XW!!57)`COuj218vYy-2w7`_hogE`<@uom0| z?f|z-{vz}SQ!AA645J)O2cs*wY6RAUwNef?f|-8qp#q!0O|z-D6dL(zunlZkfgCPU zwSs$~x3cevo&(S2=ta4^2KnS`!EEwvUtlF!8))B^rMfPdmA^B&jGgy9o#E)Fyc4# z3mgTufvI5i&D=W%?f_SUskhJun7NkvU?aE>Yy*dIA8YEZ=mEBZ^TEv97%#9MYyexp zO<)_i4t+9jr%dSJ9-)JgN7EkY0b}a%2e1V!0^7h^(0vE>!Ax*7SPO1JUd)}08~Gw| zKUfX!rF;h%<)Pnqp&wWeW`ixDA9Sz7U%^yx6IcXp2kXIoU?b>0hW5d6p!;t8;T+_H zY2=&0bn-FxU@!93U^)5v-(olNE#P`Ex`AUb2W$oFK{u;pD>x2x{|$rtHD-q4d`Cac!1I1CNKxw4mN^q zU<(*IihAHEF#3Mvftg?dSPQNMTfp_;4zLMyKfp1V3buhoVDxC@HqtM!4a@~IAHpxd zdawc90XBoJ;C8SLYz3a0gfbx*w%qU?#X8tOmD$jo@xD<}r9;CX?xG-CqhfNQ{da07B{o6rZWeui~$F8V)9 zzrdX5@IS%L@PYNu!w06mKpdfd5x7m{fcwB5AlnO-^CI)@1nA%>upZ0=Tfh>q6|5C{ zGvg%m|G|&JCUC#dw_uNP$@ z>Vef@1K0*`mGU>x7tDDR`<#ScU^ckpZR`rRf@?wdJJ_H86upao3jICe6qvc4_D)7W zFdeM^6Z0Kx1?wgMK7J!~uocYwGxmrDcd)+ztN(&bu)B|^byMzzi2gd9|zj*k-bg=1f=m*C9o%X;TV6)&q=nojZ z8~qZH2TlYtKcOwK39JKSKE=Pl`p;-X%E5?4>V1KIz&5Z5Y}|ujHq*8ZD%VC!D|42=GY@dcZ}5y_0l*YpR>{D%I3E#P{v`aiS- z)`Gji)Niq03iZG`?AG=jW#o6XVLveQd+Z0cfK6c257Yx={!6`7+T9O7m;=rSTfvo} z`zQ1RYr!30Q#R09(M_V5*yEnNFenFrF0wYr*+oQ6KKj2X}xQg&xVXPg35G zXPzcf4#tA5{ox1QJcCjV#(;a#s}>w`9vH zA8d){nI$mu2=4tCA6TZ33H)rC(s`XzHU+ z<{0b*<{Zbf8DQ;L?xjB!`tj%mwu0qg<2ath0;74RqXn!znfAccctd$kqkaO<#(>p{ z^b>4JrhoIvry>W8=9v&b*mMg0ll-alPw1!7zYEawbjqn0okl;&SA#iH4z^IcwJ3zM=KAtt)PkB8UOTGn^^HI+9RSx-7um&sw zXHZ@XHj-}xw}bVw>3=SHFcvJDW2jvCs=@i>TfthvZ03Q`&*9k}$%8}ku6U+qt z)GGqlfT=utu~FIs3xtnnly;EM1lz!BaKse)1FnUhIuE}EcYv*6_4(Lw0rlqdtQFV- zPJ}=D0_;M*4a_B9dm-&fxfgqasbC}YMsOSXR&YD{oLuG^`9@IXqvrzjPiGv#iC`NT zE9LpfCEqAWKDvPULOusvFZ|$EFxrPauo@ha0Y8`u?f`Q@u6n3yFb1p#bHFCB7Tf{u z0QZCLh0K?!=nbZWMPLzF57vS$U>$m-7V)f((7_g=gRMdbBhR3p;3%*SOaA7jW)c37iN2r*ECM&tem%GoYylG~k6w&?;R7QIxMQM( zaxi5H;|;cgbzo{K{s&(zxE^c*Tfi1@Cm3DEcud1Dz)@fhmVYlb7O-|H^}tqe$aLt-s0S8-*g9zeilT|6`OslEKT?KjDu=Q| ztRhne?y9mW^GKOZ&OGEu8!Jgdk9E)&Y5ID~Mb~i-dZDIoq1@k1{oT-4LZ4!M9s|8d=u`SfxeEH5PZ_2NQFBiUm{?g_;%6M2(MM_;hB5xyQMU;Il1@<=o zjy!AXnDTbO7h9@SU*Y2;^7c?Rjxu{23cIFK*3aa!_=Zrn*2X8cjG?T7vg3r$)~>7t zLeGT05&CF5-L_T~L2rhR3g$=jSwY!m%7*H)Xt0j5BAmoICq2+MKwANAhVa{Ta80)C zEqZK&rx6}=oB}-Pu|Vs&7kX0{bkQm5P<#pcVbTU4kvWR8EtG|uH$qQ`z8iYDz6-qo z`o1pO6#7c&5#?4}9sSaAU2L*m)5mh$K_^a#KQu#&rtV4y&E*gEhgSG%;5$nA_()&( zQ?`b(K4yuI|8DjOl!fby)QN>&4?SQXDNCnpEoGS2{CN1ALz(BIuIGmEtbk_*Jb4`3 z`{g>%8c*qagR}<^%WnvehwNr(JE8GEgyxcfMv>^Y3m*9{X@KzX5qs~WERnJ}DG2xo z_LOQuA42D{p@*}9&=a8-bU~Lkv!U~FTZfILP7!70-PEatUSq2xa@J9{f-){InV%T` zZltV{vX`YKp!?LT54k3Sbz@`bnD2ylMx{~%&DvJ{*h^UsWjERD(|6b9)V0E?X`^VI zVjFy?Irx@p8>K?u3%x5Fxcbufdgyh~%{V|_Y`B544c*k) z3Vkzlx@dl6e(a)5z8gf(7-Y=XWCdSIMA)M=q?V>fbzXAe9(;klLLkhZUvUh4SALYT9h z`ym`WvWJ&G#X>KFeu&Wdh`#BR6;Kv#PbBmL=qsToONGFkrO&0v6#7c&=@*9|M`?4t z$cJw4ZxdzBlp!`mrt6|$Uv|PXg3Vl_gQrBdyC3>Q=n_{t^s=p$Bl_d-(8Kwc=sgj7 z3G{H|B=q^vS9BwP1@tvt)R%s*gT4;Bz26%ttEX%h^bVcHf6lP_E%mm;v&B|VbZMn5 zc18Fx@<4a9Kr}-?gX0dl=DfYk6f82v!4r9zV-JMA^5F15p8B^>c(2KgDd#Jw=dM)&>=8xHbcs9W^6n^;(A+=K0Oc_hQsar;WE2haJ*+ltl zU2dM^i_T{Tbsh!JK6tv)IUV|t%fr(>$Sr`r9eQ_msf9X`Yet^Y^%pz zY`YbniSUH;M-jh=KQo{Q{7LG_;+RQUS9Ltlb8K})P9kO5lm+Z7Wto)a+W18Fe9Goi z7RRw&=fL^a3g|1KcQ=*|@HD~`XiLU&6J?tyvyY|Of66ydo&b-%Jvo;W`X1<8p@-|M z&?5&CAE764Y_GpW*B=LcKlC^UUHT(7m;rsn6`}Ucr7W7VuG*}D9s@nbF4Go+8lb0k zQD4@$X6TvF<6LBHv9;GRF0=|>OK62J_bR2P+S|d;Wp+#7-GkY0K%eBGFVplG=*`f> zt$$KK6Z&50;cO?iDS{rgGW2{*?!StpOz85Fv8|)bOV0{Tu{9S?HqDBD5V3XVf`mh%~k#MYbONn90P7Z3F9(9@xx#c_y? z3`>US+XhcLJoY|DGRaE1kSpzugT4a#X%4x8J@E|a>$<650)0albPqDuK;I0#tG)}* zMtGvH?z(THr`$)E4o?cl_WqY?U)~430J_uHmqW)aYREA5V9=|izWCrp)-{}Ql<%kf zNGZpk&SMRc_T>J&h-0`zQCbIqS+jfNFKubtT^H7y0l+8e{_VW12pf`WH>;^C8hO zW;p(Got|Gd9n&bUrreyb0U6eQU&5w&&87gJ?eJtGr=uN{Cm$9oMoAlM;M*UjjrEjA ztieW|>RV^JG6pU1kWJ%F@Ca~FG-ZQ zu6rfIv!xpz(MRrathuH0bsV|2D(zH5uY-OP$DuZnoi;vB@jCvjgD2I_L(G=>+XO9b ztx^*9<@5j1_BQZwRn;2zOfqe!ZD4{#2v8wHkOnHY*9ruxw58KlY#^;9sX+NqL@pN< z+oT{8Xql$=FpL&OsfvhK#NI1c@$z9o#H7?DExo11S_)PSQsIO|O+PG2;WqF8+54O` zXFl5EeczWKO=ix1_TFo+z4qE`t-bb175_H!Yzof~)}}B6V3gx`Fbu_!isRVd!JNeB zfHve+GBc5~`IIdTm-+tpRl#(c{p@nE4}+ap8fwSGmX?(UVD-5I>?8LU@AE;*9;57o zVLA2NIX)V+GnsZagI%*K8y}b^DJY+IWW}^2E3IU=m6WW}R~|}0SZo?s{CIrV?{H0s z&%v1eaVeng#TGTUlfga)c19Qrf3%lY@l5%nJ1PHYxZG$t8c-pw^pPx& zC3};>K6any2YB^o^K3KETKQhUKN(;i|3p(W*y``+*~3O3+!6pq(|zFPfIBj5+xYX& z{U5*4iD0|IPW%CSozLn&nD=1PFAvSQ9rHWXxq&)I6l=dX+rGv;9%k47FzfekT%k9L5Y^6r6{!tHoAg7|kcb*EBZbPY+*h4kiwU>^kg(QsRN_CziaL>p|YyFIk@DkH)qR>^)#F3S*6qk%40wsW$t;Jq_+7#pLItEKL)^ zR?_h1r?a^Lf&2u*v#7wHm_wa$zhCo>DbLmK1aOzHi$snoGQTCm*?z0R>JCf&Zx3P*d-){7EdjS0Ty>E) zOO0=1`(6$1kxtsBj%RD&!Yq${wKP>yGSBy9ELQhoc7naFSesX8js>`;5}WH9%D*`Z4LYvs8tEu#A> ze$3t&iLhJ?u@7dkRTSR^b_dumhOz7!{&~LIdxRh3|0fb*dJEfoINP51pnFIg!QNU7 zyAUkTg^Qtht2br$%A7rKi^Zw$3E*~s`$Dnyl(P`hJM+O-JGeozB{Sp>Q8pSrug~ zij=93DU{vkB0t6Y_*=FQVRbiaN$n}hJJ{>`53*-` zD}WmP)epA+U1BTGKqve)!maNjH1OVxFby-n#{Q0fR}A~fTB^jBj7Q8L%}{Me%)L`@tTpy>q~{tG!Zk`b%wl1$IjE$V#GLrMHyk zm@DS2BWiy;MoH_s}9#g_xWl?&mRW!Fqlu|U=*8G^uQ_~;kJU? z3a&1UGc;t4qbkbY0XGE&@y!BU$(_f!#C}%s&DZiR>>A-5rXHbs&oKvo{sg%twQdULT<&@2#EJuC~ZP{4* z5-=-{$QvUuZaDkp05kfp&3`{lbUVG;CwJk-pd^hJ_j@#O!mw} zyk7$D91O~n!#L)~KPPyA^4XL#g?a7Ra{{%o4$LKoXhZi-mmL?)J-hYzr;{Y{I6evA z`}k<_II&_Lp}k%AR`-Hk9;V5k57})zmuy@P?(!3&k@tmhj7>D(Oxb42&dMv(O0MGB zD$1`Su$l~)8~)i2#N(&I%sDZdn_q4)(zjOMtF4{jn!)9)5$O1|H!NY|5>hsggJDGT z1Tc4jDMqvCnM3)*l+WdJFy}sBygZF6ikiXg1UD~?Gjx}HT-+086_~0jUS(E@kvC>A zPlLG}%%NnX2h4R~-XCs#yrIscXOuZL%AcoyEb_j>ii&*C4!w*WWV z)QlMU8ppGTc~+}u{@feBYn9se&0X(MJ@t7B_11-+Rq;%B!P|M3vo@^E&sJlSmAk;a z1187!LYB1KiLVb+KJMgbkb|+j#wdv*;f=_2BwQm^ol}fH~ND6mN95-31fpv;M2%-!h)%RYs_Ji3AMcPMWUm;3v}6WRXm0e8pzLv#RVn9wM;oxxXO$B!yxK9>q&+O(_HuUa?2f&>g#=!&s z{?H1_A2~>Q6?Ilq-cEVWT$}yP>SFPEBbXgvit$n9{gn4p&a~(7QK2A}mz~GIGkIS@ zUb)z;@(GlWqx=JT<+9aPK8NxNlouPLcz*-sQz-vJxV}F}b}Kh?bPu>?;9^DAoAHsT zulAk>cf*JD3O>I0>(^hGU$*N~xSim(PK*}MS&^L~qX2)*uZEN-RRyNof>cEDGE{C_dcnX#_{_rT@R$aBTodoVj5(YO=rj4SX#ieb&U zAL|}m*;I7cmC?x0_#E_Y){!hw@lvL$<*8&$|3z=9=M@3GIbhWH)_)Td;RFzRe*h-7 z(NXWbA0LPBv0wd&m!*5}5MYlkE%#|Gk@|f0x3r!rZ7b1SUCzI~I86V`@7ND=>y`XD zAi?lq1(!0sCGXW!um2} z^kG)M%E4WQgSLcvv5P}^##$m5%t8&HSqhN{@yY)t?Aal#KhHnP;zjoj!sEwkkBuE0 z!mI76x!6@;SA3XtA?(}#p2PE!rCF@zZynfvHq<+XeJvMj*` z8d+4E7Z>82&n&;<%<|8jS$@fx<%_+lv(GHQ=u9?0^>-KbFZpyNf++<53+tC`%l0Sy z)53p-*R!j?L=n6%V3Z5r4}L57{lf2gpl}XC=Z?aU8^L(4;jV`0`9l$WNQVhO2mE87 zMW3tvt|E9H9e8tG1?E=p>#nu=2eF?P;??E@U^d?ziJ;CSv3mFsxK z|DaG#zLSfe0sg+HB9Y~4e@_v7=sh56zZv{HzhZwBzOM*AuYJ8YV8X9G{A-8DZv}t( zGxVeO|4;<49Gnn8V{u|qzp*)evELQJe?1pJ8T_s79{$RD-CI3SBpBBMCl#ADU1LpkJlZT%a!QY>Yuf`z1tJA~( z=m(`1}6o;TIhqUonRD@+X_i5WBJnesV57Gr&*j@$eTP9^VZ9hF3lO`G>|=G2REk z@Axx#KF2;(h!>_COyz5yo;jfqQw^pc%+_9O)5b=HFvKqu8_<#%53XV?^ZlmHC5rw1 z{(|-IZ>5@xsbI_d_{(^Fjy+$9E%|wNu0_L*;HTmgoG$#MAv`qbtV}crw+h^BANRe3 ze$)+Y6KcOCcJNOT&pEE*u#&>mSd^dyZ250zibS^H;hX=r2wadf3{r&7* zuv5 zu^WF7!uqzI0-2t^Rol(r?*eb+`KyKa+da6j4}fh4i`jx*9Ksqpbn0mv7Iq`piaj39 zm*rz~X&wYSAM8H0J1d0sX%5+T8sqpQ`L~z*1j1iX1n*Cpu>6}3{$}v4!k-qx+q04j zeZnQ{%fM~~Yh>Zr5H@d)9|pJ8#|__CR2D?5-WxFPE!tJzZ-j9E*c7bv=0o^c0)02g z`q1aDBKQSad=;3<;BNr`fbc&l#H-EuU|cY(gt@m6Q<6>LFt+Im@biakUSjMkMezP& zraiU42E5)4{E*tevIst8YYMOT2CTyH?GgThBKVNaq4}%CCSUQ6CrhUl;=?jJ18f;i z{`G2mY$4W{JkfC@*ayJ=xAv~S?`7xEo14;0wYOx~)&t<%hrPC6E5w&f58#F`o54?w zL@h19IW)csdi36ai3DhIJJ@>*@siJKFv`~v{jslxFvzFQhefS$bHF|3|5O&Qx!Vf6EAXW46mo`r*3|4A&30#OJ!p zP1hB4orB;1d7nOD<-;vyfZgi@>_+~}!EXS6XEMH|H6BTPt3B~Vck0!s)8oWloCt4d z!l(Kx3ai$(K+3!Yx7^YJvchs zP*9OhmZy_tu!0Y;Ht|HV!kJMW(+g0bL*vY?U+vSw9}j|_{yRS@0duW z_rFvr2P4m47=BN6cVTMw@&~Z;Ff2-g`Mla`RXd+8z+j*l%yq(iN|i*!|;2mdz>)8D8O*=YT7xI-|jz{ z=H5&J<{S_6Az`)%^RES%Gdv8vMBM)pCRu<{AENoA!Z^abzX0<=52N4iXNCD+bWHAi zNgmYBmxP%n%u59r&9^W&3-dl<9xuS;%;^v=XYbtwn4G!zy)ejT9zE~#`npAZ{X!Uy z4e~IPJj~_7WQ5VVLhiUu_b^b)+nR;Zd3Y{noQL_cFiBzl$fsOPjvT&Um?sM`1X&D! zKCO2C7tPT7tpbeb5Dz~q%uB+EXGl@slGs8W%a+oqom@} z|63T5RocFC%5VRAgO^@&C5Z*#eEhlK-E%JpBXj6I{@u0b>udC@`#JREg2Ap>HS!U0 z@1Mnh7Yt@nj~tDnw0chknip}={VSRcfZGPp=}0FBofQuQ&FbJBdhVoktG5q1z7Re0 zEj^ZiN$Wil=s8Qm^_GN5?GUX3w|AyT^kYzxXlkd@p2SgT?11W7(+$;`)S81KP6d%2 zMBaRb=v#AbG_ogAo~+OhPcZmcSMEJLs?6)#rKe&o+WoEB73J{%I@)s<+@soM`Vr6W zQQ_pRoKmD)|_nmaH6eU^sDR^0CD7O2~tiDp}+Ge%kvjB#@@{i8DJA%Rc~6-I%9z zc!jz!-P=cWZy&8m+hIQD^ni$TO^yA}#*OE@_f6B(K*}mLs~_pRpaP;zLyx#8BsIJD zILU|8{GXPz)pTE*_(J<`p!bO2@msD<^sU{UxV&R`;!;R1Pp>d7*nU@2%}J@6I)K7Y zB_Gj`)ldN|Zm|73$p=-u=Gw${PH$@_|(AgONlVK13wd`T(EId|b^} z$jl_$3#3+?o_oyzax>+TuH;txYrB4>lMgz{9qHr)PO^t4 zrA36%nKm3je4znT{ zU#kBSe|@i@J!ioqmMK`p!SZG??Pj64{7%#)xAU)?e{1fni%)7_(i?qm1OajQo{TSR zPkbx6t~2>tsZs<+CUA12`{C&ls7J1KlAGN(Br*#gagdarOx+p`^bwRg$;XNa%q2!( z9&vv(%?M0*{;}V;b1r~^9MEe_|7FNM?fbg~YBly}o=Cm&d#W49g`qfI$4r)cTZuEL zI);fJcl!D4Y18ftPFc15 z4UL%Mh`UW7Q;#h$WsC@K&j|Aq`c_<}6(I>v*I^fwc@60=PZir8to;#^$Jx|(aGgFo z)yzw(6{_0|)jYha*u%?05A_l%CJs+$P{Xb_MFYL~0g*}VxIV@x!siLeaUT8MoV8hD z&=49Jh343)s1D{%{0h}i^_Qh*R9En?T>t1+U&XxHDYqnX$Em<=w>(O@BNEHrA3OmY zk<9eU%u5H~*!HsDXf2*vR~Gntw!cbs!oN_TmFhD+hrZ`f!!1oLJ51NWoNU+jo9Vht zL*UQznrQ|L)qkA|YL+iO<~hERdkZ3K zIlf?{YUo+x$MD2yMCeS?RcD{%k@>bm-{eoyn+LHS#odc}nxj&~@d1C`<=w>k}* zdu7Jbiv8xbJoM3U%YT5UrXMrJ|J66DCfDV(E59C4I=N273?4Aw+yRnI^5kO;(II%C=~4+$jPhaF-93E$V_Omel;b`BpH6PhF@2ZZ18&)DB( z#!=nD7$pRzM%utr?d49}lx#iq?XJtkso3DAW^q+s`_gRmW81$qx1Qjp-i&NL)BZKN zI28+LDL>I`*>gp0%O~g5$cT?-#7p?l)wYbE68%h@z9aJKxKv1bs@)}$$U*PTSVnf> znYQ`tDNfsXVGqHrpOKCb;+EiMG!wG*%xJ!yi&L?|P0Zq|yfNi)>!RFxf}47iv-M2- zXXWBloaNRjUdw0M-k}-O5kPFnupzScO*gELo9Ow%W7_J8hN1 z9)e-5Io%q#8PK?FJu{%s=HgUra8+4cQHH%Qx1QjpUUjyfX@5j6PQ_V<$*0i5s0}mh zS+X*+Q|&R#4*EuFceOS1(=tro3mEnq%dPhq*1gZL?LxJc>*paDHYcZB12+Sz$ksCh znw*PMadtqmJ~SYC7Qsr~O{QtVfGknhQM;?{27WTZEE#<-7|?q(Ae^IMKr4i5i|FSe z2K1GjZVlWFD3+~f2K1R+oQe%Dp2byp!^&AQC*;->+|(<})-&ystP>i3n~D#^untmt z3m9exeHFF4+OFZJl>mJ&VA!ju7rQ}u%5{!V>@PRN$(-%yCF9aWVu^d&tD}Kw67mNEd-di<*$e%4%L;ZEZ9GZ0i(ZkBsgTL8 z+RmeauH;^Q!Rj($_a9*S5v)qr4LECgP#@1U>~-p6Z0Ns*DsMxlaaU&AXvbJ=T|iX3PoN!15VvWnyNajzC${-KXrS#(azM;@g(i9z*+&YO^*9)84c6X*&ff1)#PI}=dhhU1 z=9^dj@2dWOf3U%Zv#$mf02mFb%tnANCi8<~xW7-1$jaXMQ|Xt14xJ4x#mvXV1;2 z2L4=*aMZ=UX%g*aTEsNO@CIa-n(^Q-9Y=Hc6;O$GO795aSG=i~o7f91}| ziW${oeSgLKMqlz*?6*59mm%tVENS`0-RVnkRW7M6<6pchiiU~klQTD_htAwMzsjAt zWzsr69-KCVu4zU+bm_3duO*y6D)FbHi!5+fH&tfba$!q zNY`|$bk@eZk~{SvQ@1mde9Z~@dC$T+W0H5v-LU?!dmFW7%-6Y@q#hdoE#|((t|Uz@ z3x2cszZjex?&aU5Z9T5rY?jy+w!Rz|qtGP4m-5V;;Q)6Qn* z4eQie7td}kb8d{=MR5$on>KrovjjNF?M}m1&q1lAt=@CJ0^=dowbR8eSy!T!s0v?q z^VOHK0UaR7UQex?bH$aCGulf&ol_k6Fi(pElXsiO+zH%S^5;swt^5c3!~A;97AidJ zPZBujf}g?Er#hGw&Z0yfsZvEEOQA7}~mZbant{RZTMkm||De0wM!FP6ONNPR+x`fVGJx zH~M2XRqRTm;f(@q_?w~5UCWKojgk*58xboP=DQrvX!_%^j#p#R?&9*&IW=Z1x$ycR zSg>Xe+%l;HEK$OS`+z0dtWw#_!J?US{oM>RTJyuM52A1)?g)4lUj8}qYt5@%dcysq z&Cj8KdRFJOX3ijTV;sT<`|p?>bkY4+{0R4$VGS7`iEo&Y@WJDpCEL;y=&RMAkn|wF zIr_?Q;RU%S3tX%?t%Jvy4Sh@Qb$h)6q#Yp`2rN027rgB^Ok=G{J?!-7*(@{@T*A=u z%uTc0p0(lJ`p$^hAspa@%V%R1&i5&KO`Zs(2!PPr4*Ng2MEoeiY-i~*J zgdMA6tzxQ2r5o6$V`hfEJvfK|ciPryQ06@SA7H0R<(NP@_)GKgN8--p;+Y#WKmMHA z`3UH*G%d)uX6=U5_HWIqDu{;Vop--Xwt=cz=^{v;*Ey`qq4z%nyf?lR3##PcZvpS( z`G=a#qkldK&Z9jFzJ9udX3)Kt-`=!Yd?0`04W8{N*Pqao;T*jcHeh6#2hmi!wO|tU z_ex``KO|1(uA3urC>#o1U*rbd8^#Bu7>byWGJj6YZ&_?*=S36Wu&yA_VrvM^B)kdB z;m7qvhUwZH?LpV4+VJOFZQbsF@#Z7dAMm4+7OnjthX}vzP2Yc92+*0Ji|WqP8J$z$4*e*e6CQQfDRx$k)(l; zR3_Aj%!|Ra^B~<~+Bih_!(y7(-Z?q#Ny^!y&Edu;nHcTS(iF=zaAlmGX@ApYM^6m0 zyWk{CFyglGBe$a*`3lxkH@OAS&w-Vxb|RffliTx@tL(Qlrc8RZ;oZY|ygL$v*KqOn zuQTm?@+;23+D}1SAgHI95eT4dM{9boZ+uUqNGDg48)K3g74vWQDU2vOKFLz**6LV1 zajy~3JpOLiX}dpJ>eN$vZKn}?$(fkYcmjR2MofxJ_hy}UwpM!r_@}E=x z^nboS;}5S_oe&{&`iVWjR^)xc0V|UYw#Atp50hVLKRv{`yoqR31m|QS`>9MjL|{DW z=;f!(k1_l3p;0>9Wi}?ardzO)WoD6&iGEacq5%VId%h!cge_!e1fFhC1jl&&pXE8G zlCQgrS!8uwPimcSOzm)gc1pfHN*>HVh8|)3IfG^1tb7FeWz7W|t!wqAs4z(|{(yA^ zY{szIkjcOhS!1udWFjysY-&`j_Wg!|u;a4NGQ}r9Wc}OS-dO*x`}dRc$#POp^8pUzCilWAa)gJ~x*6?ngh2 zHPI@f3&>G+x85s{TnF1`x1M-~=K%e>Do$C#;7f~_w1Rb2^ijZmBah+szxw}A`+>?mO=tQGHk$>hW7J>_Ax7pZA+hiS zN?uWbhKel6jfR)qz6NqBRZ#;^HaZHg+*t0^m!S$Xb*~w7U7p(=9xnhQqFGgRyjkf8 zFacInl$=4MqSkt?5_QD`L<4L$8eoSly~noZYXCEyI`Ssam|9nFSq)8YKPF~Y+O2*H z^ZVHI!}D1gume3Ta*~x!-jw?K_#ji7w?5Z=jOGusKEI629ddn!^v88-ugHG;`;dwX z57(EkVEvp%17`iOm!NNZf&pje9~E6!R@2=v7?X{wIbm7#YgWDJ*nIKXge+9Mq2CKW zgw!vW+?+Yd=XT9M--$XKiA`5=?@7rE(1pGe1L!&_Uo_z&$o_FM z+&I|&(YgB|`$r}1dGaLd!Wi2oT;X6?-bgB*@4MD)=@_!{4}T}j?ni-g*}$>(|3SZp zo_!5IIA^t8)n_I&9>(c}9!h|f8+XEe1jG8tbabq;x4pEZ($0#{IxkzSkkeR)zuByy8r268(1p?VY5O0l63?_D>83BSK-}?V~B9nx1GOZ>UmBL z@{(g?<<*~W>U(=3f?T-!!vLrVT%^4Em0tgb+2X`Tg~f5YBI(ga1%#@aQP}#{zJtHp zImR~2GnlfyO3^TabY5~Wu`Fr0!x~lCHtrtrcQKO96J`yjI*fy;=YRQM^IYa$5ZJ%_ z1V0G>b4|Q#L-rJ+CpI)~4r=~Ndm-)?tnYK6ub94kZPlaqq@|ywub-OPkInRUXcNJUzgB@h3%sb4^^)7mR1W4weJ^{$1OvA$_LT zm>GTT&!^5ujF$Br<)@FO3(bXwyifZ!#ID$&M+spziB83(?5^n=hBs;;eiW(>MP{z%wLawthhGYU-Qw zqOk2=l-|$a4!sL{`?(K^LUCguda>`yeS7`vq6AOc$8u3{hxv~L*7{YU=Hwgg z$f=^GA!<0M1@zpQB)9zk$!ul8A^I+c2D&pUim%tjva+M69vkel4C9O#f#W`~ehKYozUVQ+ ze8}_A3CO7lzL}va-k3|4zux(6V@sT=gkvoA0?f}o$)kVv;rf5N!uDUcH`Re(8mOF0 z3MjEW%4^@{(52XZ+HjES`S$kegVg^BW=Ad~a@JpEmDUybDArW%7m z*2PcklOlOgzdrhKTCraux%>^S>VEfrUU8R|9ev8(fsG_H!t$g@BX8uh4 zI6QxWyxeJ8^GVUBRaD*s{G|at)vn_jxA6Qkhd-wWc!7(`vmIZs-w$#OZNnwOexGw+ zBMOb!5%#icM84C4ote~s9G!Q$D1iKt3JRTQv+F08Cab`+1m7bSs2CfiJRk6%Ul=?G ztVBN#e+SP4p8&(wbZvLgpIAbO@K{9t$^D z%&8vpE-r3?9NQdX>!=iPy-uE`Na90hei`m z;J0^n=xaW!!SndHg7&lVJ+uURsz%M4Lu73SJgDS>e{`)3^01;c{iv@ze)_$tzd(N; zuh9hdMNxg|w^y|O%bfE5AL{$@IgWEy(L!L)8Leo-I^Q;46gdbuCdLJjZHKC4@L%zQ zfN^uT(YvULDmC?V-ePhWmt+3-K5Cq4`}yjbiir4`WXkonI9()kWv`{%pNqeszeK zJHMg%I!FC0pnb^sIyTO@#6>fEy(6;h%GZ}JXQ?@RDtawz01R_X8(xfg@`JpuHfOQs z?GJ{cI$p-Ws~oH&#v2A$xn?UkXnfMsht!frEWE*L3rtJ@AKqfs%CY~|n+`-ZifvC~ zE-yXcwFoc8sy&}HPd?X>KmgWzS%p5SsvI@y&5rRS;{M0TXym1aK@}F}pybHw^_-kjA>1i1avG0ypiQ zrO&?j{%B-ic=kJA9-C@6DtlE4os*WG8(Fg~DVVS2)b{7=>4VSLV;Ydpol)xGaP##I zYWUpAo3DFgmOH;$o5vlyU*yc!>pHFV<}092^L28VqL%2vDGKIGe>B#oC~v+-cocmw zpCW(0t`r%;eEEd@pXTc{n#!3kHv;j8nXf>8x9NbjRsMh$imShUN(ulOV_FCoF^qId z=XTO+>C`&=DJD@o*|LaFGAIMO92WdM6L^Y{QS z=(tYzzZ!Wpo%kq3sCd@Ry(VkUJoiM_Ti zwd!qsca5#AwLOZJ+2}U0+Gs5`IJoHFoQ~As*hS?|cchzPt{63|ZGFqczNt>jfU_yJ zX;fxrlq&Vk^X?tPSY<<0gG#A|c&f9+nV1I0nN@#mZex?P$^E`qy9-b!FU|zEbe#sO zwaQUA4e14YFR`O>U&Xo>{(OItL+H$sA97#Ux5TpRC%Yb(K08Z?)vU^7`A2oX?beSn zG2=BcuN{EAnencXGAFxc#!lu}qCAy3f;ZwEHMN|Nt>$Co+ODZpUtHKZ_2fujLbIm1 zx)wi)G5A6eN@K~@2TPyr;wV4yMCxfg;AQR2M`TiQJ~3Ve)iaOkv1tzmGgq(b^Ywi0 zd(l^r{&;Vvoy?Mpjyc?To4|#~TkDT^4=>6LkN5p{yqom~AUoc6^U;iVVQ8$ka1>d5 ztfH~eC-9YVbc{!`bVz*8tSn<_nMX9*MBQ#SX0im?KCTF{$_z1|U-!}s{8~pn%P+MP z@Jo-yqq9(OKEKZ8bCzGGJwp@L#f73tlV2u3{U}B;JaKO0@VrVq8fU=fTlkFje&^I5 z^M9)^{W!s=p_5Zv(n9t{qAf?IXLH&$z>Ak6=G`@Y$BC?|y2!8esF-)1YIGdVnaePl z)*a4JrlHLJHj~9bj2dD1Z?UxYC3i%d$LeAudSxbV>As|E9vH*_BRoi_@cqsHK9YMw zUavDr{g~kGg=(VZNY!gOMO@wdG?i?F{~!or8hoQK?sS?@fAoBcmnjnZ-$94=1LsAS zGh`|$?FDj}bPzkLtv#`9sRZqbG5b2A&7;#7#!wgWzLU1}wykeIjtR-6<{o=s`1%sP zchmhM<6^GUqtX}K>B_Xa^>dr-gz+j#cXhOx4VL4*{=N}g+)Q0Bz0gSg+;Epg^A zfoL{n6-@2b%H1UenI{!X6s^fh#jD_Qq+%kin*kvvMk-F?!C|Drlflmt_0hcN3dql& z3It^9&_M;{Ns7ddrJw`*F0enJ;M_ISN(PmdC2RNuGuKA368Ev)Yr^|ueF^_1PhH6Y zO_T~{Y|{2W@&$edorZ?SOpjuwCGEa#lf#MkdNls=$vg|EV17qJuhP26g5?HU!&awm z`#-UkKgw?A&05Qj47GQ;8d&uxh8am{E#ESjH*5dOgY3{oDd;gv8=5n#?BHuT z#=yL_T;n%bxR#HkNbKCU#%Dv}_;n!PTA|>MVh$$x5Zh#imexUJy~UUH=Tpy*%FK#N z);GBe-;x+(3nA-WB~GhLtG=wuJR+~~dG~*jP-mz!c4R)+^!~9B*Zu)6N7iT1dd>`g zm(8=?JqEg@SDUsA8TdaGiGkk&9qeb)4}rXQ>VT75eVE9t@wOM5 zE7K!Mi8a%&cL|kM57!@3*x_~D3^t_Qo9MM*Y|c%HLs4NL?-4ohgtaGw_{Hg>&AMnY zqbl=)9gN8AhoSs|w{%{L&SA_~Yp(dc{vSq77R@K@7M$%@$8Nk0Oq)3e*sRXvUX~|v zfnnfE3;Wx!FMk35maBzUy%tU3M0W?B8Nbp3#gb;*0}WxK1NBbUqPN8n#9R)Z*`mUwDt%uS(I|oCgQ8))k*GO)!=}g>VUxZv<`wBZ-V)`qD<~vibAGl~=a%c2Og{czBP0lMd z2cnyFMYdtbc`cRBE1Whinyl-AmC?bP?KR!c@XEyDnoYGd_YD^6zO`KMjVq?vx;3%v zM>Im%qW3=iUJ%DT7?EBS?<>tL0#%8nP`jaJl(VIGKVd1(Y0gWQCzk(>&o$i$4ic0Z zccc!%H`jD0QXk;C)6&!Sg7XT^<2Uuk<_))0G`d53#K-{}#Fog!j*M=jXt>3#Z$zu@ zFoi0q*%cjvhJB@6XeEg{VrHhaS0_;fRovga#W#onTIQP@EhHZF zI2)oJwJ)XXDi?n|)mjeC1I^EmaW7DCfCDf49=Kwr!Y0 zRwGSK!z}~z+^SvTY(GPG2GgzMNNsQ1*LcAjn|c;QyM00UJohz{tx-h{SljjK=IZM7t<_byk(G%j%FzM10rhg7`bwv6d9!wZV)}k( zOU+R9t=e6Qnfo&p=Qvv!%Joi1+i>$Wc%|deRnBjnEh|@^vw%ODm8|`J%f7x(V3+)c z)fox>`GA$R2bxcHx-(@Ts@>9j%AK{Do1)GZVu0h$opP?T!FfxRI33L|^_4ii=~#8& zR6U~NUvi^&4A(7kP7SfuLbv}e5!Kf^?1=j{4yEe z7mc*>nx*9z15(CX>D@LkU3ha zZ$i9Gbmubjz`CSf{b2pvsk-l$o)-pjb_-Hk3g|gYZL;1P;+|7F7N?Xwgt&L#NJYQ5 z^g?T+uB=R>>KfnW|7#4|)@FqT_OyZb$NGZRs@vSF>yJ z?C611Yel4aiqkp}mgbc!o#zwJj5MpW!Vo>h63wo1#7t-C<1K$OP4taQw+_@C$R|ET zPoS^%amH_m8D)0co3!_LZu#4JEoF&2999$Q-)%1>mNjb!p)+~}^k&Ng=r{B(8$Kv(rX3Sb&OhH3qyMrT$=+c70( zbp{I4+jxiA4UASFXmY#X^b{t|w5@kKo8L`;hAa%X2O9&rXkTC~aiycVg~FZYi)F0^79{7gKd zpgCT(oZ2{I-x(?C8>5xOh6nz5tbB9ua|{hC7fI`_h={M1h-0-R4l31)su873#fjK_HEXT) z+F83TamPJYuGwH&yvMiwA+hWR`y{b!J&aDziubPL_pE2M!y946(7EY^Xgkx5E}E6y zFd8ZnPaI`U4c;q;A}XD>%%9g(&lg_{y zNwn%5c5UL0+a-V4aLu2QOU3E$mF649Sv>uvc;85VXTB6YZ^6#QJsr4C&Yu$BUK^MB z-7=18sM*X!M0YXxA*P|8IoSNV6~&f;wqeCPT6z*~o0!kuS2f8Eak)WQ@J7H7?g@F) zJz(dh(LMJsw$(10#FCdYgaz+5xmVL2&x~+m8t=@MVFpQ(tEC{f;Egp57_A)0^gQ>2 zL7jbg4q7U{^HWMUwl#DK-UGLFCD{|xbvtT?II=R*+kHX;G_NMxI?)ujZ zfoHVtjJ{=ecV|DUc}rx=3WSE+CbZTWlK~Z&w=_1_-Ll6QKE=NG*t<}@THAqk&e{XP z{=1mtA&kYu6C=|{S{<|^xhK1`>Yi?ESKT|)IqzY-li?}Hhg9F?B-)k zT#BtgL6MkYM|t9jBSCtu(8#`Kr!m&|MQy2BEoD_yd2tn`Aj6m8kG8gQ1$(6Jy)KSI zk?c$EF^3i=t9%JSZHF8ciu1U?y!@da*Wg$aqqp1>00qA8Z&rc(>&KqApuZbA4w7St z_ECt0Xgmink@PXn=2Xvt+51LDe?+<}J8tjkQ31)w^B6y}+yRVUTbO?GYvDLOiD&o4($?m0|PD$fZ3- z+UdHsja<=$jWc7>uD%az{V;tC`b|5SiL}y*#zP6wP-$H`GUr)pBT)yW06gD0DkRXp z3W~b}+}-l!Iq;vBbFL-(AI<+n+^*VsZ3!E;yjin*;pr$O%v5LHTR0tvpOGwI_+>k=#aM7NA&X$g^lpVZ z|21o9niPaH`z~;@h9;{B=ffR-MPnhJM8I&snQj81=Q9~w0<|f>6wecdI;v{bxz&bjg3l{u4D-4NHagyJKMi_lKu)_XdKbE63?`28-rO7 z+s%U*0xl6((uShPwU6HH8@^fnAN03a{rSpm(WkO(7&((*!O4B+h1lR8_@e>m#DF2j zjGf)fXkv5jG6G;lHsoEGaV;m~(sw03i1rtjuT4inGJ zI9n+SL>7_yGNZqs;Ud<1&q3Vsg7F0Mc#P-?;&HOYYfL=unFw0Sq{(IDaql)5C%dPD z_XnWVh-}wY;#3ldJ5CZP8(RAz#dmA6bZfpc-7=0iGfTUstNA1wW$TP?C~c@B0l*#{ z0{^syn=spvYKC3$WAvaVycnBnVr+pxQz^s6tzhi>;Lk^P{HSB&{3zJaa!hKdBGI;- zv0JnL8Eu|@r>7I?S+Ufs2Qpt8t{q6U$!gbDyUbkY)Sfu7^Z?e)?TZ#TE&Zef*)U}& z-0d5AvJXD>2iSu9(r>po%MWuj=HAA5Ow1tF+CQdcO5bd0h9w;(D-yGup}vba6w(B_ z$C?(x`G~gq`C@pB-7h>2jRQ(o#$WMVmy6~0I!%~!4P`4TqMb8HzY2K9;{Vj^A)fjC znt;Dy{`|%3Lxx{W18L7wFf|xFo@4qXe`oB=8fSKAyjVNqOIvzVuWD!9fby%|?d--v z-+*P26ADob*xBUmjpMa9R@){5v!UPFglfygj#A{kuHU=`n_aSphoPW{aUyr-T4+Js zgAu;?l4hW7pQQ2_%f=ofm1WiL+b=V|y8eC1KF$hcJQ(xB-AWayRwNBW*+wr2h}N57L z`81=vd`nvqrIs)0p3>Jex#sk)SLUmbSE)N)NRJm7TSbwJVOn&%B7_9J4R-diq1Z1zx={nA~o5oBSA=!r2O&3?-%y*>Yo4mbR2lT8|Ggo%lip`bvo?iF*y#JQ8=g$3j~UVdB+$3{|2h zeBS?}&dbb^MS(aRDjxY;e~BH;|Ig09I%tU_0&u6veVSFw404|0Zo#tmg~ER&^e@zWK`N0jIS;x}QUG-iml@6CEd>IUi4sz!OTf zrh96$EN}mWdWT(GsN&N(>_^UxKeR1)I&mgZ8PnFFGt}C_PB_rV(c*x!#o2a7U4QL1 zqmMa53&e64rF}d70r~T9^)vqdwVdC|-&fG4Si~-nQsc$oke<<6w(v6FjX9&Ca^Xds zedY>kXAnrKks_#gG zlRT4pd(!Ax?`E{muRwmzGJX2_BPZj%+D(Y5zM2N)zc#ree<#AqrLE^=rj1SwzGv~g z)X;mMsi5h^1-r6&-tK){j4pM$M3Co0pYwaawiKzC_)X&1>|lGb8r9QyLpywB6Oz|p z|6OhlltnM`u5MyD2w?5z#p5}$zAa8TN{3B9hOBV#YSs%7&`{o+;d#y4>2_~6L3oEJ zvr+d7HjI!#6~$T_2n7_3sdR{7*29~%?cyLPm|zXoAfPps11ZnUd>oiJ_``;>hW=1w z{K0%J*U5Qyy>Db@y!Aef?tG#1mq%dF2lZ#FzRv1d9EJPSM9F^mjKtfY%CtWzBBCv6 zjp@_cW!{{<_fH|>Bzg%j(0pS_A1w8Uvjg}rqK!C<1}m^JA0g)@bY$`A)HZ=MDUHI zoW8RZYER7APtya<)zF?PJDVY8D$Z8R3_*?GZW{+LBHxzkeL`DZ&x+WGJ7?I#5U5Mg>jFM_%@loj`y70(m*+uTbvgcbVf4 zFTacUkJDLmV6ik$;+Z5K{#^HYv-rpLy-zA@tTE?~n&xc4fFg5X8mqlTvYK<|QPAH* z9N3z86S3w(`6Rw2eTcN!&{nsRPYI`y%rh+krUy?lzY^9a`Ti~Y#aTKa=G~eLlyBpu z0E|da_o7Ztm&rh@`BUPK_mx1HqFo%H5b#PLZyh@1^hrdJ+_eolxaO3lmCa&NO|+}# zt(xa~@i5lRa7(4q8#shxkGFXMD^r}f5&zRGogB#{bNimhRyJ&%w zwdZ^Fo;vbPT6Uh-Lekm?`NsKt%TD~gWLYM5N6mpnpJHvHwNG$5Gcjqph(wa!8{Jv| zLtV+Fvo;f3L$jH(J2|oG_;U%6c^o8v0056c)C`s4Et;H!mKJ9NLKG*;PfAV)S7$j} zt7T{Hp})kv$pKvbZ?}(04zzrl0c2uNQbvN;rAqK3@4$JBq#(@fSes9amJvttPi{1w zIlJi&;$@0Y`8vya63OdsUkwReyr=mnR!djxZdEmZ)hXRl*+<&Co0+^E58jMgRH^+t zGG%Kru}5G{$LktU=8+WEB=G?gROyOtt|4|XQ4{h<%^*S2m?$=&!`@s<|sGM zH5!rXjBV+)uF(b-@F1q%%#KXOa_9FrmA5+oU}s-U-Rg8@CT4`jcu)h*?-fI+t!y66 z%BbDk@{hiH+<@PZ;2&{rsE(tX5rfOE>fOS!d&-$nk} zdkn$(F90gw&rH*%wRfX8jSZO6H+kuh;nzh9nET`Xcxb#GorU9-@&L&ol@_U=u0EQ<|lz~xd23DTA z=pB5empTrV6pzH`&Oe85b}tI@<8Jt^;m^VI)i8bH!S`{X3E#h zal(0ohS&%@UM;EFz#tr(%v~{jwurvSFkiO)QK_yN+sWE@TK;GjBRNqm12u1T43{X2 zB)cFBjy1Z;2n_iQ9I|us;vaPF<+ks(uQ@oF5Z?ZT_bvCW2I+l3NKugTo z)OV8hG357anToqRdbD-Q$UGhnn?~52D=>>PW%sA{$Kle#k2-&HewTV}FjMxO)SpLP zoA^TewTTmy_RCafymn8^-_Bd0;6n3}7U0BwF|&4e z3$L{7*HLIFX>A0X1%Ek$Khhan!RSqPj^(Ra7>}|zk$Sf>KV`hGgziJ`3t~5QLKL)^vNc-ZFM$68Y5wz2HcBU+ysd#kK zzS{jyf%j6rh{es?mYH&Irs6wR9)U_EzY5oB!q|%#nk%qFLncU5y?ZSHm69YW^UdTg zdI>ipbhLvt+3#7CzK1NMU;#<*mtkTB)*Af7ULe2Q%l9%lSMl_xOup9$-Uzv+&#Zp3 zW9For$@to{cm{hlhQW6-lYfC4NuOx4zI<)Ca^-pBK7nVjb+5)%p4jSk2C#>EOkvv})D>Ba*XVBxY{FZcWT4`4k2$DmIoVuF8OaT5H`Q}H=6HGi^^y9fd5!L;&6=p{LzfIV+?Tu8 z3<>wis4yY-?A7HR*o7n(cS1h{GRL-nvrtt@;B&6V1qGeZ6xUD!@N{(P{H` zBQ4G@lzKyX?G|UtqAF(t7uGtQw^8pX`Fa+=QSsy2rCF=`u5Me;_vTA8jaY#Ef#m@O zDMqHRh?7^N`+X=VT=A8jM}ZzO=Quc<&p~q0)F<|P{&Y%czt0y*dy&1Y zlS&=>jvxZgmbTWUKTW`lHj#Q$pd4Lvb|&@<=uwO)?k>Pq^;ydfphuVTw+n*h9LQr} zFC3%(4x0b;F%uE8`A_2!x*#^??a!fY3j6FgzcSlY_F4rb)VnW*GqC*e2J!B1bE3y2 znOL8>??IBF7o1{3YBneC_%4ELBdEFsf}IMvCNIhwIEmC!00l3ND8S%b%>`N-gTOKDU59^Qp4zj^l|`TY>5DbkEZ z&XCP+S+jrfhgtu2z?|5Xva4pwo?(U+P53@*1KnuTr`Tc(GN^q12J?HC`crapeCd8^ zyhKU?h1C9%MenhyRW{)ZEoYm<1LwuSHB6+w2`kSDE1#u`Dtlc2RAAeBpU? z(^{@y<*!hmo?v|}-UdD4{46hCwgc9L^Rr^ew^CpZ7BcJdwtvxhx4JBhrQ*M4bG+Axyi2!C}ppJi2Ix{ld%9jao=9sdyu)X0zyIrxB;t|FEO7&$~zvXW5mZZF^CC1h8E|$;g+{G{}8fHSNU+4E__onq=MRKUu-k}vSpPjK?no8+sM6UpCZv@XA1CuH$U zt8bq*A&Xpn`vd9Q9~gc63i`H1-Zw2Yk0oT`jI;3y(gt9TC|q_0^e9X1D9@%2R;0~O zJKpKWYQVQ*f%--bQ{D`$N(EsQ0ngDL)D$C!8PE71O@XxlWKGwUT7c zg7w#^K23hqV&jD=5|CLKTOB2w)O+5>g4REUbh?(SRM0&A|TrNp*ivy{zWJ0 zssSMauG=(8yUnw4jI%k;kdgZ-M>mx)bL)+n>ssM#MAmtcg*j=eV7mls?!+m#;;+9D z^?FM{bSRwHUl7c~xDC?o8{OA~q%NNyfxdi5XS_y6B;mh?GJLE~KYVkGxYNZgiUY&V zNsc0SC8j@5IR6x5?{Z_SR1sQ}Mr^YX*d)G76DB=nJ&F4Fb{HcnaX~hp21t{a=JlJl z@K$2fQ~`Y>4Sh_#cWQ5LSIP%$tsHJ{VvW>nTUf7Pgc930wexQWR9lOUV_Rz)uY`#l zijwIy^q7$+Xe^(!{=C-8B19TH`4>vC^63fWXR%J!2~_e1CHR%0E$?157lg$uvj0$b zO8L4Jw$`j&_(_@UN=8G6lb$(!8&39VIreiV_EnSH!@;c0^l=+$)}yawAcsEB$W{Ji z@%%4yvMP=8&&KoCniR0Z#upZ=gKR#?U8qD>obtcE^zQP%OnuCH2+Ya<8i8Hl$IHn8 z(^|%{K-j*Jnfyy!hfKx2nJM=CNU30hw=U4xs{Y7no!c>3!h+ETS~EDcc?MIB_r?24 z4p`NJq4&X1HrQbB^el{RrbYQ+G*LU)+Ri#2=sQ-=Y(kih!w!-Y_NoLnS3Y$AOQ*W* zcZ9_X^1aovYD^j78iDFyv+(IIX&ISZuGy+GG>L{nf8o@8tJbzy6z@qmnb~I44IoeGVjn_x!&aIyZ z37q#3&(gkiS*mqFMt<|W43swLwTQ~~Appf`JE;<~@awM0atozJ=z$~RSDAY|A-Jc-v z&D$bZb#7EQ3Z|kGYCBc8dEOzUl^^$_?(a^$emBZ7dtn`CX>s z4moEFb}l->dAsilV@n!^gN@&JgCef1h-=8gdOP*TV5Z`!)NAtDI_$|~YXx~ zK<1&O4dQ4<$R2DC=)NRXo}<~VF5fQ7>r?%e-Liba>mZTd>xRz7y86THpWh&}FlKY6EA4b04 z8~2@N@Q8j8slVZf11@2nNoMFzpun*48|QPc%*02}evD(n+T&@IPvXeY#~4!_99YRG z5V~oWJWrARZ-`FTqW>MhDlpn!t@Eh8&iUD*vITQ$odJt+f+-pxXDi&ys$Wlzi37Zw z>YxdbA7Y0*uQcM0K$!RbPVu3@=~TVMbMlI^t1(PvoG2R$cU5j9Doap%YVx?=&0ByA zqDu-?&7thoOywuebCe%Z&aeExKCkklq@9$1Xtew| z>e?tj5XP3D_*woL=PtkBD1T%3I_DwOzk7C_^TT8F2zv(24H``{U)VVzTWX=z1=lO78*~j8QA~_4wa1tO+?`;YzW^B1XDpZxjEiS2 zTvV6iSTtwB{Mwupf%4UB!C!PdqkSDikCN;bg*nI$26o@}Kznva`tv9q`C7RD!^g5w z@YOo^gXMn#%jbdRhsg3~M#6e8Ivv(ZtogJkZ6oqp9-QA$m&oste#Z@{;_!jw%h|&O*L4+Y#8F!8n`i#LU=CyJY`QIe@ucIa| zLVjA&U%nIniReab#^irfa-H*t(d0jyhmQaG8R}p-F`m5+t^`**tAmwsbzlr0Vogh(mg6^^t^e{R>FLnaaV#%v29Htdh3BPEM_+nAH9TBq@ zy34-ML-vK9vM*fBzCg^I2b;BE@_aw+qOwPrMcjcmtcAh%$94)+Uy$`d{SOu^*%>hY zurtiAbsp-Z8uULBpQwY7><60Ifh{^fHQ0G*>KFgwkyhRl-*zn?wLW4 zGsYmJC+JrI9}_?s>*;Jb8Y4f1wPrN%q?%`;!g!JIMZCWRgA% zt7xVS8q^*UdsP$>*=?8XPL}LeB)g?FyE((;H94z)9|BD>nylCF14u6KoGQ88fxj(S z(-r(}1b->tXVyAD1b;)IAy(Ar6NxFdjhh2IhS%BP)rV7kJi6FN{!-9L{)QlCmf*NW zXG08sg;3nF$%1PG9L@%Qt^d$j-=4ocpKB-VC4Uc{7k~G|Ez0C?{ZHE=lKeFhorAw0 zTy64KTupER$c_>1-~L?kcjkR(;O_>kJxTr=<0pmrhci3laEQ3hz~K~dzY`8;L+Q-G zK?UU&GP4sd-v^v$)`)6^;fRK>!rkbb`9=lU}ua5H&|-0g{UI= z(Rr62{r5b|KcLg{eK9K2za9|&X1Py8(Zl(UwftJ19hbLg*v1M`XU>>BKE!K4@s z)@T9l_ANk&xQ`)tq8u>$NA{2Z6+P}t_@bB?KZhelTp#}DdR*v=xE|LZ)W`I=UMvjQ zy?k;EyF2Qyo4Mk1e)_BM^?|m~27wVL_d05@PE<^c_H-knQ-hU)&(xs0(rh22$W9~P z&K22LpCQNo1&ZuEc&r%JK*eWjd%XX&B0HnMSsA9n^yE*>`Y@HMNAZSL@_A9DO3eNr z(Pw*ajn>C`=(A>>%p~gAv8ZF6_`%*z>tq!MqxN-T7GlpveCxbU`mbl5{3{gOgYYYf zsg(Ms+abOf1ZqY9jAHwzerBzhb?^;(v+N~i5d(O`TA45jwGv++^#6lR{@nU3t3huf zqBCf;lTbgMXtX1wM!P&lqmAtqdLdArRjGaMsdgRXyC}8yIY& zPRm}K#j>jQI8;0T-?*t{WW_5@eNKlxA6fF$Z?X@lryk|W5H?jF0lFMb1*<1;Ew^j# z&oWMUPPHvs#N#PXbzkBTE~i!;bvF`cBxeQ3!FfsCp(yPFIO22E579heia!O@bFR2T zF$-AK2{t5vPoHs<5KOk91FM;EGv9_Dq8{(EBE(ZBF-a6QVVc$@Io_YdSl8R@|KLY& zE`|?wPy&nGbf=Rg;0I^7?yv%bn)P~k0U5c8OmkV+Dd`4ZLKhL$4SdM(%6}S%HA(Q#% z`1mHHZky+$OK(@(T0c=216{ zpY9RF#hUM-I-}j>)jXNJ*6b#)8{OoHx)&{ZQA|e(^qS+BonxEPIU-$&J?H{+6o3+j4?ylb z%7s(0VtOH_D%cEyv)sgBd)(X-vmb(y{!N$ST#xSBXzW)j8wV!_bV&Q6eAO>5E|O;UKX-+^C?stYT%aJYEi?`PVGSrRva6%v%h2TUC#cbqjM z;zn)QHJ;kfvff{}4!#RxF8*w`G7WpDrz6ZCcX0sFE!C zd-gteeKs!rD6*Gbh}&CKYaX1rkjs~KXxyL$mUYt?gu4QM@)o?J=%vgq(}CZ4Tu1r0 z@%v}cn*Uw=&RzYV$?uFe!S9r*@%)a+rvq3z;r=Z*n)uPx@1uzqHUwidhL8F*K>NW( z4AdB=z>Nc20&y-o8vFs}&G*l#HeeVVxjtTV5PJe;EbkkdP<2@ z7x zOQ;UD%4_&%st&lNq^`S=2@UM^rd0R{9HCU`BL?CGDHjSU6UIR%{DS<#{e0G2C=t-R z6;Cx^Ik6#bHH8AjrvB5%1e;93&>SxqUV&hkL&1PMkgzFXoi=Q+r?w%w9YM&4%Nk$OiE`@zM z%B4mYx{iEGBcG6MrNOE@$f^Rc3RBPatim)RhE$=XPv*&6J<9Y&t?VQGQ-_ zB#u9nrk%*o@5CQdep0alX~nODL%H{WLml{&xT!sVe$(UM!=DM||FQfTj$H(L|0yy2 ziO9QST;YJc!&x(E6e|^#vJ)fc^?L<#&*#!0{7y1))Bph6>$GBAs@v{xD zqu$jhtV>T@86$pphxqkUDS^ixoFQLEznU8>ent)U)a{EAKeB)Ai|bzpzgz$6rdso< zpR~s6Co%E|WKPt-eieJDrZ(#z7Rh1LG(SfATcka0z{*7@_kP<3)WM$(<+tG1)*Zk4 z1jrNGX5kntZierQEoRsNg2PU}RPOcB!q}v}(c1lVICz!x73Ke&FUfnKO?-M1@DK&A zlNXNEI4>>_Hy%2iO~5e*HwyF6eQD3pe}=fwTa&Uwi;LCTpdA9;Z3Qs~2|RZs=!oWq z{NUQn<3EFI+to`YrzERnL3VrimQa^P-bjJF5ksnb%y+(FgKY3XAIKTR_0#S#q zq`gs$ql|-RtDjvfWV-XIpQ*^>Kc;>hApBoaKUV|M8SAGzKcapXW_MaYo3T&=qxcjE z5&f>Eh>DGrP94?^tWGr3D2~cgdgkOHWFn*^IFz22x*Qk2Va=a?)D&gxYM209^fiy1 zhiKdhoAo-au=$)quRvBB&H`OL3_|ZBv#;{kkbgY$C7u>N0W`2V1)rnvY$v)t`vC`X zdTpLVG#y67GqUz=egtbT8F2>tKJ0OM&`nML{(bSkh`$4oaVK3xa5R=X;7@!0b|SQN za0;E`JM#CJ%g@5!)%bW`{Cxxw&&c2V`4RkmZTOk_du)A_zdv&Si}+i+tW*9ru*Jsz zoezI2QCr`gzoQKrI&HsK;p2JnHw_Wb$loygJNP^K#yI{)_K!b~^($EMpbm2*n4S*y z!aC>maEH9dXIB%s6+EI!i3f9hj@WnefJ5^X^^h9^xWQG!5lZku#Co&zhS%vH?F>PI zb_O^Z>Vpr`fk?745WRsc%Kv!*VR` z#k2J@SpQSzEzzH3kuuNU`KO>pkI9g)WH@9J7X34dyzEQ9SqpZc&EsN)y8Oqw{ zQDvTQl9aUx zmq@MRC2Tpy($726y4~3NNx46>vIizzMaJTg)mZ;|XU;oOBaYKp|LMZ@pLdkk@UOyn zm)EtX8!`@T!7T9YdoFoxFEe897q0r|=WDFU{c$7r@?FTu|HXx8%fQ-623=~pGJ||( zppHCNWMg1TNM$W`eObIdb9RV1(p zM>W>_%=%8~1edKQk+^E`-yFZeZKKtJ+c9YUfA4iRo^vh5Y;>mOu+stw%VE1lXBYPt z1cw91RD)MFG(!XjkikB@Hj0oK&+dd8nh346IIrXW7%46KBE;IuSp334Fg9;FcDo5- zZWWTeojBj4To5ncy^x+rXZKFR#FTrbvBVb}gYpyG(HtTls6YA42g_wVh6j6}w4xA( z64%7=1e~sk?WpkL|LTVEwi^Xr3A2$S|B3i3lrZ;tH-WPAgz-b(T#Vw6he7ukRJ z!4t>~a&3ggo#@$VL$UR=`H`U`GCoD**^7+Nvl6kZ9>)jUu_agk27>|U;3j&xErAr( z^ad|!74mMn@N^jGaLjthK-<2&lVec!;b`^-@BvvbiOeXWz^8d%b6`}YH-JTve$C4%9Ot28A;NVcmLzYKozaGAE z*3RtXuZL&;>9Rilg_qK3wfotT*h5=3SQH-?tKqYDT8{_2zfQ>m^IP~)jDl+6SDHH% zs{w&2#l?Dy90_phg}b|cs1zth*vfcHN&D)I%-@sE1~L!?D%GC-7g;P7zOo)(PXnIJ zefQcMe9y6YCy?^IF71^)d;_K63UEbzg|Yd4E4~MJNVQ?7A zBISvC{VB(E>Xen$i{glx=a34I{%v8N>fM)w2#1zYzU(7*MVCmyY1NhBh1zrP&&(b2@Q)c9)C;^gY04aItZg7YOV6 zXmlWOSVhIa0962W?WkIivKqeV;16{lUH`er8b=E{%q`bkzdVVtA|k>%@MldW`6CW< zxXXq!t-+jRwI>XY>YoEUQ6%q8k}C<~DcmMs5`u~3i~5Z=Y@=XB4ferv^Z%%g znr$NvW#-WWpClLzF?LW%hGfkHbN(-5{)C!Nir!BAt>^&cWr6b@fQ;n6me zDdZw3!ZnoAA2wE=FTol;8VaORDhjDz1_Z)DVAyza94b0eOt)_@k8Wam$|Go}4tC?8 zf;0T>0!(o!WtA{}r2n4c3OMAudDT-mQy=mV9JZrdl8RegTD|$~HzU6V>bItFu{F%%w-FCBdg=lds-Bk~ES~}SuBl-80^fL3W zFm6Sq{Dx6xM~6Rt#IIJ3t}s0Ge?~ojz8!uR34nouJG`Qx?Pl&r{s6_ zw9SVTj&UNT=A8|}9U*$~MW=BquN|ZHYqJFR#d_(TBTZI{2G)W84HanCEi5BFi%}CV zLau-@1JLBDQR#z$4D&{O$;1=ny)oCk9#zaEHZZEZhU7BwLljDi++AIp4<|^vO!35C zBtMS+X_77nuJBCRTI#NfNF>r1Q-5t9;FC3eg`^AJjjdnv{*G6^8OlU05OvajwnbBa zh0LK$Q0FpLiL9I3xA(`R@%Ia2&8Uft+ByGpr@cFp(FGt7GSd#g)y^Qk!G9MAcs*pJL_D!Br?S{0bp+tg--C@cCjq zYf?$*Ylx&z@M{R%_{O6?fcilD?2r8U+b2Riifs0mh<#@^Gel)##Rms}Fun>c1dJ=h z+w!G$OWCzJ;!$%qOPxnFe(G}^d1M54upEbWpj=jWVo>2P1}P$%Ce#_RRNk(AADb>o zTzQkpS6LfT`Xc&TZFz(tILs4-l|j)6_9>fzRaiTaXDvz2Qu}zRW1dtHWhZzr(Lt6!Ggt{mTJXR(kvV zKgWWTQQtjf{-VCG!n0A|gAE!^;J4HI{>e1S%q)Y3j93~v)c0bUp?)QDfEdKeA*&r_ zd02o>F|?z>$o7DK zUYBdPqQ&#@&D>;na`56h)D&K*D=~8vE#y|AG<4QNcHWP8t(wP@j9$w=WE*e+lIkz< zy*Oe7Zpxx=?oG!pD*5^wWfcs@Z?p=`@<-a!Vk|~LtJ1Gza)IbKV64%su7iSz$DYP^ zY_gzd_7c#Z1Jz4il3Zn_LX76W8fl=AMT8vk|Kl*3|BLvI&p)=kwPH2LsPFzFUw3AB zJWd*74P@d)uy0*nG72h+)(d4U1a)U{8T>P=o_(xH{(fGBI_&RBYJ)$3?YUO>QXT%6Muz~pE%8#`Qlpnj> zJZ&~*E$^c6R(LjEdOB=v3^$>crvab7W-1DmXRk{{_p;RG*{0wJ3(%g=fgg*uIW9aO z#4{dq@K`4wGx7MEd`!pVujQiyk3SZV7LRXApg(d%HU-S4pP9`aGMildAoefO=75># zo|2D5_n3Snx`pBqA}?pC$Cn%UGgI3Ja6wJqbDu%^1c{RQkn%Z5Ldr?*JrWb~-yt7~ zKU+Q$e};GjxdlNt5N8tcA`@|zL_8Efi24weB%r+RMWFd#@Lg6mBL z{Uw6SC4xtwb^t*Sq?#`tk?QhV6atN#^MG^MhprYYS)Rj~#$)<_q2_Vm$rMws@HJa+ z?KIKFgnQU-JO>Y&J;dyvk@4sN){HcHo+-M$vDPpUX`n!w!lo5%zQu`k2i))%V&7l$ zUuZ@i>YHL&1L?tY@VzH|{-v+$J8ErQib+U8%F@zIO+Zo<-~K_1(O*)ak;(RNQXY*T z+rBSh5;=bV0gabg1n!M+q}_bs3$Y5s1FmTz!2FH+Sx5YF`gt|ez%x59nW6|~{{q>x zOOuYn_;`eG5(+O!Fh5DZtQ35|C8C4F7Sv zfWW-TC_r1^D33bS*Fe%E)^8j{@CXXa<7dqlF%sj3Y!uKiOdk?dEE!WpT0Gd$Ypm{k zC7;B%Nx-8CBt|hksB?(sDucEPfWhaD^&jR5q3i;k9q3zwHL^H1eUX=&sq3)Y)L!%`kM3= zcA)R)Xtbbj82zzv=RMhobKvLTEhx4bHQW~?q(R}wcx+GM$XE*B;%EvAdq*hjz`wlq z^esmk!M}St&=&^FKwnNgeY@~hpLvhTO_tB(Ci6FFy`d9Ye+1(|gqyt#TIa%W5$z); zy^-;K0~Ybn97J7;Bsj) zU4%?(^K7txf*O>|WUuCV6qX1>g|k}F6aqyt6=>2E;r9X9$vf~n5y&OK2ZOvDz;AOx zB3crPKMce{RJY`iK2iEB4c2{tFTvi?3fRq<2J_9%5p4scC!#Nn1uf{=T}X8ooS+rc zJ|g@ZDCp&xyJ{vI322$Z9MC!v+f14 zJN`uI*|ta&(n~?uJI>5(jv*NC;>Qq^zY%&D8#qSPp;WTzEQJ86f$XKxI^TvlfZeD> zU^6H2xHq78=W$5#ffSQu<`+92c4Kx?d*ko!21n&Y*z0XWmM~GPcIl!7e*{Buh*n3W zKaLW;1QxJr+SqA`=M51zgN104xCWpvp6Z;3StQ(Is5uXd@vqp7+oG&)!zays7?)PS zZt}w~07XVAdDR4ZB4_B4(Te^^#z?h!GAa)G2fLkf4^fu^b&K<`P(hCJMHiGTs)Aqu z#mQGVb{6|HaP_ZqKdM`dkM|)Oj;-^IdaAQgZz#G3GcdBfP0$}w6FG417wU{4!Cg&lC^nzRC;;$!xq$;TU58hKSDn|Kc>q-0ID09I3ISv29kXc%TuZKOV`a+#38T9=z%jwu~3m~^YVJ_zS|6uGlBOdC3}0) zELazwXjj{CoNz?+#4@9k_VjDmlF^L3n5vt~zg%4VlHCAGGFn9qx{-#1f$=!iXtKY; zZ%1L%3I6;u;eR@ce@YbpKQQfM18^Go{O|a7`LvghpVPoB=L=67X3wz5iJH5-%u(p`w3XN#i%L!;P#?C!2E2WHa-NlxMI}9?>5Dh-Rxl1mtE^ z@f#Qa6b!g1KTBLD8hN~~!UP@4&m^+^N03C6|IV25i>iSA>F0>2l~2F8z5S`(bh?8- zOlSTvp>U4POxK>Cn`9B*GGtdN?gT*V5*=~^Rt?1hK+N*#9`Bd|5P4C225dhQ{(~^f zqP*sSokw--Dnng``v9$zJt7|gA#O`^$KsWqhhVWG`^9Jg%Lf6pun>n|(Dx5uo{NP9U|BJ&sRpTT$AtsEj|@oj;yNwwZQ78V3R^$w|2OsP zjDKW*xFi|1nWkoDe4+L<-Ly!5oPS0l%do=!xRT|o*rlxgqtGx1aETf-JM1v>%!KZY zGt|ih1tS1-uhq{W(&PEoO6QkbaPb;zY$*-kO?a*Ul%s_6Xm*`av5~mmC_#F(n8)+1 zh}=8bR+)$O7pb|TPd@>97yPu+d192ctbdF1OPtGo)ZN2GHlE1*?2-kx+8k>F6M~Lk zBN3X`z${<+iW64l84MkA>d7e;8nouw3O6dooC=LO^70h+O7Ud@UTU8I>Mfz00R=^$ zUw0YxB(1PXpABuDUHQN5oy?E9Z{-U@8X@SeYW)8utovBS$C z&>E%kE}8FbV5l+4dAz_{S=b8JisBmIvs#?3ar7R9WCOifMiKquXv$sQ_!d>Hc@CkQPR4aC7r69~rDmkT z3C*ozYK;5BaO=$>@zy?hZg>4783C)F_zJ~{5nOtsc#AtmL;8o}FH$guj@d$kSAvB~t94AxII2~{(KiMyK_v-s} zwXSt0E_u8UpT-SH$#|#FUPMV#UarHjMju%%Se(Q1d9g>3I4@~?(kKV%qq@Vz0D;PVDcu{T;KQx~B6r@N7@eYId)L7zi zBW0&FpDPiGBhCn^c9I&s-ct1M$;GRho52WEBF>m5+92GEv=x<;^<}q-_G+xd*5x@6 zRk)qL>Oh0Tc8Jujj9@F)`*jmBX)bvhao+BN|ALoEMalRdNQ?E>L?d3=0_-CyrH`t! z9?rVAnd#m4d7b;A+U>=sVyv7`;9Xo-J`ch%GFaiEllogvV>xc>5>+@4>|_=8j%|4T`kDw#CQJHPHE)k$@IDyAX)%W)nGKxN)o|{el z$ujzTB6=+P`1suspF7`h%ktAMRFUe?o}Nb?-DOi8R>g4#b|UB4m7WEuiX)dhlLz6K zyOc-B6@dagPC>38hv*NI&EM2}kjd!G_i}SFz2XIlmhbI`QVuevme~*-RGj06w21#>5rK51f6mH z?OroKmHrrmYRZrz+SEG6A8f|w_4K0CA;(OSV}(zoMt<=K;_~|fMtYMU+*TEyz^YTK z+qLgVf8Ew0{)qMrjKlx98DErVNE~9Lmdy4ZX-~ySL$T{AWk+>}TzbZ6DRbV~2usPx zH=e`)i>|}~C`OdRu(q1DeJJNTZ4R$3nhfuu)d~@aT0`!SccOw_VA={UxCC6;fHOuMv4*XETZOzOf1a zXSXe!i&=ozL#k1Zj5_tS|8#<8dlQ(Lqf0LpsgfsyN*H5Yy65tAR0{&xWD3S1x?0U=U0M1z4bj0@elbTSN1_9`y9FJF;rDZ?>6DcRPtv6`nE zGnGK56{+B+Tbc|T?_SOGDV&`Hm*S=7`3bzb0uDSvvLF%e0@W|Uuq8eASNnJo=j!8N ziM5qhVO&>Soy$^dg*cYdHF?5BD28he_CQ(orW*ZT9K)lr9 z!Xx}4X8F>~EM?1ZzbNG}BkDub1tW0eqLnO{*e)CuE-M(I04Ex#i4)zzr7IFGw2VO@ z%!rM6W+V<-!8Ab|<#=vNunVt=EW%~r%{a#fNqA{wvT8-;FSDr+V;SHmTv4q%)CrW* zkwzJ*ji^2q=?{66XyFl^0dwWcFgK7*%IjrY%dTH^HS`p9hk0s`XNLoIkJr7jN0fby zgJJ&$M>M5pLhu+)?R%O@IORTeD~axG0mEz$k^WJ8H+jiDkxIpQR;asD_7by)Hp}+P z$^juohlBUwcuCdEX0O?@(B#=x|18@oo$uL9x3HOdu`nIqQp4_M{Z2ueLo3{goV-Pc zy;jet5f*LK2&IC7s&0oG#8>B9}BYAc$@2(gC;-LxzVZ49^F>X;G82NBeXw zPO}0|*`0qO5+!3!kG9q1(vJ@(=RzQ2r1Pj!af~`5yS*xr2mT_I#&%uOIe4FAb+GU5%Rhfqscy{* zE5B+Ttrj)xJJ#Y)SDdG}F{$FjCFc!EZAtFK;ljp>zb^Hcf0Ls;?em<>R-W2f?(g;% zvI*}ymK7F>S}U5AF|FRh!%4?6ox8>fKL;Ed>rlt1mahm}-B;xR#zpkrsYfgGF2~ii zaxc%3AN(nK z)a&Mqw9~n$UkooW8`R5jM&EQ}C)V!+cg4z^-y!P1K;A4CId&#*B8F5$2DXP`P{AT) z0!0SbnflC44U_zf z(DUqg(1SUBZGz`?(vlnuMi6+~1d#NK?Q%hqpCtK7lAk2`Ns^x=`AL$WB>B_S-D*NC zNteSK-#JNt8)1<2wRmvof4U)ldfw@JScKj$VDZ#Et1wn;-cPW2(s?GTnaMgMlaiQB z;_Bns7<_M^k&oFXz8nKzYCC*!_SQV$#K4l(QvPVE#eI*r8+W(jq+@9C;mLB|f{|Ri z%dSm+7%y?E5sn9#5MEM(enj<;$AF*@dD?h&GUP)yrnDj@yjUrl1zOw`dxjN#wm%s3 zY~{;JEoB!$_+s9HL#)J^Ry@b*9Sk73CGw>sw*YfWOc)Eq7tx~0pNRgv9A;aNrPzjy zg^B6ch{}tb?u+$WXgCj>{U9#=%`&~5zhDD84?z%$M0ClN@o8U7hR8LCkS{uYtwEbUCrsD)pex_S`AtM(?%jOv?1`2VY!_#Yh8H1WwZ?ogP=7aYLQhO9B- zrhDE@MHEZfC37v9fI?_J+h2UEfYN*ykc$)~jTySa}lc6&-5ClTcn1&$p1e z*`>B6q3lxo;-EK&&gQ^0Ss%hdmA9NbR_{_OjtJqLti2gR@6w!&pusf(91fS-^eevR z-+?p;F0My%e6FhQZ9u1AM z(S>OUjD-4PVX#Wa4upwRC@@FpnODGd$vl^LwFL;&yh+~GM5yLXsmr^M$m;T@;eQ+B zH!8KhBg#d2Gwbr^@l&vmC~FSnGYX3G)aI00gSOiIQtPUntl6jsx5M7Vqlq zi0ds%>0-Mc7p@lW(V#mOR(bhAV^h__qu#OU zYT*msu>;h?E#9%C)WVG#<8M_Qqld5+igkEh8;vGjqm6c`&h6Uh6xHd|MyIOIo!aO$ z)mg8N9-=y5%4*Tx+ygQU-1( zUYVkx5JjBc2Y!u6kzR*LeppJCwYg{z-X}a|f`w{B_=wlJHMnA(=d@j^_y{Q?n08Ae znCCPS{e`Sq|H>pL`T(}3@F!Z~{y+&TQ!8u?OcTEi0amV7csSq^zefXXF<6BU&_?Zb z)(0=~I%|TxFuTU?T<7*6W=T6Sk;2WQ7WDc+Kg2?TD!hfMmGCUsqryv|K^+YpXg`m# zht@Y57QVykXmpe&b#w~nSff+vNiaIi>)fJ_9^iGpppH(b&NO!9Iz$~Ov z>1ma_y}JtI+^U`I6{2sM+Q6BI-bGpLoX`fAiwB23aR>*~b14y{%w)G4$u2#wWL?c< z$wsoH7(6(@nDU+i)9lX|!Mx9zXD)WtZoyojixsm6w4XX>6?hpI@3+eLMQCX?*Wf4( zXPR2H9g30aJe=jj{%b?xLE8^r8fh$eK;1xd^0cKY6+Fe(JFe>%Z&}xuct)>tr*~4< zs_f%X*wrH6>i4mnV&CEZbDgsRwBb15M&ePbduqAZ#mMt3Jg2Tx);6GPdMln@&nAQ& zc+i=Q2|fe>?D}ZBDi#eP$Z_9wU@am;M8M)c6I~gN8J^8*(H^ei_{1C}t3~}LmfUri zFQS8uoZ6^V+~(%Ccsvyg@?pYp4Q+xLAUW)nN!CYg%!U=r^dOlnZ7i<&Uy z%ddEU={9j@#(qyY$uo72Me*E?l56*LD?gQ^?ublJ-Xd?+LztcHYIz4!n&X_E98WsI z620s~gG^IL!0;T{#zi+#hE3>`D1)ah$@2lQ?nU8H9!#fTyI9&cn zHyft<-Q1V^XYGe!-J%JVKscc9S9;pIq0`pp*sNe?(tFCw-}t}j2e)+P<#(;St*7cN zl(K=Jaz#im#cPNcgDIQAEpK6(Y7Ka~fG47q$S8cB>j*5ud$mccqI6Ne@)p*sm3-_v z3IEaLH1%l73&Uw*D4VDNbBI(wqds#8?9?&g_Qg!NcSI-LXjiYx z6vrzX(5hkK;hdYDSTyef(Yy<6fe)z&iAs70gD5*_Y>8f$?;<5Sg%aTQjUpK09Nwvi zy``yYed{p_hc+;-{E;qfS6#rx&qcHPnZd=8vNfRz!J^tvdHK)QQ`X&e7L4;~D!N)= zS6#`0yFrQ9T@RPYimy>;*vyW`AX)-u*lGHts|0!8;b;qiYY|s@Exr|WVQr%hjpBU8 zJ{Rq){ehB2lQnfvepGpuyLTcS33jUo1ZB7&!n)Ur<>kY02xx>q#!3GXl&c5ImE6N9 zmsN|F3$3Hh%5ns_IY%;bd3?@4528Br?qO(0*1h0ZpfE!3nD|sj@ZtPg zXC062;RzgpzErwIUA98rq41)^*#Zf84{271XePt!a!|7}cHkD!FO&IXvbZMjl6)6w z0$WINTavmL=ZYzwi&?nSFc`w91GY^?32zYHhz+0vqY&AGOXbuF$$?psOz$)@FyzOL z-=W|v0t?i-mdt{?hbT0i$?IP^=16ZG$9O*14)HU^~H+r>Bcx)0v{v$no{h5J5PkOL_St474AZ@-bSGf#Db-m1@7B;IHWQ9L@{T<*XDcY4~XM8zYy) zmH=HjAf|KGxZw|jWiAKH039Eytbu2cx@HT?)Wsv5;=Bp)C<%Ox7jbVtgX!4?uc9%5 z(d`p#gb|9L@&Z@4|1<&#5_?kmY6P`g(=IP~8jrD1J0=T9)V=%{mgpB;cv5))g?4=>Wj=;T{3p%akuNWb zFKNL5(g;g-(vqcJp7WIQFu6}*?e$uN@51tnpPjG_#6b;DVAjk z-d-5QBKsOrX^%|@ChHFI`P1OX$m-mEu{qtS<}byALw^?wRGO!jO9oyy`h4d${a4Lo z+l^%FMY8*ZJL8#?tu&LZHj+&h$$GLCo+Y<@Gue0}*+7vj1Je6!$sA^~ON?ZH@5{2a zLVTSq*&)aj(czoKgF~+o$<9@_Uz*8&VvPWTk=zqsOnV zggGJWeH?3AadatGAbf%0csCBJ#z;HNNYpkE2^a5_e*#P=)D!+M zZ2n_ujMoN0qODVbM;bm5-Mi!#f3+g+YrrEPM|zH40hl)i(!0ro#~;+pldcojA{;M$3nJZM&8ai*A#a59_WEB9S)Ud|2n|HJtF}+@s|WQk@uvn+-p1*f%}C z1}yo)IR=@GEIg`s{(uohn}BNs(5_%gLxg|a@+7Nk?f)>-3eQnP)QH4Y!n}JkzdYgD zc?IP0A+?R>-927QaI@+@Y)Dtre%25#U)?aULA`|o!yO#RXi`X3KM;-URMz{-uTJF{ zW~YNu8M{B}K+*~wOZlTAV&9CI6maJGQ)e+M(8$KZJO%w;S?fb?U;|Ckf@bhilHC-% zhDPIoG#dA(ks4OsJ+vYFXhYs9Y{=0fz#x!xyo()jA6F#@UPE1YbFChK*T5Q%QhZDb z`~Z*OgOKM(g&RO3^dgFMXCq9Das2VAr=!U6L<8iChLLXYXNJw-&*cVx-lvzt!92s} za;gSZ1e;3(3}FYmXo!3(CI%njv(=9m>Vd%An3PZZ13CC~js~Sh+tWj!^55B>V4q3~ zk!`4Z*?-WSRyYE$qH?{7{qscGw-7LR^J9NtC5r4#%#z=p5D_sjtB>KSwNXtBEEBH+ z^YEj*m1_-N8q;X@!U+bACU6%&!lsD23SLS6juDBl(3jW7g~4ytytY6lBf;b(c^kM? zL{M)+;uYn%jQ;72X^n-W?Zy|%o!2q9DwLAUZU{8Ys2Jn=e10@(sclE4rEt(OO`;ya@Xp7E>WMJfkgvh7*x zJ-#jwyMZvysfi(CrX)ft)XG|JMuez%E=IgHc`bpRNCaVlr)}bCC!VUrQw^Rrizh5I z1)dX6+wt@ip3tzL#E(+V!ms7iYkXQEB5g&ahxk-j56M$l1Ibgk6_TfL56_nMVfCtz zt5=2Fg}T_KCoY~20#2=~`f|Bztc$e1j@PvEz&=sWUv?^1dT(-Y|UMI^uhf94#P%=rR* zOkERLEa^gCY&eeekp&xu{qLa)pSvIU5*%aT_?^U2g~cp~_*`}*2G?ARiAlPJyvGqv zu&CnqWYKNXV}k4BaEF*8f4CYBXoUP3B!5!nk1)7ptZswa67N4zCp=fc7@A?V)s56K z1>517g8BjDQA15fD5zOO71uHQq6W3Nfc_@pD5r7IorGHo-7-43r9hLy)LP9ef%sJO zW~wXav29>0KJNDnl^?g-{eOVl=m)Gw9HqJxKE|v61VA`6;A&@>$(vZehJXC*UV`-< z{o{|y`i4=r6aRRZNJannW~>Rh^i6V2!}O1Dj`+vlWT3~wQRn{gM`^%DqsF}sHZJ^s z2`4Uqhuird7wdn5>_Hp(gEg3twM(sEwUhlM>TMIXe@Oq_dsg{34fQw)nQ>a zG`j#pW?8X!ynWRp+0Cxc%4WKcdBz{3YeoAfPH+J;E;txU zGIl!PXY(4gRQeFyVUzZGv`6D){Di36X=J{Hsx~J}8?Hj}DNK@aNqorD)@8{BxLS91 zmQOg|D%FYf#CsSPHl;exs#K3ps4V{W&m9($4cM-=3==1bMgO){}pW*@<>H& z=a=x+pMl&kkwy%0pg$r#C?f^$WRvrLiMe9T4sH5s1yjYBTQQf6`GODV|N3trBC(AH z{%PU?4s}5U=7^J`oXseImDQY-M(hF7{&nxF9h(QByma$V@vcZk{f{|`I)?0Q!(%;4 zmHnRL`92yER`GFpQM@w+>I;!au4q;~1&neMCw$~$Mi`>FOY$zWX}OpghS;hG@jKj$ z?AAJL#n_cmKN4;QPx(iJz5~kBJM6pF6PP`_t00ZMQ=7u>bj(ew_M&6+HKm@@rLeJOH>-L+9!yxal9zU-=s|F(%5~$U!=|^&$`cQn9-)D2847 z`kU&*QVCD%7*hPVe&2Zsy!1vL8 z6gwkAF1UM6)?Gk?hAno6HH+7i^-=O2M~O68?9hqylkXa=b}KM{X6Gd@>GlU}cAjI2 z5P_zPxuHamUlIS|7yGm9XkSMZ%pNXSa*wz(4AY0B#`Hm4rbbuh8t6S1>C;>w+^mP5 zQL*bQoCIL6?=K!4`bj7bn&%p%z}-DYFE@5@@2(e4ZsQ;paeufZ0(> z_%h%VFzim268;wu-dWGncd;a$@Fww{k0pZ$uM;rjjin@$aJhi_sbmDL0n3_s7TOEwa&67YS5HxZ^6YWVqScr4jMc%6V}60Ra# zE?|;YQbV{@!1D=JMp;ReDv0w(Dtjf67={0QMD!s!AoC#(~82)Kf9 zh_FS#m4w>}hae%s&p$!f0&yK^67V|0ymuhbAmH_cxgRdz6YxgDsf4Qp{2XDf1Ozq- zcoSiY|G+u{zd)G#?E>Wj-a>c;;Zgy=L^y}=Gyzu;=I|1533w}E7vUTM*ASjUI8(se z3DfiwNEfh=a0y|DfOiruC2SEeSzEG{a0sS~@bh~JmlJLhFj-wvNw`74`w6cj>=Q6q zU$T*Km4FWu-b8qlfSU+!A-qn&M+sLEE*CJXrlf{&seqda`v^}HFsrJhp0G>6UlDE~ zoFiaXT}dP1OaXsOxQTGOfGv0|(Fr>Q%zJ1`LWC^>wi9k69D>aP{hu(MkpfKub`Z7` zZV+$^VFzKKfKv&l60Q<3HO>+`HUu^aIGyky!s`S~&!Cb_!sP-UM0f<@QUMPkOiNr~ znt(G27Z7#{co<<9;T!>vAUuU|rhrEgo<=xbz&V6V2s;EkhHxoii+~FVFC`p;nFIZw za5>>70lNrS5^fOiB*N)72$FLmk_QY zTq@vsgnfjk3AmJSJzw6l|Agt)8fX%*gRq@&gMd>AI|%y(oJu&AaFu}52&WU? zB;a(yg9xt^@BqS@gv$jyi0}x)r2-y8IEU~w0cR2}AnX$GFv2dvIRYL*cnaZ60goa) zjc~eva|o9Zb_jS3;ZnjD0T&QnN;m}9C-i^9<%F9A>>^xAxIw^^2(KgT6Yvzm8wpnl zm`+h8n+R_b@HE0(2(J_HOu|)!%LQCQxQ1}4fO+CfiI4C!0hbc4C+re%8Q})PIRaiv zxRG$CfFB{;L^xf*<%D&@4gpsX4iUBpxRP)i;ShElq5l)MV0|XgB;a*~?SvZyyq>Uw zuus4n3G+y&K$U=>Bb-inlYlo79z=MZfL|b-Nw{3VTL_OJTq@v~2K?o6sa{Cr= z?Ha4aH`r=n{WMHNT>Spk_zf7pe>8sIHh$~zi>)D+FY$Xhepz;?s0)}Dc3n%_GZsrP z{HEdq?D*n4RJaBA;Ta2TmSI1$SlC)a=Q(gRlW%GeR{&Ey4kWV+bt>i7SyFVIabAggk^|gxLs-5!N7VK-i2>jZlkl z0O1%y3qs#uXhBGQ(gRlW%GXnp%W9)81*og71 z;CBg@aR@GiNeELA?n9V{FcYB!VID#$LK(tRghvp{5h@TW5uQL;hp--DBf@hCn-E?= z*n;p9LKVVRgc^kH2tI_J2n`6|n&A(iFL(aTg$w4)OdphW!|>~ejTk;`NcuIU4=%v} z4=k8hhM#$51Rk2lcMnWoG;3!1g8AtSZ@eM%#^E>3%1ECvZ~FWP(-+TLxM&XEXJrq~ z9GaCrsHCi{bkWV%T{m4~ANt^e1rN@fwP=BR;fz^BXDoQ=y0Qfe=FKRXK4<=Q^X4sn z=-SeS3+B$6QI?*4)AZrl*$>PfHX`f#=~*LYKQR2pn`T^p(@oj4Z@fNx`1E1ZAGm&a z_OO}PXIRF~ng9J+3vW&zH*SoPYiC9I4{mX=w-7W@Zx zJTz-Q9_BA7n>Ezr*qoW-9bybEorjMLXU&rj4=h?_89H;>{6%F8EkkFO+&_Ea^oM5M zUosQWgY(@(jheV0;LPb|(?z<43uJnvii;%iEPF`4ESbKjM8sRT;QrF-GiT13|6nu& zM42(;{#i?B%qlIrzij#g^JW?JGS3IxbLP#wcFs(JZ~8-XW>|(UDgk|n2ZReqhor_F z4bJ`BA5pp?um?@TK+3Q&CK={E;%_hhH{)>z&M?6E#ve1@dOULsB|eU)3_1N}S|kzi zIKHk$;8@9c96uQb0f{+w@;$=?2pn7a%<+|B8lFiDAIJY&jd-K+OZ|eu)Gt!-&WzWJXX3uz zl5QFFJj#mT>Vp@?A93;TZ3M;><=u|*B9xO5b#@H{Z%k9EdBmXmKqJm?rcgb*v-_%q`@44CoAFV3l| zAfro6=HZ=5ALC$IR>Y%Tm5S-M$qT%W#5;;-=1COPchV8B3D0Z?{3AZ5quyucYxxPd zs6yW3o%v_xdm~<$@u&yRL_Aw3^le5w;^n83=TL?xFc!qbBM$zB5lnm~FUfeD_`&!y z^UVir;P(4V#u*9{9%HnYrA-eV);Ll C(;l|~ diff --git a/Knossos.NET.Android/natives/x86_64/libtouchcontrols.so b/Knossos.NET.Android/natives/x86_64/libtouchcontrols.so index 3498866417492ba70a3b690de06d312a118c708c..a253fa42b932f2e6c3c1442c4fec6b8f09ceaa0f 100644 GIT binary patch literal 367560 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≈ou3LU>nB;Jxwu|68- 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