summaryrefslogtreecommitdiff
path: root/Source/Android/app/src/main/java
AgeCommit message (Collapse)Author
2024-07-28Revert "Android: Disable input device sensor input due to crash"JosJuice
This reverts commit 75fb1a7edfb12f490b08ab0b76a8e2f1536d2d9b.
2024-07-28Android: Add workaround for AOSP input device sensor suspend bugJosJuice
2024-07-28Android: Use structural equality for sensorDetailsJosJuice
To fix the crash in input device sensor handling, we should look up Sensors using structural equality. Unfortunately, Sensor.equals implements referential equality, and HashMap doesn't let us provide a custom comparator. Because the number of sensors is relatively small, and because we have a reason to keep a sorted list of sensors around anyway, let's switch from HashMap to ArrayList.
2024-07-04Merge pull request #12856 from LillyJadeKatrin/retroachievements-pause-v2Admiral H. Curtiss
Handle Pausing in AchievementManager
2024-06-26Revert "Audit uses of IsRunning and GetState"JosJuice
This reverts commit 72cf2bdb87f09deff22e1085de3290126aa4ad05. SYSCONF settings are getting cleared when they shouldn't be. Let's revert the change until I get proper time to figure out why it's broken.
2024-06-23Android: Track whether app is in foregroundJosJuice
2024-06-22Merge pull request #12828 from JosJuice/unify-state-variables-2Admiral H. Curtiss
Clean up Core::GetState
2024-06-21Audit uses of IsRunning and GetStateJosJuice
Some pieces of code are calling IsRunning because there's some particular action that only makes sense when emulation is running, for instance showing the state of the emulated CPU. IsRunning is appropriate to use for this. Then there are pieces of code that are calling IsRunning because there's some particular thing they must avoid doing e.g. when the CPU thread is running or IOS is running. IsRunning isn't quite appropriate for this. Such code should also be checking for the states Starting and Stopping. Keep in mind that: * When the state is Starting, the state can asynchronously change to Running at any time. * When we try to stop the core, the state gets set to Stopping before we take any action to actually stop things. This commit adds a new method Core::IsUninitialized, and changes all callers of IsRunning and GetState that look to me like they should be changed.
2024-06-20Add 2 More Slots for Power Discs on Emulated BasedeReeperJosh
2024-05-20Android: Fix crash when no devices have outputsJosJuice
Regression from 5171290bdb.
2024-04-20Merge pull request #12686 from JosJuice/android-remove-strikeoutAdmiral H. Curtiss
Android: Unset STRIKE_THRU_TEXT_FLAG for editable settings
2024-04-13Merge pull request #12681 from nlebeck/taskviewmodel-refactorAdmiral H. Curtiss
Refactor `TaskViewModel` to track task-related state in a single `MutableLiveData` instance
2024-04-13Merge pull request #12688 from JosJuice/android-alert-synchronizeAdmiral H. Curtiss
Android: Fix race condition in displayAlertMsg
2024-04-09Android: Access Software JIT Profilingmitaclaw
2024-04-09JitCache: Software Profiling Restorationmitaclaw
Rekindle software JIT profiling with a std::chrono conversion and a config connection.
2024-04-07Refactor TaskViewModel to track task-related state in a single ↵Niel Lebeck
MutableLiveData instance
2024-04-06NativeLibrary: Create displayToastMsg Methodmitaclaw
2024-04-05Android: Fix race condition in displayAlertMsgJosJuice
It was possible for sAlertMessageLock.notify() to be called before sAlertMessageLock.wait(), causing Dolphin to deadlock. In particular, this was guaranteed to happen if displayAlertMsg was called from the UI thread while the emulation activity is being destroyed, because runOnUiThread runs the passed-in anonymous function immediately when called from the UI thread. By replacing Object.wait/Object.notify with Semaphore.acquire/ Semaphore.release, it no longer matters what order the methods are called in.
2024-04-05Android: Unset STRIKE_THRU_TEXT_FLAG for editable settingsJosJuice
Because SettingViewHolder is used in RecyclerViews, we have to explicitly unset STRIKE_THRU_TEXT_FLAG when we don't want it, otherwise it might be left over from when the SettingViewHolder was representing a different setting.
2024-03-17Implement GC modem adapterMartin Michelsen
This implements the GameCube modem adapter. This implementation is stable but not perfect; it drops frames if the receive FIFO length is exceeded. This is probably due to the unimplemented interrupt mentioned in the comments. If the tapserver end of the connection is aware of this limitation, it's easily circumvented by lowering the MTU of the link, but ideally this wouldn't be necessary. This has been tested with a couple of different versions of Phantasy Star Online, including Episodes 1 & 2 Trial Edition. The Trial Edition is the only version of the game that supports the Modem Adapter and not the Broadband Adapter, which is what made this commit necessary in the first place.
2024-03-17fix android syntax errorMartin Michelsen
2024-03-17implement tapserver BBA on all platformsMartin Michelsen
This expands the tapserver BBA interface to be available on all platforms. tapserver itself is still macOS-only, but newserv (the PSO server) is not, and it can directly accept local and remote tapserver connections as well. This makes the tapserver interface potentially useful on all platforms.
2024-02-11Android: Don't check Wii Menu version before directory initializationJosJuice
Fixes a crash.
2024-02-11Android: Update Load Wii System Menu string in onPrepareOptionsMenuJosJuice
Because the wording of the Load Wii System Menu string can change depending on the contents of the NAND, we should update that menu item in a method that's guaranteed to get called every time the user opens the menu rather than one that's only guaranteed to be called once.
2024-02-04InputCommon: Unify GetProfileName and GetProfileDirectoryNameJosJuice
After reading the previous commit, you might think "hold on, what's the difference between GetProfileName and GetProfileDirectoryName"? These two are being used for the exact same thing - figuring out where profiles are stored - yet they return different values for certain controllers like GC keyboards! As far as I can tell, the existing code has been broken for GC keyboards since they were introduced a decade ago. The GUI (and more recently, also InputCycler) would write and read profiles in one location, and our code for loading profiles specified in a game INI file would read profiles in another location. This commit gets rid of the set of values used by the game INI code in favor of the other set. This does breaking existing setups where a GCKey profile has been configured in a game INI, but I think the number of working such setups is vanishingly small. The alternative would make existing GCKey profiles go missing from the profile dropdown in the GUI, which I think would be more disruptive. The alternative would also force new GCKey profiles into the same directory as GCPad profiles. This commit also fixes a regression from d6c0f8e749. The Android GUI was using GetProfileName to figure out what key to use in the game INI, which made it use incorrect game INI entries for GameCube controller profiles but not Wii Remote profiles. Now the Android GUI uses GetProfileKey for this, fixing the problem.
2024-01-07Merge pull request #12375 from JosJuice/android-gate-size-crashJosJuice
Android: Fix crash when trying to edit gate size setting
2023-12-24Make DocumentProvider Support ThumbnailBlakDulz
This will make DocumentUI or the built-in Android System Internal Files Manager app showing Thumbnail of Image file instead of image type icon.
2023-12-23Implement Refresh on DocumentProviderBlakDulz
"When interacting with DocumentUI or the built-in Android System Internal Files Manager app and performing Create, Rename, and Delete operations, DocumentsUI will not automatically refresh the changes. Previously, users had to manually pull down from the top to refresh the changes. This commit aims to fix this issue by automatically notifying the system that changes have occurred and triggering a requery."
2023-12-16Merge pull request #12346 from iwubcode/arb_mipmaps_default_offAdmiral H. Curtiss
Core: disable arbitrary mipmap detection by default
2023-12-13Merge pull request #12369 from t895/coil-cacheJosJuice
Android: Allow Coil image cache to use more memory
2023-12-10Add "large entry points map" settingJosJuice
To aid in debugging, this makes it possible to disable the recently added 32/64 GiB region which hasn't had a proper name so far.
2023-12-10Android: Fix crash when trying to edit gate size settingJosJuice
The gate size is 79.37125 by default, and the step size is 0.5. Android throws an exception if we try to show the slider with the value set to something that isn't divisible by the step size. To avoid this problem, round the value.
2023-12-09Android: Allow Coil image cache to use more memoryt895
Allows the Coil memory cache to use up to 90% of the application's available memory. Previously this could cause problems with reloading images in very large libraries of games.
2023-12-08Android: Don't call Run before directory initializationJosJuice
Combined with the previous commits, this finally fixes the bug where Dolphin had a chance of crashing if you returned to it after Android killed the Dolphin process.
2023-12-08Android: Fix EmulationActivity's handling of process recreationJosJuice
2023-12-08Android: Reload EmulationActivity settings on title changeJosJuice
This way, we ensure that game INI settings are properly applied. I don't think we actually expose the affected settings on a per-game basis in the UI, but still.
2023-12-08Android: Combine reading cutout setting with updateOrientationJosJuice
2023-12-07Android: Improve GameFileCacheManager commentsJosJuice
2023-12-07Android: Use config changed callback for tracking recursive scan settingJosJuice
This way the Settings class doesn't contain a hardcoded reference to a specific setting. And Settings.loadSettings no longer calls getBoolean, which is a step towards fixing the crash when recreating EmulationActivity after process death.
2023-12-07Android: Expose config changed callbacksJosJuice
2023-12-01Finish parent activity after directory initializer completesMinh Truong
Add frontIntent flag to control activity.finish() Moved parent activity finish inside of performLaunchChecks
2023-12-01Android / Core / DolphinQt: disable arbitrary mipmap detection by default, ↵iwubcode
let the games that need it be enabled with a config option, there aren't many of them
2023-11-28Merge pull request #12298 from Shoegzer/masterMai
Update default IP for HLE BBA
2023-11-28Merge pull request #12215 from JosJuice/android-si-devicesMai
Android: Add more GameCube controller types
2023-11-15Also update IP in Android GUIShoegzer
2023-10-31Add fastmem arena settingJosJuice
Just for debugging.
2023-10-31PowerPC: Allow toggling write-back cache during emulationJosJuice
Now that PR 10575 is merged, the JIT automatically clears its cache when this setting is changed, making this reasonable to implement.
2023-10-01Android: Add more GameCube controller typesJosJuice
For all your PSO needs.
2023-10-01Android: Get profile name from coreJosJuice
To avoid duplicating information between Kotlin and C++.
2023-09-23Android: Use 0.5 unit step size and show decimal for numeric settingsCharles Lombardo
In some settings where the default value could not be evenly divided by the step size for the slider, there would be a crash. This increases the precision of all double numeric settings to 0.5 and now shows the decimal that you couldn't see before.