Skip to content

Commit 33a3ebc

Browse files
author
github-actions[bot]
committed
Update android-project
1 parent 1bc90f7 commit 33a3ebc

File tree

9 files changed

+134
-475
lines changed

9 files changed

+134
-475
lines changed

app/proguard-rules.pro

Lines changed: 28 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
# directive in build.gradle.
66
#
77
# For more details, see
8-
# http://developer.android.com/guide/developing/tools/proguard.html
8+
# https://developer.android.com/build/shrink-code
99

1010
# Add any project specific keep options here:
1111

@@ -17,73 +17,59 @@
1717
#}
1818

1919
-keep,includedescriptorclasses,allowoptimization class org.libsdl.app.SDLActivity {
20-
void manualBackButton();
21-
boolean setActivityTitle(java.lang.String);
22-
void setWindowStyle(boolean);
23-
void setOrientation(int, int, boolean, java.lang.String);
24-
void minimizeWindow();
25-
boolean shouldMinimizeOnFocusLoss();
26-
boolean isScreenKeyboardShown();
27-
boolean supportsRelativeMouse();
28-
boolean setRelativeMouseEnabled(boolean);
29-
boolean sendMessage(int, int);
20+
java.lang.String nativeGetHint(java.lang.String); # Java-side doesn't use this, so it gets minified, but C-side still tries to register it
21+
java.lang.String clipboardGetText();
22+
boolean clipboardHasText();
23+
void clipboardSetText(java.lang.String);
24+
int createCustomCursor(int[], int, int, int, int);
25+
void destroyCustomCursor(int);
3026
android.content.Context getContext();
31-
boolean isAndroidTV();
32-
boolean isTablet();
33-
boolean isChromebook();
34-
boolean isDeXMode();
3527
boolean getManifestEnvironmentVariables();
36-
boolean showTextInput(int, int, int, int);
3728
android.view.Surface getNativeSurface();
3829
void initTouch();
30+
boolean isAndroidTV();
31+
boolean isChromebook();
32+
boolean isDeXMode();
33+
boolean isScreenKeyboardShown();
34+
boolean isTablet();
35+
void manualBackButton();
3936
int messageboxShowMessageBox(int, java.lang.String, java.lang.String, int[], int[], java.lang.String[], int[]);
40-
boolean clipboardHasText();
41-
java.lang.String clipboardGetText();
42-
void clipboardSetText(java.lang.String);
43-
int createCustomCursor(int[], int, int, int, int);
44-
void destroyCustomCursor(int);
45-
boolean setCustomCursor(int);
46-
boolean setSystemCursor(int);
47-
void requestPermission(java.lang.String, int);
37+
void minimizeWindow();
4838
int openURL(java.lang.String);
39+
void requestPermission(java.lang.String, int);
4940
int showToast(java.lang.String, int, int, int, int);
50-
native java.lang.String nativeGetHint(java.lang.String);
41+
boolean sendMessage(int, int);
42+
boolean setActivityTitle(java.lang.String);
43+
boolean setCustomCursor(int);
44+
void setOrientation(int, int, boolean, java.lang.String);
45+
boolean setRelativeMouseEnabled(boolean);
46+
boolean setSystemCursor(int);
47+
void setWindowStyle(boolean);
48+
boolean shouldMinimizeOnFocusLoss();
49+
boolean showTextInput(int, int, int, int, int);
50+
boolean supportsRelativeMouse();
5151
int openFileDescriptor(java.lang.String, java.lang.String);
5252
boolean showFileDialog(java.lang.String[], boolean, boolean, int);
53-
native void onNativeFileDialog(int, java.lang.String[], int);
5453
}
5554

5655
-keep,includedescriptorclasses,allowoptimization class org.libsdl.app.HIDDeviceManager {
56+
void closeDevice(int);
5757
boolean initialize(boolean, boolean);
5858
boolean openDevice(int);
59-
int writeReport(int, byte[], boolean);
6059
boolean readReport(int, byte[], boolean);
61-
void closeDevice(int);
60+
int writeReport(int, byte[], boolean);
6261
}
6362

6463
-keep,includedescriptorclasses,allowoptimization class org.libsdl.app.SDLAudioManager {
6564
void registerAudioDeviceCallback();
6665
void unregisterAudioDeviceCallback();
67-
int[] audioOpen(int, int, int, int, int);
68-
void audioWriteFloatBuffer(float[]);
69-
void audioWriteShortBuffer(short[]);
70-
void audioWriteByteBuffer(byte[]);
71-
int[] captureOpen(int, int, int, int, int);
72-
int captureReadFloatBuffer(float[], boolean);
73-
int captureReadShortBuffer(short[], boolean);
74-
int captureReadByteBuffer(byte[], boolean);
75-
void audioClose();
76-
void captureClose();
7766
void audioSetThreadPriority(boolean, int);
78-
int nativeSetupJNI();
79-
void removeAudioDevice(boolean, int);
80-
void addAudioDevice(boolean, java.lang.String, int);
8167
}
8268

