57 Commits
Author SHA1 Message Date
Le Philousophe f928dae6d9 ANDROID: Various cleanups
- Add code regions to allow for easy folding
- Sort permissions and features and add new ones.
2026-01-24 12:44:54 +01:00
Le Philousophe 8295272cd2 ANDROID: Fix long-press on back button handling on Android 14 and 15
The onBack events in these versions are emulated from the OnBackInvokedCallback
So, enable the OnBackAnimationCallback handler as soon as it's available.
Use a stylable value for that and make it depend on API level 34+.
2025-11-06 08:47:04 +01:00
Le Philousophe 7650456a0e ANDROID: Introduce back long-press on back button handling
This allows to display the system menu.
It needs Android 14 so we can't set enableOnBackInvokedCallback to true
because we would get an incomplete behaviour on Android 13.
In this case, the feature is only enabled starting with Android 16, so
don't register our handler before.
2025-11-02 09:13:16 +01:00
Le Philousophe bb0cb35ecb ANDROID: Opt-in for safer Intents
Nothing else needs to be done.
2025-08-04 11:56:44 +02:00
Le Philousophe 5ea3ac6d51 ANDROID: Add support for predictive back gestures
This should make the code future proof.
With this flag enabled, the KEYCODE_BACK event is never sent through
the onKey callback but using a dedicated callback.
2024-11-12 22:39:58 +01:00
Le Philousophe e70b758496 ANDROID: Add UI to add game shortcuts on the launcher
The UI is started using the standard "Add widget" feature from the
launcher.
Loading of game icons is quite slow and could be optimized later.
2024-06-01 12:44:11 +02:00
Le Philousophe 497cd57483 ANDROID: Fix deprecation warnings in Manifest 2024-06-01 12:44:11 +02:00
Le Philousophe 12cf731fb6 ANDROID: Fix style of manifest 2024-06-01 12:44:11 +02:00
antoniou79 231a58ee35 ANDROID: Restore LEANBACK_LAUNCHER category for splash activity
This was previously removed in commit 5cb87c1eca

We removed it when nearing the (then) upcoming 2.7.1 release, Play Store blocked the apk publishing because of this category's inclusion.
At the time, Play Store's error message was:
 The app is published as an apk that supports TV. In other words, it contains <category android:name="android.intent.category.LEANBACK_LAUNCHER"/>
 under one of the intent-filter of the main activity . It must be published as an app bundle instead.

Which was due to "Following June 30, 2023, Google Play will no longer support TV app updates in APK. All TV app updates must be published with Android App Bundles (AAB)."

Since 2.8.0 we publish to the Play Store in app bundle format, so it should be ok to restore the category. However, this does not necessarily mean
that the app will work on Android / Google TVs without issues. More testing and user feedback might be required.
2024-01-31 14:52:20 +02:00
Le Philousophe 734c46587f ANDROID: Set a different package name for debug builds
This allows to have official release and daily builds side by side
2024-01-14 16:53:24 +01:00
antoniou79 a674b65c95 ANDROID: Support connection change for some bluetooth keyboards
Some bluetooth keyboards also need "navigation" supported as configuration change

Tested with a new Lamtech bluetooth (BLE5) keyboard and also this is suggested here as well:
https://stackoverflow.com/a/27238892
2023-08-12 20:34:58 +03:00
antoniou79 5cb87c1eca ANDROID: Remove LEANBACK_LAUNCHER from AndroidManifest
Since June 30, 2023 Play Store requires TV apps that use this category to use the app bundle distribution model

Since we currently build separate APKs this removal is a temporary measure for the upcoming release of 2.7.1.
However, we should re-instate the tag when we switch to the App Bundle distribution module and perhaps investigate, test
and resolve any other issues related to running the ScummVM Android app for TVs.
2023-07-18 11:32:05 +03:00
Le Philousophe 7af3a4571e ANDROID: Allow resizable activities 2023-06-26 15:25:27 +03:00
Cameron Cawley 33b09af3b2 ANDROID: Allow screen rotation 2023-06-26 15:25:27 +03:00
antoniou79 cc37cb6f32 ANDROID: Update some properties in AndroidManifest
This is according to Lint suggestions mostly
2023-03-27 21:08:31 +03:00
Le Philousophe f7fc60d045 ANDROID: Make sure ScummVMActivity is always run once
We don't support having multiple instances of ScummVMActivity running at
the same time (because of the system singleton in C++).
2023-03-18 12:01:05 +01:00
Le Philousophe c84c9cd313 ANDROID: Update build tools
Update minSdkVersion to fit with what the code do
2023-01-20 14:14:03 +01:00
Le Philousophe 706de81bb0 ANDROID: Switch to GLES2 2021-11-29 00:04:45 +01:00
antoniou 0de952a59c ANDROID: Raise targetsdk to 29 but make use of requestLegacyExternalStorage
Also some fixes for deprecated warnings
2020-11-07 23:38:03 +02:00
antoniou 7551d119e2 ANDROID: Fix crash when connecting or disconnecting physical keyboard
And also add some code to load and use the keyCharacterMap of the source device for the event

