diff options
| author | JosJuice <josjuice@gmail.com> | 2021-04-18 18:33:43 +0200 |
|---|---|---|
| committer | JosJuice <josjuice@gmail.com> | 2021-04-18 18:33:43 +0200 |
| commit | 5a1a642495d62854af90602068dfb97598e09e38 (patch) | |
| tree | 02ecd74bcc3e26a3b990cd88409905fb4acade54 /Source/Android/app/src/main/java | |
| parent | 53222560650e4a99eceafcd537d4e04d1c50b3a6 (diff) | |
Android: Early changes to adapt for Android 12
We don't actually need to do this until we bump targetSdkVersion
to Android 12 (which we can't do yet since we're not compatible
with scoped storage), but I figured I'd get it out of the way early.
Not tested on Android 12, but tested to not break stuff on Android 10.
Diffstat (limited to 'Source/Android/app/src/main/java')
| -rw-r--r-- | Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/Java_GCAdapter.java | 13 | ||||
| -rw-r--r-- | Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/Java_WiimoteAdapter.java | 14 |
2 files changed, 17 insertions, 10 deletions
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/Java_GCAdapter.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/Java_GCAdapter.java index 060040890d..7d0af9e63c 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/Java_GCAdapter.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/Java_GCAdapter.java @@ -11,6 +11,7 @@ import android.hardware.usb.UsbDeviceConnection; import android.hardware.usb.UsbEndpoint; import android.hardware.usb.UsbInterface; import android.hardware.usb.UsbManager; +import android.os.Build; import android.widget.Toast; import androidx.annotation.Keep; @@ -46,11 +47,13 @@ public class Java_GCAdapter { if (!manager.hasPermission(dev)) { - Intent intent = new Intent(); - PendingIntent pend_intent; - intent.setClass(context, USBPermService.class); - pend_intent = PendingIntent.getService(context, 0, intent, 0); - manager.requestPermission(dev, pend_intent); + Intent intent = new Intent(context, USBPermService.class); + + int flags = Build.VERSION.SDK_INT >= Build.VERSION_CODES.M ? + PendingIntent.FLAG_IMMUTABLE : 0; + PendingIntent pendingIntent = PendingIntent.getService(context, 0, intent, flags); + + manager.requestPermission(dev, pendingIntent); } } } diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/Java_WiimoteAdapter.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/Java_WiimoteAdapter.java index 1892e3f597..f3e5e5274c 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/Java_WiimoteAdapter.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/Java_WiimoteAdapter.java @@ -9,6 +9,7 @@ import android.hardware.usb.UsbDeviceConnection; import android.hardware.usb.UsbEndpoint; import android.hardware.usb.UsbInterface; import android.hardware.usb.UsbManager; +import android.os.Build; import androidx.annotation.Keep; @@ -50,11 +51,14 @@ public class Java_WiimoteAdapter if (!manager.hasPermission(dev)) { Log.warning("Requesting permission for Wii Remote adapter"); - Intent intent = new Intent(); - PendingIntent pend_intent; - intent.setClass(context, USBPermService.class); - pend_intent = PendingIntent.getService(context, 0, intent, 0); - manager.requestPermission(dev, pend_intent); + + Intent intent = new Intent(context, USBPermService.class); + + int flags = Build.VERSION.SDK_INT >= Build.VERSION_CODES.M ? + PendingIntent.FLAG_IMMUTABLE : 0; + PendingIntent pendingIntent = PendingIntent.getService(context, 0, intent, flags); + + manager.requestPermission(dev, pendingIntent); } } } |