8369
-keep,includedescriptorclasses,allowoptimization class org.libsdl.app.SDLControllerManager {
8470
void pollInputDevices();
8571
void pollHapticDevices();
8672
void hapticRun(int, float, int);
73+
void hapticRumble(int, float, float, int);
8774
void hapticStop(int);
88-
void hapticRumble(int, float , float, int);
8975
}

app/src/main/AndroidManifest.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232
android:required="false" />
3333

3434
<!-- Audio recording support -->
35-
<!-- if you want to capture audio, uncomment this. -->
35+
<!-- if you want to record audio, uncomment this. -->
3636
<!-- <uses-feature
3737
android:name="android.hardware.microphone"
3838
android:required="false" /> -->
@@ -55,7 +55,7 @@
5555
<!-- Allow access to the vibrator -->
5656
<uses-permission android:name="android.permission.VIBRATE" />
5757

58-
<!-- if you want to capture audio, uncomment this. -->
58+
<!-- if you want to record audio, uncomment this. -->
5959
<!-- <uses-permission android:name="android.permission.RECORD_AUDIO" /> -->
6060

6161
<!-- Create a Java class extending SDLActivity and place it in a

app/src/main/java/org/libsdl/app/HIDDeviceManager.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -281,6 +281,7 @@ private boolean isXboxOneController(UsbDevice usbDevice, UsbInterface usbInterfa
281281
0x044f, // Thrustmaster
282282
0x045e, // Microsoft
283283
0x0738, // Mad Catz
284+
0x0b05, // ASUS
284285
0x0e6f, // PDP
285286
0x0f0d, // Hori
286287
0x10f5, // Turtle Beach
@@ -598,7 +599,13 @@ public boolean openDevice(int deviceID) {
598599
} else {
599600
flags = 0;
600601
}
601-
mUsbManager.requestPermission(usbDevice, PendingIntent.getBroadcast(mContext, 0, new Intent(HIDDeviceManager.ACTION_USB_PERMISSION), flags));
602+
if (Build.VERSION.SDK_INT >= 33 /* Android 14.0 (U) */) {
603+
Intent intent = new Intent(HIDDeviceManager.ACTION_USB_PERMISSION);
604+
intent.setPackage(mContext.getPackageName());
605+
mUsbManager.requestPermission(usbDevice, PendingIntent.getBroadcast(mContext, 0, intent, flags));
606+
} else {
607+
mUsbManager.requestPermission(usbDevice, PendingIntent.getBroadcast(mContext, 0, new Intent(HIDDeviceManager.ACTION_USB_PERMISSION), flags));
608+
}
602609
} catch (Exception e) {
603610
Log.v(TAG, "Couldn't request permission for USB device " + usbDevice);
604611
HIDDeviceOpenResult(deviceID, false);

app/src/main/java/org/libsdl/app/SDL.java

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,10 @@ public static Context getContext() {
3838
}
3939

4040
public static void loadLibrary(String libraryName) throws UnsatisfiedLinkError, SecurityException, NullPointerException {
41+
loadLibrary(libraryName, mContext);
42+
}
43+
44+
public static void loadLibrary(String libraryName, Context context) throws UnsatisfiedLinkError, SecurityException, NullPointerException {
4145

4246
if (libraryName == null) {
4347
throw new NullPointerException("No library name provided.");
@@ -53,10 +57,10 @@ public static void loadLibrary(String libraryName) throws UnsatisfiedLinkError,
5357
// To use ReLinker, just add it as a dependency. For more information, see
5458
// https://github.com/KeepSafe/ReLinker for ReLinker's repository.
5559
//
56-
Class<?> relinkClass = mContext.getClassLoader().loadClass("com.getkeepsafe.relinker.ReLinker");
57-
Class<?> relinkListenerClass = mContext.getClassLoader().loadClass("com.getkeepsafe.relinker.ReLinker$LoadListener");
58-
Class<?> contextClass = mContext.getClassLoader().loadClass("android.content.Context");
59-
Class<?> stringClass = mContext.getClassLoader().loadClass("java.lang.String");
60+
Class<?> relinkClass = context.getClassLoader().loadClass("com.getkeepsafe.relinker.ReLinker");
61+
Class<?> relinkListenerClass = context.getClassLoader().loadClass("com.getkeepsafe.relinker.ReLinker$LoadListener");
62+
Class<?> contextClass = context.getClassLoader().loadClass("android.content.Context");
63+
Class<?> stringClass = context.getClassLoader().loadClass("java.lang.String");
6064

6165
// Get a 'force' instance of the ReLinker, so we can ensure libraries are reinstalled if
6266
// they've changed during updates.
@@ -66,7 +70,7 @@ public static void loadLibrary(String libraryName) throws UnsatisfiedLinkError,
6670

6771
// Actually load the library!
6872
Method loadMethod = relinkInstanceClass.getDeclaredMethod("loadLibrary", contextClass, stringClass, stringClass, relinkListenerClass);
69-
loadMethod.invoke(relinkInstance, mContext, libraryName, null, null);
73+
loadMethod.invoke(relinkInstance, context, libraryName, null, null);
7074
}
7175
catch (final Throwable e) {
7276
// Fall back

0 commit comments

Comments
 (0)