It is unclear if getUnicodeChar() already does this (loads the keyCharacterMap of the source device.
If it does, then the extra code is redundant.
2020-10-17 21:40:08 +03:00
antoniou 4ea7455e09 ANDROID: Splash screen and additional locations to search for config and saves
The splash screen is an addition that was "forced" by the need to allow for permission granted to access external physical storage
2020-09-29 22:10:56 +03:00
Matthew Duggan 8fd6a1a452 ANDROID: Add more icon variants
This makes the icon render much better on Android 11 and Chromebook devices.  I
think it should also be backwards compatible - although the oldest device I had
to test was Android 7, it works fine there.
2020-09-27 13:14:15 +09:00
Peter Kohaut 470a1d3586 ANDROID: Switch to Gradle
Updated NDK to r21 (LTS)
Switch target Android to 29 as it is required by Google Play Store
Switch minimum Android to 16 (4.1) as it is the lowest supported version by NDK
Removed MIPS and armeabi as they are no longer supported
Renamed Android build names into official ones
2020-03-27 22:45:25 +01:00
Thanasis Antoniou e7a19d378e ANDROID: Disable support for split screen
Currently the ScummVM app will just exit in split-screen so that's not desireable

Disabled until we implement proper support, if deemed necessary
2019-11-10 17:05:20 +02:00
Thanasis Antoniou 4eecfb8da9 ANDROID: Disable verification of certificates validity for cloud saving
Also added macros for the plain (non-SDL) Android port __ANDROID_PLAIN_PORT__ and ANDROID_PLAIN_PORT

The workaround of this commit uses the same logic as for the Nintendo Switch port and should suffice for testing purposes. It should be replaced by more elaborate code of installing and maintaining a certificates pem file.
2019-11-01 19:13:27 +02:00
Thanasis Antoniou 4e248a70bf ANDROID: Set target sdk to 28 in project.properties
Also minor additions of tags in Manifest files
2019-10-21 13:59:00 +03:00
Thanasis Antoniou 4762b02a52 ANDROID: Set target SDK to 28 2019-10-21 12:39:32 +02:00
Thanasis Antoniou 30b789de39 ANDROID: Set target SDK to 26 to AndroidManifest.xml and project.properties files 2019-10-05 23:57:35 +03:00
Eugene Sandulenko 3c92722db6 ANDROID: Request permissions to external storage 2019-09-27 00:22:20 +02:00
Eugene Sandulenko 41b49444b6 RELEASE: This is 2.2.0git 2019-09-23 00:12:30 +02:00
Thierry Crozat cd7e6cd31c RELEASE: This is 2.1.0git 2017-11-30 00:13:10 +00:00
Colin Snover 404657d80d ANDROID: Remove unnecessary additional activity
For an unknown reason, having a second activity for Android TV
(Leanback) caused ScummVM to be broken on some Android devices.
According to Android documentation, TV can be supported in the same
activity as everything else, so merge the two together.

Fixes Trac#10024.
2017-11-23 14:02:55 -06:00
Colin Snover 583c7cf622 ANDROID: Clean up AndroidManifest.xml
Keep uses-flags at the top to avoid them getting buried below
the activities, update target SDK to the minimum supported by
current Android SDKs, make Wi-Fi optional, and add screenSize
configuration change recommended by the Android documentation since
orientation is already supported.
2017-11-23 14:02:55 -06:00
Colin Snover c13defd661 RELEASE: 1.10 will henceforth be known as 2.0
General consensus on the ML was that people wanted to do this.
http://lists.scummvm.org/pipermail/scummvm-devel/2017-November/012008.html
2017-11-21 15:26:52 -06:00
Eugene Sandulenko 53790e7497 RELEASE: This is 1.10.0git 2016-09-26 20:57:54 +02:00
Alexander Tkachev a13e03e988 CLOUD: Add Networking::Connection::isLimited()
`false` everywhere by default, but works on Android (`true` if not
Wi-Fi).
2016-08-24 16:07:55 +06:00
Alyssa Milburn ce9573c8c5 ANDROID: Relax manifest hardware requirements.
This is necessary to make the package installable via Google Play for
almost all modern devices.
2016-06-12 08:55:21 +02:00
Matthew Garrett 497859ad90 ANDROID: Add support for Leanback Launcher on Android TV
Android TV needs some modifications to the manifest and a new icon in order
for apps to appear in the launcher.
2016-05-22 15:23:44 -07:00
Eugene Sandulenko 0930018045 RELEASE: This is 1.9.0git 2016-02-05 23:31:25 +01:00
Joel Teichroeb 59934881a1 ANDROID: Remove unpacker and fix support for non arm 2015-01-05 20:18:31 -08:00
Eugene Sandulenko 3c6284a1c7 RELEASE: This is 1.8.0git 2014-06-30 23:55:38 +03:00
Marcus Comstedt 9a888ed1c8 ANDROID: Add OUYA icon and intent 2013-08-07 17:19:24 +02:00
Eugene Sandulenko e10eb97126 RELEASE: This is 1.7.0git 2013-05-05 00:42:10 +03:00
Eugene Sandulenko 6387e3bca7 RELEASE: This is 1.6.0git 2012-07-08 22:30:05 +03:00
Alyssa Milburn 44b7f3aed5 ANDROID: Move from org.inodes.gus to org.scummvm. 2011-10-25 21:18:42 +02:00
Alyssa Milburn 456b950c52 ANDROID: Add a shared user id.
Otherwise the plugins fail to run on modern Android because they're set
to run in-process but they're not allowed to do so.
2011-10-22 20:47:02 +02:00
Eugene Sandulenko 2c73500842 RELEASE: This is 1.5.0git 2011-10-20 12:39:29 +01:00
Christoph Mallon 23a0f5318c JANITORIAL: Remove trailing empty lines. 2011-08-07 13:53:33 +02:00
Eugene Sandulenko 204a9c2e51 RELEASE: This is 1.4.0git 2011-05-01 14:44:20 +03:00
dhewg b0351e1b85 ANDROID: Automate the Manifest's versionCode 2011-04-09 18:40:04 +02:00