summaryrefslogtreecommitdiff
path: root/Source/Android/app/src/main/java
AgeCommit message (Collapse)Author
2021-12-20Merge pull request #10272 from JosJuice/android-intent-uriJMC47
Android: Rework intent handling to work under scoped storage
2021-12-15Merge pull request #10276 from JosJuice/android-fix-file-managerMai M
Android: Fix opening system file manager
2021-12-14Android: Fix opening system file managerJosJuice
Turns out that most phones ship with a special Google version of DocumentsUI instead of just using the AOSP version, despite the two being pretty similar as far as I can tell. This change makes us check for both package names instead of just the AOSP package name.
2021-12-14Android: Rework intent handling to work under scoped storageJosJuice
2021-12-12GameList: Show game mod descriptor .json files in game list.Admiral H. Curtiss
2021-11-21Merge pull request #10231 from JosJuice/android-dir-init-livedataMai M
Android: Make DirectoryInitialization use LiveData
2021-11-21Android: Add MMU setting to GUIJosJuice
Now that we have fast MMU emulation on AArch64, there's no reason to keep excluding this from the GUI like we've been doing.
2021-11-19Android: Make rescan on app start work againJosJuice
I haven't fully confirmed why the previous commit broke this, but I imagine it's due to AfterDirectoryInitializationRunner executing in a different order than before, resulting in startRescan running before startLoad.
2021-11-19Android: Make DirectoryInitialization use LiveDataJosJuice
Gets rid of all remaining uses of the deprecated LocalBroadcastManager.
2021-11-18Merge pull request #9956 from Pokechu22/non-power-of-2-wrap-2JMC47
VideoCommon: Manually handle texture wrapping and sampling
2021-11-17Use Fast Texture Sampling by defaultPokechu22
This commit changes the default value of Fast Texture Sampling to true, and also moves the setting that controls it to the experimental section of the advanced tab. This is its own commit so that it can be easily reverted when we want to default to Manual Texture Sampling. Co-authored-by: JosJuice <josjuice@gmail.com>
2021-11-17VideoCommon: Add option to use old behavior (Fast Texture Sampling)Pokechu22
Co-authored-by: JosJuice <josjuice@gmail.com>
2021-11-17Android: Make GameFileCacheManager use LiveData, part 2JosJuice
Gets rid some uses of the deprecated LocalBroadcastManager. One note about the changes in GameFileCacheManager itself: The change from compareAndSet to getValue followed by setValue is actually safe, because startLoad and startRescan only run from the main thread, and only the main thread ever sets the flags to true. So it's impossible for any other thread to change the flag in between the getValue and the setValue.
2021-11-17Android: Make GameFileCacheManager use LiveData, part 1JosJuice
2021-11-16Merge pull request #10225 from JosJuice/android-game-settings-titleMai M
Android: Properly set game settings title when navigating backwards
2021-11-16Android: Properly set game settings title when navigating backwardsJosJuice
2021-11-16Android: Make GameFileCacheService not be a serviceJosJuice
The past few Android releases have been adding restrictions to what services are allowed to do, for the sake of stopping services from using up too much battery in the background. The IntentService class, which GameFileCacheService uses, was even deprecated in Android 11 in light of this. Typically, the reason why you would want use a service instead of using a simple thread or some other concurrency mechanism from the Java standard library is if you want to be able to run code in the background while the user isn't using your app. This isn't actually something we care about for GameFileCacheService -- if Android wants to kill Dolphin there's no reason to keep GameFileCacheService running -- so let's make it not be a service. I'm changing this mainly for the sake of future proofing, but there is one immediate (minor) benefit: Previously, if you tried to launch Dolphin from Android Studio while your phone was locked, the whole app would fail to launch because launching GameFileCacheService wasn't allowed because Dolphin wasn't considered a foreground app.
2021-11-16Android: Split up GameFileCacheService.onHandleIntentJosJuice
2021-10-30Android: Show SD root path in Riivolution activityJosJuice
2021-10-30Android: Add Riivolution patch configurationJosJuice
2021-10-30Android: Allow starting game with Riivolution patches from the GUIJosJuice
2021-10-24Merge pull request #10185 from JosJuice/android-fragileLéo Lam
Android: Set android:hasFragileUserData
2021-10-24Android: Set android:hasFragileUserDataJosJuice
This makes Android ask the user whether they want to delete user data when uninstalling the app instead of always deleting user data, which is pretty great now that we're forced to use scoped storage. It only works on Android 10 and up, though.
2021-10-24Convert LOG_TYPE and LOG_LEVELS to enum classPokechu22
2021-10-15Merge pull request #9696 from JosJuice/android-scoped-storageJosJuice
Android: Scoped storage [To be merged in October]
2021-10-04Android: Add the advanced graphics settings to the GUIJosJuice
2021-10-02DolphinQt/Android: Add warning when converting NKit filesJosJuice
Yes, that's right! It's time to add even more NKit warnings, because users still don't understand what NKit is or how it works! More specifically, some users seem to be under the impression that converting an NKit file to for instance RVZ using Dolphin's convert feature will result in a normal RVZ file, when it in fact results in an NKit RVZ file (since NKit is not a container format in the sense that GCZ/WIA/RVZ/WBFS/CISO is, but rather a kind of trimmed ISO). I can hardly blame users for not knowing this, because it's not intuitive unless you know the technical details of how NKit works.
2021-09-21Android: Remove the EmulationState classJosJuice
The purpose of this class was to keep track of state which the emulation core was already keeping track of. This is rather risky - if we update the state of one of the two without updating the other, the two become out of sync, leading to some rather confusing problems. This duplicated state was removed from EmulationState in the previous commits, so now there isn't much left in the class. Might as well move its members directly into EmulationFragment.
2021-09-21Android: Remove synchronized keywords from EmulationStateJosJuice
These methods are only being called from the GUI thread anyway...
2021-09-21Android: Don't rely on onPause for pausing before destroying surfaceJosJuice
Fixes a crash which was uncovered (or just made more likely?) by the previous commit.
2021-09-21Android: Remove state from EmulationStateJosJuice
2021-09-21Android: Remove mSurface from EmulationStateJosJuice
2021-09-18Android: Show confirmation dialog for clearing game settingsJosJuice
2021-09-16Android: Add button for opening system file managerJosJuice
Apparently some phones (at least some from Samsung) don't expose the system file manager in the system settings despite it being the only on-device file manager that can open app-specific directories...
2021-09-16Android: Add a "user data" screenJosJuice
To make it clearer for users where Dolphin is storing user data, now that there's more than one possible place.
2021-09-16Android: Show a dialog for scoped storage incompatible settingsJosJuice
The following settings are currently not SAF compatible, and might never be due to the performance impact: Dump Path Load Path Resource Pack Path Wii NAND Root This commit makes us show a message to the user if they try to change one of these settings while scoped storage is active. I don't want to entirely remove the settings from being listed in the settings activity, because it's important that the user is able to reset them if they were set to something custom in a previous version of Dolphin.
2021-09-16Android: Use app-specific directory as User folder by defaultJosJuice
This lets Dolphin function without the user granting access to external storage. We need this for scoped storage compatibility. When scoped storage is not active, we still ask for permission to access external storage the first time the app is started so that we can use the existing dolphin-emu folder if there is one. But if it doesn't exist, or the user denies the permission, or scoped storage is active, the app-specific directory will be used instead.
2021-09-16Android: Add save button to cheats activityJosJuice
By request. Matches the settings activity.
2021-09-16Android: Allow $ line when entering cheat codeJosJuice
Port of cda442d.
2021-09-16Android: Add Gecko code downloadingJosJuice
2021-09-16Android: Fix CheatsActivity d-pad navigationJosJuice
Special shoutout to Android for not having RTL compatible variants of nextFocusRight and nextFocusLeft. Ideally we would have some way to block the user from using the d-pad to switch between the two panes when in portrait mode, or make the list pane act as if it's to the left of the details pane rather than the right when the details pane is open, but I don't know of a good way to do this. SlidingPaneLayout doesn't really seem to have been implemented with d-pad navigation in mind. Thankfully, landscape is the most important use case for gamepads.
2021-09-16Android: Show warning when Enable Cheats is offJosJuice
2021-09-16Android: Add the ability to delete cheatsJosJuice
2021-09-16Android: Add the ability to add cheatsJosJuice
2021-09-16Android: Add headers to cheat listJosJuice
2021-09-16Android: Scroll to field with error when error occursJosJuice
2021-09-16Android: Add creator and notes fields for Gecko codesJosJuice
2021-09-16Android: Allow viewing/editing the actual codesJosJuice
2021-09-16Android: Update cheat list when a cheat is editedJosJuice
The way I'm implementing events using LiveData feels rather unorthodox, but I'm not aware of anything in the Android framework that would let me do it in a better way... One option I did consider was wrapping the cheat lists in LiveData and observing those, but then CheatsAdapter wouldn't know which cheat had changed, only that there was some kind of change to the list, necessitating the use of the not recommended notifyDataSetChanged.
2021-09-16Android: Add edit button for cheatsJosJuice