Robin Kertels
23bebc5270
VideoBackends:Vulkan: Allow loading custom drivers on Android
...
... using libadrenotools
2023-06-11 13:52:34 +02:00
Charles Lombardo
28785c5fad
Android: Convert SaveLoadStateFragment to Kotlin
2023-06-11 00:53:26 -04:00
Charles Lombardo
d26eddd4e2
Android: Convert MenuFragment to Kotlin
2023-06-11 00:53:26 -04:00
Charles Lombardo
afb6719a1a
Android: Convert EmulationFragment to Kotlin
2023-06-11 00:53:26 -04:00
Charles Lombardo
7e7cd6ff76
Android: Convert CustomFilePickerFragment to Kotlin
2023-06-11 00:53:26 -04:00
Admiral H. Curtiss
a7678f3210
Merge pull request #11694 from jnaidu360/skylanders-portal-window
...
Skylanders Portal Menu Navigational Improvements
2023-06-06 19:20:39 +02:00
Charles Lombardo
05b1aa3775
android: Fix compilation error from Kotlin changes
...
Since the ThemeProvider interface changed `fun getThemeId()` to `var themeId`, I had to adjust how it was used in the EmulationActivity. Similar case for `fun getConfiguredControllerType()`.
2023-06-06 12:36:21 -04:00
JosJuice
2d56daf1bb
Merge pull request #11873 from AdmiralCurtiss/pause-and-lock-host
...
Core: Assert that only the Host thread may call PauseAndLock().
2023-06-06 13:50:20 +02:00
JosJuice
83b4af86b6
Merge pull request #11892 from t895/kotlin-adapters
...
Android: Convert "adapters" package to Kotlin
2023-06-06 13:06:56 +02:00
JosJuice
04fab7f2b2
Merge pull request #11884 from t895/kotlin-overlay
...
Android: Convert InputOverlay to Kotlin
2023-06-06 13:03:39 +02:00
JosJuice
36ca747d55
Merge pull request #11886 from t895/kotlin-ui
...
Android: Convert "ui" package to Kotlin
2023-06-06 13:03:02 +02:00
Charles Lombardo
f117e8a2f9
Android: Convert PlatformGamesView to Kotlin
2023-06-05 20:08:54 -04:00
Charles Lombardo
3e8d6b8aa2
Android: Convert PlatformGamesFragment to Kotlin
2023-06-05 20:08:54 -04:00
Charles Lombardo
0915bfbb30
Android: Convert Platform to Kotlin
2023-06-05 20:08:54 -04:00
Charles Lombardo
90ac08c98d
Android: Convert NVidiaShieldWorkaroundView to Kotlin
2023-06-05 20:08:54 -04:00
Charles Lombardo
2434c2db59
Android: Convert TvMainActivity to Kotlin
2023-06-05 20:08:53 -04:00
Charles Lombardo
ecd62b2211
Android: Convert ThemeProvider to Kotlin
2023-06-05 20:08:53 -04:00
Charles Lombardo
b5c63b995c
Android: Convert MainView to Kotlin
2023-06-05 20:08:53 -04:00
Charles Lombardo
01d4e6fe87
Android: Convert MainPresenter to Kotlin
2023-06-05 20:08:53 -04:00
Charles Lombardo
18a03e69a9
Android: Convert MainActivity to Kotlin
2023-06-05 20:08:53 -04:00
Charles Lombardo
dff2d8111c
Android: Convert CustomTitleView to Kotlin
2023-06-05 20:08:52 -04:00
Charles Lombardo
a1d027fe07
Android: Convert SettingsRowPresenter to Kotlin
2023-06-05 15:44:26 -04:00
Charles Lombardo
e4935d4b12
Android: Convert PlatformPagerAdapter to Kotlin
2023-06-05 15:44:26 -04:00
Charles Lombardo
0bd0fa4f44
Android: Convert InputOverlayPointer to Kotlin
2023-06-05 14:29:48 -04:00
Charles Lombardo
ddb0de0410
Android: Convert InputOverlayDrawableJoystick to Kotlin
2023-06-05 14:29:39 -04:00
Charles Lombardo
fb60b708f5
Android: Convert InputOverlayDrawableDpad to Kotlin
2023-06-05 14:29:31 -04:00
Charles Lombardo
500f1f1861
Android: Convert InputOverlayDrawableButton to Kotlin
2023-06-05 14:29:31 -04:00
Charles Lombardo
9828ffe250
Android: Convert InputOverlay to Kotlin
2023-06-05 14:29:31 -04:00
Charles Lombardo
e6d8694cbe
Android: Convert AppLinkActivity to Kotlin
2023-06-05 14:10:06 -04:00
Charles Lombardo
cbca383bd2
Android: Convert CustomFilePickerActivity to Kotlin
2023-06-05 14:10:06 -04:00
Charles Lombardo
03675f7677
Android: Convert EmulationActivity to Kotlin
2023-06-05 14:10:05 -04:00
jnaidu360
66f4902a1e
Improved Skylanders Portal Window Navigation
...
Adds features to improve navigation of Skylanders portal menu, includes:
-List of Skylanders and filters for searching
-Improved buttons for faster loading options
-Added default user folder for storing .sky files
2023-06-04 18:10:08 -07:00
Admiral H. Curtiss
b3c9f49cbe
Core: Assert that only the Host thread may call PauseAndLock().
2023-06-02 18:51:43 +02:00
JosJuice
3a81463e68
Android: Fix submenus for Wii Remote 2-4
...
Accessing any of the submenus "Buttons", "Motion Simulation" or
"Motion Input" for Wii Remotes 2-4 would actually lead to the
corresponding submenu for Wii Remote 1.
2023-06-01 20:17:50 +02:00
Charles Lombardo
faa2b28e6b
Merge pull request #11835 from JosJuice/android-analytics-race
...
Android: Don't show analytics dialog for destroyed activity
2023-05-28 17:14:36 -04:00
Joshua de Reeper
cf3e8714eb
Android: Add Hashmap to IDCache
2023-05-28 19:01:21 +12:00
Joshua de Reeper
f8abc2c0e6
Android: Infinity Base UI
...
Add a UI option for the Infinity Base within the Android Emulation Activity
2023-05-28 19:01:21 +12:00
JosJuice
8a78538b2d
Android: Don't show analytics dialog for destroyed activity
...
Should fix one of the reported crashes on Google Play. The issue can
happen if you leave the activity during directory initialization.
2023-05-22 11:10:13 +02:00
Admiral H. Curtiss
6a339cbdb3
IOS/ES: Split ESDevice into ESCore and ESDevice.
...
ESCore implements the core functionality that can also be used outside of emulation. ESDevice implements the IOS device and is only available during emulation.
2023-05-15 20:41:05 +02:00
Mai
1a2dcc53f2
Merge pull request #11742 from K0bin/document-provider-2
...
Android: Document Provider improvements
2023-04-16 04:21:33 -04:00
Robin Kertels
57ed5320b5
Android: Fix various issues with the DocumentProvider
...
Fixes copying & deleting folders and copy conflict handling.
2023-04-15 20:53:01 +02:00
Lioncash
e4caace6bb
Common/IniFile: Move interface into Common namespace
...
Gets this out of the global namespace and into the Common namespace
2023-04-13 10:19:28 -04:00
Robin Kertels
1596b13743
Android: Give Debug and Benchmark builds unique names
...
on the launcher and for the DocumentsProvider
2023-04-08 15:56:44 +02:00
Charles Lombardo
15be899580
Merge pull request #11689 from K0bin/android-open-user-folder
...
Android: Make button in the settings open user folder
2023-03-29 10:53:48 -07:00
Robin Kertels
ee563189fd
Android: Adjust user data text to match DocumentProvider
2023-03-26 20:32:43 +02:00
Admiral H. Curtiss
9217a9eba4
JitInterface: Refactor to class, move to System.
2023-03-26 14:38:07 +02:00
Robin Kertels
43d346aba4
Android: Open DocumentProvider directly when tapping the File Manager button
2023-03-24 00:33:42 +01:00
Charles Lombardo
df806125b9
Android: Ignore input from invalid pointer identifier
2023-03-22 21:44:37 -04:00
Charles Lombardo
ce66d5875f
Android: Fix long press action for leanback game cards
2023-03-21 19:12:28 -04:00
Charles Lombardo
cf0706c239
Android: Remove deprecated use of launchWhenStarted/Resumed
2023-03-21 18:53:48 -04:00
JosJuice
002a96adb0
Merge pull request #11662 from t895/kotlin-settings
...
Android: Convert Settings to Kotlin
2023-03-19 17:15:22 +01:00
JosJuice
8e363c0995
Android: Translate C++ "w" to ParcelFileDescriptor "wt"
...
Previously we were translating "w" to "w", which unlike in C++ doesn't
truncate. See https://issuetracker.google.com/issues/180526528 , and for
reference, https://en.cppreference.com/w/cpp/io/c/fopen and
https://en.cppreference.com/w/cpp/io/basic_filebuf/open .
This issue was brought to my attention by the recently published issue
CVE-2023-21036 in the screenshot editing tool on Pixel phones. I'm not
aware of any code in Dolphin that actually uses "w" with an existing
file on Android (when we ask the user for a location to save to using
SAF, a new file is always created), but still, best to fix this.
2023-03-18 13:44:01 +01:00
JosJuice
6b545eaada
Merge pull request #11659 from JosJuice/android-after-dirinit-runner-cleanup
...
Android: Clean up AfterDirectoryInitializationRunner
2023-03-16 17:12:58 +01:00
Charles Lombardo
a32d66e5ec
Android: Upgrade Kotlin to 1.8.10
2023-03-15 23:58:11 -04:00
Charles Lombardo
f06c0897ab
Android: Update gradle to 8.0
2023-03-15 23:58:11 -04:00
Charles Lombardo
de34c962d7
Android: Upgrade AGP to 7.4.2
2023-03-15 23:58:11 -04:00
Charles Lombardo
7e84285047
Android: Upgrade dependencies
...
Desugar JDK 2.0.0 -> 2.0.2
Androidx Appcompat 1.6.0 -> 1.6.1
Androidx Exif Interface 1.3.5 -> 1.3.6
Material Components 1.7.0 -> 1.8.0
Androidx recyclerview 1.2.1 -> 1.3.0
Androidx viewmodel ktx 2.5.1 -> 2.6.0
Androidx viewmodel 2.5.1 -> 2.6.0
2023-03-15 23:58:11 -04:00
Charles Lombardo
805f921b55
Android: Remove unused benchmark flags
2023-03-15 23:57:47 -04:00
Charles Lombardo
2782318b8c
Android: Update ndk version to 25.2.9519653
2023-03-15 23:57:47 -04:00
Charles Lombardo
9020b6aeb9
Android: Convert SettingsAdapter to Kotlin
2023-03-15 17:35:48 -04:00
Charles Lombardo
673c8d9cb2
Android: Convert SettingsActivity to Kotlin
2023-03-15 17:35:48 -04:00
Charles Lombardo
4cbbe15e77
Android: Convert SettingsFragment to Kotlin
2023-03-15 17:35:48 -04:00
Charles Lombardo
cea882181d
Android: Convert SettingsActivityPresenter to Kotlin
2023-03-15 17:35:48 -04:00
Charles Lombardo
3b32ff6980
Android: Convert SettingsFile to Kotlin
2023-03-15 17:35:48 -04:00
Charles Lombardo
92f39a98d6
Android: Convert SwitchSettingViewHolder to Kotlin
2023-03-15 17:35:48 -04:00
Charles Lombardo
49e480ee53
Android: Convert SubmenuViewHolder to Kotlin
2023-03-15 17:35:48 -04:00
Charles Lombardo
760417b08f
Android: Convert SliderViewHolder to Kotlin
2023-03-15 17:35:48 -04:00
Charles Lombardo
9b79f5fa5d
Android: Convert SingleChoiceViewHolder to Kotlin
2023-03-15 17:35:48 -04:00
Charles Lombardo
917a0c2287
Android: Convert SettingViewHolder to Kotlin
2023-03-15 17:35:48 -04:00
Charles Lombardo
7b7ee13162
Android: Convert RunRunnableViewHolder to Kotlin
2023-03-15 17:35:48 -04:00
Charles Lombardo
6a08b12c9b
Android: Convert InputStringSettingViewHolder to Kotlin
2023-03-15 17:35:48 -04:00
Charles Lombardo
bc6d10e29a
Android: Convert HeaderViewHolder to Kotlin
2023-03-15 17:35:48 -04:00
Charles Lombardo
789493b722
Android: Convert HeaderHyperLinkViewHolder to Kotlin
2023-03-15 17:35:48 -04:00
Charles Lombardo
220cdafbaa
Android: Convert FilePickerViewHolder to Kotlin
2023-03-15 17:35:48 -04:00
Charles Lombardo
f0304d80ef
Android: Convert SettingsViewModel to Kotlin
2023-03-15 17:35:48 -04:00
Charles Lombardo
508e56e2bf
Android: Convert SettingsFragmentView to Kotlin
2023-03-15 17:35:48 -04:00
Charles Lombardo
656d91cd18
Android: Convert SettingsFragmentPresenter to Kotlin
2023-03-15 17:35:48 -04:00
Charles Lombardo
c78cde2e18
Android: Convert SettingsActivityView to Kotlin
2023-03-15 17:35:34 -04:00
Charles Lombardo
dc77ee140d
Android: Convert MenuTag to Kotlin
2023-03-15 17:35:34 -04:00
Charles Lombardo
2af8efdd72
Android: Convert SwitchSetting to Kotlin
2023-03-15 17:35:34 -04:00
Charles Lombardo
ab11b44938
Android: Convert SubmenuSetting to Kotlin
2023-03-15 17:35:34 -04:00
Charles Lombardo
065c80fb4d
Android: Convert SliderSetting to Kotlin
2023-03-15 17:35:34 -04:00
Charles Lombardo
3c6bb9e0c9
Android: Convert SingleChoiceSettingDynamicDescriptions to Kotlin
2023-03-15 17:35:34 -04:00
Charles Lombardo
d51f504629
Android: Convert SingleChoiceSetting to Kotlin
2023-03-15 17:35:34 -04:00
Charles Lombardo
1fc9f03b27
Android: Convert RunRunnable to Kotlin
2023-03-15 17:35:34 -04:00
Charles Lombardo
62679bacc1
Android: Convert PercentSliderSetting to Kotlin
2023-03-15 17:35:34 -04:00
Charles Lombardo
72be338d56
Android: Convert LogSwitchSetting to Kotlin
2023-03-15 17:35:34 -04:00
Charles Lombardo
56c33890b9
Android: Convert InvertedSwitchSetting to Kotlin
2023-03-15 17:35:34 -04:00
Charles Lombardo
2369977e14
Android: Convert IntSliderSetting to Kotlin
2023-03-15 17:35:34 -04:00
Charles Lombardo
826e849a7b
Android: Convert InputStringSetting to Kotlin
2023-03-15 17:35:34 -04:00
Charles Lombardo
fc97c4d35a
Android: Convert HyperLinkHeaderSetting to Kotlin
2023-03-15 17:35:34 -04:00
Charles Lombardo
f95fd7788e
Android: Convert HeaderSetting to Kotlin
2023-03-15 17:35:34 -04:00
Charles Lombardo
1e2e9e004b
Android: Convert FloatSliderSetting to Kotlin
2023-03-15 17:35:34 -04:00
Charles Lombardo
f7ad065408
Android: Convert FilePicker to Kotlin
2023-03-15 17:35:34 -04:00
Charles Lombardo
1553477c09
Android: Convert StringSetting to Kotlin
2023-03-15 17:35:34 -04:00
Charles Lombardo
2c560e05a8
Android: Convert Settings to Kotlin
2023-03-15 17:35:21 -04:00
Charles Lombardo
dee85cead8
Android: Convert PostProcessing to Kotlin
2023-03-15 17:35:21 -04:00
Charles Lombardo
42f4fb815f
Android: Convert NativeConfig to Kotlin
2023-03-15 17:35:21 -04:00
Charles Lombardo
7c59640f8e
Android: Convert IntSetting to Kotlin
2023-03-15 17:35:21 -04:00
Charles Lombardo
46e68171b9
Android: Convert FloatSetting to Kotlin
2023-03-15 17:34:49 -04:00
Charles Lombardo
3ac72855e3
Android: Convert BooleanSetting to Kotlin
2023-03-15 17:34:21 -04:00
Charles Lombardo
84c23c14db
Android: Convert AdHocStringSetting to Kotlin
2023-03-15 15:49:37 -04:00
Charles Lombardo
a8f3d4291a
Android: Convert AdHocBooleanSetting to Kotlin
2023-03-15 15:49:37 -04:00
Charles Lombardo
f1028b4652
Android: Convert AbstractStringSetting to Kotlin
2023-03-15 15:49:37 -04:00
Charles Lombardo
32f9e48257
Android: Convert AbstractIntSetting to Kotlin
2023-03-15 15:49:37 -04:00
Charles Lombardo
baeeaa2a43
Android: Convert AbstractFloatSetting to Kotlin
2023-03-15 15:49:37 -04:00
Charles Lombardo
5bc2b46983
Android: Convert AbstractBooleanSetting to Kotlin
2023-03-15 15:49:37 -04:00
Charles Lombardo
21e0b5b9d9
Android: Convert AbstractSetting to Kotlin
2023-03-15 15:49:37 -04:00
Charles Lombardo
43fa5cf5e4
Android: Convert SettingsItem to Kotlin
2023-03-15 15:49:37 -04:00
Charles Lombardo
6dc6720250
Android: Convert StringSingleChoiceSetting to Kotlin
2023-03-15 15:49:37 -04:00
Charles Lombardo
98ab893be7
Android: Create extension functions for serializables
...
Getting serializables without explicitly stating the type is deprecated in Android 13. However we still need a way to get a serializable in versions below that. Now with these we can avoid repeating the same if block.
2023-03-15 14:26:37 -04:00
JosJuice
fe8be906f3
Android: Use LifecycleOwner instead of subtype
2023-03-14 23:03:13 +01:00
JosJuice
846f5f6671
Android: Clean up outdated comment in AfterDirectoryInitializationRunner
2023-03-14 23:03:13 +01:00
Mai
4281606838
Merge pull request #11641 from JosJuice/android-remove-old-config
...
Android: Remove support for the old config system
2023-03-14 15:48:04 -04:00
Pierre Bourdon
aceafc9d26
Merge pull request #11652 from t895/header-padding
...
Android: Make header padding appear even
2023-03-14 13:03:19 +01:00
Pierre Bourdon
970ddf0ea0
Merge pull request #11651 from JosJuice/android-profile-off-by-one
...
Android: Fix per-game profile setting off-by-one
2023-03-14 02:02:00 +01:00
Charles Lombardo
4f610bb354
Android: Make header padding appear even
2023-03-13 15:27:09 -04:00
JosJuice
5818685911
Android: Fix per-game profile setting off-by-one
2023-03-13 18:30:55 +01:00
Robin Kertels
784ce78eaf
Android: Use $applicationId for DocmentProvider authority
...
Fixes side by side installation of debug, benchmark and release builds.
2023-03-12 15:28:21 +01:00
JosJuice
804b94ee9e
Merge pull request #11524 from K0bin/document-provider
...
Android: Implement DocumentProvider
2023-03-11 19:24:19 +01:00
JosJuice
08334015f9
Android: Remove SettingsActivityView parameters from Settings
...
No longer used for anything.
2023-03-11 18:49:43 +01:00
JosJuice
99600ef781
Android: Rework the "global" settings functions
...
getXGlobal() is now identical to getX(), and setXGlobal(int, X) is now
identical to setX(int, X) in the cases where setX(int, X) exists.
We can remove/rename them.
2023-03-11 18:49:43 +01:00
JosJuice
58fc347f8d
Android: Don't require Settings object for reading a setting
...
Made unnecessary by the previous commit.
2023-03-11 18:49:43 +01:00
JosJuice
68fd133057
Android: Remove support for the old config system
...
All settings that we care about from an Android perspective are now
supported by the new config system, so we can remove all the Android code
for the old config system. This should have no impact on users.
2023-03-11 17:51:59 +01:00
JosJuice
53e7090f55
Migrate game INI profile setting to new config system
2023-03-11 17:51:58 +01:00
JosJuice
62ff2f1030
Merge pull request #11385 from JosJuice/android-input-overhaul
...
Android input overhaul
2023-03-11 12:37:44 +01:00
Admiral H. Curtiss
eb25c46a91
HW/DVDInterface: Refactor to class.
2023-03-10 18:12:59 +01:00
Robin Kertels
13ed46a488
Android: Implement DocumentProvider
...
This allows users to access the Dolphin user directory.
2023-03-08 23:09:49 +01:00
Robin Kertels
1b47144312
Android: Center list view headers
2023-03-08 18:57:19 +01:00
Robin Kertels
edde253724
Android: Only show divider in settings for headers
2023-03-08 18:57:08 +01:00
Charles Lombardo
75ce7a04ca
Android: Use coroutine for system updates
2023-03-07 15:45:41 -05:00
Charles Lombardo
d66d8210bf
Android: Switch to indeterminate progress bar on system update cancel
2023-03-07 15:45:41 -05:00
Charles Lombardo
917ca2273e
Android: Remove hardcoded strings from system update dialogs
2023-03-07 15:45:41 -05:00
Charles Lombardo
410aaef56e
Android: Remove orientation lock on system update dialog
2023-03-07 15:45:41 -05:00
Charles Lombardo
c0868f04a9
Android: Use Kotlin extensions for lifecycle components
2023-03-07 15:45:41 -05:00
Charles Lombardo
5eeb0a540b
Android: Convert OnlineUpdateRegionSelectDialogFragment to Kotlin
2023-03-07 15:45:41 -05:00
Charles Lombardo
0ac4fe763b
Android: Convert SystemMenuNotInstalledDialogFragment to Kotlin
2023-03-07 15:45:41 -05:00
Charles Lombardo
c8907349be
Android: Convert SystemUpdateResultFragment to Kotlin
2023-03-07 15:45:40 -05:00
Charles Lombardo
60cb886cd4
Android: Convert WiiUtils to Kotlin
2023-03-07 15:45:40 -05:00
Charles Lombardo
2b17e0334a
Android: Convert SystemUpdateViewModel to Kotlin
2023-03-07 15:45:40 -05:00
Charles Lombardo
6dfa555099
Android: Convert SystemUpdateProgressBarDialogFragment to Kotlin
2023-03-07 15:45:40 -05:00
JosJuice
75fb1a7edf
Android: Disable input device sensor input due to crash
2023-03-07 17:39:34 +01:00
JosJuice
1788a797e7
Android: Add "more settings" button to overlay control setting dialog
...
Some people might wonder where the ability to select an extension
and the Sideways Wii Remote went. This button will take them to the
general settings, which is where those settings now live.
At some point in the future, we should probably move everything to the
general settings. But this pull request is already big enough as it is!
2023-03-07 17:39:34 +01:00
JosJuice
6b5f82c12f
Android: Change how the overlay controller setting works, part 2
...
The previous commit wasn't enough for getting inputs to work for
controllers 2-4.
2023-03-07 17:39:34 +01:00
JosJuice
1b55d7c594
Android: Change how the overlay controller setting works
...
Up until now, there have been two settings on Android that stored the
selected Wii Remote extension: the normal one that's also used on PC,
and a SharedPreferences one that's used by the overlay controls to
determine what controls to show. It is possible for these two to end up
out of sync, and my input changes have made that more likely to happen.
To fix this, let's rework how the overlay controller setting works.
We don't want it to encode the currently selected Wii Remote extension.
However, we can't simply get rid of the setting, because for some Wii
games we need the ability to switch between a GameCube controller and a
Wii Remote. What this commit does is give the user the option to select
any of the 4 GameCube controllers and any of the 4 Wii Remotes. (Before,
controllers 2-4 weren't available in the overlay.) Could be useful for
things like the Psycho Mantis fight in Metal Gear Solid. I'm also
switching from SharedPreferences to Dolphin.ini while I'm at it.
2023-03-07 17:39:34 +01:00
JosJuice
4c326f2030
Android: Remove the in-emulation IR sensitivity options
...
This too can be set in the normal controller settings now.
2023-03-07 17:39:34 +01:00
JosJuice
ee2c7dc24b
Android: Remove the in-emulation motion control options
...
You can set this in the normal controller settings now.
2023-03-07 17:39:34 +01:00
JosJuice
32cb41007b
Android: Allow changing controller settings during emulation
2023-03-07 17:39:34 +01:00
JosJuice
c2779aef06
Android: Add the advanced input mapping dialog
...
It's missing a lot of features from the PC version for now, like
buttons for inserting functions and the ability to see what the
expression evaluates to. I mostly just wanted to get something in
place so you can set up rumble.
Co-authored-by: Charles Lombardo <clombardo169@gmail.com>
2023-03-07 17:39:30 +01:00
JosJuice
42943672bb
Android: Add selecting input profile per game
2023-03-03 22:28:25 +01:00